commit e4623800aa50a48f4885579fd7847ce48ca0a72a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 20:52:48 2016 -0400

    2.49.4

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

commit 849599671c4ace72a1f8796989c484b751d1a622
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 20:38:46 2016 -0400

    Update structured logging docs a bit

    Remove references to removed macros, add some more links
    to standard journal fields.

 glib/gmessages.c | 36 ++++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 16 deletions(-)

commit 4643cadc17f5e0c96719071fea16eb3ec8d887be
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 19:44:02 2016 -0400

    Add structured logging to the docs

 docs/reference/glib/glib-sections.txt | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 65540860705f747586369757b9cfb790428a7baf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 19:42:52 2016 -0400

    Make gtk-doc handle GLogField

    gtk-doc can't deal with typedef struct {...} GLogField, it seems.

 glib/gmessages.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f5a8dfb6afe786eb2a1088ea8cc590fd189ee218
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 19:27:17 2016 -0400

    Improve journal detection

    We can use getpeername() and check if we have a socket that
    is in /run/systemd/journal/.

 glib/gmessages.c | 28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)

commit 3892034455a65a02b8a307bcb9b0a1de93be934f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 18:42:19 2016 -0400

    Add more tests for g_log_structured

 glib/tests/logging.c | 137
 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 134 insertions(+), 3 deletions(-)

commit bdcf9e8b4efb16ee6d00dc0ce04349cd01a5f0e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 18:36:52 2016 -0400

    Redo structured logging API

    It turns out that the current approach of parsing g_log_structured
    varargs is unworkable, because vprintf is not guaranteed to advance
    the passed-in va_list. So, we have to reshuffle the argument list
    a bit; I've come up with this approach:

    g_log_structured (domain, level,
                      key-value pairs...
                      "MESSAGE", format,
                      printf arguments);

    This requires a "MESSAGE" key to always be present, and it requires
    the "MESSAGE"-format pair to be last, but it avoids an extra NULL
    as marker after the key-value pairs. And it can be parsed with a
    single pass over the va_list, without any va_copy.

    Since we have G_LOG_USE_STRUCTURED, the separate ...structured()
    convenience macros are pretty pointless, and I have dropped them
    for now.

 glib/gmessages.c | 111 +++++++++++++++++----------------
 glib/gmessages.h | 186
 +++++++------------------------------------------------
 2 files changed, 80 insertions(+), 217 deletions(-)

commit fec01b630aecd8ea7738667405f2165a2efaa276
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 17:07:40 2016 -0400

    Use g_log_structured_array in g_logv

    We already formatted the message; there is no need to
    go through the printf machinery a second time.

 glib/gmessages.c | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

commit 0d0ba82cecfdae5e006ee8c205abd2f4a9bf34ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 17 23:22:31 2016 -0400

    Allow using g_log_structured instead of g_log

    Look for a macro G_LOG_USE_STRUCTURED, and if it is defined, use
    g_log_structured instead of g_log when defining g_warning and friends.
    This avoids the extra complication of going through g_logv _and_
    g_log_structured to get a message logged; it also lets us pass
    the code-related fields.

    We don't do this unconditionally (yet), since some users might
    rely on the more fine-grained fatality support in g_logv. It has
    also been proven problematic in the past to inject a dependency
    on bleeding-edge API via a widely-used macro.

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

 glib/gmessages.h | 87
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 85 insertions(+), 2 deletions(-)

commit db0bf5bbf174c80f84320d315c94282de592cbea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 20 17:06:18 2016 -0400

    proxy resolver portal: Fix the async api

 gio/gproxyresolverportal.c | 42
 ++++++++++++++++++++++++++++++++----------
 1 file changed, 32 insertions(+), 10 deletions(-)

commit 5cede43df64501d42f626dd6749f45e418e8e152
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Mon Jul 18 23:51:26 2016 +0200

    Ship gio.xml in tarballs

    Fixes the documentation build.

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

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

commit 6de5595570a68e21ba83c60fbb889c07951200ab
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jul 19 17:22:07 2016 -0400

    Fix gio/tests/socket-listener

    g_socket_listener_add_address() is synchronous; all of the events will
    have been emitted before it returns and it doesn't queue any sources.
    The test was unintentionally depending on the fact that
    g_main_context_iterate(NULL, TRUE) would return anyway (at least the
    first time it was called), but that's no longer true after e4ee307.

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

 gio/tests/socket-listener.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 7e40228cae0d33ce6e031d05ecab69a8262ce8d1
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Jul 19 14:18:49 2016 +0100

    Update the ignore file for GIO

 gio/.gitignore | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c67bd6cc541105ddc811dabb689d1e5bbdf5ae2e
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Tue Jul 19 11:34:54 2016 +0200

    gmessages: Fix G_GNUC_PRINTF mark for g_log_structured

    GCC fails to build because of the trailing arguments, not part of the
    format:

    ../../glib/gmessages.c: In function 'g_log_default_handler':
    ../../glib/gmessages.c:2385:21: error: too many arguments for format
    [-Werror=format-extra-args]
                         NULL);
                         ^

    The documentation for `__attribute__((format(...)))` in GCC

    https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes

    States that the second index must be 0 for functions that are not
    available to be checked, like for vprintf-style functions. In
    this case
    it's also appropriate because of the trailing arguments.

    The sd-journal API in systemd, upon which the structured logging
    API is
    modelled, also uses 0 as the second argument for the format attribute.

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

 glib/gmessages.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 07932996fa68fe11acd287bd0b3e7a7456b50ab5
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Tue Jul 19 01:51:55 2016 +0800

    gmessages: Add G_GNUC_PRINTF mark for g_log_structured

    It is required to avoid non-literal format string warning when
    using clang.

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

 glib/gmessages.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0346254502314f1d420ee9333db0542d7a19583a
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jul 18 16:45:41 2016 +0200

    Updated Spanish translation

 po/es.po | 403
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 193 insertions(+), 210 deletions(-)

commit 97972471ca232a11fae4ed025fbbce3b821f1bec
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 18 14:41:17 2016 +0800

    gio/glocalfile.c: Windows: Define ECANCELED if not already defined

    Older Visual Studio may not have it defined, so define it like what is
    defined for Visual Studio 2010 and later.

 gio/glocalfile.c | 4 ++++
 1 file changed, 4 insertions(+)

commit c08b1a6ae561e58149c1c1d9fe17eaf8e7270452
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 18 14:25:52 2016 +0800

    glib/gmessages.c: Use G_VA_COPY() instead of va_copy()

    Some compilers may not support va_copy(), so use the G_VA_COPY
    macro so
    that things can be supported properly on all supported compilers.

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

commit c6aee1bf15795d0ae4367d6230424f977e1eade0
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 4 12:43:36 2016 +0800

    Visual Studio builds: Build the gio tool

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

 build/win32/vs10/Makefile.am                |   4 +
 build/win32/vs10/gio-tool.vcxproj.filtersin |  12 ++
 build/win32/vs10/gio-tool.vcxprojin         | 188
 ++++++++++++++++++++++++++++
 build/win32/vs10/glib-install.propsin       |   2 +
 build/win32/vs10/glib-install.vcxproj       |   4 +
 build/win32/vs10/glib.sln                   |  54 +++++---
 build/win32/vs11/Makefile.am                |   2 +
 build/win32/vs12/Makefile.am                |   2 +
 build/win32/vs14/Makefile.am                |   2 +
 build/win32/vs9/Makefile.am                 |   2 +
 build/win32/vs9/gio-tool.vcprojin           | 173
 +++++++++++++++++++++++++
 build/win32/vs9/glib-install.vspropsin      |   2 +
 build/win32/vs9/glib.sln                    |  24 ++++
 gio/Makefile.am                             |  14 ++-
 14 files changed, 462 insertions(+), 23 deletions(-)

commit 8d68a27f7055eb80cde6d4ac67e0dce751522b05
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 17 13:17:55 2016 -0400

    Update

 NEWS | 71
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

commit 12acd90d8a9c728aac621a3103c3d84e6c98c81c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Jul 17 17:10:41 2016 +0100

    gmessages: Document namespacing recommendation for structured
    log fields

    We recommend that all custom log fields are namespaced to avoid
    collisions.

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

 glib/gmessages.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 42725fb17d532a8c5903a6c849f7ca3ae01faee7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 17 02:31:37 2016 -0400

    Another variadic macro fix

    It turns out that g_info_structured (format, ...) makes
    g_info_structured ("Hey!") not work, since it requires at
    least one argument after the format string. So shorten
    the argument list to just ...

 glib/gmessages.h | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

commit 17f48d7144cbb891355421916cad090480343734
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 17 02:05:07 2016 -0400

    Fix variadic macro syntax

    It turns out that the macros looked fine in the header, but made
    gcc fall over on first use. __VA_ARGS__ is only allowed in the
    replacement text.

 glib/gmessages.h | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 75084c990fdfa09e919f53392ac8e3fa472d4ea2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 17 00:39:40 2016 -0400

    gmessages: Suppress journald code locations

    This only leads to the location of our sd_journal_sendv call
    being embedded into every log message coming from the old
    API.

 glib/gmessages.c | 1 +
 1 file changed, 1 insertion(+)

commit fce7cfaf40b6e1e50c9140aa0397f5b8c8f821fb
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jun 13 18:21:44 2016 +0100

    gmessages: Rebase g_log() on g_log_structured()

    Replace the underlying write_string() call which is the ultimate
    result
    of calling g_log() with a call to g_log_structured(). This means that
    all g_log() calls will pass through the structured log handling code
    path, as long as they are not already modified or dropped by the
    g_log()
    code (fatal masks, aborts, etc.).

    In the case that the default structured log writer is in use,
    this will
    result in the same format of log output to stdout or stderr, as
    previously happened. If a non-default writer is in use, it handles the
    message as it sees fit.

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

 glib/gmessages.c | 85
 +++++++++++++++++++-------------------------------------
 1 file changed, 28 insertions(+), 57 deletions(-)

commit 37ef3016846077b3d17dbb045e879865d3dc0bcd
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Mar 15 10:47:39 2016 +0000

    gmessages: Add colour output support to structured log messages

    If outputting to a terminal which supports coloured output (rather
    than,
    for example, redirecting to a file). This is only enabled for
    structured
    log messages, where colour output support can be tested. It is not
    enabled for non-structured log messages.

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

 glib/gmessages.c | 121
 +++++++++++++++++++++++++++++++++++++++++++++++--------
 glib/gmessages.h |   5 ++-
 2 files changed, 108 insertions(+), 18 deletions(-)

commit 052eaf24f7789e6c9fd5c9432e91065d98946b7e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Feb 20 12:34:29 2016 +0000

    gmessages: Add a structured logging API

    In parallel with g_log(), add a new structured logging API, based
    around
    g_log_structured() and various helper functions which are exposed
    publicly to allow programs to build their own logging policies easily,
    without having to rewrite a lot of gmessages.c because it’s all
    internal.

    See the expanded documentation at the top of gmessages.c for some
    rationale. See the g_log_structured() documentation for some example
    code.

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

 configure.ac         |  15 +
 glib/Makefile.am     |   4 +-
 glib/gmessages.c     | 812
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 glib/gmessages.h     | 261 +++++++++++++++++
 glib/tests/logging.c |  30 ++
 5 files changed, 1118 insertions(+), 4 deletions(-)

commit 8345a42cd0deec27664f1a2a815feadeb53e2556
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Mar 31 20:49:58 2015 +0200

    Recognise common C++ extension for automatic target selection

    glib-compile-resources --generate is supposed to automatically detect
    whether to generate source code or header from the target's file
    extension.
    However, this only worked for C; extend this to include the canonical
    C++ filename extensions. Also make the check case insensitive.

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

 gio/glib-compile-resources.c | 33 ++++++++++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

commit 0e5e3d0d65613f095a5365c827fcf1a4986b7716
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Tue Jun 2 07:10:31 2015 +0200

    gsettings: clarify changed signal documentation

    Make it clear that this signal is only guaranteed to be emitted when a
    key has been read before.

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

 gio/gsettings.c | 3 +++
 1 file changed, 3 insertions(+)

commit 9864c8abf57d3061a76d704e64897f02894f0c3f
Author: Ismo Puustinen <ismo.puustinen@intel.com>
Date:   Tue Aug 4 13:29:20 2015 +0300

    gio: properly free memory, preventing leak and illegal access.

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

 gio/gdbusauth.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 3c861237fb765f477983b19031abf0f68ea4fae4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 16 23:22:33 2016 -0400

    Convince gcc to compile this code

    It shouldn't be that hard.

 gio/glocalfile.c | 3 +++
 1 file changed, 3 insertions(+)

commit 21ceeed3b9dc4df638d2bc09cc0211fe719805d2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 26 11:06:31 2015 -0400

    Improve error reporting

    Include the filename for the file in question in many of the
    error messages in glocalfile.c. This is useful information when
    diagnosing such errors, so make it easily available.

    http://bugzilla.gnome.org/show_bug.cgi?id=754012

 gio/glocalfile.c | 217
 +++++++++++++++++++++++++------------------------------
 1 file changed, 99 insertions(+), 118 deletions(-)

commit b08a8dc949731d237b70614ba5b9f6ff3f080bbe
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 4 12:27:42 2016 +0800

    gio tool: Fix build on Windows/non-GCC

    The recently-added GIO tools is intended to be built on all
    platforms, so
    adjust the code a bit to enable this:

    -Use gssize instead of ssize_t, as ssize_t is not supported by all
     compilers.
    -Include io.h on Windows, and define STDIN_FILENO and STDOUT_FILENO if
     necessary on Windows.

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

 gio/gio-tool-cat.c  | 14 +++++++++++++-
 gio/gio-tool-save.c | 15 +++++++++++++--
 2 files changed, 26 insertions(+), 3 deletions(-)

commit ca037538535c49a21f32a1cef35972892222e01e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 19 12:21:48 2015 -0500

    g_settings_reset(): add precondition checks

    Ensure that @key is non-%NULL on g_settings_reset().

    It turns out that using g_settings_reset() with %NULL key (although
    invalid as per the API documentation and not possible via bindings)
    accidentally produces the same effect as the _reset_all() API that we
    are about to add.

    Add the standard precondition checks to prevent that from happening.

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

 gio/gsettings.c | 3 +++
 1 file changed, 3 insertions(+)

commit fdd0ed197205b7ed382ae1caf60d918dc1e4d546
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Thu Mar 19 09:52:53 2015 -0400

    Doc: Clarify when g_variant_get_fixed_array() should be used instead
    of _get_bytestring()

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

 glib/gvariant.c | 3 +++
 1 file changed, 3 insertions(+)

commit 992ded39bf75ce08a31e4dc7085ec8d4c9daefa0
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Sat Jun 4 15:01:31 2016 +0200

    GVariant: Add a G_VARIANT_DICT_INIT macro

    The macro could be used at initialization time to avoid having an
    unitialized dict, especially with g_auto variables.

    The macro tries to be a bit more type-safe by making sure that the asv
    parameter is actually "GVariant *".

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

 glib/gvariant.c       | 41 +++++++++++++++++++++++++++++++++--------
 glib/gvariant.h       | 39 ++++++++++++++++++++++++++++++++++++++-
 glib/tests/gvariant.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 117 insertions(+), 9 deletions(-)

commit e1c640f81934ad3b908354ace1fda7344c368c85
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Fri May 13 17:55:30 2016 +0200

    GVariant: Add a G_VARIANT_BUILDER_INIT macro

    The macro could be used at initialization time to avoid having an
    unitialized builder, especially with g_auto variables.

    The macro tries to be a bit more type-safe by making sure that the
    variant_type parameter is actually "const GVariantType
    *". Unfortunately I have no idea how to make it possible to also pass
    a "const gchar *" parameter without warning.

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

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gvariant.c                       | 37
 +++++++++++++++++++++++++++++------
 glib/gvariant.h                       | 34
 +++++++++++++++++++++++++++++++-
 glib/tests/gvariant.c                 | 22 +++++++++++++++++++++
 4 files changed, 87 insertions(+), 7 deletions(-)

commit e0e652e4032a181d4f0b0a12aeddf0678b7a3c04
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 4 15:28:02 2015 -0400

    Fix a corner-case in g_utf8_find_next_char

    In the case that *p is '\0', we should return p + 1, not p.
    This change allows to simplify g_utf8_find_next_char a bit.

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

 glib/gutf8.c              | 18 ++++++++++--------
 glib/tests/utf8-pointer.c |  8 +++++++-
 2 files changed, 17 insertions(+), 9 deletions(-)

commit 4215c0ce9158288619308c5fa6d2aa57ed4506b7
Author: Milan Crha <mcrha@redhat.com>
Date:   Fri May 27 07:30:00 2016 +0000

    Fix memory leaks in GNetworkMonitorNetlink

    As claimed by valgrind in a downstream bug report:
    https://bugzilla.redhat.com/show_bug.cgi?id=1317369

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

 gio/gnetworkmonitornetlink.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit e3e3ed0d7d897de0f5107593deed353c5d15caf8
Author: Olivier Crête <olivier.crete@collabora.com>
Date:   Mon Apr 14 15:48:41 2014 -0400

    socketservice: Document that it starts pre-activated.

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

 gio/gsocketservice.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 48ea710ee38c1b54e30e5df411d841c8974cce0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 16 21:07:27 2016 -0400

    Do not use revents as not updated

    revents is set in the same function after some lines. This check was
    using revents from previous loop. This had the problem of causing two
    poll execution for every changes to poll records.

    Note that is not possible to move the code after revents is updated
    as probably poll_changed is TRUE causing the function to exit.

    Adapted from a patch by Frediano Ziglio,

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

 glib/gmain.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit e4ee3079c5afc3c1c3d2415f20c3e8605728f074
Author: Frediano Ziglio <fziglio@redhat.com>
Date:   Mon Jan 25 14:59:24 2016 +0000

    Do not wake up main loop if change is from same thread

    This reduce the frequency the loop is waked up adding and removing
    file descriptors or timeouts.
    Considering that to support recursion events are removed from list and
    added again this reduce iteration number a lot.

    Signed-off-by: Frediano Ziglio <fziglio@redhat.com>

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

 glib/gmain.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit b121a7916d015a6f8d7a55b945b2ae4ea9fca9db
Author: Aurélien Zanelli <aurelien.zanelli@parrot.com>
Date:   Fri Jul 8 11:04:37 2016 +0200

    gio/tests/gsettings: fix GSettings reference leaks in some tests

    GSettings objects were not unreffed in test_flags, test_enums and
    test_ranges tests and when we skip internationalization tests, ie
    test_l10n(_context).

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

 gio/tests/gsettings.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 42dad59cc10c5b44fac23e93004b17baeb750500
Author: Kang Hu <hukangustc@gmail.com>
Date:   Sun May 25 22:32:17 2014 +0800

    gobject: add GOBJECT_IF_DEBUG macro for debugging gobjects and
    gsignals.

    historically, DEBUG_CODE(gtype.c) and IF_DEBUG(gobject.c, gsignal.c)
    macros are used to support debugging messages about object bookkeeping
    and signal emission.
    DEBUG_CODE has never been used in gtype.c. IF_DEBUG, when used,
    must be
    accompanied by an extra #ifdef G_ENABLE_DEBUG. this is cumbersome.

    this patch add a new macro GOBJECT_IF_DEBUG based on DEBUG_CODE as
    a replacement for both DEBUG_CODE and IF_DEBUG.

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

 gobject/gobject.c       | 29 ++++++++++-------------------
 gobject/gtype-private.h | 18 ++++++++++++++++++
 gobject/gtype.c         |  9 ---------
 3 files changed, 28 insertions(+), 28 deletions(-)

commit ec5397f9b0fba888a2643a8a9c0238c5f1f55980
Author: Aurélien Zanelli <aurelien.zanelli@parrot.com>
Date:   Thu Jul 7 10:23:00 2016 +0200

    keyfile: return 0 when the parsed double value is invalid

    As specified in the g_key_file_get_double documentation.

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

 glib/gkeyfile.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3560faadd1f6c17973c2cf61fafe2a9c451dd71b
Author: Aurélien Zanelli <aurelien.zanelli@parrot.com>
Date:   Thu Jul 7 10:19:39 2016 +0200

    glib/tests/keyfile: check return value of g_key_file_get_double is
    0 for invalid values

    As specified in the documentation of g_key_file_get_double function.

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

 glib/tests/keyfile.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 1e3f2ba4153b264e688721d59a4b50a9332b64a5
Author: Jonatan Pålsson <jonatan.p@gmail.com>
Date:   Thu May 26 10:12:32 2016 +0200

    docs: Remove superflous XML comments in doc string for
    GDBusProxyTypeFunc

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

 gio/giotypes.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b4878dec3a777f4a01c1d16ca85a6fe52b1152d6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 16 20:47:28 2016 -0400

    Add a test for g_hmac_for_bytes

 glib/tests/hmac.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 183ed8a3f8e663c149b2a48add3b60eff3a1a71e
Author: Giovanni Campagna <gcampagn@cs.stanford.edu>
Date:   Wed Apr 20 11:47:46 2016 -0700

    Add g_compute_hmac_for_bytes()

    As an introspection-friendly GBytes variant of
    g_compute_hmac_for_data()

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

 docs/reference/glib/glib-sections.txt |  1 +
 glib/ghmac.c                          | 36
 +++++++++++++++++++++++++++++++++++
 glib/ghmac.h                          |  5 +++++
 3 files changed, 42 insertions(+)

commit a9e9bc74c370bad870011b9004a712cdfa279ef2
Author: Giovanni Campagna <gcampagn@cs.stanford.edu>
Date:   Wed Apr 20 11:30:30 2016 -0700

    Fix annotations of g_compute_hmac_for_data

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

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

commit ebfbae534bee10a569384c509388f2ee25ef9e92
Author: Evan Nemerson <evan@nemerson.com>
Date:   Mon Jan 4 00:32:04 2016 -0800

    gtestutils: add missing dash in seed argument's --help documentation

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

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

commit e7478ec9674e1065ed4db888ae263643ad83a20f
Author: Stephan Bergmann <sbergman@redhat.com>
Date:   Thu Jul 14 15:38:32 2016 +0200

    Swallow -- argument when necessary

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

 gio/gdbus-tool.c | 38 ++++++++++++++++++++++++++++++++------
 1 file changed, 32 insertions(+), 6 deletions(-)

commit 0f2e4fd01c5cb07039aaf29f4f3219582c0f145c
Author: Simon McVittie <smcv@debian.org>
Date:   Mon Feb 3 01:14:45 2014 +0000

    Do not attempt to autolaunch a session dbus-daemon with no DISPLAY

    The two known use-cases for autolaunching are:

    * X-forwarding: "ssh -Y myhost myapp" resulting in a
      session bus on myhost but an X server on the original host

    * Legacy desktop environments on OSs without D-Bus integration:
      e.g. running a single GNOME or KDE app under fvwm or something,
      without a session dbus-daemon being started by either systemd,
      gnome-session, or OS integration scripts analogous to Debian's
      /etc/X11/Xsession.d/75dbus_dbus-launch

    In either case, an X11 DISPLAY is also needed.

    "dbus-launch --autolaunch" doesn't do anything useful when unable
    to connect to an X11 display; this has been the case since the feature
    was added in 2006, and is useful to avoid "split brain" situations in
    which two processes that ought to be part of the same session end up
    on separate session buses. Since dbus commit 407c111 in 2011,
    libdbus hasn't even attempted to run "dbus-launch --autolaunch"
    unless getenv("DISPLAY") returns non-null in the parent: this avoids
    doing a relatively complicated fork-and-exec that is clearly not
    going to lead to success. This commit gives GDBus the same policy.

    This change was originally made to work around a race condition in
    subprocess spawning (Debian bug #737380, GNOME bug #711090) but
    it seems valid in its own right.

    In my opinion as D-Bus maintainer, "dbus-launch --autolaunch" should
    be considered to be an X11 feature, and any future D-Bus enhancements
    (e.g. kdbus) or successors for X11 (e.g. Wayland, Mir) should obtain
    a session bus address by other means - either a session manager
    such as "systemd --user", gnome-session or Upstart, or a wrapper
    for the user session like dbus-run-session(1).

    Related to dbus bug
    <https://bugs.freedesktop.org/show_bug.cgi?id=19997>.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=723506
    Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737380
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 gio/gdbusaddress.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 69a2c70174b90876540f4f8d5eba8493fec5f730
Author: suhail <psuhailp@gmail.com>
Date:   Wed Jun 22 19:19:05 2016 +0530

    docs: trivial typo fixes

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

 docs/reference/gio/gdbus-codegen.xml   | 2 +-
 docs/reference/gio/migrating-gdbus.xml | 2 +-
 docs/reference/glib/regex-syntax.xml   | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit a9b1f8118a0894c851fe338c4ae4fd8d0b5898e5
Author: Tiago Santos <tiagofsantos81@sapo.pt>
Date:   Sat Jul 16 18:33:27 2016 +0000

    Updated Portuguese translation

 po/pt.po | 1234
 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 969 insertions(+), 265 deletions(-)

commit dbb3e551f82bf0c90e7b7f33476e27a3ed10d356
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Jul 16 02:51:15 2016 +0000

    Updated Chinese (Taiwan) translation

 po/zh_TW.po | 1225
 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 961 insertions(+), 264 deletions(-)

commit bb310d47dea7c33adabd24375537e23102659de6
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Fri Jul 15 16:31:09 2016 +0300

    Updated Hebrew translation

 po/he.po | 1201
 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 936 insertions(+), 265 deletions(-)

commit 128f85730b6689c336ab8362187cf399c1e9952a
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Thu Jul 14 17:23:02 2016 +0200

    Add Language headers to po files

    Future versions of gettext will fail if this header is missing.

 po/az.po          | 2 +-
 po/be@latin.po    | 2 +-
 po/ca@valencia.po | 2 +-
 po/dz.po          | 2 +-
 po/en@shaw.po     | 2 +-
 po/en_CA.po       | 2 +-
 po/es.po          | 2 +-
 po/fa.po          | 2 +-
 po/gu.po          | 2 +-
 po/ko.po          | 2 +-
 po/mai.po         | 2 +-
 po/mg.po          | 2 +-
 po/ml.po          | 2 +-
 po/ms.po          | 2 +-
 po/nb.po          | 2 +-
 po/nds.po         | 2 +-
 po/sl.po          | 2 +-
 po/sq.po          | 2 +-
 po/sr@ije.po      | 2 +-
 po/sr@latin.po    | 2 +-
 po/tt.po          | 2 +-
 po/ug.po          | 2 +-
 po/wa.po          | 2 +-
 po/zh_HK.po       | 2 +-
 24 files changed, 24 insertions(+), 24 deletions(-)

commit cef799377e269be9da651200df50a8986945d7cd
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Mon Jan 11 13:51:32 2016 +0800

    gio-querymodules: Call setlocale in main function

    It is required to correctly show translated messages on some locales.

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

 gio/gio-querymodules.c | 3 +++
 1 file changed, 3 insertions(+)

commit 63654183a890502fe8d97f6e5d2be23589413a7a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 13 12:37:11 2016 -0400

    documents portal: Make sure O_PATH is defined

    FreeBSD doesn't have it.

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

 gio/gdocumentportal.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 92e31896137c18434f599edcc5bb3729b2dd4e70
Author: Nirbheek Chauhan <nirbheek@centricular.com>
Date:   Mon Jul 11 18:17:34 2016 +0530

    gmacros.h: offsetof is also available on MSVC

    All versions since Visual C++ 2005 have this available, so we can just
    use it for G_STRUCT_OFFSET.

    See: https://msdn.microsoft.com/en-us/library/dz4y9b9a.aspx

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b5258d9d76e267f0e36743084396820c0d994a6f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 11 21:51:37 2016 +0800

    gio: Build the portal code only on *NIX

    xdg-desktop-portal support is only usable on *NIX platforms, so
    don't build
    them on non-*NIX platforms.  Also clean up gio/Makefile.am a bit to
    split out
    the listings for the platform-specific sources from the
    platform-neutral
    sources, and assemble them for the final list of sources required
    for libgio.

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

 gio/Makefile.am | 53
 ++++++++++++++++++++++++++++++++++++-----------------
 gio/gappinfo.c  | 12 ++++++++++--
 gio/giomodule.c |  8 ++++----
 3 files changed, 50 insertions(+), 23 deletions(-)

commit bb5707d6cb3fb69abef4ed8213fa24aeb8418b0a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jul 13 10:41:16 2016 +0800

    gio/Makefile.am: Rearrange things a bit

    Move the gio tool build items up, so that the MSVC items do not
    get split
    by it.

 gio/Makefile.am | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit bc7c030480ee9d9edbdacc91fd3d61a3e5092592
Author: Cosimo Cecchi <cosimo@endlessm.com>
Date:   Tue Jul 12 15:11:12 2016 -0700

    documentportal: print warnings when document portal fails to
    initialize

    Instead of siletly failing or calling a method on a NULL instance.

 gio/gdocumentportal.c | 36 +++++++++++++++++++++++++++++-------
 1 file changed, 29 insertions(+), 7 deletions(-)

commit e694d1b673f8a65bb7e2cc4f8e03997a2ed2e04c
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Jul 12 23:08:27 2016 +0100

    gio: Fix a memory leak in gportalsupport.c

    Coverity CID: 1357527

 gio/gportalsupport.c | 2 ++
 1 file changed, 2 insertions(+)

commit e0bb25c2149e4b89f75e1a095c61e76ac4ad3a05
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jul 11 17:46:41 2016 -0400

    Remove an erroneous check in the non-sendmmsg() version of
    g_socket_send_messages()

    The docs specify that *all* errors are ignored if we managed to send
    any data successfully, not just timeout/wouldblock.

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

 gio/gsocket.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 62bd8f54bbf46b0c34151d6f8b6bd1003155f4a8
Author: Cosimo Cecchi <cosimo@endlessm.com>
Date:   Mon Jul 11 15:14:34 2016 -0700

    appinfo: support opening files through document portal

    In addition to URIs, we now also support opening files internal to the
    sandboxed application through the document portal.

 gio/Makefile.am                          |   5 ++
 gio/gappinfo.c                           |  28 ++++++-
 gio/gdocumentportal.c                    | 126
 +++++++++++++++++++++++++++++++
 gio/gdocumentportal.h                    |  31 ++++++++
 gio/org.freedesktop.portal.Documents.xml |  71 +++++++++++++++++
 5 files changed, 260 insertions(+), 1 deletion(-)

commit f4e2047f2010417e8323cb5bb4fa843957fdba45
Author: Cosimo Cecchi <cosimo@endlessm.com>
Date:   Mon Jul 11 15:13:56 2016 -0700

    build: don't forget to clean generated portal files

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

commit 79b7efada3582ad48f00aabade402f7eacdbe224
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jul 11 17:38:30 2016 -0400

    Fix gio/tests/inet-address on OS X

    OS X apparently stringifies the IPv6 address "::80" as "::0.0.0.128",
    which is bizarre, but that address *is* in a "reserved for future use"
    range, so it's not unambiguously wrong I guess. Anyway, fix the text
    to use an address everyone can agree on.

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

 gio/tests/inet-address.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit a9172c6d03de138fb91456b86adec23bf9421467
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Mon Jul 11 21:56:04 2016 +0100

    gio-tool: Fix memory leaks on error paths in mount command

    Various GErrors were being leaked.

    Coverity CID: 1357351 (amongst others)

 gio/gio-tool-mount.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 996bb349864e69f8c2ccecedb2409468158fe705
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Mon Jul 11 21:47:49 2016 +0100

    gio-tool: Remove a stray semicolon

    This meant the help text would always be outputted, rendering
    the same mode useless and the code below it dead.

    Coverity CID: 1357352

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

commit d896ad269ea29dad73589faf90eaf067ac641e54
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 11 15:16:02 2016 +0800

    gio/gappinfo.c: Don't include unistd.h

    Functions from unistd.h seems not to be used in commit 5b77a19, and
    unistd.h is not universally available, so don't include it.

 gio/gappinfo.c | 2 --
 1 file changed, 2 deletions(-)

commit bec71b5742173489e8e734d96f58bdae3645292b
Author: Claude Paroz <claude@2xlibre.net>
Date:   Fri Jul 8 11:35:31 2016 +0000

    Updated French translation

 po/fr.po | 1193
 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 942 insertions(+), 251 deletions(-)

commit bd3fb2a15f8bc663876f1ffba8c635a4f9de9eda
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 1 01:12:30 2016 -0400

    Add a portal backend for GNotification

    This talks to the org.freedesktop.portal.Notification portal
    instead of directly to gnome-shell.

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

 gio/Makefile.am                  |  1 +
 gio/giomodule.c                  |  2 +
 gio/gportalnotificationbackend.c | 97
 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 100 insertions(+)

commit e362a014465ebc69bacc0b59817bb8d9d82017c0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 22 07:03:24 2016 -0400

    Add a portalized proxy resolver implementation

    The backend for this lives in xdg-desktop-portal,
    and is in turn using GProxyResolver.

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

 gio/Makefile.am                              |  14 ++-
 gio/giomodule.c                              |   2 +
 gio/gproxyresolverportal.c                   | 167
 +++++++++++++++++++++++++++
 gio/gproxyresolverportal.h                   |  47 ++++++++
 gio/org.freedesktop.portal.ProxyResolver.xml |  29 +++++
 5 files changed, 255 insertions(+), 4 deletions(-)

commit cea5626c49d23a90ede0010d662d40c0da802b11
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 21 19:55:23 2016 -0400

    Add a portalized network monitor implementation

    The backend for this lives in xdg-desktop-portal,
    and is in turn using GNetworkMonitor.

    When network is not available in the sandbox, there is
    no point in reporting accurately about the network
    status outside the sandbox. Just return 'no connection'
    in this case.

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

 gio/Makefile.am                               |  22 +++
 gio/giomodule.c                               |   2 +
 gio/gnetworkmonitorportal.c                   | 186
 ++++++++++++++++++++++++++
 gio/gnetworkmonitorportal.h                   |  53 ++++++++
 gio/org.freedesktop.portal.NetworkMonitor.xml |  31 +++++
 5 files changed, 294 insertions(+)

commit 5b77a19fe1fc89017dc3ed4f74386aa8c2a73d0e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 21 08:17:16 2016 -0400

    Add portal support to g_app_info_launch_default_for_uri

    We need to patch in the portal support at a high enough
    level that GAppInfo is not involved - a sandboxed app may
    not be able to see any applications, so it can only launch
    the defaults.

    Note that even though the API is called launch_default...,
    the portal may still offer the user to choose the application
    to launch.

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

 gio/gappinfo.c | 56
 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 52 insertions(+), 4 deletions(-)

commit 78ef32110a4b46d05cdc3b3273583ef1aed9f75a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 6 23:34:55 2016 -0400

    Add portal helpers

    These are private helper functions that will be used in
    the following commits to get information about whether
    we are running in a flatpak sandbox, etc.

    We allow the use of GTK_USE_PORTAL=1 in the environment
    to force the use of portals. This can be useful for
    testing and debugging portal interaction.

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

 gio/Makefile.am      |  2 ++
 gio/gportalsupport.c | 84
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gportalsupport.h | 30 +++++++++++++++++++
 3 files changed, 116 insertions(+)

commit 4586434346e6e3e76130068b1876d5d61b13b462
Author: Kalev Lember <klember@redhat.com>
Date:   Wed Jul 6 14:37:12 2016 +0200

    GFileMonitor: Fix doc typos

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

commit d2c809d233341d663a782c9c11872d26946351d6
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Jul 5 10:38:05 2016 +0000

    Updated Spanish translation

 po/es.po | 1272
 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 1002 insertions(+), 270 deletions(-)

commit a523faba62a464c350fc539615f54045cd9d3cfd
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Jul 3 18:00:19 2016 +0300

    Updated Lithuanian translation

 po/lt.po | 1237
 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 987 insertions(+), 250 deletions(-)

commit 27fad7a6b1ff5f492def5638dd36739c967867cf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 25 16:40:55 2015 -0400

    Document the gio tool

    Add a man page, and integrate it in the reference docs.

 docs/reference/gio/Makefile.am  |  18 +-
 docs/reference/gio/gio-docs.xml |   1 +
 docs/reference/gio/gio.xml      | 720
 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 731 insertions(+), 8 deletions(-)

commit 37129297a9145eae9b7ee8b61e35cf009c032bb8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 25 15:24:20 2015 -0400

    Add new files to POTFILES

 po/POTFILES.in | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 9edba4e49cf84116903ca8a7c29080e7dca56607
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 25 13:29:02 2015 -0400

    Add a new gio commandline tool

    This command collects the various commandline utilities that
    are currently shipped in gvfs, and unifies them under a single,
    command-style binary.

    The tools just use GIO APIs, so it makes sense for them to live here.

 gio/Makefile.am        |   30 ++
 gio/gio-tool-cat.c     |  154 +++++++
 gio/gio-tool-copy.c    |  218 +++++++++
 gio/gio-tool-info.c    |  325 ++++++++++++++
 gio/gio-tool-list.c    |  228 ++++++++++
 gio/gio-tool-mime.c    |  176 ++++++++
 gio/gio-tool-mkdir.c   |  108 +++++
 gio/gio-tool-monitor.c |  278 ++++++++++++
 gio/gio-tool-mount.c   | 1174
 ++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gio-tool-move.c    |  211 +++++++++
 gio/gio-tool-open.c    |   97 ++++
 gio/gio-tool-remove.c  |   94 ++++
 gio/gio-tool-rename.c  |   99 ++++
 gio/gio-tool-save.c    |  193 ++++++++
 gio/gio-tool-set.c     |  195 ++++++++
 gio/gio-tool-trash.c   |  135 ++++++
 gio/gio-tool-tree.c    |  285 ++++++++++++
 gio/gio-tool.c         |  316 +++++++++++++
 gio/gio-tool.h         |   52 +++
 19 files changed, 4368 insertions(+)

commit 669a0f72a1b67dc9e3262c3a5ccf29c4aed98028
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 30 08:58:41 2016 -0400

    Trivial: documentation wording fix

    There was a stray 'of' here.

 docs/reference/gio/overview.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ae9e72ef612c0df3ad76b334b2483945ca495fad
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Mar 15 12:28:37 2016 +0000

    gmessages: Simplify _g_log_abort() in gmessages.c a little

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

 glib/gmessages.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit 3613b7a3660f2a7d9609faa2d6a4649bdc5f4fe3
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Jun 16 19:39:38 2016 -0400

    gio: Add source tags to various GTasks constructed in GLib

    This makes them easier to identify when debugging and profiling.

    This patch was somewhat less than interesting to write.

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

 gio/gasyncinitable.c           |  1 +
 gio/gbufferedinputstream.c     |  2 ++
 gio/gbufferedoutputstream.c    |  2 ++
 gio/gbytesicon.c               |  1 +
 gio/gdatainputstream.c         |  1 +
 gio/gdbusaddress.c             |  1 +
 gio/gdbusconnection.c          |  6 ++++++
 gio/gdbusinterfaceskeleton.c   |  1 +
 gio/gdbusprivate.c             |  2 ++
 gio/gdbusproxy.c               |  3 +++
 gio/gdummyproxyresolver.c      |  1 +
 gio/gfile.c                    | 20 ++++++++++++++++++++
 gio/gfileenumerator.c          |  2 ++
 gio/gfileicon.c                |  1 +
 gio/gfileinputstream.c         |  1 +
 gio/gfileoutputstream.c        |  1 +
 gio/ghttpproxy.c               |  1 +
 gio/ginputstream.c             |  6 ++++++
 gio/gioscheduler.c             |  3 +++
 gio/giostream.c                |  3 +++
 gio/gloadableicon.c            |  1 +
 gio/gmemoryinputstream.c       |  3 +++
 gio/gmemoryoutputstream.c      |  1 +
 gio/gnetworkaddress.c          |  1 +
 gio/gnetworkmonitor.c          |  2 ++
 gio/gnetworkmonitorbase.c      |  1 +
 gio/gnetworkservice.c          |  1 +
 gio/goutputstream.c            |  2 ++
 gio/gproxyaddressenumerator.c  |  1 +
 gio/gsimpleproxyresolver.c     |  1 +
 gio/gsocketaddressenumerator.c |  1 +
 gio/gsocketclient.c            |  1 +
 gio/gsocketconnection.c        |  2 ++
 gio/gsocketlistener.c          |  1 +
 gio/gsocks4aproxy.c            |  1 +
 gio/gsocks5proxy.c             |  1 +
 gio/gsubprocess.c              |  3 +++
 gio/gtcpconnection.c           |  1 +
 gio/gthreadedresolver.c        |  6 ++++++
 gio/gtlsdatabase.c             |  7 +++++++
 gio/gunixconnection.c          |  4 ++--
 gio/gunixinputstream.c         |  1 +
 gio/gunixmount.c               |  1 +
 gio/gunixoutputstream.c        |  1 +
 gio/gunixvolume.c              |  1 +
 45 files changed, 103 insertions(+), 2 deletions(-)

commit 7ea4949cdac8f7a4636f92e9e9efceec90ff09e6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Jun 16 18:28:14 2016 -0400

    gmain: Add G_PID_FORMAT

    This will be useful for printing out GPids in printf()-style
    functions.

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

 configure.ac                          |  4 ++++
 docs/reference/glib/glib-sections.txt |  1 +
 glib/glibconfig.h.win32.in            |  1 +
 glib/gmain.h                          | 11 +++++++++++
 4 files changed, 17 insertions(+)

commit 8c6d08ab1b8ec57b81d77d44820f40625009b2cc
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jun 29 15:08:22 2016 +0100

    build: Simplify dtrace configuration

    Apply the same changes as in commit
    7563ab473468fecefc388ae2ed06afab8ead6211 to gio/Makefile.am.

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

 gio/Makefile.am | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit c4695f192c985b8da19432381edb657653178669
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Jun 16 16:17:46 2016 -0400

    build: Rename SystemTap scripts to include the LT version

    In a vague attempt at ensuring the .stp scripts can be closely
    associated with the .so files which they hard-code references to,
    rename
    the scripts so they include the LT version — so that they are
    the .so
    file name plus .stp.

    This does not fix the fact that our .stp scripts will not work on
    multiarch systems, as they are installed in an
    architecture-independent
    directory (/usr/share/systemtap/tapset). At the moment, it is
    recommended that any distribution who package the .stp files should
    install them in the architecture-specific subdirectories of this (for
    example, /usr/share/systemtap/tapset/x86-64).

    A better long-term solution for this is under discussion upstream:
    https://sourceware.org/bugzilla/show_bug.cgi?id=20264

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

 docs/reference/glib/running.xml |  6 +++---
 gio/Makefile.am                 | 11 +++++------
 glib/Makefile.am                |  9 ++++-----
 gobject/Makefile.am             | 11 +++++------
 4 files changed, 17 insertions(+), 20 deletions(-)

commit c9d661b4314316c8c622ce3230903817be9729ea
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Jun 16 15:46:30 2016 -0400

    build: Ensure gio.stp.in is always distributed

    Even if systemtap is not enabled in configure when running distcheck.

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

 gio/Makefile.am | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 61c1e2db99ca25569bdd9231051272ccd26daaa2
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Tue Jun 28 03:19:44 2016 +0200

    vfs: Fix copying default schemes list

    The list of supported schemes is not known at compile-time, so it is
    wrong to iterate the list with G_N_ELEMENTS() and we miss all but the
    first scheme. Fix by checking for the %NULL sentinel instead.

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

 gio/gvfs.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit a42bdecf5cedfcfc376d4694e66ac7a767b8c8b1
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Tue Jun 28 01:58:13 2016 +0200

    vfs: Fix return value of get_supported_uri_schemes()

    The function is expected to return a %NULL-terminated array, but
    commit 375b4ca65c dropped the sentinel when adding support for
    additional custom schemes. Add it back.

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

 gio/gvfs.c      | 2 ++
 gio/tests/vfs.c | 3 +++
 2 files changed, 5 insertions(+)

commit e57355b055217b067cd1a71340f7ea47e51d4aae
Author: Ondrej Holy <oholy@redhat.com>
Date:   Wed Jun 22 14:03:57 2016 +0200

    fileinfo: Add G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE attribute

    Add filesystem attribute to detect remote filesystems in order to
    replace hardcoded filesystem types in GtkFileSystem. Set this
    attribute
    also for GLocalFile appropriately.

    Bump version to 2.49.3, so that early adopters of new API have
    a version
    number to target.

 configure.ac                        | 2 +-
 docs/reference/gio/gio-sections.txt | 1 +
 gio/gfileinfo.h                     | 9 +++++++++
 gio/glocalfile.c                    | 5 +++++
 4 files changed, 16 insertions(+), 1 deletion(-)

commit f4b5dc30a76569ce4c7e6990c4827407d52a85ef
Author: Ernestas Kulik <ernestas.kulik@gmail.com>
Date:   Sat Jun 25 14:39:54 2016 +0300

    gvfs: fix possible infinite loop in parse_name_internal()

    If none of the closures in the hash table return a non-null value, the
    loop never ends. Since the end of the hash table has been reached at
    that point, g_hash_table_iter_next() starts asserting.

    The possible fix is making the return value of
    g_hash_table_iter_next()
    the condition in the loop.

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

 gio/gvfs.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 375b4ca65cf09789aeeb4e15ac3b12211729aa31
Author: Cosimo Cecchi <cosimo@endlessm.com>
Date:   Mon Jun 20 11:42:56 2016 -0700

    vfs: add g_vfs_register_uri_scheme()

    Add a new API to allow clients to register a custom GFile
    implementation
    handling a particular URI scheme.
    This can be useful for tests, but also for cases where a different URI
    scheme is desired to be used with another custom GFile backend.

    As an additional cleanup, we can use this to register the "resource"
    URI
    scheme too.

    Based on a patch by Jasper St. Pierre <jstpierre@mecheye.net>.

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

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gvfs.c                          | 304
 ++++++++++++++++++++++++++++++++++--
 gio/gvfs.h                          |  36 +++++
 gio/tests/vfs.c                     |  73 +++++++++
 4 files changed, 403 insertions(+), 13 deletions(-)

commit 4442bf2c95f68bbbf3dcc8e84b1775a90eb9927a
Author: Andika Triwidada <atriwidada@gnome.org>
Date:   Fri Jun 24 10:08:01 2016 +0000

    Updated Indonesian translation
    (cherry picked from commit 7cb5b02e6ab662e6cb384a3d68acdd81a3c15515)

 po/id.po | 599
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 313 insertions(+), 286 deletions(-)

commit 9bb2499c9c8be9c401d32fd7930ea0b975678db0
Author: Allison Lortie <desrt@desrt.ca>
Date:   Thu Jun 23 11:47:30 2016 -0400

    tests: fix uint64 argument to g_object_set() call

    5cea1c861def0251a10cd4de01908aaf3276c72d introduced accessors
    for 64bit
    ints to gsettings, at which point the testcases were expanded.

    Unfortunately, the expanded tests contained a bug: integer constants
    passed to g_object_set() for a 64-bit property need an up-cast.  Add
    that now.

    Problem found by Iain Lane.

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

commit 8e21b9e966ae0cd72bfdb9b0b8e99b2dead9e0d7
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jun 22 12:41:34 2016 +0100

    build: Add gio_probes.d to sources list so it ends up in the tarball

    The probes.d file should be distributed even if GLib is build with
    dtrace disabled. This is what’s done in the glib and gobject
    directories.

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

commit d07e166432e0b85d64347ac30a1665d69c2cb288
Author: Cosimo Cecchi <cosimo@endlessm.com>
Date:   Mon Jun 20 10:01:01 2016 -0700

    gkeyfile: add g_key_file_load_from_bytes() API

    This makes it easier to use GKeyFile from language bindings, and makes
    the API more consistent and modern with the new data type available in
    GLib.

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

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gkeyfile.c                       | 30 ++++++++++++++++++++++++++++
 glib/gkeyfile.h                       |  6 ++++++
 glib/tests/keyfile.c                  | 37
 +++++++++++++++++++++++++++++++++++
 4 files changed, 74 insertions(+)

commit 7563ab473468fecefc388ae2ed06afab8ead6211
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 7 09:35:16 2014 -0500

    build: simplify dtrace configuration

    The ability to pass libtool via $(CC) to dtrace and have it respect
    this
    appears to be a feature that is only present in the systemtap
    version of
    the tool.  In particular, FreeBSD (which seems to be using a copy
    of the
    tool from Solaris) doesn't support this.

    The result is that, with $(CC) ignored, and a .lo file specified
    in -o,
    we get an ELF written to the .lo.

    Instead of trying to have dtrace run libtool we can have libtool run
    dtrace.  dtrace is really just a compiler that produces an object file
    here, and it even understands -o, so libtool can make the appropriate
    adjustments.

    There appears to be some prior art for this approach.  A quick search
    shows that at least QEMU is using this approach.  It also appears to
    work on Linux with systemtap's dtrace and on FreeBSD.

    This may regress cross-compilation because the dtrace command
    will have
    no way of knowing which compiler we intend for it to use to produce
    the
    object file.  I say "may" because I don't know if dtrace ever
    worked in
    the first place under cross-compilation.

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

 glib/Makefile.am    | 5 +----
 gobject/Makefile.am | 4 +---
 2 files changed, 2 insertions(+), 7 deletions(-)

commit b990acf7ae7cfd6dec5c7de61de49e45d6112af9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 20 08:03:17 2016 -0400

    2.49.2

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 26e07869af572ea46c339b8d4045cb9537066c04
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 20 07:58:01 2016 -0400

    Updates

 NEWS | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit bbf07fb15e90abe2d31609d388e89b852962b028
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jun 20 10:50:39 2016 +0800

    Visual Studio builds: Fix .pc generation

    The previous update did not account for when no exec_prefix is
    spcified,
    so update that, and use ${prefix} by default.  Clean up a bit as well.

 build/win32/pc_base.py | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

commit 35b401c8bb0c7bb9324e7d8ae0e5d0a63f98872c
Author: John Ralls <jralls@ceridwen.us>
Date:   Sun Jun 19 15:03:20 2016 -0700

    Bug 767824 - Some UTC timezones incorrectly recognized on Windows 7

    The condition removed erroneously excluded UTC-based and DST-less
    timezones and so left the GArray with no contents, so GTimeZone
    functions
    returned whatever random garbage was in memory.

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

commit fadd00c7085fd0dc2722c974260768540cc6f8b9
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Jun 16 14:45:21 2016 -0400

    glocalfileoutputstream: Drop unnecessary (void) return value casts

    g_close() does not have G_GNUC_WARN_UNUSED_RESULT, so these casts are
    unnecessary.

 gio/glocalfileoutputstream.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 16d674411f769360fe047b3fd542d47fd05fa65e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 15 10:30:38 2014 +0100

    glocalfileoutputstream: Fix an FD leak in an error path

    If a backup file is created, opened successfully, then fstat() on it
    fails (perhaps due to another process deleting it in the mean time?),
    the FD will be leaked.

    Coverity issue: #1159485

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

 gio/glocalfileoutputstream.c | 1 +
 1 file changed, 1 insertion(+)

commit 195a0cb6bb8cc8739902fcf3245bfe256c980c60
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Wed Dec 23 16:35:24 2015 +0000

    gio: Add SystemTap and DTrace probes for GTask

    This adds a basic tapset for GIO, covering various interesting
    parts of
    GTask.

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

 docs/reference/gio/Makefile.am  |   1 +
 docs/reference/glib/running.xml |   3 +-
 gio/Makefile.am                 |  35 +++++++++++++
 gio/gio.stp.in                  | 107
 ++++++++++++++++++++++++++++++++++++++++
 gio/gio_probes.d                |  10 ++++
 gio/gio_trace.h                 |  41 +++++++++++++++
 gio/gtask.c                     |  34 +++++++++++--
 7 files changed, 227 insertions(+), 4 deletions(-)

commit cfb692825aaa64c2663963568df1b7dfa4b67e89
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Wed Dec 23 16:28:50 2015 +0000

    glib: Add more GLib main context SystemTap and DTrace probes

    Expand the set of available probes, and add a few more output
    parameters
    to some of the existing ones to make them more useful. I do not
    know if
    this breaks any existing stability guarantees for GLib’s SystemTap
    tapset, as it is effectively just adding some more local variables in
    the user’s probe.

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

 glib/glib.stp.in   | 506
 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 glib/glib_probes.d |  41 ++++-
 glib/gmain.c       | 194 ++++++++++++++------
 glib/gthread.c     |   4 +
 4 files changed, 676 insertions(+), 69 deletions(-)

commit b26b083aa20daceeb14ab43a73655d06c9fccf5b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Feb 10 09:36:16 2016 +0000

    gio: Support using GDBusObjectManagerServer at path ‘/’

    Previously this would cause an assertion failure when checking
    the paths
    of exported objects, as it would try to check that their paths started
    with ‘//’ due to mishandling the root object case.

    Includes a unit test.

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

 gio/gdbusobjectmanagerserver.c        | 11 ++++++----
 gio/tests/gdbus-peer-object-manager.c | 39
 ++++++++++++++++++++++++++---------
 2 files changed, 36 insertions(+), 14 deletions(-)

commit ec40e9d921a2f9c9a54d238100ddd417368cf161
Author: Nikita Churaev <lamefun.x0r@gmail.com>
Date:   Thu Nov 27 09:11:25 2014 +0000

    gfileutils: Add missing (type filename) annotations

    These differentiate between strings in the GLib filename encoding, and
    strings in UTF-8.

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

 glib/gfileutils.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

commit ac1166626c1cd753087fa81a780c39b20f259c71
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jun 15 11:03:31 2016 -0400

    gio: Add missing (type filename) annotations

    These differentiate between strings in the GLib filename encoding, and
    strings in UTF-8.

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

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

commit f8ff1049d3e52971813243a559a8148f06c26e15
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jun 15 11:01:26 2016 -0400

    gio: Add missing (nullable) annotation

    Add it to g_application_command_line_get_cwd(). Also add a clarifying
    internal comment about the cwd private member.

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

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

commit c91411464ec02f1a7b66568b63facea941df6ff2
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Nov 27 09:09:01 2014 +0000

    gfileutils: Fix a signed/unsigned integer comparison

    Also use size_t rather than int, allowing for larger files to be
    handled.

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

 glib/gfileutils.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit ae048625fee3ece3898110f6034063aee6c84336
Author: Hans Petter Jansson <hpj@cl.no>
Date:   Fri Jun 3 03:16:58 2016 +0200

    GDbusProxy: Plug memory leak.

    proxy->priv->name_owner gets overwritten in
    async_init_data_set_name_owner() on the
    assumption that it will always be NULL when we get there. However,
    on_name_owner_changed() can run first, and it does set name_owner.

    ==20126== 42 bytes in 6 blocks are definitely lost in loss record
    15,174 of 48,256
    ==20126==    at 0x4C280F3: malloc (vg_replace_malloc.c:299)
    ==20126==    by 0x7541D00: g_malloc (gmem.c:104)
    ==20126==    by 0x7558FEE: g_strdup (gstrfuncs.c:364)
    ==20126==    by 0x6DF8E4F: on_name_owner_changed (gdbusproxy.c:1399)
    ==20126==    by 0x6DE94C4: emit_signal_instance_in_idle_cb
    (gdbusconnection.c:3743)
    ==20126==    by 0x753C315: g_main_dispatch (gmain.c:3066)
    ==20126==    by 0x753C315: g_main_context_dispatch (gmain.c:3642)
    ==20126==    by 0x753C667: g_main_context_iterate.isra.24
    (gmain.c:3713)
    ==20126==    by 0x753CA69: g_main_loop_run (gmain.c:3907)
    ==20126==    by 0x5E38000: meta_run (main.c:556)
    ==20126==    by 0x401EC0: main (main.c:441)

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

 gio/gdbusproxy.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 39a22880b6d8544fec51ba3176214f38a8a572b8
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jun 15 17:30:24 2016 +0800

    Visual Studio builds: Improve flexibility of .pc generation

    Allow the use of shorthands using ${prefix} for exec_prefix, and
    ${exec_prefix} for includedir and libdir, which makes the generated
    .pc
    files a bit cleaner and more flexible.

 build/win32/pc_base.py | 39 +++++++++++++++++++++++++++++----------
 1 file changed, 29 insertions(+), 10 deletions(-)

commit be16115e6743bcd7cdd2d4d76d87145a6175e183
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jun 15 16:31:40 2016 +0800

    Visual Studio projects: Clean up a little bit

    For the Visual Studio 201x projects, we can force the "install"
    projects
    to always run in a simpler way, by specifying an output file that will
    never exist.  Makes things look a bit cleaner.

 build/win32/vs10/glib-install.propsin | 16 ----------------
 build/win32/vs10/glib-install.vcxproj |  8 ++++----
 2 files changed, 4 insertions(+), 20 deletions(-)

commit 33549086bc0af9e2cbc2910ae2cb9ba67b99ea0c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jun 15 16:21:03 2016 +0800

    Visual Studio builds: Refine .pc creation

    We may not have $(CopyDir) created, which the script that generates
    the
    .pc files check for, so create it if it is not there.  This makes
    things a
    bit more convenient for people.

 build/win32/vs10/glib-install.propsin  | 2 +-
 build/win32/vs9/glib-install.vspropsin | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 9ec74d20a7e89344fecfc7f994168ea30a6b8c5f
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Jun 7 19:31:56 2016 +0200

    Partly revert "gio: Add filename type annotations"

    Revert all annotation changes for environment variables and command
    line
    arguments.

    See commit f8189ddf9869ed8e90f9b640d9545fe4011adb7d.

 gio/gappinfo.c                | 10 +++++-----
 gio/gapplication.c            |  3 +--
 gio/gapplicationcommandline.c | 12 ++++++------
 gio/gdesktopappinfo.c         |  2 +-
 gio/gfile.c                   |  4 ++--
 gio/gsubprocess.c             |  2 +-
 gio/gsubprocesslauncher.c     | 18 +++++++-----------
 7 files changed, 23 insertions(+), 28 deletions(-)

commit c9dd204909aa89648b29c5bd7e159bb32ebc2017
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Jun 7 19:31:51 2016 +0200

    Partly revert "glib: Add filename type annotations"

    Revert all annotation changes for environment variables and command
    line
    arguments.

    See commit 41013a01f44e9fc15ffef55eae78af2425bbd5a3.

 glib/genviron.c | 55
 +++++++++++++++++++++++++------------------------------
 glib/gshell.c   | 14 +++++++-------
 glib/gspawn.c   | 32 +++++++++++---------------------
 3 files changed, 43 insertions(+), 58 deletions(-)

commit 9198f19d97aa24d4d034dee5971d7188cb04e27c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 15:51:31 2016 +0800

    config.h.win32.in: Always define HAVE_LONG_LONG

    Visual Studio actually supports long long types, but HAVE_LONG_LONG is
    undefined for Visual Studio builds, likely due to issues in previous
    gnulib code for printf functionality, that was bundled with GLib.

    Since gnulib has much better support with Visual Studio nowadays
    (which we
    updated the related code to last October), and HAVE_LONG_LONG being
    undefined
    actually causes issues in Visual Studio builds, which was demonstrated
    with
    the type-test test program in tests/, we should always define
    HAVE_LONG_LONG
    in config.h.win32.in.

    Thanks to Paolo Borelli for the heads up on the issue.

 config.h.win32.in | 4 ----
 1 file changed, 4 deletions(-)

commit f8189ddf9869ed8e90f9b640d9545fe4011adb7d
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Jun 4 17:53:42 2016 +0200

    gio: Add filename type annotations

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

 gio/gappinfo.c                | 17 +++++++++--------
 gio/gapplication.c            |  3 ++-
 gio/gapplicationcommandline.c | 14 +++++++-------
 gio/gdesktopappinfo.c         |  8 +++++---
 gio/gfile.c                   | 25 +++++++++++++------------
 gio/gfileinfo.c               |  4 ++--
 gio/giomodule.c               | 14 +++++++++-----
 gio/gsettingsschema.c         |  2 +-
 gio/gsubprocess.c             |  2 +-
 gio/gsubprocesslauncher.c     | 26 +++++++++++++++-----------
 gio/gtlscertificate.c         | 11 ++++++-----
 gio/gtlsfiledatabase.c        |  2 +-
 gio/gunixmounts.c             | 10 +++++-----
 13 files changed, 76 insertions(+), 62 deletions(-)

commit 41013a01f44e9fc15ffef55eae78af2425bbd5a3
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Jun 4 15:46:12 2016 +0200

    glib: Add filename type annotations

    Adds the filename annotation for all file names
    and things which can contain file names like
    environment variables, argv-

    On Unix they can contain anything while on Windows
    they are always utf-8.

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

 glib/gbookmarkfile.c | 11 ++++++-----
 glib/gconvert.c      | 14 +++++++------
 glib/gdir.c          |  2 +-
 glib/genviron.c      | 55
 ++++++++++++++++++++++++++++------------------------
 glib/gfileutils.c    | 48 +++++++++++++++++++++++++--------------------
 glib/giochannel.c    |  2 +-
 glib/gmappedfile.c   |  3 ++-
 glib/gshell.c        | 14 ++++++-------
 glib/gspawn.c        | 32 +++++++++++++++++++-----------
 glib/gstdio.c        | 47 +++++++++++++++++++++++++++++---------------
 glib/gtestutils.c    |  2 +-
 glib/gutils.c        | 38 +++++++++++++++++++++---------------
 12 files changed, 157 insertions(+), 111 deletions(-)

commit 7d8e98ee09885daf9f5af13ebe7f7d33d8fcfc17
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sat Jun 4 13:49:46 2016 +0100

    Fix paths for non-srcdir builds

    This fixes a build failure in Continuous that resulted in the error:

    ../../../gio/tests/test.gresource.xml: Failed to locate
    'test-generated.txt' in any source directory.
    Makefile:4676: recipe for target 'test.gresource' failed
    make[6]: *** [test.gresource] Error 1

 gio/tests/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5411a187a38308c17a78ceeb6c2f08d289fa5db5
Author: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date:   Fri Jun 3 23:20:36 2016 -0300

    glib-compile-resources: correct resource compiler dependency for
    generated files

    Don't require that files can be resolved when generating dependencies.

    Original patch by Garret Regier.

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

 gio/glib-compile-resources.c | 11 +++++++----
 gio/tests/.gitignore         |  1 +
 gio/tests/Makefile.am        |  6 +++++-
 gio/tests/test.gresource.xml |  1 +
 4 files changed, 14 insertions(+), 5 deletions(-)

commit 05d429af9d6e99b598e47b64b2bf7a3d0a9f57f5
Author: Gerald Combs <gerald@wireshark.org>
Date:   Fri Jun 3 12:56:14 2016 -0700

    gsignal: Remove a UTF-8 ellipsis from docs

    Some compilers have trouble with such sequences. Visual C++ may or may
    not generate a warning in this particular case depending on if the
    local code page supports an ellipsis.

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

 gobject/gsignal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f5e875b2f847b01a5199f853c97b06066d2c2c6b
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Fri Jun 3 12:36:39 2016 +0200

    gio: Add a missing autocleanup for GFileAttributeInfoList

 gio/gio-autocleanups.h | 1 +
 1 file changed, 1 insertion(+)

commit 424b3b9c6c725e179efc8ea8688f57469c40ed8d
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 2 12:19:33 2016 -0400

    docs: Move GIO_USE_VFS to "okay for production" section

    Lots of projects like NetworkManager, ostree, udisks, soon polkit,
    etc.  do this or *should* do this.  And we need to support that
    forever.

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

 docs/reference/gio/overview.xml | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 15a85f2095919ec4979747edc0882222adebaf6a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 2 13:25:35 2016 -0400

    GCredentialsType: Remove XML markup from docs

    We now use markdown.

 gio/gioenums.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 504f189e59a3df7656fb90c06dcd2cff17a70199
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Thu Jun 2 11:29:42 2016 +0200

    gfileenumerator: Fix typo in docs

    This probably used to be a part of libgsystem.

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

commit d06d078959889c40b8437467445a4a3a65e0631b
Author: Cédric Valmary <cvalmary@yahoo.fr>
Date:   Mon May 30 18:54:01 2016 +0000

    Updated Occitan translation

 po/oc.po | 583
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 322 insertions(+), 261 deletions(-)

commit 1341598c80b8149059e2485c843d62e52b21b3ab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 26 16:30:25 2016 -0400

    2.49.1

 NEWS | 68
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

commit 6bd94863d0228465731c827e66f1bf9050f351a6
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed May 25 14:13:33 2016 +0800

    glib/gnulib/printf-parse.c: Fix build on Visual Studio 2008

    Visual Studio 2008 does not come with stdint.h, so define intmax_t
    instead
    on Visual Studio 2008 so that the code will continue to build.
    This was
    previously unnoticed as building GTK+ since 3.16 requires an
    implementation of stdint.h (such as msinttypes), and it took care
    of the
    need of including the stdint.h header here, but people could be
    very well
    using GLib without using GTK+ 3.x.

 glib/gnulib/printf-parse.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit f3c029978c064976ca2033c0b38f47553094b425
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon May 23 18:19:51 2016 +0200

    Updated POTFILES.in

 po/POTFILES.in | 1 -
 1 file changed, 1 deletion(-)

commit b7145a1d7227c7ddfea8051bef5d2e8a6301ad42
Author: Tom Tromey <tom@tromey.com>
Date:   Mon May 23 10:45:55 2016 -0400

    Rename gdb macros with `_gdb` suffix to avoid ns clashes

    glib installs a gdb helper file named `glib.py`.
    Then the "hook" file updates `sys.path` and does `import glib`.

    This will fail if glib has already been imported into gdb, say
    using `from gi.repository import GLib`.  This is due to a namespace
    clash.

    One fix would be to rename the gdb helper files to not clash with
    other Python modules.  This should be done for all such helper files.

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

 glib/Makefile.am                       | 2 +-
 glib/{glib.py => glib_gdb.py}          | 0
 glib/libglib-gdb.py.in                 | 2 +-
 gobject/Makefile.am                    | 2 +-
 gobject/{gobject.py => gobject_gdb.py} | 6 +++---
 gobject/libgobject-gdb.py.in           | 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)

commit 0ffb21d355bde6ac11e7871dc0bf79009a6471c3
Author: Muhammet Kara <muhammetk@gmail.com>
Date:   Fri May 20 19:32:08 2016 +0000

    Updated Turkish translation
    (cherry picked from commit 67ce4d8c7bca3a73df881d492b201377f74d3495)

 po/tr.po | 493
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 260 insertions(+), 233 deletions(-)

commit 17e5281ca938f334abceee920759bc2329daa1f0
Author: Ondrej Holy <oholy@redhat.com>
Date:   Fri May 20 12:27:12 2016 +0200

    Fix ABI compatibility

    Commit 7b3f6da broke ABI compatibility, because of newly added vfunc.
    Move the vfunc to the end to ensure ABI compatibility.

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

 gio/gdrive.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 931483aa258e4cba2df009c9b0a7bb7cb5904c75
Author: Ondrej Holy <oholy@redhat.com>
Date:   Fri May 20 10:34:15 2016 +0200

    build: Bump version to 2.49.1

    So that early adopters of new API have a version number to target.

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

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7b3f6da30718c443d64169813b4ae1b3a28ba934
Author: Ondrej Holy <oholy@redhat.com>
Date:   Fri Apr 29 17:14:57 2016 +0200

    gio: Add g_drive_is_removable() support

    Nautilus wants to show entries in the sidebar only for removable
    devices.
    It uses currently sort of conditions to determine which devices
    should be
    shown. Those condition fails in some cases unfortunatelly. Lets
    provide
    g_drive_is_removable() which uses udisks Removable property to
    determine
    which devices should be shown. It should return true for all
    drives with
    removable media, or flash media, or drives on usb and firewire buses.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdrive.c                        | 25 +++++++++++++++++++++++++
 gio/gdrive.h                        |  4 ++++
 3 files changed, 30 insertions(+)

commit 098f19bcedc2235f4ee0999b772f9713a1544beb
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 19 10:06:36 2016 +0100

    docs: Replace references to GVFS hal modules with udisks2

    Since hal is dead and buried, and has been superseded by the udisks2
    modules in GVFS.

 docs/reference/gio/overview.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 19689af0916fa2aad5d6026b42c1615657dfc025
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Wed May 18 13:29:41 2016 +0200

    docs: Add index for 2.50 api

 docs/reference/gio/gio-docs.xml   | 4 ++++
 docs/reference/glib/glib-docs.xml | 4 ++++
 2 files changed, 8 insertions(+)

commit 8f2d18185844dbf0e095d83f4cd8a7adfce25260
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue May 17 18:08:17 2016 +0100

    build: Fix a misnamed variable in glib-tap.mk

    This was causing anything listed in $(installed_test_extra_scripts) to
    not be installed.

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

 glib-tap.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a1e8e8fa70fdd734b79ae3b5e2bf9ab64a31c90
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat May 7 17:02:55 2016 +0000

    g_date_time_format_locale: ensure locale encoding is used

    Fallback code for g_date_time_format_locale() fetches translated
    strings (such as day and month names) from .mo catalogues via
    gettext. These strings always come in UTF-8 encoding, because
    that is the encoding that glib sets when it initializes gettext
    for itself.
    However, the non-fallback code uses nl_langinfo() and expects
    its results to be in locale-dependent encoding.

    This mismatch can result in UTF-8 strings being converted to UTF-8,
    producing gibberish.

    Fix this by converting UTF-8 strings to locale-dependent encoding
    before using them. Also fix the code that was already doing the
    locale->UTF-8
    conversion to not convert the strings when they are already
    UTF-8-encoded.

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

 glib/gdatetime.c | 111
 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 98 insertions(+), 13 deletions(-)

commit 6055954a094ec0434c9a954659170871816e1819
Author: Tiago Santos <tiagofsantos81@sapo.pt>
Date:   Sun May 15 19:45:51 2016 +0000

    Updated Portuguese translation

 po/pt.po | 376
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 197 insertions(+), 179 deletions(-)

commit 2aa73388755846b46adfbd39d65816f56b7add89
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat May 14 01:18:56 2016 +0000

    testsuite: override check-TESTS target in gio tests subdir

    This prevents testsuite from trying to build any TESTS in that
    subdirectory, which will fail, because there are no TESTS defined
    in that Makefile.am.

    This happens when user runs make check TESTS=...

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

 gio/tests/gdbus-object-manager-example/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit e88796cad09a22ccd05672a86403e92fc5bafd70
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat May 14 01:18:22 2016 +0000

    testsuite: don't forget -DPCRE_STATIC when PCRE is static

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

 glib/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 36c47f2a55aacca160c5b93170bd71996070859b
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat May 14 01:17:26 2016 +0000

    testsuite: include pthread.h in thread testfile

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

 glib/tests/thread.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 89d8dc979b363dea363a0a03999ddcc17f21798f
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Wed May 11 09:37:21 2016 +0200

    docs: Clarify clearing the builder after ending the build process

    There is no need to call g_variant_builder_clear() after the
    g_variant_builder_end(). This is mentioned in docs of the former
    function, but not in the docs of the latter one. Add them there too.

 glib/gvariant.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit bcbd8d73cecdd2050670fab6502fab8c84d8cec5
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Tue May 10 09:46:06 2016 +0100

    Fix the upper bound in g_unichar_iswide_bsearch

    asan noticed an array out of bound access in this function, which was
    because we were accessing G_N_ELEMENTS + 1.

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

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

commit 9a865020ca119ea89fbbd836eeff4b374394152d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 10 22:42:08 2016 -0400

    Add a few more test cases for g_unichar_iswide

 glib/tests/unicode.c | 2 ++
 1 file changed, 2 insertions(+)

commit c494ae06b7bb3ba6225e485452d3acd6e458c815
Author: Garrett Regier <garrettregier@gmail.com>
Date:   Tue May 19 06:20:35 2015 -0700

    gsequence: Improve is_end()

    Instead of finding the GSequence, just walk up
    the tree and determine if the iter is the end node.

    https://bugzilla.gnome.org/show_bug.cgi?id=749583
    Signed-off-by: Garrett Regier <garrettregier@gmail.com>

 glib/gsequence.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 1249e10b8ea8ead5b40917dfb8bef8ff4fa75c1d
Author: Cédric Valmary <cvalmary@yahoo.fr>
Date:   Sun May 8 19:38:56 2016 +0000

    Updated Occitan translation

 po/oc.po | 841
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 399 insertions(+), 442 deletions(-)

commit a340a5ef442c774fb04f0e14c86443d8d8ddb58d
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Sun Apr 17 13:05:54 2016 +0200

    docs: improve g_main_context_push_thread_default() documentation

    Explicitly suggest to use g_main_context_pop_thread_default() when
    there's no
    user control on the life cycle of the thread being used.

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

 glib/gmain.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit a17bbbc8a33740ed8722c1739d20ef0f5ff90ed6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 7 12:38:09 2016 -0400

    doc: Update a few links to the Unicode Standard

 glib/gunicode.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 98f86beed6d087f08004de7a4360f983bb5272bb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 3 18:11:09 2016 -0400

    gdbus-codegen: Only generate autocleanup when instructed to

    This adds a new --c-generate-autocleanup option to gdbus-codegen
    which can be used to instruct gdbus-codegen about what autocleanup
    definitions to emit.

    Doing this unconditionally was found to interfere with existing
    code out in the wild.

    The new option takes an argument that can be
    none, objects or all; to indicate whether to generate no
    autocleanup functions, only do it for object types, or do it
    for interface types as well. The default is 'objects', which
    matches the unconditional behavior of gdbus-codegen on the 2.48
    branch.

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

 docs/reference/gio/gdbus-codegen.xml  | 16 ++++++++++
 gio/gdbus-2.0/codegen/codegen.py      | 58
 +++++++++++++++++++----------------
 gio/gdbus-2.0/codegen/codegen_main.py |  3 ++
 3 files changed, 51 insertions(+), 26 deletions(-)

commit 2ca496a2e79bf4d9832e9f788f09ed4fee6e1ff7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed May 4 00:27:32 2016 +0800

    glib/gmacros.h: Fix build on C++ mode in Visual Studio

    Later Visual Studio versions does not allow one to define known
    keywords,
    even if they are actually not known to the compiler.  Avoid this
    issue by
    checking more conditions before we define inline as __inline:

    -We are not building under C++ mode.
    -We are on Visual Studio 2013 or earlier.

    Where both of these conditions need to hold true.

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

 glib/gmacros.h | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

commit 217b620a7b7edd2a7b69a28d53fa8bcf7db90a62
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed May 4 22:59:22 2016 +0800

    gresource.c: Use g_file_test()

    Use the g_file_test() API instead of the g_stat() + S_ISDIR combo
    to fix
    builds on compilers that do not support S_ISDIR.

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

 gio/gresource.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit c16a0b53fe87decb6521417dd67fcacc55cd8cc5
Author: Christian Hergert <chergert@redhat.com>
Date:   Wed May 4 10:40:50 2016 +0300

    socket: set fd field to -1 after closing socket

    This ensures that g_socket_get_fd() will return -1 after the
    socket has
    been closed.

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

 gio/gsocket.c      | 1 +
 gio/tests/socket.c | 4 ++++
 2 files changed, 5 insertions(+)

commit 0cd3d5741b9208747c974ce990a29dcdd25367e7
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Thu Mar 24 18:59:54 2016 +0100

    gio/tests/task: Ensure that g_task_had_error doesn't forget the error

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

 gio/tests/task.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit a17e1e6d197745c0f0a59f72869f226b23e47d4f
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Thu Mar 24 18:36:47 2016 +0100

    gtask: Don't forget about the error after g_task_propagate_*

    The use of past tense in g_task_had_error makes one assume that it
    won't forget about any errors that might have occurred. Except, in
    reality, it would.

    Let's use a boolean flag to remember the error once it's been
    propagated, as opposed to keeping the error around. This ensures that
    the g_task_propagate_* methods continue to give invalid results when
    called more than once, as mentioned in the documentation.

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

 gio/gtask.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 1c6cd5f0a3104aa9b62c7f1d3086181f63e71b59
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue May 3 14:26:30 2016 +0100

    codegen: make g_autoptr for the GInterface conditional

    Some GNOME projects unconditionally work around the generated code's
    lack of g_autoptr support by defining the autoptr cleanup function
    themselves, which is not forward-compatible; as a result, commit
    cbbcaa4 broke them. Do not define the cleanup function unless the
    including app "opts in" to newer APIs via GLIB_VERSION_MAX_ALLOWED.

    Projects requiring compatibility with GLib < 2.49 can get a
    forward-compatible g_autoptr for a generated GInterface type found in
    a library, for example ExampleAnimal in the GIO tests, by declaring
    and using a typedef with a distinct name outside the library's
    namespace:

        typedef AutoExampleAnimal ExampleAnimal;
        G_DEFINE_AUTOPTR_CLEANUP_FUNC (AutoExampleAnimal, g_object_unref)

        ...

        g_autoptr (AutoExampleAnimal) animal = NULL;

        /* returns ExampleAnimal * */
        animal = example_animal_proxy_new_sync (...);
        /* takes ExampleAnimal * first argument */
        example_animal_call_poke_sync (animal, ...);

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=763379
    Reviewed-by: Colin Walters <walters@verbum.org>
    Reviewed-by: Emmanuele Bassi <ebassi@gnome.org>

 gio/gdbus-2.0/codegen/codegen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cbbcaa4dd70a5b28ea62bf408d4fc3e1e2f7f507
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon May 2 19:22:07 2016 +0100

    codegen: Add g_autoptr support for the shared GInterface

    The rest of the generated classes gained g_autoptr support in fd6ca66,
    but this one is still missing. Because whatever_proxy_new_finish() and
    whatever_proxy_new_sync() are declared as returning a Whatever *
    instead of a WhateverProxy *, and the generated method-call stubs
    act on a Whatever *, it's reasonably common to want to declare a
    g_autoptr (Whatever).

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/review?bug=763379
    Reviewed-by: Colin Walters <walters@verbum.org>

 gio/gdbus-2.0/codegen/codegen.py | 4 ++++
 1 file changed, 4 insertions(+)

commit d95030a2fd1f4abb8dad623bdf7962fa902df8d6
Author: Christian Hergert <christian@hergert.me>
Date:   Sat Apr 30 15:09:43 2016 -0700

    task: avoid context lock when setting source name

    If you set the source name after attaching to the context, you have to
    lock the context to free/assign the new source name.

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

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

commit 05060b6194be6bedecac64f7974e36f2770628a8
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 28 10:48:00 2016 +0200

    gdbus-tool: avoid irrelevant note about arg types

    gdbus-tool prints a hint about the expected arguments to a function
    call
    in case of errors.  Unfortunately, it prints this message on all
    errors.
    I've seen this confuse users several times -- they go on tweaking the
    arguments trying to get the correct type, even though they had it
    correct in the first place.

    Let's limit the hint to the case where it was actually invalid
    arguments
    that triggered the problem.  Also, adjust the code that prints the
    message so that it will also report on the case that no arguments were
    expected.

    We could possibly get closer to what we want by comparing the list of
    expected arguments with the parameter list, as it was parsed from the
    user, but that would involve composing the expected type.  Let's keep
    this simple for now.

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

 gio/gdbus-tool.c | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

commit 5cea1c861def0251a10cd4de01908aaf3276c72d
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Mon Sep 21 13:02:45 2015 +0200

    gsettings: add get/set_{,u}int64

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

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

 docs/reference/gio/gio-sections.txt |   4 ++
 gio/gsettings.c                     | 114
 ++++++++++++++++++++++++++++++++++++
 gio/gsettings.h                     |  14 +++++
 gio/tests/gsettings.c               |  10 ++++
 4 files changed, 142 insertions(+)

commit 210a9796f78eb90f76f1bd6a304e9fea05e97617
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Apr 28 14:21:17 2016 +0000

    W32: Do not ignore short waits in g_poll

    Do the actual wait dance even if wait timeout is < 10ms. Otherwise
    we might busyloop.

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

 glib/gpoll.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 55ab3af098c41354419590cc4e4e7d454b8d0029
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 27 12:17:07 2016 +0200

    GResources: add support for resource overlays

    When debugging a program or testing a change to an installed
    version, it
    is often useful to be able to replace resources in the program or a
    library, without recompiling.

    To support this, for debugging and hacking purposes, it's now possible
    to define a G_RESOURCE_OVERLAYS environment variable as a
    colon-separated list of substitutions to perform when looking up
    GResources.

    A substitution has the form

      "/org/gtk/libgtk=/home/desrt/gtk-overlay"

    The part before the '=' is the resource subpath for which the overlay
    applies.  The part after is a filesystem path which contains files and
    subdirectories as you would like to be loaded as resources with the
    equivalent names.

    In the example above, if an application tried to load a resource with
    the resource path '/org/gtk/libgtk/ui/gtkdialog.ui' then GResource
    would
    check the filesystem path '/home/desrt/gtk-overlay/ui/gtkdialog.ui'.
    If
    a file was found there, it would be used instead.

    Substitutions must start with a slash, and must not have a trailing
    slash before the '='.  It is possible to overlay the location of a
    single resource with an individual file.

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

 gio/gresource.c | 310
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 310 insertions(+)

commit 3c7c0af1c9deba908a9802c433b2776feb243978
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 28 09:29:41 2016 +0200

    GResources: use g_hash_table_get_keys_as_array()

    Replace the hand-written equivalent of this with the call to the
    GHashTable built-in version to save a few lines of code.

    The GResource code was written a couple of years before this function
    existed.

    Similarly, replace a set-mode usage of g_hash_table_insert() with
    a call
    to g_hash_table_add().

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

 gio/gresource.c | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

commit 05e5da9a83f788372e9888902dd01781faef1841
Author: Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Date:   Thu Apr 28 12:05:50 2016 +0200

    gvalue: Fix description of g_value_type_transformable()

    Types are transformable if they are compatible *or* a transformation
    function
    is registered.

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

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

commit 96c962de228235c583204a513aebe0bd0adb1e5a
Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Date:   Thu Apr 28 11:01:41 2016 +0200

    glib tests: add pthread flag to 'thread' test

    Commit 99bdfd1b introduced a direct call to pthreads_setname_np in the
    'thread' test case.  Because we are directly calling pthreads
    functions
    from this file now, we need to make sure we link it with the system
    thread library flags (as we already do for another file).

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

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

commit 41df41550fa95d34f256f051794947e53a0ab56b
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Apr 27 14:53:33 2016 +0100

    utils: Compile g_abort() only on Windows

    Otherwise it will break the build on non-Windows because of the
    macro in
    the header, and the unconditional use of Windows-only API.

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

 glib/gutils.c | 2 ++
 1 file changed, 2 insertions(+)

commit 2f05d1454e0ce106b23a3d9626950602bd609fea
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Apr 27 14:35:09 2016 +0100

    Bump master to 2.49

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e47904a26f399d3870e22fbfaefab5d1ab6a7e23
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Wed Mar 30 14:01:30 2016 +0000

    Use g_abort() instead of abort() where possible

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

 glib/gbacktrace.c    |  2 +-
 glib/giowin32.c      | 14 +++++++-------
 glib/gmessages.c     |  4 ++--
 glib/gtester.c       |  2 +-
 glib/gtestutils.c    |  6 +++---
 glib/gthread-posix.c |  7 ++++---
 glib/gthread-win32.c |  2 +-
 7 files changed, 19 insertions(+), 18 deletions(-)

commit 5974428d2561b13072d627f85f012886f0df7ab8
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Wed Mar 30 13:56:43 2016 +0000

    Add g_abort()

    The new g_abort() macro just expands to abort() on systems where
    abort()
    behaves in a sane way. On other systems (read: Windows) it does
    its best
    to emulate a sane abort() behaviour.

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

 glib/gutils.c | 24 ++++++++++++++++++++++++
 glib/gutils.h | 10 ++++++++++
 2 files changed, 34 insertions(+)

commit e4aaae4ed689669a8530d0b79d4523eeb12554ad
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Tue Apr 26 14:02:10 2016 +0000

    glib: Add 2.50 availibity macros

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

 docs/reference/glib/glib-sections.txt |  4 ++++
 glib/gversionmacros.h                 | 23 +++++++++++++++++++++++
 2 files changed, 27 insertions(+)

commit 4e3cd88c2b9c55b4fd2f93abe7795c4f7b9bf292
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Thu Apr 14 14:40:04 2016 +0300

    gparamspecs: GTypes are stored in v_pointer, not v_long

    v_long is 32 bits on Win64, v_pointer is 64 bits. On most other
    platforms the
    size of long and pointer is the same, so it's usually not a problem.

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

 gobject/gparamspecs.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit f8f344923eba57ca13d82e53f3e7b82633179f43
Author: Philip Chimento <philip@endlessm.com>
Date:   Tue Apr 26 11:29:46 2016 -0700

    tests: Fix appmonitor test

    Commit f45ec47 fixed a race condition in this test, but one change was
    omitted; maybe lost in a rebase.

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

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

commit 999711abc82ea3a698d05977f9f91c0b73957f7f
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon Apr 27 14:48:10 2015 +0000

    gthread: Better fallback for W32 g_get_num_processors()

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

 glib/gthread.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

commit 75589956a4ce3a78899ac9562dd43b431921108c
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 26 11:13:32 2016 +0200

    GContextSpecificGroup: add testcase

    Add a test case for unreffing an object from a GContextSpecificGroup
    immediately after firing a signal, before allowing the mainloop
    to run.

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

 gio/tests/contexts.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 62f320e6bb09b4e6454e6a49dc3a844b13b9cc34
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 26 10:39:42 2016 +0200

    GContextSpecificGroup: detach sources

    GContextSpecificGroup has been somewhat broken for a rather long time:
    when we remove the last reference on an object held in the group,
    we try
    to clean up the source, but fail to actually remove it from the
    mainloop.

    We will soon stop emitting signals on the source (due to it having
    been
    removed from the hash table) but any "in flight" signals will still be
    delivered on the source, which continues to exist.  This is a
    problem if
    the event is being delivered just as the object is being destroyed.

    This also means that we leave the source attached to the mainloop
    forever (and next time will create a new one)...

    This is demonstrated with the GtkAppChooser dialog which writes an
    update to the mimeapps.list file just as it is closing, triggering the
    app info monitor to fire just as it is being destroyed.

    Karl Tomlinson correctly analysed the problem and proposed this fix.

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

 gio/gcontextspecificgroup.c | 1 +
 1 file changed, 1 insertion(+)

commit e118856430a798bbc529691ad235fd0b0684439d
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Tue Apr 7 20:05:45 2015 +0000

    Add g_system_thread_set_name() implementation for W32 threads

    This works by using semi-documented[1] exception to tell the debugger
    that a thread needs to have its name changed.

    If this exception is not caught and handled by something, it will
    crash
    the process, so we need to set up our own handler in case there's no
    debugger attached or the debugger can't handle this type of exception.

    Since SEH is not supported by gcc on i686 (at the moment), we need
    to use VEH
    instead. For completeness the MSVC-oriented code still uses SEH,
    although
    there is no reason why it shouldn't work with the VEH variant used
    by MinGW.

    VEH handler has to be set up somewhere (g_thread_win32_init ()
    works nicely)
    and removed once it's not needed (g_thread_win32_process_detach ()
    is added
    expressly for that purpose). Note that g_thread_win32_process_detach()
    is
    only called when glib is unloaded by FreeLibrary(), not when
    glib-using
    process is terminating.

    This exception is known to work with WinDbg, and adding support for
    it into
    GDB proved to be feasible (GDB patch will be sent upstream,
    eventually).

    [1]
    https://msdn.microsoft.com/en-us/library/xcb2z8hs%28v=vs.71%29.aspx

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

 glib/glib-init.c     |  7 +++++
 glib/glib-init.h     |  1 +
 glib/gthread-win32.c | 79
 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 86 insertions(+), 1 deletion(-)

commit 99bdfd1bcb921c987b29a0780fa7c50c3155341e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 26 06:35:06 2016 -0400

    Stop using ptrctl for thread names

    We now prefer pthread_setname_np when available, and don't
    need the linux specific API anymore. Also change the test
    for this functionality to use pthread_getname_np.

 configure.ac         |  2 +-
 glib/gthread-posix.c | 11 +++--------
 glib/tests/thread.c  | 10 ++++------
 3 files changed, 8 insertions(+), 15 deletions(-)

commit 28f01600315cec9e44a8ed656fb9210bfebaf887
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Dec 6 11:17:39 2015 -0800

    gthread: add thread name support on Solaris

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

 configure.ac         | 10 ++++++++++
 glib/gthread-posix.c |  2 ++
 2 files changed, 12 insertions(+)

commit 3301b852a20b3d1f75592d03dd4038d3ea2fed7c
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 12 11:06:11 2016 -0400

    GDesktopAppInfo: support bus activation with '-'

    GApplication has accepted any valid bus name as an application
    ID since
    before the time of D-Bus activation.  This includes bus names with
    '-'.
    Several applications have even attempted support bus activation with
    these names, going as far as installing D-Bus service files, without
    realising that they are silently falling back to fork()/exec() on
    account of the name containing a dash.

    The reason for the problem is that D-Bus object paths cannot contain
    dashes.  We solved this problem privately in an unspecified way inside
    of GApplication but substituting '_' in this case, but never made this
    part of the Desktop Entry Specification.

    The fact that these apps with '-' in the desktop file names aren't
    actually using D-Bus activation is beside the point: their intent here
    was clear.  Let's avoid forcing them to rename their desktop files
    again
    by simply accepting '-' in desktop file names and munging the path in
    the way that GApplication did so historically.

    The new path escaping code here has been copied more or less verbatim
    from GApplication's own code for the same purpose, with only the
    removal
    of one irrelevant part.

    An update to the desktop entry specification will follow.

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

 gio/gdesktopappinfo.c | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

commit bd0911afda3e087b80c93713a9a9866267857583
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Apr 21 19:12:25 2016 +0800

    build/win32/pc_base.py: Allow custom options

    Some packages might have some parts that are built for certain build
    configs, meaning that they could have .pc files of their own, such as
    Pango, where PangoFT2 is optionally built.  Allow such an option if
    needed.

    Also remove some trailing whitespaces.

 build/win32/pc_base.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 52f116e874c783789bda3ddc67df61729834bf49
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Sun Apr 17 10:04:13 2016 +0200

    gioenums.h: Remove trailing comma.

    This is helpful to people using the g++ --pedantic option.

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 24b078126451cb90c2aaeb4d3e1759006218cde9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 13 12:01:49 2016 -0400

    Improve GApplication docs

    D-Bus activation is a thing now; bring the local_command_line
    docs in sync with reality.

 gio/gapplication.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit a772c28c9511e76b003ded67b033d08e36adbdcb
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Apr 12 11:00:32 2016 +0100

    docs: Clean up the GVariant introduction

    Fix the example, as well as the consistency in the terms.

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

 glib/gvariant.c | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

commit 38c4e31c8a8f7e69839e58e1470bf9fcc102e1c3
Author: Phillip Wood <phillip.wood@dunelm.org.uk>
Date:   Mon Nov 16 12:16:08 2015 +0000

    Fix documentation typos

    Character entities are not supposed to be supported by gtk-doc¹ and
    fix the spelling of ‘optional’

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

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

 glib/gconvert.c       | 6 +++---
 glib/giochannel.c     | 2 +-
 glib/gregex.c         | 2 +-
 glib/gregex.h         | 2 +-
 glib/gstrfuncs.c      | 2 +-
 gobject/gvaluearray.c | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

commit 59ec2912e481e158a0ccc8efd6ab82acc6deac9a
Author: Thomas Perl <m@thp.io>
Date:   Tue Mar 31 14:11:02 2015 +0200

    Documentation fix: g_variant_get() returns void

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

 docs/reference/glib/gvariant-varargs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 985ae37d198bef5bf386416a46f944d9952940be
Author: Bastian Ilsø <bastianilso@gnome.org>
Date:   Sat May 2 19:51:46 2015 +0200

    gvariant.c: Elaborate on GVariant concept and its use

    Inserts a paragraph in the start of the description
    explaining briefly the concept of GVariant as a
    variant datatypes using examples and explaining
    a few use cases where GVariant can be useful.

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

 glib/gvariant.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit fcaa3fb1891af959bafcdc2541f7e637d7eb079c
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Wed Apr 6 17:09:50 2016 +0200

    docs: Add Since for handle_local_options

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

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

commit d16abd3df3dab2851e4c7880269502f203c19f5d
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Sat Apr 9 13:01:53 2016 +0200

    docs: fix function name

    g_action_parse_detailed_action_name() doesn't exist, it's
    g_action_parse_detailed_name() instead.

 gio/gaction.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 026368add7e7dd5b8e7f6857488e6578774275a4
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Apr 7 08:43:24 2016 -0500

    Fix a typo

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

commit 35bd69202d56957a82251652498f139c4faff5e6
Author: Bastien Nocera <hadess@hadess.net>
Date:   Mon Apr 4 11:13:13 2016 +0200

    tests: Fix compilation errors due to Y2K format problems

    Newer versions of GCC are particularly verbose in relation to
    formatting errors, use GCC pragmas to disable warnings for this
    section.

    gdatetime.c: In function ‘test_strftime’:
    gdatetime.c:1334:3: error: ‘%c’ yields only last 2 digits of
    year in some locales [-Werror=format-y2k]
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^
    gdatetime.c:1334:3: note: in definition of macro ‘TEST_FORMAT’
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    gdatetime.c:1334:3: error: ‘%g’ yields only last 2 digits of year
    [-Werror=format-y2k]
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^
    gdatetime.c:1334:3: note: in definition of macro ‘TEST_FORMAT’
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    gdatetime.c:1334:3: error: ‘%x’ yields only last 2 digits of
    year in some locales [-Werror=format-y2k]
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^
    gdatetime.c:1334:3: note: in definition of macro ‘TEST_FORMAT’
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    gdatetime.c:1334:3: error: ‘%y’ yields only last 2 digits of year
    [-Werror=format-y2k]
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^
    gdatetime.c:1334:3: note: in definition of macro ‘TEST_FORMAT’
       "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m
       M%M " \
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Note that the pragma is outside the function as older versions of GCC
    don't support pragma inside functions.

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

 glib/tests/gdatetime.c | 3 +++
 1 file changed, 3 insertions(+)

commit e9cf9f2c59e3af819e6d6a339077be5652daaf2b
Author: Bastien Nocera <hadess@hadess.net>
Date:   Mon Apr 4 10:57:20 2016 +0200

    build: Fix all statfs() tests failing

    The current statfs() compilation tests all fail because statfs()
    expects
    the first argument to be non-null. Pass a dummy path instead of
    NULL to
    satisfy the compiler.

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

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 21ad4c800c8624bdb750da5afbda6cca44e64bbe
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Mar 23 21:35:13 2016 +0100

    gstrfuncs: Add test for g_strjoinv() behaviour

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

 glib/tests/strfuncs.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 283c565af6a8a68015a078776c10f7103ba2c485
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Mar 23 18:23:05 2016 +0100

    gstrfuncs: Document the behaviour of g_strjoinv()

    The behaviour of g_strjoinv() isn't explicitely explained when
    the array
    contains less than 2 items. This removes the guesswork.

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

 glib/gstrfuncs.c | 4 ++++
 1 file changed, 4 insertions(+)

commit f45ec47be1244fd16be339dd5be37af3506e05ca
Author: Cosimo Cecchi <cosimo@endlessm.com>
Date:   Tue May 12 19:43:32 2015 -0700

    tests: always remove app.desktop

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

 gio/tests/appmonitor.c | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

commit d09c219696512d5f365e0920c106b58c0d70bd19
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jun 20 21:25:07 2014 +0100

    glocalfile: Assert against a potential NULL pointer dereference

    This was confusing some static analysis. Through
    canonicalize_filename()
    at construction time, we guaranteed that ->filename is canonical and
    absolute, so g_path_skip_root() should never fail.

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

 gio/glocalfile.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 28dcafa09b4168cc586cb493f46c2df58442f1f1
Author: Jordi Mas <jmas@softcatala.org>
Date:   Sat Apr 2 07:39:43 2016 +0200

    Update Catalan translation

 po/ca.po | 674
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 357 insertions(+), 317 deletions(-)

commit b0de81f4947d4830499d494033705ad46d17aae9
Author: Trần Ngọc Quân <vnwildman@gmail.com>
Date:   Sun Mar 27 08:24:33 2016 +0700

    Updated Vietnamese translation

    Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>

 po/vi.po | 502
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 265 insertions(+), 237 deletions(-)

commit 41888493f04bfcc42d5287267708edcc49d7b4ea
Author: Benjamin Gilbert <bgilbert@backtick.net>
Date:   Sun Apr 26 00:53:09 2015 -0400

    Fix thread safety of g_get_language_names()

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

 glib/gcharset.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit f55a5b69b7d8af8872bf785810db8fa8cd7bf905
Author: YunQiang Su <yqsu@src.gnome.org>
Date:   Sat Mar 26 15:32:03 2016 +0800

    update zh_CN translation

 po/zh_CN.po | 240
 ++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 127 insertions(+), 113 deletions(-)

commit b32c0f2f49c8778fb7ccc3fa1a2c94d017d6201d
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Wed Mar 23 17:12:30 2016 +0100

    Updated Basque language

 po/eu.po | 337
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 177 insertions(+), 160 deletions(-)

commit 14885a5b1964f5a324714ce52302b48fa54515e9
Author: Colin Walters <walters@verbum.org>
Date:   Thu Mar 17 11:28:01 2016 -0400

    build: Also dist Systemtap files always for gobject/

    Mirrors
    https://git.gnome.org/browse/glib/commit/?id=ad2092bc680e434c3d17600988ec9b20f52eebef
    except I didn't also change gobject/.

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

 gobject/Makefile.am | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f384d20d80fc36ba86f73a885838a4903604a5e0
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 22 11:18:38 2016 -0400

    GLib 2.48.0

 NEWS         | 16 +++++++++++++++-
 configure.ac |  4 ++--
 2 files changed, 17 insertions(+), 3 deletions(-)

commit a668ee8fe9b82606c6bec450ae40eed1d81aebe4
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Mon Mar 14 13:21:54 2016 +0000

    giotypefuncs.c: Sort _get_type functions in the 'C' locale

    This ensures that the generated file is always the same (not dependent
    on the build machine's environment), making the build reproducible.

    Thanks to Jérémy Bobbio <lunar@debian.org> for the Debian bug
    report and
    patch.

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

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

commit c7763d0712696ae153f2405017221050637908f3
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Mar 21 12:44:15 2016 +0000

    glib-compile-resources: Fix minor memory leak on error path

    Spotted by Coverity (CID: #1353385).

 gio/glib-compile-resources.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 58f56b24601838d76a8fda7bd48f0ebe0f9758b5
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Mar 21 12:35:25 2016 +0000

    gkeyfile: Clear a variable after freeing it

    find_file_in_data_dirs() doesn’t actually clear output_path to
    NULL on
    failure, so this prevents a use-after-free on that (fd == -1) error
    path.

    Spotted by Coverity (CID: #1352981).

 glib/gkeyfile.c | 1 +
 1 file changed, 1 insertion(+)

commit 7401dc1b0c9aab06b596eb01ec68888d075054b9
Author: Ask Hjorth Larsen <asklarsen@gmail.com>
Date:   Sun Mar 20 23:41:28 2016 +0100

    Updated Danish translation

 po/da.po | 385
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 205 insertions(+), 180 deletions(-)

commit b8800ddc371485f1aa3f46896650fa5c47526743
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Thu Mar 17 20:24:05 2016 +0000

    Updated Italian translation

 po/it.po | 70
 +++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 38 insertions(+), 32 deletions(-)

commit 8c9be18bd3dff42a2352c2dac6b8f17b243d2980
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 15 22:25:57 2016 -0400

    GLib 2.47.92

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

commit db972a73ce016afb9561be2677547efdb649274b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Mar 15 18:08:29 2016 +0000

    gio: Fix a GError memory leak in GNetworkService

    Spotted by Coverity (CID: #1325405).

 gio/gnetworkservice.c | 2 ++
 1 file changed, 2 insertions(+)

commit 27660b178e7efd1b54b0d86b2e3ebd993d7781b1
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Mar 15 18:03:00 2016 +0000

    gio: Fix a GError memory leak in GDesktopAppInfo

    Spotted by Coverity (CID: #1352961).

 gio/gdesktopappinfo.c | 1 +
 1 file changed, 1 insertion(+)

commit d8a7d5f168a8ea652e8e56ae9e157a66f7181923
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Mar 15 12:28:10 2016 +0000

    gmessages: Clarify documentation for G_LOG_LEVEL_CRITICAL

    Clarify that it’s a critical //warning//, not a critical
    something-else.

 glib/gmessages.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 37ebc83f7ff1caa0bca0140aa2e44120bddbca70
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Feb 17 17:56:03 2016 +0100

    win32: use wide-char for constants

    Use the appropriate type for comparisons and assignment of wide chars.

    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>

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

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

commit 622748680c807efcf1eb49bce3f0a9c08ad77484
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Feb 17 17:52:59 2016 +0100

    win32: fix indentation

    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>

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

 glib/gwin32.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 5be8cab966d65e7074dd6478d02cfa46724e479e
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Feb 17 17:52:31 2016 +0100

    win32: use wcslen() return type

    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>

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

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

commit a1bcd1e45a3eea98dedcee68f67b458e95e9193d
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Feb 17 17:50:52 2016 +0100

    win32: fix off-by-one length check

    Laszlo Ersek said: "The length check is off by one (in the safe
    direction); it
    should be (nchars >= 2). The processing should be active for the
    wide string
    L"\r\n" -- resulting in the empty wide string --, I believe."

    Reported-by: Laszlo Ersek <lersek@redhat.com>
    Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>

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

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

commit 0a580fc79e701363b12de2398e5c7428fe8af739
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Mar 14 12:57:20 2016 +0000

    gio: Fix minor typo in GActionGroup documentation

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

commit c49b70f61e9818d998623458b9e0dfbd58d65f23
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 14 08:07:39 2016 -0400

    Trivial whitespace fix

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

commit bc2f448dd53345cd277ea7f69a2c5079f5383500
Author: Tom Tryfonidis <tomtryf@gnome.org>
Date:   Mon Mar 14 10:23:36 2016 +0000

    Updated Greek translation

 po/el.po | 744
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 412 insertions(+), 332 deletions(-)

commit c15b35c74e610aaf4e0ba0380c0af08a5a1f76e2
Author: Jiri Grönroos <jiri.gronroos@iki.fi>
Date:   Sun Mar 13 14:42:53 2016 +0000

    Updated Finnish translation

 po/fi.po | 1118
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 582 insertions(+), 536 deletions(-)

commit e04e716ddb140d7154599f48b48514d3d91122cb
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Sat Mar 12 20:26:19 2016 +0000

    Updated Korean translation

 po/ko.po | 445
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 235 insertions(+), 210 deletions(-)

commit 54114021c11dadb3fc6f80208e5468a1efbe3733
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Fri Mar 11 14:55:43 2016 +0200

    Updated Hebrew translation

 po/he.po | 226
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 120 insertions(+), 106 deletions(-)

commit 98ab9fa94f926e11a58cb0c1ccc4aaebe5a3b349
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Mar 11 16:54:39 2016 +0800

    MSVC builds: Update string replacement util script

    This makes the replace-single function make use of the replace-multi
    function, that was just added, to ease future maintenance.

 build/win32/replace.py | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 745989192165110101165d17c7c3ed7410db5b92
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Thu Mar 10 19:47:33 2016 +0100

    Updated German translation

 po/de.po | 57 +++++++++++++++++++++++++++++++--------------------------
 1 file changed, 31 insertions(+), 26 deletions(-)

commit 374a61f24541ae26f018f3bf1a14cc4337d0f463
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 10 20:33:35 2016 +0800

    MSVC builds: Add scripts to generate .pc files

    Add a generic script, pc_base.py, which can be utilized to obtain path
    info, along with user-input version info, which can be used to
    generate
    pkg-config .pc files.  Also enhance replace.py a bit so that it
    can also
    be used in the future to replace multiple items in a file in one shot.
    This is done to make building introspection files easier, as it
    depends
    much on the pkg-config .pc files to work.

    Update the project files so that when Python is available, we can
    generate
    the full, usable .pc files when we complete and 'install' the
    builds, and
    copy them to appropriate locations so that pkg-config can be set
    to find
    them easily.

 build/win32/Makefile.am                       |   2 +
 build/win32/glibpc.py                         |  88 +++++++++++++++++++++
 build/win32/pc_base.py                        | 107
 ++++++++++++++++++++++++++
 build/win32/replace.py                        |  10 +++
 build/win32/vs10/Makefile.am                  |   1 +
 build/win32/vs10/glib-install.propsin         |  18 +++++
 build/win32/vs10/glib-install.vcxproj         |  18 +++++
 build/win32/vs10/glib-install.vcxproj.filters |  13 ++++
 build/win32/vs11/Makefile.am                  |   1 +
 build/win32/vs12/Makefile.am                  |   1 +
 build/win32/vs14/Makefile.am                  |   1 +
 build/win32/vs9/glib-install.vcproj           |  50 +++++++++++-
 build/win32/vs9/glib-install.vspropsin        |  14 ++++
 13 files changed, 320 insertions(+), 4 deletions(-)

commit fd6ca66c16b942d1f7d8c70468a438ad4c887c7b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Mar 9 15:51:45 2016 +0000

    codegen: Add support for g_autoptr to gdbus-codegen–generated
    objects

    This means that any code generated by gdbus-codegen will now require
    GLib 2.44 or newer.

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

 gio/gdbus-2.0/codegen/codegen.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 4569161f81e9338bb91e5a64fd1d00665bcb19e6
Author: Stephan Hesse <stephan@soundcloud.com>
Date:   Tue Sep 29 17:50:39 2015 +0200

    gerror: Mention that g_clear_error can be used with an "empty" GError

    It is fine to do:
    GError *error = NULL;
    g_clear_error (&error);

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

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

commit 7c6141a546b80866e26a12cee8b6a9f1be5b9fc6
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 8 15:34:26 2016 -0500

    g_get_user_runtime_dir(): ensure directory exists

    If the XDG_RUNTIME_DIR environment variable is set, we are being
    told by
    the OS that this directory exists and is appropriately configured
    already.  In the fallback case of ~/.cache/, however, the directory
    may
    not yet exist.

    Rework the logic of this function a little so that we only check
    for the
    environment variable once.  If it is not set, we will fall back to the
    cache directory, and mkdir() it to make sure that it exists.

    Meanwhile, remove a statement from the reference documentation that
    promises a warning in this case (which has never been true)
    and replace
    it with a statement that applications can rely on the directory
    existing.

    This change prevents each user of this API from having to check
    for the
    directory for themselves; an example of that can be seen in bug
    763274.

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

 glib/gutils.c | 44 ++++++++++++++++++++++++++++++--------------
 1 file changed, 30 insertions(+), 14 deletions(-)

commit 37756a06c9c8821e4cbc22218046b88cdc85ca90
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Mar 8 18:59:34 2016 +0000

    array: Support clearing an empty array with g_array_remove_range()

    Previously, calling g_array_remove_range(array, 0, array->len) on an
    empty array would result in a precondition failure in
    g_array_remove_range(), as the given start index (0), was not strictly
    less than the array length (0).

    Allow the index to equal the array length, so that zero elements
    can be
    removed from any array. A subsequent check makes sure that the array
    length is not overflowed by the index + length.

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

 glib/garray.c           | 6 +++---
 glib/tests/array-test.c | 8 ++++++++
 2 files changed, 11 insertions(+), 3 deletions(-)

commit 7d3d948947f6854507ba62e215ea681b9ef7dad3
Author: Marek Černocký <marek@manet.cz>
Date:   Tue Mar 8 18:49:11 2016 +0100

    Updated Czech translation

 po/cs.po | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

commit c9591c4e853e2d383f50c377839b12b7acb3d69b
Author: Fran Dieguez <fran.dieguez@mabishu.com>
Date:   Tue Mar 8 10:45:49 2016 +0100

    Updated Galician translations

 po/gl.po | 39 +++++++++++++++++++++++----------------
 1 file changed, 23 insertions(+), 16 deletions(-)

commit 6aa52f469b31209ce5963bd34d2fb10ceeec2528
Author: Марко М. Костић <marko.m.kostic@gmail.com>
Date:   Mon Mar 7 11:26:28 2016 +0100

    Updated Serbian translation

 po/sr.po       | 91
 ++++++++++++++++++++++++++++++++--------------------------
 po/sr@latin.po | 75 ++++++++++++++++++++++++++---------------------
 2 files changed, 92 insertions(+), 74 deletions(-)

commit 5a8354c041af70e639dd93e700726cfc634e1850
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Mar 6 20:01:32 2016 +0100

    Updated Spanish translation

 po/es.po | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

commit 9422d9f6dd641be11f712e71719ed336972e124f
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Sat Mar 5 23:03:30 2016 +0000

    Updated Swedish translation

 po/sv.po | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

commit 2801341e5f346956d580a0fa25d0c6e12b6b85ae
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Mar 5 21:15:47 2016 +0100

    Updated Slovenian translation

 po/sl.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7bf113c95da53d8ce7480847ede52d2d6f31b9e3
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Mar 5 21:41:58 2016 +0200

    Updated Lithuanian translation

 po/lt.po | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

commit 964707ace9208c601c7a1b45be903edee0d5de9a
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Mar 5 20:41:20 2016 +0100

    Updated Slovenian translation

 po/sl.po | 50 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 30 insertions(+), 20 deletions(-)

commit 0064bd957d17882bc4e027b55dbc76f6a89e65aa
Author: Claude Paroz <claude@2xlibre.net>
Date:   Sat Mar 5 18:02:30 2016 +0100

    Updated French translation

 po/fr.po | 536
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 274 insertions(+), 262 deletions(-)

commit 72c339246a46a5b52c28786ad168f6d804b3679c
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   Sat Mar 5 10:39:10 2016 +0000

    Updated Kazakh translation

 po/kk.po | 448
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 236 insertions(+), 212 deletions(-)

commit 046634375c3997e12270567dbf5f63d5e5c443b0
Author: Stas Solovey <whats_up@tut.by>
Date:   Fri Mar 4 21:56:48 2016 +0000

    Updated Russian translation

 po/ru.po | 397
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 211 insertions(+), 186 deletions(-)

commit a400a0e979f5c08bb2560131e55df6b5f06c0167
Author: Gábor Kelemen <kelemeng@openscope.org>
Date:   Fri Mar 4 19:42:07 2016 +0000

    Updated Hungarian translation

 po/hu.po | 62
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 37 insertions(+), 25 deletions(-)

commit 658733eb04cfa0ee9d6ed0b6e15b8e43c0b1b2b4
Author: Artur de Aquino Morais <aamorais93.estudos@gmail.com>
Date:   Fri Mar 4 14:04:40 2016 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 526
 ++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 301 insertions(+), 225 deletions(-)

commit 0527f97c4350574fbffac653e46bd57e4015f075
Author: Dušan Kazik <prescott66@gmail.com>
Date:   Thu Mar 3 21:05:23 2016 +0000

    Updated Slovak translation

 po/sk.po | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

commit 522b698e0b7e62fa2049c13046c9f57251754afe
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Thu Mar 3 22:22:19 2016 +0200

    Update Latvian translation

 po/lv.po | 410
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 216 insertions(+), 194 deletions(-)

commit 988ec5aae9347d4b7d6128aea64b792704127f38
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Thu Mar 3 17:02:50 2016 +0100

    Updated Polish translation

 po/pl.po | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

commit 8cdbc7fb2c8c876902e457abe46ee18a0b134486
Author: coypu <coypu@sdf.org>
Date:   Wed Mar 2 19:38:48 2016 +0200

    gdate: Move warning pragma outside of function

    Commit 0817af40e8c74c721c30f6ef482b1f53d12044c7 breaks the build on
    older versions of GCC, which don't allow pragma inside functions.

    https://bugzilla.gnome.org/761550

 glib/gdate.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 74b1dd87b5ff10ded5a09a10c36722aa5548ad63
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Fri Jan 15 22:25:32 2016 +0000

    W32: eliminate busy cursor when a rundll32-hosted child runs

    Even though GetStartupInfo() in g_win32_run_session_bus() would
    tell us that STARTF_FORCEONFEEDBACK flag is not set, it still
    affects the rundll32 process for some reason.

    This means that Windows WM changes mouse cursor to IDC_APPSTARTING for
    a few seconds when rundll32 runs g_win32_run_session_bus(). Since
    g_win32_run_session_bus() never satisfies the conditions set by
    STARTF_FORCEONFEEDBACK, the busy cursor only goes away after a
    timeout.

    Fix this by explicitly running GetMessage(). To ensure that
    GetMessage()
    doesn't block, post a quit message immediately before calling it.

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

 gio/gdbusaddress.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 5efc8686ee5a12ea21d1562fddb83418d0c734b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Mar 2 19:06:49 2016 -0500

    Remove erroneous markup in GError docs

 glib/gerror.c | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

commit 5a894c32321a613393261fd8643ad93713d427fe
Author: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
Date:   Wed Feb 24 18:58:25 2016 +0100

    gsettings: Don't crash when no schemas are installed

    Still doesn't behave well ("gsettings help" causes an error),
    but at least there's no segfault anymore.

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

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

commit f1c81da5bec82962f19ea801288c054e5c3cc664
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Wed Mar 2 20:19:50 2016 +0200

    Updated Lithuanian translation

 po/lt.po | 38 ++++++++++++++++++++++++--------------
 1 file changed, 24 insertions(+), 14 deletions(-)

commit 38b458ea4635d97fa7909272fb45d8c9ca7140d1
Author: Dušan Kazik <prescott66@gmail.com>
Date:   Tue Mar 1 20:06:22 2016 +0000

    Updated Slovak translation

 po/sk.po | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

commit b54acf513d55e3ef8df3d913dc3c78572989d3df
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 29 09:31:14 2016 -0500

    GDBusConnection: use uint for bitshifts

    "1 << 31" is not well-defined, do use "1u << 31" instead.

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

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

commit 96fb3b9c0361ae4c25dfb00864fa308bcc719e71
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Mar 1 08:50:05 2016 +0100

    gwin32fsmonitorutils: avoid useless cast

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

commit 6e454a99ef3c175cf36c30fe477bbc1a87cb1751
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Mar 1 08:46:05 2016 +0100

    gwin32fsmonitorutils: avoid a possible invalid memory access

 gio/win32/gwin32fsmonitorutils.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit dedf65a5fd346da884a65dd4781504bc15533725
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Mar 1 08:40:48 2016 +0100

    gwin32fsmonitorutils: no need to g_assert when using g_new

 gio/win32/gwin32fsmonitorutils.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit 922cd8424a353b170320453dbedc95db5282f627
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Mar 1 08:37:51 2016 +0100

    gwin32fsmonitorutils: no need to check for NULL when using g_free

 gio/win32/gwin32fsmonitorutils.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 007e3c5939a255b19ba65ec69b2627db310cb787
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Mar 1 08:37:14 2016 +0100

    gwin32fsmonitorutils: coding style fixes

 gio/win32/gwin32fsmonitorutils.c | 142
 ++++++++++++++++++++-------------------
 1 file changed, 73 insertions(+), 69 deletions(-)

commit 7f60cbb701b11e66dc3d827100ed7a3a74a67e2e
Author: Sebastian Geiger <sbastig@gmx.net>
Date:   Fri Feb 26 16:46:24 2016 +0100

    gio: fix documentation of GAction

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

commit bffb44021182adfd83f2f973ec2dd6553b471e17
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Sun Feb 28 19:25:40 2016 +0100

    Updated German translation

 po/de.po | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

commit 8ca457a2177b513c8ee514fade54a6d84958ed59
Author: Cédric Valmary <cvalmary@yahoo.fr>
Date:   Sun Feb 28 14:56:49 2016 +0000

    Updated Occitan translation

 po/oc.po | 6223
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 3645 insertions(+), 2578 deletions(-)

commit 45ccd3f95177b30623b6786804b392484462794c
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Sat Feb 27 14:54:17 2016 +0100

    gwin32filemonitor: some cleanups

    Make the code a bit more consistent and get it into preparation to
    merge the fs monitor stuff that uses the private struct directly.

 gio/win32/gwin32filemonitor.c | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

commit 9c7c74c587cac3c808a32b7420d68468283b917f
Author: Marek Černocký <marek@manet.cz>
Date:   Sat Feb 27 18:30:31 2016 +0100

    Updated Czech translation

 po/cs.po | 67
 ++++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 38 insertions(+), 29 deletions(-)

commit bc5b7332b7508c4ea58d558f06444b9870a2fdd7
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Feb 25 17:23:50 2016 +0100

    Improve error on win32input/output streams

 gio/gwin32inputstream.c  | 9 ++++++---
 gio/gwin32outputstream.c | 9 ++++++---
 2 files changed, 12 insertions(+), 6 deletions(-)

commit 99b30f389ee0272b5d5d256d95c4e7ea278d3cd3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Feb 25 18:37:01 2016 +0800

    Visual Studio builds: Move @GLIB_VERSION@ usage

    ... from glib-gen-srcs.[vsprops|props].in to
    glib-version-paths.[vsprops|props].in, and instead let autotools
    generate
    glib-version-paths.[vsprops|props] rather than
    glib-gen-srcs.[vsprops|props], as this will need to be referenced for
    other items as well, namely generating the .pc files which will become
    useful for introspection builds.

 build/win32/vs10/.gitignore                                  |  2 +-
 build/win32/vs10/Makefile.am                                 |
 8 ++++----
 .../vs10/{glib-gen-srcs.props.in => glib-gen-srcs.props}     |  2 +-
 ...{glib-version-paths.props => glib-version-paths.props.in} | 12
 ++++++++----
 build/win32/vs9/.gitignore                                   |  2 +-
 build/win32/vs9/Makefile.am                                  |  6 +++---
 .../vs9/{glib-gen-srcs.vsprops.in => glib-gen-srcs.vsprops}  |  2 +-
 ...b-version-paths.vsprops => glib-version-paths.vsprops.in} | 12
 ++++++++----
 configure.ac                                                 |  4 ++--
 9 files changed, 29 insertions(+), 21 deletions(-)

commit 73192b84f8f9c579b46d4f10bb57b679a8b25582
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Feb 25 10:00:32 2016 +0100

    gwin32outputstream: cleanups to make the code more consistent

 gio/gwin32outputstream.c | 323
 +++++++++++++++++++++++------------------------
 1 file changed, 156 insertions(+), 167 deletions(-)

commit d5cb451c515563db4542dd3e09605236dde36527
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Feb 25 09:56:25 2016 +0100

    gwin32inputstream: some cleanups to make the code more consistent

 gio/gwin32inputstream.c | 322
 +++++++++++++++++++++++-------------------------
 1 file changed, 156 insertions(+), 166 deletions(-)

commit ad2092bc680e434c3d17600988ec9b20f52eebef
Author: Colin Walters <walters@verbum.org>
Date:   Wed Feb 24 13:40:25 2016 -0500

    build: Unconditionally dist tapset files

    Apparently whoever made the last tarball didn't have
    `--enable-systemtap`.
    Disted files shouldn't depend on build flags.

    Also, it is cathartic for me to say tarballs are dumb and we should
    just be pulling from git which is what's canonically tracking what's
    source code and what's not and we don't need to repeat ourself in
    `Makefile.am`.

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

 glib/Makefile.am | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 53a24814f6b69039c971c8c3575cdd92ebbd1882
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Feb 24 17:08:04 2016 +0100

    gsettingschema: fix uninitialized value warning

    This error could actually happen in case the assertions are off.

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

commit 7a8abb20ab5f214d8fb5713420a5dc5fd61ef79c
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Feb 24 11:27:09 2016 +0100

    grand: rand_s is available in mingw64

 glib/grand.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 5e009153548bf1ed176ea3e75f261394e9f3af74
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Wed Feb 24 09:21:36 2016 +0000

    Updated Swedish translation

 po/sv.po | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

commit f3334b47ec6df3cd7eb1a0c7eafd15a4f21256f2
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Feb 24 09:33:22 2016 +0100

    Revert "registrybackend: use G_DECLARE_FINAL_TYPE"

    This reverts commit b0776ddd1850f5ca91fe50c11311fe5c9c90cf53.
    mingw does not seem to like this patch so better go on the safe
    way.

 gio/gregistrysettingsbackend.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 13057bb73e230083c91beeece36433f2b0d70499
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Feb 24 09:18:42 2016 +0100

    registrybackend: fix warning about unused variable

 gio/gregistrysettingsbackend.c | 2 --
 1 file changed, 2 deletions(-)

commit c6bd31488a24a8c889c419f9916ea1188adabf57
Author: Fran Dieguez <fran.dieguez@mabishu.com>
Date:   Tue Feb 23 20:21:31 2016 +0100

    Updated Galician translations

 po/gl.po | 365
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 194 insertions(+), 171 deletions(-)

commit c13be85f2ba6732a75d917a36a8e50c6377f25d1
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Feb 22 21:20:07 2016 +0100

    Updated Spanish translation

 po/es.po | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

commit aead1c046dd39748cca449b55ec300ba5f025365
Author: Hanno Boeck <hanno@hboeck.de>
Date:   Mon Feb 22 07:46:17 2016 -0500

    GVariant text: fix scan of positional parameters

    The scanning to find the end of a positional parameter designator in
    GVariant text format (e.g. '%i') is currently broken in case the 'end'
    pointer is not specified.

    The scan is controlled by a somewhat complicated loop that needs
    to deal
    properly with cases like (123, %(ii)) [where '%(ii)' is to be taken
    together, but the final ')' not].

    This loop missed the case where a format string passed to
    g_variant_new_parsed() ended immediately after such a conversion,
    with a
    nul character.  In this case the 'end' pointer is NULL, so the
    only way
    we can find the end is by scanning for nul in the string.

    In case of g_variant_new_parsed() [which is what this code was
    designed
    to be used for], the bug is somewhat unlikely in practice: the
    only way
    that a valid text-form GVariant could ever contain a positional
    parameter replacement at the end of the string is if this positional
    parameter were the only thing being returned.  In that case, the user
    would likely have opted for a more direct approach.

    Unfortunately, this code is also active in the tokenisation phase of
    g_variant_parse(), before positional parameters are rejected as
    invalid
    for that case.  Anyone who calls this function with a nul-terminated
    string (and no end pointer) is vulnerable to a crash from malicious
    user
    input.  This can be seen, at the very least with many commandline
    tools:

      $ dconf write /x '%i'
      Segmentation fault

    We fix this problem by searching for the nul character in this
    case, in
    addition to comparing the end pointer.

    This problem is almost certainly limited to being able to cause
    crashes.
    The loop in question only performs reads and, in the
    security-sensitive
    case, the token will be quickly rejected after the loop is finished
    (since it starts with '%' and the 'app' pointer is unset).  This is
    further mitigated by the fact that there are no known cases of
    GVariant
    text format being used as part of a protocol at a privilege barrier.

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

commit 21c15080bd46e96ece6fb3b8cc87c7b0abaeb1e6
Author: Artur de Aquino Morais <aamorais93.estudos@gmail.com>
Date:   Sun Feb 21 14:17:14 2016 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 508
 ++++++++++++++++++++++++++----------------------------------
 1 file changed, 222 insertions(+), 286 deletions(-)

commit ca10ad1f542d4fb951b5416562b1d032b8ef4573
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Feb 20 16:30:05 2016 +0100

    Updated Polish translation

 po/pl.po | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

commit 0d0db609590307ecae03627ac55265597d4a0ca0
Author: Tobias Nygren <tnn@NetBSD.org>
Date:   Fri Oct 16 18:46:26 2015 +0200

    gio/gtestdbus.c: don't use non-standard %m printf modifier

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

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

commit c40422f9e66a79845dd809e2d8d7519a20ea3746
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Thu Feb 18 21:05:07 2016 +0100

    Updated Serbian translation

 po/sr.po       | 416
 +++++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 416
 +++++++++++++++++++++++++++++----------------------------
 2 files changed, 428 insertions(+), 404 deletions(-)

commit 1d0f75f629f8f23089a109dc259cbfe99187fe31
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 18 12:14:52 2016 -0500

    Update maintainer record in DOAP

 glib.doap | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a484ca1bbd2f7884d45933be2ad822a4d71f93ba
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Thu Feb 18 13:22:05 2016 +0000

    Updated Italian translation

 po/it.po | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

commit b32f8ba19bd05db95f65baa5074c942b3964c1d3
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Tue Feb 3 14:09:44 2015 +0100

    gapplication: add a way to override the app-id

    Some applications support running in a mode where they present
    themselves as a different application to the user (for example web
    browsers or terminals).

    To facilitate this, add an option --gapplication-app-id which allows
    users to override an application's id from desktop files or similar.

    Applications need to opt-in to this by setting the
    G_APPLICATION_CAN_OVERRIDE_APP_ID flag.

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

 gio/gapplication.c | 32 +++++++++++++++++++++++++-------
 gio/gioenums.h     |  7 ++++++-
 2 files changed, 31 insertions(+), 8 deletions(-)

commit 15dea440c4c2a1b595b5513b458e84cd667f98b2
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Thu Feb 18 13:16:18 2016 +0000

    Updated Italian translation

 po/it.po | 1241
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 795 insertions(+), 446 deletions(-)

commit caf03300e56139bea5f690fa9d9d8b286ad47789
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 17 20:09:22 2016 -0500

    Remove leftover markup

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a3a97dca3aa227182088be47db75fc57f1186946
Author: Cole Robinson <crobinso@redhat.com>
Date:   Mon Nov 2 20:28:49 2015 -0500

    gsettings: schema_list should use the passed schema's source

    currently schema_list will iterate over the default SchemaSource
    list, and not the one associated with the passed in Schema. This
    means schema_list can give incorrect results for a Schema fetched
    from a non-default SchemaSource, like via new_from_directory.

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

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

commit 9d54f806e5668dfb6c7077db8ebf6abe23ba5320
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 16 06:35:12 2016 -0500

    GLib 2.47.6

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5918f9609e38d97c6cd67129bfc4729cc2bb88e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 15 15:53:06 2016 -0500

    Updates

 NEWS | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit 3f29f7272c1776997c013b78600700ffab3d7738
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Feb 13 06:37:02 2016 +0000

    Updated Chinese (Taiwan) translation

 po/zh_TW.po | 469
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 242 insertions(+), 227 deletions(-)

commit 4a213a2fed57159a1689b0be9c120eba98287131
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Fri Feb 12 22:26:43 2016 +0000

    Updated Swedish translation

 po/sv.po | 36 ++++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 16 deletions(-)

commit 1964a8726b06237f751b2aa8b2a3fcd2ce555c44
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Feb 10 22:37:41 2016 +0000

    macros: Fix Clang attribute detection

    For attributes we have to use __has_attribute().

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

 glib/gmacros.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit c7f540b9e98bca42fc2207c16425ac326edf8ab3
Author: Rafael Fontenelle <rffontenelle@gmail.com>
Date:   Wed Feb 10 17:31:53 2016 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

commit 0817af40e8c74c721c30f6ef482b1f53d12044c7
Author: coypu <coypu@sdf.org>
Date:   Mon Feb 8 00:06:06 2016 +0200

    gdate: Suppress string format literal warning

    Newer versions of GCC emit an error here, but we know it's safe.
    https://bugzilla.gnome.org/761550

 glib/gdate.c | 3 +++
 1 file changed, 3 insertions(+)

commit ac84fbfca370539094a99a3471c9d489d003ba90
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Feb 6 15:43:33 2016 +0100

    Updated Polish translation

 po/pl.po | 481
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 249 insertions(+), 232 deletions(-)

commit 30ff647a7cb8323ac96614a8f65900efb6092292
Author: Dušan Kazik <prescott66@gmail.com>
Date:   Sat Feb 6 14:18:18 2016 +0000

    Updated Slovak translation

 po/sk.po | 1216
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 788 insertions(+), 428 deletions(-)

commit 19fd89f8db75928038929f9ea6d918c5f5deb1a5
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Fri Feb 5 12:05:02 2016 +0100

    registrybackend: avoid adding a new child when we return the root

 gio/gregistrysettingsbackend.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit 63b0f1087d4e4d209b5db53c6abf18dc1fdcf9a2
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Fri Feb 5 11:38:05 2016 +0100

    registrybackend: another cleanup creating a registry cache item

 gio/gregistrysettingsbackend.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit c73e9fc36acbbd9f37bf23af913631d23fcbbe7e
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Fri Feb 5 11:14:24 2016 +0100

    registrybackend: use registry_cache_add_item instead of creating
    manually

 gio/gregistrysettingsbackend.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

commit bd3dd1cd48bdc5c46598a6ef5649c55557cb276a
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Feb 1 17:17:47 2016 +0100

    registrybackend: get whether a key is writable or not

 gio/gregistrysettingsbackend.c | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

commit 604ca891769c664273beb519f315c6c327f48478
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Fri Feb 5 09:40:30 2016 +0100

    registrybackend: do convert values to UTF-16

    Perform conversion before writing a value out of the cache into
    the registry,
    and convert back when reading a value into the cache out of the
    registry.
    The registry holds UTF-8 strings.

 gio/gregistrysettingsbackend.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit c4d943186e2709a975c574dfb396b911ca988a55
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Fri Feb 5 09:39:21 2016 +0100

    registrybackend: fix memory leak

 gio/gregistrysettingsbackend.c | 4 ++++
 1 file changed, 4 insertions(+)

commit b8fc289e8fa126fec89d5b753bb05f80a75d57d9
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Feb 4 12:44:11 2016 +0100

    registrybackend: remove useless include

 gio/gregistrysettingsbackend.c | 1 -
 1 file changed, 1 deletion(-)

commit 74442a0b8c59adf110b9072ac50955f45f59130c
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Feb 4 11:16:45 2016 +0100

    registrybackend: do not leak self if there are no items

 gio/gregistrysettingsbackend.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

commit dc97bb9b9b0ee0e0566d6a9752e06694f8e4985b
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Feb 2 13:12:22 2016 +0100

    registrybackend: handle readability of the keys

    If a key is removed or it cannot be read anymore we should
    notify the backend about it so it fallbacks to the default
    value.

 gio/gregistrysettingsbackend.c | 42
 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

commit 05dd91a0b6cc8d036d1ef2c0ad457c966223989e
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Feb 4 08:39:24 2016 +0100

    registrybackend: use unicode calls intead of the ansi ones

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

 gio/gregistrysettingsbackend.c | 107
 ++++++++++++++++++++++++++++++-----------
 1 file changed, 79 insertions(+), 28 deletions(-)

commit 7161d709555c655827118c02b58b2f6f376883da
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Feb 4 07:55:25 2016 +0100

    registrybackend: remove useless get_permission override

    The base class does the same

 gio/gregistrysettingsbackend.c | 8 --------
 1 file changed, 8 deletions(-)

commit 259a61ed2d71d517d538b74d0ce9814bd1e09168
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Feb 3 19:19:50 2016 +0100

    registrybackend: pass the event to the cache update

    This way the registry cache has more control to specify what has
    changed.

 gio/gregistrysettingsbackend.c | 38
 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

commit e3189527dc1ae5da614c5f4693d1240395e093b8
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Wed Feb 3 18:12:04 2016 +0100

    gio/gobject: Various introspection fixes

 gio/gdbusaddress.c    | 4 ++--
 gobject/gclosure.c    | 2 +-
 gobject/gsignal.c     | 2 +-
 gobject/gvaluetypes.c | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit c7ea434e2ce4e12a7d92dfbdff2b1e4002d78975
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Feb 3 13:07:52 2016 +0100

    registrybackend: properly propagate the partial key name

 gio/gregistrysettingsbackend.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 7522d5c9828da1dea86cc9878cd08c485290949f
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Feb 2 17:50:11 2016 +0100

    Updated Slovenian translation

 po/sl.po | 345
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 181 insertions(+), 164 deletions(-)

commit 927a4ed2f435cc7561b489807706f5f6da0fba23
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Tue Feb 2 11:13:08 2016 +0100

    gstring: Explictly annotate return-values with (transfer none/full)

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

 glib/gstring.c | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

commit f1a5e394b05e6f69a3926df960c623c57494a4e2
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Feb 2 14:48:22 2016 +0100

    registrybackend: rename touched flag to readable

    This is a flag used to understand if a key exists on the registry
    and if it is readable. It makes more sense to rename it as readable
    since anyway a key that does not exists anymore is a key that is
    not readable.

 gio/gregistrysettingsbackend.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

commit 5cc997f7c4d521bf824855c3a63b568186cbeb52
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Feb 2 09:15:10 2016 +0100

    registrybackend: close the key only if successfully opened

 gio/gregistrysettingsbackend.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit bf3f827ca1805519405904b4b929348510aa5b61
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Feb 2 08:25:29 2016 +0100

    registrybackend: use ptr_array_new_with_free_func

 gio/gregistrysettingsbackend.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 9098a7f9271492d1e1c359fdfec25da804f5bda2
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Feb 1 17:17:35 2016 +0100

    registrybackend: minor style cleanup

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

commit d268d9f86ad39328a20567ffa8b6e1cc7e1d0205
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Mon Nov 23 11:16:29 2015 +0100

    socket: Fix annotation of g_socket_receive_message

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

 gio/gsocket.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit ec173eb654cf054198dd4b21d87f1c750e5c3c98
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Sat Jan 30 20:57:44 2016 +0100

    application: Fix annoation of g_application_add_option_group

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

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

commit 169cfb250f2571624c57d074b829ca4005509ee6
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Feb 1 14:25:05 2016 +0100

    registrybackend: avoid signed/unsigned comparison warnings

 gio/gregistrysettingsbackend.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit b0776ddd1850f5ca91fe50c11311fe5c9c90cf53
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Feb 1 14:24:46 2016 +0100

    registrybackend: use G_DECLARE_FINAL_TYPE

 gio/gregistrysettingsbackend.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

commit 2d7cac366db997e67b7cdfb0538f6454538e0dce
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Mon Feb 1 06:20:03 2016 +0200

    Updated Bulgarian translation

 po/bg.po | 1128
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 574 insertions(+), 554 deletions(-)

commit 9183960df2ea975dc77595f7b408bf1d9254cd64
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Jan 31 22:25:10 2016 +0100

    Updated Spanish translation

 po/es.po | 109
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 57 insertions(+), 52 deletions(-)

commit c5931d1a16454eb0783d616ded6f33877b1e537f
Author: Hashem Nasarat <hashem@riseup.net>
Date:   Sun Jan 31 12:51:21 2016 -0500

    docs: fix grammar in Writing GLib Applications/Threads

 docs/reference/glib/programming.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95dd373024901afdf31c020a2cc7966032b18866
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Wed Apr 15 14:28:05 2015 +0200

    docs: better documentation for g_file_info_copy_into()

    The documentation of g_file_info_copy_into() was misleading. The
    attributes are not just copied, @dest_info is also cleared at the
    beginning. So any previously set attributes in @dest_info are lost.

    There was a bug in gedit about this function, where some metadata were
    not saved. So it might make sense to change the implementation to not
    clear @dest_info, and copy one by one the attributes from @src_info to
    @dest_info.

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

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

commit f14052461b47653213cbcbbca8eaba16ee38ca32
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Wed Apr 15 15:00:18 2015 +0200

    docs: GRegex: @start_position is in bytes

    The start_position arguments are passed to pcre_exec() as the
    startoffset, which is in bytes (not characters).

    I had recently a doubt about this, so it's better to document it.

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

 glib/gregex.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit a4ed89bf75190631087596be22f9eb10dc6e53ef
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Wed Apr 15 14:53:16 2015 +0200

    docs: improve doc of g_file_info_list_attributes()

    The name_space can be NULL.

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

 gio/gfileinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit dfd74a271db84726e114b1b891d6d39bd9925f5b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Jan 28 15:55:11 2016 +0800

    gwin32.c: Avoid a GCC warning

    Add a pair of braces to make things more clear, to avoid a warning
    when -Wparentheses is used.

    Reported by Ignacio Casel Quinteiro.

 glib/gwin32.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 42699e37bea10fc51dd1a79888dfd8edae84c70a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 27 21:05:31 2016 -0500

    gio: Include filename in error message

    I'm tired of seeing 'No such file or directory' in the logs without
    a hint as to what is actually wrong. Including the filename here
    may help me tracking down a bug in the continuous infrastructure.

 gio/glocalfileenumerator.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit d20e88fd114afb5cce17699ac2afea440a30f87d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jan 26 23:23:42 2016 +0800

    gwinhttpfile.c: Fix build on Visual Studio

    Visual Studio, at least the older versions, cannot use L on macros
    which
    are defined as a constant string, plus the L must be applied to
    all string
    literals here.  This does not look nice, but this is life...

 gio/win32/gwinhttpfile.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 56b0454ba560f693c96abe437952f19b372d90dc
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 15:41:08 2016 +0100

    registrybackend: fix warning

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

commit b57eac68e5d27c44f1e2c1836d56bcd8d64b836d
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 15:22:48 2016 +0100

    registrybackend: fix double-free error

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

commit df1ffe7e27927606cfefc94cdbb28fb660411749
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 14:35:31 2016 +0100

    registrybackend: remove :( from messages

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

commit 0200e4036c162476089c9359dd97d1c25b372840
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 13:26:41 2016 +0100

    registrybackend: simplify g_message_win32_error

 gio/gregistrysettingsbackend.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit bc85dee6b3f403f94b742461427903069aa00621
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 13:19:56 2016 +0100

    registrybackend: do not accept 0 as a windows error

    We might end up removing from the error stack the wrong error
    and this might be missleading

 gio/gregistrysettingsbackend.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit bad7e4a1149b9bad2385fe1818040f55f3e385c5
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 13:15:51 2016 +0100

    registrybackend: do not leak the watch data in case of failure

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

commit 9e805ffd4381cded7a53e29dc66d4a4b6d2b152d
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 10:57:44 2016 +0100

    winiconv: update to upstream version

    To update this code you need to fetch the last version of the code
    from: https://github.com/win-iconv/win-iconv

    Then you need to ensure 3 things:
     - the line ends are in unix format
     - some of the methods do not expose a const on the prototype
       refer to the commit b8c13a01b6bd5601eb3519dd3b20daed4bbc2e72
       on how to fix it
     - fix one uninitialized variable if not yet fixed upstream
       refer to 7e0cb48dee9a8ecd87d403b7941ad3209eee658c

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

 glib/win_iconv.c | 616
 +++++++++++++++++++++++++++++++++----------------------
 1 file changed, 371 insertions(+), 245 deletions(-)

commit 31aab1bd429605a54d3763e3bd0c96b8da45fe38
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 12:53:56 2016 +0100

    registrybackend: do not leak key and event if it cannot add the watch

 gio/gregistrysettingsbackend.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit a92d97ff1f61cf84289b1be2891c45cdf47298ed
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 12:21:48 2016 +0100

    registrybackend: more style fixes

    This is the never ending story

 gio/gregistrysettingsbackend.c | 137
 +++++++++++++++++++++--------------------
 1 file changed, 71 insertions(+), 66 deletions(-)

commit 1b5b0eff9a9d058d6db88109c524c352e118d98f
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 12:02:18 2016 +0100

    registrybackend: fix possible crash if cache_node is NULL

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

commit 67f6ede3e5cd5a99bb5d3c09df82224a67f2df66
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 11:46:37 2016 +0100

    registrybackend: remove space before ++

 gio/gregistrysettingsbackend.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 8f7aa273dea5d127249cb76d2f8a2ccc43802d28
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 11:42:05 2016 +0100

    registrybackend: fix possible mem leak

    If the parameters do not validate we would leak the memory.

 gio/gregistrysettingsbackend.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 305a9b12c974fa963f19fba42efeaeaabf7f5aae
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 10:13:02 2016 +0100

    winhttpfile: use glib format string macro

    Like this we avoid some downstream patching for msys2

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

commit a89629db1db6893a20cc52dbe85d2e89a4ba285f
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 10:10:39 2016 +0100

    registrybackend: use the glib format string macro

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

commit a159bc939d6068c16b5096a4085b7b669cc5ca40
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 26 09:00:35 2016 +0100

    registrybackend: more cleanups

 gio/gregistrysettingsbackend.c | 75
 +++++++++++++++++++++++++-----------------
 1 file changed, 45 insertions(+), 30 deletions(-)

commit 7256f2289a844ad7a4ec09e73eaaad47df601431
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Jan 25 16:12:59 2016 +0100

    registrybackend: more cleanups

 gio/gregistrysettingsbackend.c | 138
 +++++++++++++++++++++++------------------
 1 file changed, 78 insertions(+), 60 deletions(-)

commit a5e819c4c3eee7a27e162d2277cfed7e5feb2195
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Jan 25 16:01:45 2016 +0100

    registrybackend: style fixes

 gio/gregistrysettingsbackend.c | 425
 ++++++++++++++++++++---------------------
 1 file changed, 210 insertions(+), 215 deletions(-)

commit 3a201128c2775f49bb1c211059c2c0ae7c320a00
Author: Balázs Meskó <meskobalazs@gmail.com>
Date:   Mon Jan 25 11:58:07 2016 +0000

    Updated Hungarian translation

 po/hu.po | 156
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 80 insertions(+), 76 deletions(-)

commit 192781d4b5250b678c3ea6f28af878e9817f46c9
Author: Sebastian Geiger <sbastig@gmx.net>
Date:   Sun Jan 24 18:53:59 2016 +0100

    gregex: improve documentation for g_regex_new

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

commit 8c263008bbd9c1ce221276229e548d7b15dcb0d0
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jan 11 14:23:45 2016 +0000

    build: Calculate ABS_GLIB_RUNTIME_LIBDIR at build time

    Rather than calculating it at configure time. This means it can expand
    $libdir properly, and use the Make $(realpath) function rather than
    invoking the non-portable `readlink -f`.

    This fixes problems where `readlink` would be called on an invalid
    path
    (due to a variable not being expanded) and would evaluate to "", which
    would then cause things to be installed in the wrong place.

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

 configure.ac        |  4 ----
 gio/Makefile.am     |  6 ++++++
 glib/Makefile.am    | 13 +++++++++++++
 gobject/Makefile.am | 14 ++++++++++++++
 4 files changed, 33 insertions(+), 4 deletions(-)

commit 57f9c590f94bd74d1b3b72656fd1cc1c76000980
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jan 19 13:03:41 2016 +0800

    Visual Studio builds: Include pcre_version.c in build

    ... for builds using the PCRE bundled with the GLib sources, so that
    pcre_version() will also be defined, and be exported so that the
    regex test program
    will properly link when the bundled PCRE sources are used.

    This is a follow-up commit to 476f30a.

 build/win32/vs10/glib-build-defines.props  |  6 +++++-
 build/win32/vs10/glib.vcxproj.filtersin    |  3 +++
 build/win32/vs10/glib.vcxprojin            | 14 ++++++++++++++
 build/win32/vs9/glib-build-defines.vsprops |  4 ++++
 build/win32/vs9/glib.vcprojin              | 10 ++++++++++
 5 files changed, 36 insertions(+), 1 deletion(-)

commit 3c0cddfe80990a653ff7b38e1701d3950df642b6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Jan 19 17:02:03 2016 +0000

    gdbusobjectmanagerserver: Clarify recommended ObjectManager paths

    Otherwise people might try to export the object manager at ‘/’,
    which
    doesn’t work. And I have no intention of making it work.

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

 gio/gdbusobjectmanagerserver.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 1725580f2653290c889140b1366103134acb79ad
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Jan 19 17:01:14 2016 +0000

    gdbusobjectmanagerserver: Convert a DocBook link to Markdown

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

commit 6e752d3f8b918e524fbffe3ca6433418092aa415
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 18 12:27:38 2016 -0500

    GLib 2.47.5

 NEWS         | 31 ++++++++++++++++++++++++++++++-
 configure.ac |  2 +-
 2 files changed, 31 insertions(+), 2 deletions(-)

commit ceec96146ef734bd568c3085a4dff8d60148e13d
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Mon Jan 18 20:53:50 2016 +0100

    Updated German translation

 po/de.po | 42 +++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

commit 85a23529ab8e3de4656c134fc3a380db91b1d762
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Jan 18 18:48:42 2016 +0000

    Revert "make *_get_instance_private const-compliant"

    This reverts commit a3a9664ed202303b899ca55625877542309d1a1f.

    Constifying the autogenerated get_instance_private functio makes C++
    compilers and GCC with -Wcast-qual warn during compilation of GLib and
    projects depending on GLib.

    Since using const with GObject instances is not a common coding
    practice, it's better to revert than trying to make every sigle GType
    function const-safe (and possibly add more compiler warnings in the
    process).

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

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

commit 617189f28c5d3eb05d7d09fe453b6f98c87d8a40
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Jan 18 18:46:12 2016 +0000

    Revert "G_DECLARE_*: be const-compliant"

    This reverts commit 52f23db74ad58b822bafb0fdcac106489d864f8c.

    Constifying these macros make C++ compilers and GCC with -Wcast-qual
    warn during compilation of GLib and projects depending on GLib.

    Since using const with GObject instances is not a common coding
    practice, it's better to revert than trying to make every sigle GType
    function const-safe (and possibly add more compiler warnings in the
    process).

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

 gobject/gtype.h | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 476f30a00475f9643fc1638b9d9abf52b308b100
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Mon Jan 18 18:30:58 2016 +0000

    regex test: Fix with --with-pcre=internal

    We were linking with the wrong path for the internal libpcre, and
    furthermore the function pcre_version was declared but never defined.

 glib/pcre/Makefile.am    |  1 +
 glib/pcre/pcre_version.c | 95
 ++++++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/Makefile.am   |  2 +-
 3 files changed, 97 insertions(+), 1 deletion(-)

commit 9b8a34b5b33cb631f8abde42227841cfe099af74
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Fri Jan 15 17:58:33 2016 +0000

    regex test: Assert /(?P<sub>foo)\\g<sub/ changed behaviour at 8.35,
    not 8.38

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

 glib/tests/regex.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit db90987990bf303d30668c966da9bcfdeb3ac174
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Fri Jan 15 17:56:40 2016 +0000

    regex test: Check the expected PCRE version at runtime

    We might be built against a newer version than we're run against.

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

 glib/tests/Makefile.am | 13 ++++++++++++-
 glib/tests/regex.c     | 37 +++++++++++++++++++++++++++++--------
 2 files changed, 41 insertions(+), 9 deletions(-)

commit c3d6934f1838ae7c0d961c3d205f4b59789478ee
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Jun 25 12:58:14 2015 +0100

    gio: Add DTLS interfaces

    Add a new GDtlsConnection interface, plus derived
    GDtlsClientConnection
    and GDtlsServerConnection interfaces, for implementing Datagram TLS
    support in glib-networking.

    A GDtlsConnection is a GDatagramBased, so may be used as a normal
    datagram socket, wrapping all datagrams from a base GDatagramBased in
    DTLS segments.

    Test cases are included in the implementation in glib-networking.

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

 docs/reference/gio/gio-docs.xml     |   3 +
 docs/reference/gio/gio-sections.txt |  81 +++
 docs/reference/gio/gio.types        |   3 +
 gio/Makefile.am                     |   6 +
 gio/gdtlsclientconnection.c         | 273 ++++++++++
 gio/gdtlsclientconnection.h         |  75 +++
 gio/gdtlsconnection.c               | 975
 ++++++++++++++++++++++++++++++++++++
 gio/gdtlsconnection.h               | 191 +++++++
 gio/gdtlsserverconnection.c         |  95 ++++
 gio/gdtlsserverconnection.h         |  69 +++
 gio/gdummytlsbackend.c              | 109 ++++
 gio/gio.h                           |   3 +
 gio/giotypes.h                      |   3 +
 gio/gtlsbackend.c                   |  68 ++-
 gio/gtlsbackend.h                   |  14 +
 gio/gtlsconnection.c                |   2 +
 po/POTFILES.in                      |   3 +
 17 files changed, 1970 insertions(+), 3 deletions(-)

commit e3ab6ab38a69fe20f182703052387fa1cad21205
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 18 16:04:45 2016 +0800

    Visual Studio builds: Rearrange build configs

    This is a follow-up commit for commit 82c2461, where the default
    build is
    to use the PCRE that is installed in the system, if it is available
    and is
    not overridden with --with-internal-pcre.

    For Visual Studio builds, this means that the new 'Debug' and
    'Release'
    configs will now use PCRE that is found on the system, which were
    renamed
    from the '*_ExtPCRE' configs; and that there are now
    'Debug_BundledPCRE'
    and 'Release_BundledPCRE' configs which make use of the PCRE that is
    supplied with the GLib sources, which, replaces the former 'Debug' and
    'Release' configs.

 build/win32/vs10/glib.sln       | 248 +++++++++---------
 build/win32/vs10/glib.vcxprojin | 550
 ++++++++++++++++++++--------------------
 build/win32/vs9/glib.sln        | 248 +++++++++---------
 build/win32/vs9/glib.vcprojin   | 336 ++++++++++++------------
 4 files changed, 691 insertions(+), 691 deletions(-)

commit 407a4e9e4e02c82a2e6371958487cd0a7ad704d3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 18 14:08:40 2016 +0800

    tests: Fix regex test conditions

    Commit 855594c changed the expected error for the regex
    /(?P<sub>foo)\g<sub/ for PCRE 8.38, but actually PCRE changed
    the error
    raised by this invalid regex in 8.37, so we should check for the
    new error
    from 8.37 and upwards.

    Please see comments #21 and #22 of bug 740573 regarding this commit.

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

commit b7774b182dcd4cb129a4af20d624b4168d28ff90
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Fri Apr 17 16:04:31 2015 +0000

    Make gnulib vfprintf return the number of bytes actually written

    To be honest, i don't remember what problems were caused by it
    returning the
    number of bytes it *wanted* to write instead of the number of bytes
    it actually wrote. Probably related to the fact that fwrite could
    independently fail, and ignoring its return value ignores that error.

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

 glib/gnulib/printf.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 82c2461e3d719dfe11361c07502d1cf8a998c121
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Jan 5 12:20:20 2016 +0000

    Use system PCRE unless --with-pcre=internal is given

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=740573
    Reviewed-by: Emmanuele Bassi <ebassi@gnome.org>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 NEWS         | 7 +++++++
 README.in    | 7 +++++++
 configure.ac | 4 +++-
 3 files changed, 17 insertions(+), 1 deletion(-)

commit 855594c4de5acaea53bb413c6302d19ff7befd17
Author: Simon McVittie <smcv@debian.org>
Date:   Wed Dec 23 15:03:16 2015 +0000

    regex test: expect ASSERTION_EXPECTED for /(?(?<ab))/ with PCRE 8.38

    PCRE 8.38 changed the parsing of this invalid regex. It still fails,
    but with a different error (since PCRE r1539,
    <http://vcs.pcre.org/pcre?view=revision&revision=1539>).

    The regex /(?P<sub>foo)\g<sub/ used to raise MISSING_BACK_REFERENCE
    but
    now raises MISSING_SUBPATTERN_NAME_TERMINATOR, so we can still have a
    test for the latter.

    Signed-off-by: Simon McVittie <smcv@debian.org>
    Reviewed-by: Emmanuele Bassi <ebassi@gnome.org>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=759808

 glib/tests/regex.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 86c5d8978d75f88aaa14ab8ed6186212abcb8f19
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 13 10:50:46 2016 -0500

    GDBusMethodInvocation: document behaviour change

    We changed the behaviour of this API to adapt to a change in the D-Bus
    specification.  Document the new behaviour, along with the time of the
    change.

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

 gio/gdbusmethodinvocation.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit dbea81b02dc17f3e1935cdeb712d2728e3386812
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Fri Oct 30 11:24:19 2015 +0100

    gdbus: don't send unexpected replies

    gdbus sets NO_REPLY_EXPECTED when no callback is given to
    g_dbus_connection_call(). It makes sense that it also handles
    the server
    side correctly by discarding replies to clients that don't want one.

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

 gio/gdbusmethodinvocation.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 5dbb3453d79acaf8cec5aa03597f42701c5a2a74
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Tue Jan 12 22:30:05 2016 +0200

    Updated Lithuanian translation

 po/lt.po | 82
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 41 insertions(+), 41 deletions(-)

commit 6b577196eed0754d2805fd48caa64f58f9bb8ee4
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jan 11 16:07:06 2016 +0000

    Deprecate GLIB_GNU_GETTEXT macro, use upstream gettext instead

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

 m4macros/glib-gettext.m4 | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 3add5e2837d83b253acfd861dbf8bb980076e4f0
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Sep 26 14:01:16 2014 +0100

    gio: Document thread safety of the streams API

    Specifically, GIOStream and the TLS connection streams.

    Includes wording adapted from suggestions by Dan Winship
    <danw@gnome.org>.

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

 gio/ginputstream.c         |  5 ++++-
 gio/giostream.c            | 22 ++++++++++++++++++++++
 gio/goutputstream.c        |  5 ++++-
 gio/gtlsclientconnection.c |  4 ++++
 gio/gtlsconnection.c       |  9 +++++++--
 gio/gtlsserverconnection.c |  4 ++++
 6 files changed, 45 insertions(+), 4 deletions(-)

commit 18fe6d83125f2cd2a3e355396f90ea979e42b37d
Author: David King <amigadave@amigadave.com>
Date:   Sun Jan 10 23:20:37 2016 +0000

    docs: add Since for g_str_to_ascii

 glib/gtranslit.c | 2 ++
 1 file changed, 2 insertions(+)

commit 4e78a0a9df45961701d224326fbb9b93dcecf134
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Jan 10 22:44:24 2016 +0000

    Revert "Use upstream gettext instead the glib one"

    This causes several problems:
    - Compilation in FreeBSD with --enable-gtk-doc broke
    - Modules that still use the AM_GLIB_GNU_GETTEXT macro
      doesnt compile anymore because /usr/share/glib-2.0/gettext
      is not filled with the correct files, as this was done in
      the glib custom po/Makefile.in.in

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

    This reverts commit e5c752371c7fb1343eff27b5f1d0bcbef4e333b9.

 Makefile.am          |   1 -
 configure.ac         |  14 ++-
 gio/Makefile.am      |   1 -
 glib/Makefile.am     |   1 -
 m4macros/Makefile.am |  11 +--
 po/Makefile.in.in    | 268
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 po/Makevars          |  89 -----------------
 7 files changed, 281 insertions(+), 104 deletions(-)

commit edfb3ead7793dc3e7fdc0f8193126d1a5079be1a
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Sun Jan 10 22:07:26 2016 +0000

    Updated Swedish translation

 po/sv.po | 124
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 62 insertions(+), 62 deletions(-)

commit e5c752371c7fb1343eff27b5f1d0bcbef4e333b9
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Jul 15 20:37:44 2014 +0000

    Use upstream gettext instead the glib one

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

 Makefile.am          |   1 +
 configure.ac         |  14 +--
 gio/Makefile.am      |   1 +
 glib/Makefile.am     |   1 +
 m4macros/Makefile.am |  11 ++-
 po/Makefile.in.in    | 268
 ---------------------------------------------------
 po/Makevars          |  89 +++++++++++++++++
 7 files changed, 104 insertions(+), 281 deletions(-)

commit c1e2a8d72766323181c804b47547242bd70460e9
Author: Matt Watson <mattdangerw@gmail.com>
Date:   Fri Jan 8 16:06:53 2016 -0800

    resource file: add cancel to dummy monitor

    gfilemonitor has a cancel vfunc and will call into the in dispose.
    If we don't stub it out we get a segfault.

 gio/gresourcefile.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 50645b724a3b43767fd57e4af53365d0cd270382
Author: Daiki Ueno <dueno@src.gnome.org>
Date:   Tue Jan 5 11:07:05 2016 +0900

    gsettings: Install gettext ITS rules

    Recent gettext has a feature to allow consumer projects to supply
    their
    own string extraction rules for XML files, in ITS format.

    Gettext still ships the rule for *.gschema.xml, but it would be better
    maintained in the upstream project.

    See the gettext documentation for details:
    http://www.gnu.org/software/gettext/manual/html_node/Preparing-ITS-Rules.html

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

 gio/Makefile.am |  3 +++
 gio/gschema.its | 25 +++++++++++++++++++++++++
 gio/gschema.loc | 10 ++++++++++
 3 files changed, 38 insertions(+)

commit ea5ca11761b945cb27f685254afec5d3d56f2670
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Fri Nov 27 17:54:07 2015 +0100

    gio: Document that g_inet_address_new_* return value must be
    g_object_unref'ed

 gio/ginetaddress.c | 4 ++++
 1 file changed, 4 insertions(+)

commit b6edac5aca160704f2bfbba541beee5b1f994a18
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Thu Nov 26 14:26:27 2015 +0100

    glib: Clarify g_warn_if_reached API doc

    Its documentation mentions that it logs a 'critical warning',
    but since
    the macro implementation calls g_warn_message(), it does not log a
    critical message, but a regular warning.

 glib/gmessages.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b44fba25fbad89c105795a10a569fe422e4d1c44
Author: Stephan Bergmann <sbergman@redhat.com>
Date:   Wed Jan 6 16:25:49 2016 +0100

    G_LIKELY/_UNLIKELY macros need more parentheses

    ...for cases like

      #include "glib.h"
      #define COMMA ,
      void f(void) { if (G_LIKELY(0 COMMA 1)); }

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

 glib/gmacros.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e91e811f020569fe3dae876ffa704fd3e452a33b
Author: Rafael Fontenelle <rffontenelle@gmail.com>
Date:   Tue Jan 5 20:08:06 2016 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 320
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 167 insertions(+), 153 deletions(-)

commit 786b4c8b8782e8ce62085595a8a87838307af8ba
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jan 5 15:08:18 2016 +0800

    gwin32.c: Fix build on MinGW

    Apparently unlike mingw-w64 and Visual Studio, MinGW does not
    come with
    winternl.h, which defines NTSTATUS, so we need to include ntdef.h
    instead
    on MinGW for NTSTATUS.

    Based on patch by CÃ©dric Krier.

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

 glib/gwin32.c | 3 +++
 1 file changed, 3 insertions(+)

commit 0309d645ad8149ed6e8bdb74a5c7272eea15546b
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Sat Jan 2 12:10:13 2016 +0000

    Updated German translation

 po/de.po | 323
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 169 insertions(+), 154 deletions(-)

commit 2e918501db4175aa9fc0b1daafbf2e270a7f6f8f
Author: Marek Černocký <marek@manet.cz>
Date:   Thu Dec 24 14:40:22 2015 +0100

    Updated Czech translation

 po/cs.po | 328
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 170 insertions(+), 158 deletions(-)

commit 30788dff5b940d34b4ce0594a7109f972b38686d
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Wed Dec 23 16:48:10 2015 +0000

    gutf8: Fix typo in GIR annotation for g_utf8_to_ucs4()

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

commit 42b160b19f18ccb86fecac4553242ebd7ee8b78b
Author: Steven Chamberlain <steven@pyro.eu.org>
Date:   Tue Dec 22 09:28:36 2015 +0100

    gio: drop obsoleted lock causing deadlocks on FreeBSD

    I think it is a recursion from the GUnixMountMonitor constructor, to a
    GLocalFileMonitor on /etc/fstab, and into GUnixMountMonitor again, now
    with a mutex already held, so it deadlocks.
    https://bugzilla.gnome.org/page.cgi?id=traceparser/trace.html&trace_id=235354

    That mutex in glocalfile.c:g_local_file_find_enclosing_mount() doesn't
    seem necessary any more IMHO.  Inside it, only 'mount' is modified,
    but
    that's just a stack variable local to this function.  When
    klass->get_mount_for_mount_path is called, it's given one const
    parameter and the other is unused, so they're unchanged. 'klass'
    doesn't seem it could be modified either inside that function.

    It doesn't recurse infinitely, but seems to work correctly and
    pass the
    testsuite after this change.

    The FreeBSD project already applied my patch in their ports tree, and
    their users seem happy with it.

    See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712848#64
    and https://bugzilla.gnome.org/show_bug.cgi?id=753378

 gio/gunionvolumemonitor.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit bec6a9a3003d95077ad23c235a9313d79c6a1c4f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Dec 21 14:54:42 2015 +0800

    g_application_run(): Fix on Windows When Using Bindings

    As g_win32_get_command_line() calls CommandLineToArgvW() to acquire
    the
    arguments passed into a GApplication program, it actually returns the
    whole command line which is used to invoke the program, including the
    script interpreter and its flags when a script using GNOME bindings
    (e.g. PyGObject and so on) is being invoked.

    The issue here is that g_application_run() would most probably have
    trouble in the scripts scenario on Windows as it is likely unable to
    "recognize" the script interpreter, causing such scripts to fail
    to run.

    Largely based on the patch by Ray Donnelly <mingw.android@gmail.com>.

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

 gio/gapplication.c | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

commit 5f4b92202b2a36097ffa54fc7dbf96f692074069
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Dec 21 12:21:03 2015 +0100

    win32: fix warnings avoid discarding const qualifier

 gio/win32/gwin32fsmonitorutils.c | 4 ++--
 gio/win32/gwin32fsmonitorutils.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 07e55c049dd1d12ab5eff8397cea65587c3dc54f
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Dec 20 15:02:49 2015 +0200

    Updated Lithuanian translation

 po/lt.po | 386
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 198 insertions(+), 188 deletions(-)

commit aa9a33b0dabb68a6586956d6d4aa0c861e534321
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Wed Dec 16 11:34:41 2015 -0500

    GApplication: Avoid getting the default context repeatidly

    This avoids getting a global lock on every main loop iteration.

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

 gio/gapplication.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 1f341afa9acfb05afb02b73a4dff8992e0464aaa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 16 09:16:35 2015 -0500

    More updates

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit a379a0ad59df0b377bd7b047d2e5a56417252992
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Jul 28 00:14:08 2015 -0700

    gapplication: Acquire the main context before running

    Otherwise, we'll acquire it on every loop iteration, which can
    leave us
    vulnerable to racing another thread for the acquisition of the main
    context.

    This can break methods like g_main_context_invoke, which try to
    acquire
    a context to figure out if it can invoke the method synchronously or
    need to defer to an idle. In these cases, it isn't guaranteed that the
    invocation function will be invoked in the default main context,
    e.g. the one that GApplication is holding.

    This also matches what GMainLoop is doing.

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

 gio/gapplication.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 5e73ca974d37ce2cc2204d1fdf0bf13284668963
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 16 06:30:53 2015 -0500

    2.47.4

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

commit ce985f13f475fbb2b1f8c7d5a1e5ff1fa12a8e81
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat May 2 23:46:06 2015 +0000

    Enable contenttype test on W32, tweak it to pass (mostly)

    * On W32 use a real directory (SYSTEMROOT) instead of '/etc/'
    * Disable test_symbolic_icon() as it can't be passed (symbolic icons
    are not
      really supported)

    * PowerPoint/Gettext test still fails, presumably because msvcrt
    qsort() moves
      the entires (both have the same priority)

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

 gio/tests/Makefile.am   |  2 +-
 gio/tests/contenttype.c | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)

commit b86e46e8e7f89f6866cb2fbb917ae00ea9431185
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat May 2 23:27:31 2015 +0000

    xdgmime: Finer handling for cases where mmap() is not available

    Allocate an empty cache object, check cache objects for being empty
    before using them.
    Otherwise the code will re-read cache every 5 seconds, as NULL cache
    does not trigger the code that stores mtime, which makes the cache
    file appear modified/unloaded permanently.

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

 gio/xdgmime/xdgmimecache.c | 91
 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 74 insertions(+), 17 deletions(-)

commit 1513efc904cfb42ed5305fd77b40e1c399380d40
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Oct 15 23:26:41 2013 -0700

    Add GParamSpec object ref management annotations

    Add ref-func, unref-func, set-value-func, and get-value-func
    annotations to
    GParamSpec so that it can be managed generically as a fundamental
    type with
    introspection.

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

 gobject/gparam.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 04c56cf6e77488ce7447e7a99afbada4711a8916
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 7 23:34:42 2015 -0400

    gsettings: Don't translate ""

    The empty msgid is traditionally used to store po file metadata,
    so calling gettext with an empty msgid is not the right thing
    to do.

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

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

commit 30359e740953b596d6c3d980dba36dd131681a1f
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 30 10:13:46 2015 -0500

    file monitors: reorder some code to avoid segfault

    We must initialise '->source' before we use fields inside of it.

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

 gio/glocalfilemonitor.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit c2d0c40bffa02a0981c03115179c3373a057f1ec
Author: Stanislav Brabec <sbrabec@suse.com>
Date:   Mon Nov 23 20:47:44 2015 +0100

    Fix gettext use

    gettext() calls inside library have to use gi18n-lib.h.

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

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

commit 4cda92b587232f7d25cab4b7ef7ba043aad8e506
Author: Roman Lebedev <lebedev.ri@gmail.com>
Date:   Thu Oct 29 14:41:48 2015 +0300

    glib-compile-resources: do not leak c_name

    As per #578363, "if one requests e.g. strings via
    GOptionEntry.arg_data
    then those are strduped and needs to be free'ed by the application."

    Fixes following leak:

    =================================================================
    ==29426==ERROR: LeakSanitizer: detected memory leaks

    Direct leak of 10 byte(s) in 1 object(s) allocated from:
        0 0x7f3ab783d37a in malloc
        (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x9437a)
        1 0x7f3ab70f7c82 in g_malloc
        /home/lebedevri/src/glib/glib/gmem.c:94
        2 0x7f3ab70f7f60 in g_malloc_n
        /home/lebedevri/src/glib/glib/gmem.c:330
        3 0x7f3ab713258e in g_strndup
        /home/lebedevri/src/glib/glib/gstrfuncs.c:425
        4 0x7f3ab709c86b in strdup_len
        /home/lebedevri/src/glib/glib/gconvert.c:864
        5 0x7f3ab709c966 in g_locale_to_utf8
        /home/lebedevri/src/glib/glib/gconvert.c:905
        6 0x7f3ab7103c32 in parse_arg
        /home/lebedevri/src/glib/glib/goption.c:1276
        7 0x7f3ab71066fb in parse_long_option
        /home/lebedevri/src/glib/glib/goption.c:1670
        8 0x7f3ab7108047 in g_option_context_parse
        /home/lebedevri/src/glib/glib/goption.c:1997
        9 0x408532 in main
        /home/lebedevri/src/glib/gio/glib-compile-resources.c:629
        10 0x7f3ab6c72b44 in __libc_start_main
        (/lib/x86_64-linux-gnu/libc.so.6+0x21b44)

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

 gio/glib-compile-resources.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 3272267b99670e1bfccf5aebe97ead5e6f8b1bab
Author: Christian Hergert <christian@hergert.me>
Date:   Sun Apr 13 17:17:59 2014 -0700

    macros: add G_GNUC_CHECK_VERSION() for compiler checks.

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

 docs/reference/glib/glib-sections.txt |  1 +
 glib/docs.c                           | 15 +++++++++++++++
 glib/gmacros.h                        |  6 ++++++
 3 files changed, 22 insertions(+)

commit 21b1c390a3ce1f7e2816c6309f161c4b92470c46
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 30 15:39:23 2015 +0000

    GApplication: destroy the impl on shutdown

    It's theoretically possible (and see in the wild) for D-Bus
    messages to
    come in to the application after shutdown() has been called and while
    we're draining out the lingering events in the main context.

    Prevent this from happening by ensuring we unregister our objects on
    D-Bus during the shutdown process.

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

 gio/gapplication.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit aa16359986a1cf5a77a70cb4f92e1f99de233572
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 16 12:36:58 2015 +0100

    Stop supporting non-POSIX getpwuid_r, getgrgid_r

    Bug 13403 introduced support for the non-POSIX variants of these APIs
    found on a system called "DG/UX".  Meanwhile, the complicated checks
    here are breaking cross-builds on systems that we actually care about.

    Remove the complicated checks and replace them with AC_CHECK_FUNCS.
    Remove the resulting dead code from a couple of .c files.

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

 configure.ac         | 84
 ++--------------------------------------------------
 gio/glocalfileinfo.c |  8 ++---
 glib/gutils.c        | 22 ++------------
 3 files changed, 7 insertions(+), 107 deletions(-)

commit c935237e75c4ed770d9efc9e8bd3be109889d994
Author: Marius Gedminas <marius@gedmin.as>
Date:   Fri May 8 02:54:00 2015 -0400

    glib.py: Fix Python 3 TypeError in gdb pretty-printers

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

 glib/glib.py | 4 ++++
 1 file changed, 4 insertions(+)

commit c97729532f54043edb959a2bd2ca6c5df5135658
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Dec 13 19:32:39 2015 +0100

    W32: fix uninitialized var in g_app_info_get_all_for_type

    Compare with the handler->app, not with the app var which is not
    initialized yet

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

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

commit 61136c2c7333a937adb20a4a43f32e66bf89c2f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 14 07:43:24 2015 -0500

    Trivial doc comment fix

    Use the same Since: syntax throughout.

 glib/gunicode.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit e9c9ff607c024b6daecccb577923c62c0f63cf63
Author: Andrey Gursky <andrey.gursky@e-mail.ua>
Date:   Fri Nov 20 03:25:28 2015 +0100

    Add missing checks for gnulib vasnprintf()

    Commit 212e4232e7520b2e328e3e965ed792e17b12e144 introduced a big
    update
    of gnulib. Necessary changes to configure.ac from old gnulib commit
    e8e63d1b31bca6c82713cba490b21a861abb24b5 have been forgotten. Actually
    available functions are not discovered by autotools.

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

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b3e0caa3e3a2c06e61f49f62112ca9b7f94840db
Author: Sebastian Rasmussen <sebras@gmail.com>
Date:   Wed Dec 2 21:12:12 2015 +0000

    Updated Swedish translation

 po/sv.po | 511
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 261 insertions(+), 250 deletions(-)

commit 244f9e66f97e37c9a1570e3d975f0d63b34ae4cd
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Dec 2 21:23:10 2015 +0800

    build/win32: Add NMake Makefile module for building tests and
    introspection

    This adds a NMake Makefile module that can be used for building
    tests and
    introspection using, NMake.  This is not yet distributed in the
    main GLib
    tarballs, but this is placed here as the base location as this is
    intended to be used in projects that support Visual Studio builds and
    support the build of tests and/or introspection under Visual Studio
    using
    NMake.

 build/win32/detectenv-msvc.mak | 76
 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

commit 80dcec234c74c073c72bceea9731006b525aa576
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Dec 2 21:04:43 2015 +0800

    config.h.win32.in: Clean up a bit

    Remove the HAVE_*INLINE items from here as well, since 'inline' is
    unconditionally defined in gmacros.h.

 config.h.win32.in | 17 -----------------
 1 file changed, 17 deletions(-)

commit a81568273c2fedf6ac435dcd51731f8e79840694
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Dec 1 12:57:02 2015 +0000

    docs: Be more precise on the use of set_resource_base_path()

    The current wording is a bit vague on when to call
    set_resource_base_path() in a GApplication implementation.

 gio/gapplication.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit cfdd4cabe793d897f6dafd61391374099cd5ea1e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 30 11:22:17 2015 +0800

    glib/glibconfig.h.win32.in: Clean up a bit further

    Also get rid of the items regarding G_HAVE_*INLINE as they aren't used
    anymore as they are removed from configure.ac.

    Thanks to John Emmas and desrt for the earlier patch for getting
    rid of the C4005 warnings.

 glib/glibconfig.h.win32.in | 12 ------------
 1 file changed, 12 deletions(-)

commit f2fb877ef796c543f8ca166c7e05a434f163faf7
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 27 11:31:41 2015 -0500

    glibconfig.h.win32.in: remove G_CAN_INLINE

    We now define this unconditionally in gmacros.h.

    Thanks to John Emmas for the tip.

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

 glib/glibconfig.h.win32.in | 2 --
 1 file changed, 2 deletions(-)

commit ec6971b864a3faffadd0bf4a87c7c1b47697fc83
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 27 11:27:51 2015 -0500

    gtypes.h: move G_STATIC_ASSERT to function scope

    It seems that some compilers get upset if this is done at global
    scope,
    so let's move it to function scope where we know it works.

 glib/gtypes.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a266ac62ea1e4deb7edd9332b87b29097607d7c7
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 26 09:25:39 2015 -0500

    tests: fix a test on 32-bit builds

    We were trying to squeeze 64-bit test vectors into gsize, which
    is fine
    on 64bit systems but doesn't work very well on 32-bit.

    Change that to a guint64.

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

commit 978779044844f9ff793c10395443639cac964e31
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 25 21:37:13 2015 -0500

    GApplication: improve docs

    Spell out which GVariant format strings to use for which
    commandline option types. I just wasted some time debugging
    this in an application.

 gio/gapplication.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit db641e32920ee8b553ab6f2d318aafa156e4390c
Author: Evangelos Foutras <evangelos@foutrelis.com>
Date:   Wed Nov 25 23:29:18 2015 +0200

    GDBusProxy: Fix a memory leak during initialization

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

 gio/gdbusproxy.c | 1 +
 1 file changed, 1 insertion(+)

commit be225b76a7c362b61c49cd81c4081be98b510aab
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 25 09:14:30 2015 -0500

    GLib 2.47.3

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

commit ba12fbf8f8861e634def9fc0fb5e9ea603269803
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 25 08:48:06 2015 -0500

    gutils: g_bit_ inlines: add visibility macros

    My careful efforts to preserve the exporting of these symbols on
    our ABI
    was thwarted by our symbol visibility filtering.  Let's fix that.

 glib/gutils.h | 3 +++
 1 file changed, 3 insertions(+)

commit 4f18c671ab8c7d313a1b97f9aff4616dee73bb2e
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 24 18:44:45 2015 +0000

    GLib 2.47.2

 NEWS         | 37 +++++++++++++++++++++++++++++++++++++
 configure.ac |  4 ++--
 2 files changed, 39 insertions(+), 2 deletions(-)

commit 398c048c66e71ec52a1799ea6fbd4c3b1554ec5e
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 6 13:08:41 2015 -0500

    docs: remove GDBusObjectManager example

    This example has been causing on-and-off build breaks for quite some
    time.  In this case, the code for copying the generated content
    into the
    main docs of GIO is causing problems with srcdir != destdir builds
    (due
    to the files also being copied from the read-only srcdir during
    distchecks).

    We could probably work around this problem yet again, but since
    there is
    no real benefit to having this content included, so let's remove it.

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

 configure.ac                                       |   1 -
 docs/reference/gio/Makefile.am                     |  21 +--
 .../gio/gdbus-object-manager-example/.gitignore    |   1 -
 .../gio/gdbus-object-manager-example/Makefile.am   |  67 ---------
 .../gdbus-object-manager-example-docs.xml          |  17 ---
 .../gdbus-object-manager-example-sections.txt      | 161
 ---------------------
 .../gdbus-object-manager-example.types             |  10 --
 docs/reference/gio/migrating-gdbus.xml             |  29 +---
 8 files changed, 3 insertions(+), 304 deletions(-)

commit 69003a0751971275b9cb32ac345e0d0c15c81ecd
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Mon Nov 23 14:58:36 2015 +0000

    Updated Greek translation
    (cherry picked from commit bf0f0135a32f1ec744ac951d3b759d592ed36872)

 po/el.po | 310
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 155 insertions(+), 155 deletions(-)

commit 7bc6f021d7b65fd61194f366077efb1faafa96dc
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 17 13:29:35 2015 -0500

    gmacros: fix unguarded use of __STDC_VERSION__

    According to the C spec, any undefined identifier used in a #if
    expression is taken to have a numerical value of zero.

    Commit db2367e8782d7a39fc3e93d13f6a16f10cad04c2 introduced an #i
    statement which depended on this behaviour.

    gcc has a -Wundef option which warns about depending on this
    behaviour,
    and unfortunately there are projects that are using -Werror=undef in
    builds that include our headers.

    Adding a check for defined(__STDC_VERSION__) before using the macro is
    enough to silence gcc.

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1ee2db4a286e4980213a849a13a9f46b5a0dd654
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Nov 17 18:48:06 2015 +0100

    Updated Spanish translation

 po/es.po | 531
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 272 insertions(+), 259 deletions(-)

commit f87e002313d566dcce71a9aba040d22ddb5c1e80
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 16 16:57:38 2015 -0500

    Fix g_strerror() on non-glibc

    When using one of the codepaths that copies the error string into buf,
    make sure the string gets strdup() afterward.

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

 glib/gstrfuncs.c | 2 ++
 1 file changed, 2 insertions(+)

commit 03cb2eb088a79b7849eb526e0e1f3e2f4ee5b2e4
Author: GNOME Translation Robot <gnome-sysadmin@gnome.org>
Date:   Mon Nov 16 18:20:41 2015 +0000

    Added Scottish Gaelic translation

 po/LINGUAS |    1 +
 po/gd.po   | 4416
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 4417 insertions(+)

commit db2367e8782d7a39fc3e93d13f6a16f10cad04c2
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 9 11:36:10 2015 -0500

    GLib: clean up the "inline" mess once and for all

    It's been a long time since we've been unconditionally saying "static
    inline" in GLib headers without complaints so it's safe to assume that
    all compilers that we care about support this.

    One thing that is not yet totally supported is the unadorned use
    of the
    word "inline".  Depending on the flags (-std=c89, for example),
    even GCC
    will complain about this.  Detect missing C99 support and define
    "inline" to "__inline" in that case.  Some research shows "__inline"
    appears to be the most widely-supported keyword here, but we may
    need to
    tweak this if we get some reports of breakage.

    Clean up all of the configure checks around this and define
    G_CAN_INLINE
    unconditionally.  Unfortunately, we must assume that some people are
    still using G_IMPLEMENT_INLINES, we must continue to implement that
    (including undefining G_CAN_INLINE and redefining G_INLINE_FUNC) if
    requested.

    It is not our intent to break existing users of the old-style
    G_INLINE_FUNC approach and if that has happened, we may need to make
    some further adjustments.

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

 configure.ac   | 105
 ---------------------------------------------------------
 glib/docs.c    |  19 +++++------
 glib/gmacros.h |  21 ++++++++++++
 glib/gutils.h  |  35 -------------------
 4 files changed, 30 insertions(+), 150 deletions(-)

commit 9834f79279574e2cddc4dcb6149da9bd782dd40d
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 9 16:12:18 2015 +0000

    gutils: clean up bit funcs inlining mess

    gutils.h and gutils.c define three utility functions as inlines
    that are
    also exported via the ABI.  This is done via complicated G_INLINE_FUNC
    and G_IMPLEMENT_INLINES logic.

    In order to be able to remove this mess, we create a another
    convoluted
    but slightly cleaner approach: write straight-up inline versions
    of the
    functions named _impl() in the header.  Define macros with the
    "public"
    function names that call these inlines.  From the .c file, export the
    ABI versions of these functions, implemented using the _impl()
    version.

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

 glib/gutils.c | 31 ++++++++++++++++++++++++-------
 glib/gutils.h | 53 ++++++++++++++++++++++++++++++++---------------------
 2 files changed, 56 insertions(+), 28 deletions(-)

commit 0bfbb0d257593b2fcfaaf9bf09c586057ecfac25
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 9 15:54:58 2015 +0000

    GTrashStack: uninline and deprecate

    Deprecate GTrashStack and remove the inline implementations for the
    functions.  This will help us clean up the mess that is inline
    functions
    in GLib.

    Because of how G_INLINE_FUNC worked, we have these functions on
    our ABI,
    so we must continue to export them as normal functions.  We are
    safe to
    remove the inline versions, however, because any existing binaries
    will
    continue to carry them and any new builds will just start using the
    non-inline versions.

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

 glib/gtrashstack.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++---
 glib/gtrashstack.h | 67
 ++++++++----------------------------------------------
 2 files changed, 68 insertions(+), 60 deletions(-)

commit 7ab79b3879fa8b336ba3047f2399f26e1601f68e
Author: Ben Iofel <iofelben@gmail.com>
Date:   Mon Nov 16 10:05:16 2015 -0500

    GTask: fix example code in docs

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

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

commit 448e01353abba452148b7547eaa255b0555ae575
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Nov 15 23:59:35 2015 +0100

    Updated Norwegian bokmål translation.

 po/nb.po | 539
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 280 insertions(+), 259 deletions(-)

commit c50bb218de95e1f4278fb1b4ad5f300b13364b85
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Nov 12 15:26:20 2015 +0800

    MSVC 2010+ builds: Do not explicitly use /LTCG

    This partially reverts dc4361f.

    As we now ensure that items using GResources and GConstructors
    are always
    referenced so that the linker does not optimize them out in a default
    Release build, we no longer need to enforce the use of /LTCG, so
    /LTCG:incremental will work as well.

 build/win32/vs10/gdbus.vcxproj                       | 2 --
 build/win32/vs10/gio-querymodules.vcxproj            | 2 --
 build/win32/vs10/gio.vcxprojin                       | 2 --
 build/win32/vs10/glib-compile-resources.vcxprojin    | 2 --
 build/win32/vs10/glib-compile-schemas.vcxprojin      | 2 --
 build/win32/vs10/glib-genmarshal.vcxproj             | 2 --
 build/win32/vs10/glib.vcxprojin                      | 4 ----
 build/win32/vs10/gmodule.vcxproj                     | 2 --
 build/win32/vs10/gobject.vcxprojin                   | 2 --
 build/win32/vs10/gresource.vcxproj                   | 2 --
 build/win32/vs10/gsettings.vcxproj                   | 2 --
 build/win32/vs10/gspawn-win32-helper-console.vcxproj | 2 --
 build/win32/vs10/gspawn-win32-helper.vcxproj         | 2 --
 build/win32/vs10/gthread.vcxproj                     | 2 --
 14 files changed, 30 deletions(-)

commit db4df9908e0137c14f5aeeefba899240c4724970
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 10 17:20:18 2015 +0800

    gconstructor: Work around constructors being optimized away on MSVC

    Whole program optimization is enabled by default in visual studio
    release builds, and this causes constructors (for e.g. resources)
    to be
    optimized away as they are not referenced from elsewhere.

    This works around this by some pragma magic.

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

 glib/gconstructor.h | 38 ++++++++++++++++++++++++++++++++------
 1 file changed, 32 insertions(+), 6 deletions(-)

commit 228ad1ed9cf9eb64ac16475e902ff5f861d60c10
Author: Jeff Bai <jeffbai@aosc.xyz>
Date:   Thu Nov 12 11:02:56 2015 +0800

    Update zh_CN translations

 po/zh_CN.po | 1238
 +++++++++++++++++++++++++++++++----------------------------
 1 file changed, 649 insertions(+), 589 deletions(-)

commit 0a10d38d1533d7944bfd10552c5df9a3cc771d8c
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Sat Nov 7 18:51:04 2015 +0200

    Return value of g_hash_table_get_{keys,values} is (transfer container)

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

 glib/ghash.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 42463b840fb953e4663384a3911df2cd643ecf08
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Sat Nov 7 18:50:08 2015 +0200

    ghash: Correctly annotate (nullable) and (out) parameters

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

 glib/ghash.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 0e5365997179def68797cbaf5d1a0961bef2ad00
Author: Balázs Úr <urbalazs@gmail.com>
Date:   Sat Nov 7 15:08:05 2015 +0000

    Updated Hungarian translation

 po/hu.po | 397
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 204 insertions(+), 193 deletions(-)

commit 779b5c9af00d42bcf4728270a3b5a983998121eb
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Nov 7 13:55:24 2015 +0100

    gtestutils: Fix a function name in a documentation example

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

commit 25a7c817d3cbef8b6508b44bca6d0b01ca77916b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 6 12:23:09 2013 +0000

    glib: Add missing (nullable) and (optional) annotations

    Add various (nullable) and (optional) annotations which were missing
    from a variety of functions. Also port a couple of existing
    (allow-none)
    annotations in the same files to use (nullable) and (optional) as
    appropriate instead.

    Secondly, add various (not nullable) annotations as needed by the new
    default in gobject-introspection of marking gpointers as
    (nullable). See
    https://bugzilla.gnome.org/show_bug.cgi?id=729660.

    This includes adding some stub documentation comments for the
    assertion macro error functions, which weren’t previously
    documented.
    The new comments are purely to allow for annotations, and hence are
    marked as (skip) to prevent the symbols appearing in the GIR file.

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

 gio/gconverter.c            |  3 +-
 gio/gcredentials.c          |  2 +-
 gio/gdbusconnection.h       |  2 +-
 gio/gfileinfo.c             |  9 +++---
 gio/gicon.c                 |  2 +-
 gio/gmemoryoutputstream.c   |  6 ++--
 gio/gsocketaddress.c        |  2 +-
 gio/gsocketcontrolmessage.c |  2 +-
 glib/garray.c               |  6 ++--
 glib/gatomic.c              | 14 ++++----
 glib/gbitlock.c             |  6 ++--
 glib/gbytes.c               |  5 +--
 glib/gconvert.c             | 23 ++++++-------
 glib/gdataset.c             | 10 +++---
 glib/gdate.c                |  2 +-
 glib/gdatetime.c            | 10 +++---
 glib/gerror.c               |  8 ++---
 glib/ghash.c                | 33 +++++++++----------
 glib/ghook.c                |  4 +--
 glib/gmain.c                |  8 ++---
 glib/gmem.c                 |  3 +-
 glib/gmem.h                 |  2 +-
 glib/gmessages.c            | 27 +++++++++++++---
 glib/gnode.h                |  4 +--
 glib/gprintf.c              |  4 +--
 glib/gqsort.c               |  2 +-
 glib/gshell.c               |  6 ++--
 glib/gslice.c               | 38 ++++++++++++++++++----
 glib/gstrfuncs.c            | 10 +++---
 glib/gstring.c              |  4 +--
 glib/gtestutils.c           | 10 +++++-
 glib/gthread.c              |  6 ++--
 glib/gtrashstack.c          |  2 +-
 glib/gtree.c                |  4 +--
 glib/gutf8.c                | 78
 +++++++++++++++++++++++----------------------
 glib/gutils.c               |  2 +-
 glib/gvariant-core.c        |  2 +-
 gobject/gboxed.c            |  7 ++--
 gobject/gboxed.h            |  6 ++--
 gobject/gclosure.c          | 20 +++++++-----
 gobject/gclosure.h          |  3 +-
 gobject/gmarshal.c          | 44 ++++++++++++-------------
 gobject/gobject.c           | 39 +++++++++++++----------
 gobject/gparam.c            |  2 +-
 gobject/gsignal.c           |  6 ++--
 gobject/gtype.c             |  5 +--
 gobject/gtype.h             | 31 ++++++++++--------
 gobject/gvalue.c            |  2 +-
 48 files changed, 303 insertions(+), 223 deletions(-)

commit 90808a02796449615947e49ae57f5f4fa2e404ea
Author: Sebastien Bacher <seb128@ubuntu.com>
Date:   Fri Nov 6 17:42:45 2015 +0100

    g_local_file_trash: remove invalid free call

    Commit 8ece2de964c01b3428f16766f199b58f0bc67212 transplanted a
    block of
    code that contained an early-exit-on-error case which freed several
    variables.

    Because of the move, the normal-path unconditional free of one
    of these
    variables is now above this early exit case, so if this block is
    hit, it
    will now be a double-free.

    Remove that.

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

 gio/glocalfile.c | 1 -
 1 file changed, 1 deletion(-)

commit 1ac2a606fc10dd8d0e880902bc428ae406beb70c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Nov 6 11:27:24 2015 +0100

    gtlsconnection: Fix a typo in the documentation

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

commit 751d3f00a8f4162d486658cf640d94a7a9486360
Author: Dan Winship <danw@gnome.org>
Date:   Thu Nov 5 09:42:36 2015 -0500

    Update .gitignore for overflow tests

 glib/tests/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 4d74ca4c3ad3c9900caf320b39433e68a7db8465
Author: Jan de Groot <jan@jgc.homeip.net>
Date:   Thu Mar 21 19:51:28 2013 +0000

    Make gtester-report compatible with Python 3

    Convert tabs to spaces and replace print with print().
    The script still works with Python 2.x.

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

 glib/gtester-report | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit 1c6e6671d106a45a0f30d5ca6427ebf0cc26abf5
Author: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date:   Thu Nov 5 11:08:32 2015 +0200

    gio/tests: Don't depend on a data file that's not built

    data.gresource is not built when cross-compiling: Don't
    add it to test_data in that case.

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

 gio/tests/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 503e3147485a8d21ec9915b5df4c2ba4e2c4284b
Author: Pedro Albuquerque <palbuquerque73@gmail.com>
Date:   Thu Nov 5 05:58:56 2015 +0000

    Updated Portuguese translation

 po/pt.po | 433
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 222 insertions(+), 211 deletions(-)

commit 236e8040b4f8fbf213374ce398ecf29ce011f47c
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Nov 2 17:17:55 2015 +0000

    Build gdbus-example-objectmanager-server again

    It was removed, apparently accidentally, in commit 5b48dc4.
    This had the side-effect that it wasn't included in tarball releases,
    which means that commit ab7b4be doesn't work when building a package.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=734469
    Reviewed-by: Colin Walters <walters@verbum.org>

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

commit 0dbc81c73ae19310f477e4888f4d4cba8474a846
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Thu Oct 29 10:54:34 2015 +0200

    Move G_POLLFD_FORMAT to glibconfig.h

    It's a platform-specific macro, so it belongs in glibconfig.h.
    This ensures that g-ir-scanner will not pick the wrong definition
    for introspection.

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

 configure.ac               |  8 +++++++-
 glib/glibconfig.h.win32.in |  4 ++++
 glib/gpoll.h               | 11 ++---------
 3 files changed, 13 insertions(+), 10 deletions(-)

commit 6f1b574ceab74a043d24c24d12b2cfb47e5f8228
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Nov 2 09:36:47 2015 -0500

    Doc: Fix missing glibconfig.h when builddir!=srcdir

    Currently the doc is incomplete when builddir!=srcdir
    (e.g. debian package) because glibconfig.h is generared from
    configure.ac and is thus missing from srcdir. This leads to
    missing doc for symbols like G_GINT64_FORMAT.

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

 docs/reference/gio/Makefile.am     |  7 ++++---
 docs/reference/glib/Makefile.am    | 11 ++++++++---
 docs/reference/gobject/Makefile.am |  2 +-
 3 files changed, 13 insertions(+), 7 deletions(-)

commit 86a7c864b32cc8532df2b57f59526c11be507657
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Fri Oct 30 14:59:11 2015 -0400

    Doc: copy included example files

    This fix missing files when src_dir != build_dir.

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

 docs/reference/gio/Makefile.am         | 19 ++++++++++++++++++-
 docs/reference/gio/migrating-gdbus.xml | 10 +++++-----
 2 files changed, 23 insertions(+), 6 deletions(-)

commit ee718d352615f8417683f99fba6d0d08a33760fa
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Wed Oct 7 15:49:05 2015 +0200

    gapplication: reject actions without names

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

 gio/gsimpleaction.c      |  2 ++
 gio/gsimpleactiongroup.c |  7 +++++++
 gio/tests/gapplication.c | 25 +++++++++++++++++++++++++
 3 files changed, 34 insertions(+)

commit 863bffdac7f08815e4189bc881cb0c26d98d96c3
Author: Daiki Ueno <dueno@src.gnome.org>
Date:   Mon Nov 2 09:38:50 2015 +0900

    doc: fix g_task_attach_source() example

    The 3rd argument of the function is not a GCallback, but a
    GSourceFunc.

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

 gio/gtask.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit df352203d6eb06355e4de40006236af64181d9d6
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Fri Oct 30 10:02:06 2015 -0400

    Stop using g_sequence_get_length() to check if it's empty

    g_sequence_is_empty() is more efficient for that task.

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

 gio/gdbusmenumodel.c    | 2 +-
 gio/glocalfilemonitor.c | 6 +++---
 gio/gmenuexporter.c     | 2 +-
 glib/gsequence.c        | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

commit 2bc32606c73ccb66f86444b60bf0eabc9c959fb3
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Thu Oct 22 16:23:12 2015 -0400

    GSequence: document that _get_length() is not O(1)

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

 glib/gsequence.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 2331437df3fa3c28649f6b318ed980bd9462434f
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Sep 21 13:24:44 2015 -0400

    Doc: fix some gtk-doc warnings

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

 docs/reference/glib/glib-sections.txt |  1 +
 gio/gfilemonitor.c                    | 15 +++++++++++++++
 gio/gsocketconnectable.h              |  2 +-
 glib/gmem.c                           |  3 +++
 gobject/gparam.c                      |  2 +-
 gobject/gparam.h                      |  4 ++--
 6 files changed, 23 insertions(+), 4 deletions(-)

commit 7dd9ffbcfff3561d2d1bcd247c052e4c4399623f
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 28 11:14:15 2015 +0000

    tests: test bounds-checked int arithmetic

    Add some simple testcases for the new bounds-checked integer
    arithmetic
    helpers.

    Include a second build of the testcase to make sure we test the
    fallback
    code even if we are on a compiler that supports the intrinsics.

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

 glib/tests/Makefile.am |   5 ++
 glib/tests/overflow.c  | 199
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 204 insertions(+)

commit d0219f25970c740ac1a8965754868d54bcd90eeb
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 28 11:14:13 2015 +0000

    GLib: add bounds-checked unsigned int arithmetic

    Add some helpers for builds-checked unsigned integer arithmetic
    to GLib.
    These will be based on compiler intrinsics where they are available,
    falling back to standard manual checks otherwise.

    The fallback case needs to be implemented as a function (which we do
    inline) because we cannot rely on statement expressions.  We also
    implement the intrinsics case as an inline in order to avoid people
    accidentally writing non-portable code which depends on static
    evaluation of the builtin.

    For now there is only support for addition and multiplication
    for guint,
    guint64 and gsize.  It may make sense to add support for subtraction
    or
    for the signed equivalents of those types in the future if we find
    a use
    for that.

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

 docs/reference/glib/glib-docs.xml     |   1 +
 docs/reference/glib/glib-sections.txt |  11 +++
 glib/docs.c                           | 124
 ++++++++++++++++++++++++++++++++++
 glib/gtypes.h                         |  57 +++++++++++++++-
 4 files changed, 192 insertions(+), 1 deletion(-)

commit 89bda59170b662d65f91d36220492cc890dafa0d
Author: Allison Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 28 11:14:11 2015 +0000

    macros: add dummy __has_builtin()

    Add a dummy definition for Clang's __has_builtin() macro.  This will
    allow us to use __has_builtin() unconditionally, in the same way as we
    already do for __has_feature().

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

 glib/gmacros.h | 4 ++++
 1 file changed, 4 insertions(+)

commit 41bd8c90aebb0fd6de0735f52a3e9e99e67a5eed
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Fri Oct 30 12:50:00 2015 +0200

    Updated Hebrew translation

 po/he.po | 381
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 196 insertions(+), 185 deletions(-)

commit adfd1847763f71c79424386fd31e31693ea7f599
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Wed Oct 28 10:50:31 2015 +0100

    Fix tiny typo.

 gobject/glib-mkenums.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d52625a94a816fffb880b8a85f3bfd4c35d02b99
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 27 09:28:10 2015 +0800

    gwin32.c: Fix g_win32_check_windows_version() on 32-bit

    The Windows API function RtlGetVersion() is actually a function
    that is
    decorated by WINAPI (i.e. __stdcall), so we need to correct this
    so that
    the symbol can be loaded correctly from ntdll.dll, so that we won't
    crash as
    a result.  Should fix the crash due to stack overflow on 32-bit
    builds.

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

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

commit f87fd39cf32cfda40dadaf1c8906cfc5c0518b06
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 26 11:03:24 2015 -0400

    2.47.1

 NEWS         | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 configure.ac |  4 ++--
 2 files changed, 56 insertions(+), 3 deletions(-)

commit a036bd38a574f38773d269447cf81df023d2c819
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 26 13:51:30 2015 -0400

    Try to fix the desktop-app-info test

    This was broken in 2bb898c60f4333.

 gio/tests/desktop-app-info.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit e93aaeb5333829fb94693223487c5baf77eb251d
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Sun Oct 25 19:43:54 2015 +0100

    gio: Fix version of "Since" annotation

 gio/gsocketconnectable.c | 2 +-
 gio/gsocketconnectable.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 0d4f6afcdf4e342b69383bfc022eed620dd1c3da
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Sun Oct 25 19:42:18 2015 +0100

    docs: Add index for 2.48 api

 docs/reference/gio/gio-docs.xml   | 4 ++++
 docs/reference/glib/glib-docs.xml | 4 ++++
 2 files changed, 8 insertions(+)

commit 4dae2d8289afabb59e3889118c392a09efea18a1
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 24 10:37:22 2015 -0400

    gtask: re-fix tasks-blocking-other-tasks

    The new "slowly add more task threads" code doesn't fully deal with
    apps that queue lots and lots of tasks which then block on tasks from
    their task threads. Fix this by bringing back the "task is blocking
    other task" check and making sure that such tasks get bumped to the
    front of the queue.

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

 gio/gtask.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 556705cb9c826d70c043d67a87d997f82e2a559d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Oct 24 11:05:27 2015 +0800

    gwin32.c: Fix build on Visual Studio

    ntdef.h is a header that is normally only shipped with MinGW,
    not Visual
    Studio, which broke the build in commit 975cb91.  Fix this by
    including
    winternl.h, which typedef's the NTSTATUS type in question on both
    Visual
    Studio and MinGW/mingw-w64, as well as pre-2008 Visual Studio.

    Clean up this inclusion part a little bit as well.

 glib/gwin32.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit af0a47701db53ccf68211582a1e3f31e2836d4f3
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 23 11:28:32 2015 -0400

    gtypes.h: fix G_MAXUINT64 definition to use G_GUINT64_CONSTANT

    (Noticed as part of https://bugzilla.gnome.org/show_bug.cgi?id=756550)

 glib/gtypes.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 263aac125e3dfe26aebc6ce7bc0ed39889f19933
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 23 11:28:03 2015 -0400

    .gitignore updates

 build/win32/vs10/.gitignore | 1 +
 build/win32/vs9/.gitignore  | 1 +
 gio/tests/.gitignore        | 5 ++++-
 gobject/tests/.gitignore    | 1 +
 4 files changed, 7 insertions(+), 1 deletion(-)

commit 50d704ab8fadf714f814fff9c8091a64cf72beb5
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Fri Oct 23 10:34:50 2015 +0200

    win32: make sure bytes_read/written is set to 0 on error

    If we fail to PeekMessage or PostMessage we should make sure
    that the output parameter bytes_read/written is set 0 instead
    of being left uninitialized. This fixes an assertion in the io
    channel call where the following invariant is checked:
    (status == G_IO_STATUS_NORMAL) || (read_size == 0)

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

commit 3bb8294e00608238c2a28753425c9ce332c2bc0e
Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Date:   Thu Oct 22 10:36:00 2015 +0200

    giomodule: return a copy of module name

    This is a regression from commit 6dedc0.

    The clients expect to free the received module name, so the function
    must return a copy.

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

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

commit 144a87a643a619ff82a3acaffa6ac3761bc5db1f
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Oct 22 08:19:19 2015 +0200

    Use bin/gio/modules when building with visual studio

 gio/giomodule.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 6dedc0364afeafac3bbae7ecbb87249234a4ca85
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Oct 22 08:18:24 2015 +0200

    Factor out a get_gio_module_dir

    This also fixes some memory leaks on windows

 gio/giomodule.c | 42 ++++++++++++++++++++++++++++--------------
 1 file changed, 28 insertions(+), 14 deletions(-)

commit 31c45cb6aeb06d59b731fb725beeee17ed851475
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Tue Oct 20 15:44:32 2015 +1300

    gkeyfile: Handle whitespace after boolean values

    Ignore trailing whitespace when reading boolean values. Currently
    it is
    very easy to manually edit a keyfile to be:

    [section]
    key=true_

    Where '_' is a space character. g_key_file_get_boolean will read
    this value as
    false and this is hard for a user to detect (it will be reported
    in GError
    as an invalid value).

    Trailing whitespace is ignored for numbers for the same reason. This
    was
    fixed in 7a45dde4fe64b4f6c6d3ebc54dfb54d106290e9d.

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

 glib/gkeyfile.c      | 17 +++++++++++++++--
 glib/tests/keyfile.c |  4 ++++
 2 files changed, 19 insertions(+), 2 deletions(-)

commit 51ed0f040505914d9be09f01b2b567d69df57ae4
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Tue Oct 20 15:46:01 2015 +1300

    gkeyfile: Test that whitespace is allowed after numbers

    Test that whitespace is allowed after numbers - this was fixed in
    commit 7a45dde4fe64b4f6c6d3ebc54dfb54d106290e9d.

 glib/tests/keyfile.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 975cb9108543fb5c8b1146f74350ef4c6f1cd888
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Tue Oct 20 17:36:33 2015 +0300

    win32: Include ntdef.h for NTSTATUS

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

 glib/gwin32.c | 4 ++++
 1 file changed, 4 insertions(+)

commit ad0f340c273e3c6bac01bbc1eb41652903150f70
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Oct 20 16:12:07 2015 +0200

    win32: let glib to use the right path separator for the modules

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

commit 2ac7c5a6fb3c4f169ba5b44df762f7dc43504bfa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 15 15:37:42 2015 -0400

    Use -Wl,-znodelete for all our libraries

    Now that we initialize the quark tables from a constructor,
    reloading libglib is just as bad as reloading libgobject,
    so add the linker option to the LDFLAGS for all our libraries.

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

 configure.ac        | 6 ++----
 gobject/Makefile.am | 1 -
 2 files changed, 2 insertions(+), 5 deletions(-)

commit bf33f1d98d91e9326f04d56e1c3576baa886ae1d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Oct 18 19:34:44 2015 +0100

    docs: Replace Maman in the tutorial with a more meaningful example

    Change it to a running example of a file viewer application with
    a file
    class and various derived classes and related interfaces. Hopefully
    the
    reader can relate to this a little better than to their maman.

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

 docs/reference/gobject/tut_gobject.xml | 142 +++----
 docs/reference/gobject/tut_gtype.xml   | 188 +++++-----
 docs/reference/gobject/tut_howto.xml   | 651
 +++++++++++++++++++--------------
 3 files changed, 548 insertions(+), 433 deletions(-)

commit 419f57137ad1eaaa34ed41c23b5077642ca5b06c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 15 15:14:36 2015 +0100

    GDateTime test: fix occasional failures

    We were using the time() library call to get the current time from the
    system in order to compare it to the time returned by
    g_date_time_new_now().

    Of course, we took care to ensure that the time (in seconds) didn't
    change in the middle of this process by checking the before and after
    value of the system time.

    Unfortunately, the system time as measured by time() was being taken
    from a less-accurate clock source than the time used by GDateTime.
    As a
    result, we could have GDateTime already into the next second while the
    "seconds" value of the time returned by time() was still in the last
    one, even when checked "after".

    Avoid the problem by using the same ultimate source for time --
    g_get_real_time().

    This is based on a similar patch from Iain Lane, but it uses
    g_get_real_time() instead of g_get_current_time().

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

 glib/tests/gdatetime.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 75eaf5091c07572f0bac2756821f228d87916df0
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Tue Oct 6 01:51:52 2015 +0300

    g_main_context_query(): Annotate @n_fds as (in) parameter

    The default is picked up as (out), which is bogus.

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

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

commit 05aafe2cff5aab63c6c8d51261549b395f54bca6
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Wed Oct 14 08:10:38 2015 +0300

    gtypes.h: Make G_MININTn literals negative

    This is more friendly to the GIR scanner; with previous definitions,
    the constant values end up out of range for their stated integer type.

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

 glib/gtypes.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 01baf396852bf9e31625260ccba939bf4f539f5e
Author: Christian Hergert <chergert@redhat.com>
Date:   Thu Oct 15 13:07:27 2015 -0700

    sequence: fix style issue in previous commit

    Use g_assert_true() rather than integer comparison in sequence
    unit test.

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

commit 8fccf8e4e3ae87f3c1069270daeb2a59a40bf89d
Author: Christian Hergert <chergert@redhat.com>
Date:   Thu Oct 15 12:54:09 2015 -0700

    sequence: add g_sequence_is_empty()

    This function provides an O(1) check to determine if a sequence
    is empty.
    Compare this to the two following alternatives to perform the
    same check.

    O(h):  if (0 == g_sequence_get_length (seq))
    O(2h): if (g_sequence_get_begin_iter(seq) ==
    g_sequence_get_end_iter(seq))

    Where `h' is the height of the tree.

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

 glib/gsequence.c      | 20 ++++++++++++++++++++
 glib/gsequence.h      |  2 ++
 glib/tests/sequence.c | 26 ++++++++++++++++++++++++++
 3 files changed, 48 insertions(+)

commit 0b84596f6e8dc830e7f90e7501a036a16c7c31e3
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Oct 15 17:36:33 2015 +0200

    gnulib: forgot some changes from HAVE_LONG_LONG_INT to HAVE_LONG_LONG

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

 glib/gnulib/printf-parse.c |  6 +++---
 glib/gnulib/vasnprintf.c   | 12 ++++++------
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 212e4232e7520b2e328e3e965ed792e17b12e144
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Oct 14 12:55:06 2015 +0200

    Update gnulib

    It updates it to the version c5d07ce91a8ad51591154450442fa4376441fdfa
    As a difference with upstream we need to ensure:
     * Include "g-gnulib.h" so the methods get the gnulib namespace.
     * xsize.h uses G_MAXSIZE instead of SIZE_MAX and the methods are
       marked as static inline.
     * Some defines are named different from the ones in glib i.e
       HAVE_LONG_LONG_INT is HAVE_LONG_LONG

    All the unit tests pass properly with and without
    --enable-included-printf.
    It has also been tested on Windows.

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

 glib/gnulib/Makefile.am    |    2 +
 glib/gnulib/printf-args.c  |  210 +-
 glib/gnulib/printf-args.h  |  126 +-
 glib/gnulib/printf-parse.c | 1003 ++++---
 glib/gnulib/printf-parse.h |  173 +-
 glib/gnulib/vasnprintf.c   | 6445
 +++++++++++++++++++++++++++++++++++++-------
 glib/gnulib/vasnprintf.h   |   68 +-
 glib/gnulib/verify.h       |  279 ++
 glib/gnulib/xsize.h        |  101 +
 9 files changed, 6823 insertions(+), 1584 deletions(-)

commit 8ece2de964c01b3428f16766f199b58f0bc67212
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 29 10:16:52 2015 -0400

    g_local_file_trash: write info file first

    Recent changes to file monitors removed the delay before events were
    reported.  Among other things, this caused the trash backend of
    gvfs to
    notice trashed files sooner than before.

    On noticing trashed files, the backend tries to read the info file to
    discover (among other things) the original location of the file.

    Unfortunately, g_local_file_trash() does a strange dance when
    trashing a
    file.  It does a loop of open(O_EXCL) in order to file an empty
    filename
    in the trash to write an info file to, trashes the file, and only then
    writes the contents of the info file.  This means that at the time the
    file is moved to the trash, the info file is an empty stub.

    Change the order so that we write out the actual content of the info
    file first.  If the actual trash files then we will unlink the
    info file
    anyway.

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

 gio/glocalfile.c | 51 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 28 insertions(+), 23 deletions(-)

commit 7c6d29967e2c5d151d161596a1848f984d1c2845
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Wed Oct 14 11:49:54 2015 +0200

    Updated Basque language

 po/eu.po | 981
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 507 insertions(+), 474 deletions(-)

commit 128c413261f60c044aca14895ca2c5d2574d791e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Oct 4 15:24:24 2015 +0100

    gsocketconnectable: Add a to_string() virtual method

    Add string serialisation functions for GNetworkAddress,
    GSocketAddress,
    GUnixSocketAddress, GInetSocketAddress, GNetworkService and
    GSocketConnectable. These are intended for use in debug output,
    not for
    serialisation in network or disc protocols.

    They are implemented as a new virtual method on GSocketConnectable:
    g_socket_connectable_to_string().

    GInetSocketAddress and GUnixSocketAddress now implement
    GSocketConnectable directly to implement to_string(). Previously they
    implemented it via their abstract parent class, GSocketAddress.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/ginetsocketaddress.c            | 62
 ++++++++++++++++++++++++++++++++++++-
 gio/gnetworkaddress.c               | 26 ++++++++++++++++
 gio/gnetworkservice.c               | 14 +++++++++
 gio/gsocketaddress.c                |  1 +
 gio/gsocketconnectable.c            | 31 +++++++++++++++++++
 gio/gsocketconnectable.h            |  6 ++++
 gio/gunixsocketaddress.c            | 52 ++++++++++++++++++++++++++++++-
 gio/tests/inet-address.c            | 50 ++++++++++++++++++++++++++++++
 gio/tests/network-address.c         | 38 +++++++++++++++++++++++
 gio/tests/socket-address.c          | 40 ++++++++++++++++++++++++
 11 files changed, 319 insertions(+), 2 deletions(-)

commit 4e631d2e5fd2d7d27b1ca5e2edd6a4d95c83566e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jun 12 08:50:42 2015 +0100

    gio: Add GDatagramBased interface and rebase GSocket on it

    GDatagramBased is an interface abstracting datagram-based
    communications
    in the style of the Berkeley sockets API. It may be contrasted to (for
    example) GIOStream, which supports only streaming I/O.

    GDatagramBased allows socket-like communications to be done through
    any
    object, not just a concrete GSocket (which wraps socket()).

    This adds the GDatagramBased interface, and implements it in GSocket.

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

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  21 ++
 gio/Makefile.am                     |   2 +
 gio/gdatagrambased.c                | 473
 ++++++++++++++++++++++++++++++++++++
 gio/gdatagrambased.h                | 144 +++++++++++
 gio/gio-autocleanups.h              |   1 +
 gio/gio.h                           |   1 +
 gio/giotypes.h                      |  19 ++
 gio/gsocket.c                       | 144 ++++++++++-
 gio/makefile.msc                    |   1 +
 po/POTFILES.in                      |   1 +
 11 files changed, 807 insertions(+), 1 deletion(-)

commit e5e08ebedbc1dd97d19f2504d43619991b1e52aa
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Mon Oct 12 23:29:00 2015 -0400

    gthreadedresolver.c: Fix for Android 5.0+

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

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

commit dc4361f4cb49f376993129fea6768a978a28711e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 13 19:30:22 2015 +0800

    MSVC 2010+ builds: Explicitly use /LTCG

    The Visual Studio projects used a default setting for link-time code
    generation, which is a part of the various linker optimizations
    that is
    available, which is set as /LTCG for Visual Studio 2013 and earlier.

    This changed in Visual Studio 2015 to become /LTCG:incremental,
    which would
    cause GResources-generated code to be optimized out during linking,
    unless
    they were referred to directly in the main line code (such as when the
    GResource is manually registered), causing programs to crash as a
    result as
    they can't find the needed code/data at run time.

    Fix this by explicitly setting /LTCG for all release builds,
    for Visual
    Studio 2010 and later.

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

 build/win32/vs10/gdbus.vcxproj                       |  2 ++
 build/win32/vs10/gio-querymodules.vcxproj            |  2 ++
 build/win32/vs10/gio.vcxprojin                       | 10 ++++++----
 build/win32/vs10/glib-compile-resources.vcxprojin    |  2 ++
 build/win32/vs10/glib-compile-schemas.vcxprojin      |  2 ++
 build/win32/vs10/glib-genmarshal.vcxproj             |  2 ++
 build/win32/vs10/glib.vcxprojin                      | 20
 ++++++++++++--------
 build/win32/vs10/gmodule.vcxproj                     | 10 ++++++----
 build/win32/vs10/gobject.vcxprojin                   | 10 ++++++----
 build/win32/vs10/gresource.vcxproj                   |  2 ++
 build/win32/vs10/gsettings.vcxproj                   |  2 ++
 build/win32/vs10/gspawn-win32-helper-console.vcxproj |  2 ++
 build/win32/vs10/gspawn-win32-helper.vcxproj         |  2 ++
 build/win32/vs10/gthread.vcxproj                     | 10 ++++++----
 14 files changed, 54 insertions(+), 24 deletions(-)

commit b7e29730482dd2d5e88c3448c6310b6849c0a3cf
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 12 16:49:53 2015 +0800

    gobject: Further optimize MSVC builds

    Use /ltcg (link time code generation) for linking as well.

    In fact, whole program optimization and /ltcg are the default
    for Release
    builds, so we don't really have to set them explicitly in the
    projects, so
    as a result, we can clean up the projects a little bit.

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

 build/win32/vs10/gobject.vcxprojin | 6 ------
 build/win32/vs9/gobject.vcprojin   | 4 ----
 2 files changed, 10 deletions(-)

commit 670400ee337f84c9938db84e3de8d4a82ba3ec62
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 12 15:05:23 2015 +0800

    gobject: MSVC builds-improve optimization a bit

    Use whole program optimization (/GL) as we now use DllMain() to
    initialize the library on Windows builds.

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

 build/win32/vs10/gobject.vcxprojin | 4 ++--
 build/win32/vs9/gobject.vcprojin   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 7a29771a743a8b5337af5f3fcd1fbfdfdc5d1b81
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Fri Oct 9 13:22:34 2015 +0200

    gobject: use a DllMain to initialize gobject on windows

    It seems that VS 2015 optimizes out the constructor on windows,
    so it is better to use a DllMain to initialize the library
    and keep using a normal constructor on the other platforms.
    This research was done by  Arnav Singh.

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

 gobject/gtype.c | 86
 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 61 insertions(+), 25 deletions(-)

commit cd1eba043c90da3aee8f5cd51b205b2e2c16f08e
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Thu Oct 8 18:50:26 2015 +0200

    docs: Improve the text on G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START

    ... and fix a couple of typos in the process.

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

 gio/gioenums.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 16e0a5a886c60a648e74afd12c0cbeeb58d6d522
Author: John Hiesey <john@hiesey.com>
Date:   Wed Oct 7 17:34:17 2015 -0700

    goutputstream: Report input stream read failure correctly

    When G_OUTPUT_STREAM_CLOSE_TARGET is set,
    g_output_stream_real_splice was not returning -1 in any error
    cases, since the success flag was being overwritten.

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

 gio/goutputstream.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit fb9df27776b116d9e8552c0b7b3109245a9c0d26
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Apr 9 18:05:18 2015 +0200

    Change message system to use fputs instead of write

    By default g_log_default_handler always assumes that stdout
    and stderr are file descriptors 1 and 2. On Win32 this isn't
    always the case as the win32 API functions AttachConsole and
    freopen can be used to dynamically attach GUI applications to
    a console and the file descriptors of stderr and stdout will
    become different than 1 and 2.

    Fix it by using fputs with the FILE directly instead of
    using the file descriptors.

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

 glib/gmessages.c | 41 +++++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 22 deletions(-)

commit 144d38fb9d63a26c99acbd3cc212430d3d688859
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Oct 8 12:57:33 2015 +0100

    gparamspecs: Mark g_param_spec_string()’s default value as
    (nullable)

 gobject/gparamspecs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 99ff9bb5e0ef261e39cb3c67a2d212f6bbeb99e4
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu Oct 8 12:32:58 2015 +0100

    Maintain the struct order when initializing

    Otherwise it'll break every GLIB_PRIVATE_CALL user.

 glib/glib-private.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 0cc8c0f3e1230f8a3d6d7ed53523c2045d43ea63
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Oct 8 11:16:02 2015 +0100

    gerror: Add (optional) annotation to g_propagate_error()

    Also clarify in the documentation that @src must be non-%NULL.

 glib/gerror.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 2e078f1fc0f580bf390c84ebfcd36bcde076eca6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Oct 8 11:08:28 2015 +0100

    gstrfuncs: Add missing annotations to g_[ascii_]strto*() functions

    Add missing (out) (transfer none) (optional) annotations to
    g_strtod(),
    g_ascii_strtod(), g_ascii_strtoull() and g_ascii_strtoll().

 glib/gstrfuncs.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 8d83aace106b6832629a3e05f49d074a4288c8df
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 6 20:09:08 2015 -0400

    Call glib_init from the gobject constructor

    We are using quarks in the gobject constructor, among other things,
    so we need to ensure that glib is being initialized first.

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

 gobject/gtype.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit e0dce8a9ae77cd4430db224c3bb056d9d1882e58
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 6 19:45:38 2015 -0400

    Export glib_init via GLIB_PRIVATE_CALL

    This will be used in the next commit to call glib_init from the
    gobject constructor, to ensure proper constructor ordering with
    non-GNU libc.

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

 glib/glib-init.c    | 2 +-
 glib/glib-init.h    | 1 +
 glib/glib-private.c | 3 +++
 glib/glib-private.h | 3 +++
 4 files changed, 8 insertions(+), 1 deletion(-)

commit 342d3296851dfabd88e9e3909ab45fa16e8139e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 6 19:43:38 2015 -0400

    Make glib_init safe to call more than once

    This will be needed to fix constructor order for non-GNU libc.

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

 glib/glib-init.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 46a20470fa684c2f1390c91dcc8d5799bdd422c5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Oct 7 20:00:50 2015 +0800

    gwin32.c: Avoid deprecated Win32 API usage

    The VerifyVersionInfo() Win32 API has been deprecated in Windows
    10, and
    there is no direct replacement for it, except by using a lower-level
    RtlGetVersion() that we aquire from the Windows DDK or from ntdll.dll.

    Switch g_win32_check_windows_version() to use RtlGetVersion(), and
    compare its results with the input parameters.

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

 glib/gwin32.c | 105
 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 74 insertions(+), 31 deletions(-)

commit 3624e70508d414ae734c0b51f81839f8b5b1c809
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 6 06:45:31 2015 -0400

    Update Unicode test data for Unicode 8

    These files are used by the unicode-caseconv test.

 tests/casefold.txt | 143 +++++++++++++++++++++++++-
 tests/casemap.txt  | 290
 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 429 insertions(+), 4 deletions(-)

commit ac05ad55fadaac7cdce38f0ea19b2628a9864068
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Oct 6 07:59:19 2015 +0100

    gdbusconnection: Add missing (nullable) to get_peer_credentials()

    Since Colin mentioned it on gir-devel-list.

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

commit 4919c25d497dcba708074f7d35ea6b43d17f7294
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Tue Sep 15 09:22:12 2015 +0200

    GDesktopAppInfo: Do not set the DISPLAY in gio

    The environment variable DISPLAY makes sense only for X11, it should
    not be set in gio.

    Beside, if the backend is not X11 but Wayland, forcing the value of
    DISPLAY to the Wayland display will confuse the backend selection and
    possibly crash the applications.

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

 gio/gdesktopappinfo.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

commit 212b0c28cc54f0a877a17bbeb70e6d013ad96ff7
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Oct 5 10:19:50 2015 +0100

    gsocket: Fix g_socket_send_messages_with_timeout() on win32

    Commit a0cefc2217adafb6a21d87b66115df6abc9a9cdd introduced an
    unresolved
    symbol, g_socket_send_message_with_timeout(), on win32. Windows
    unfortunately isn’t clever enough to fill in the gaps and magic
    up the
    implementation of that function from nowhere, so we had better do it
    ourselves.

    Factor the blocking behaviour out of g_socket_send_message() into
    a new
    internal g_socket_send_message_with_timeout().

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

 gio/gsocket.c | 45 +++++++++++++++++++++++++++++++++++++++------
 1 file changed, 39 insertions(+), 6 deletions(-)

commit f91d1a2a7657a85b46922df4c813fbf8ca3d2bb1
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Sun Sep 27 22:42:50 2015 +0200

    docs: misc spelling

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

commit dabf6627886c1d21b9fe03c897809eb64ef2ac54
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Mon Oct 5 13:02:37 2015 +0200

    testutils: remove internal ABI comment

    Some testutils external symbols are marked semi-internals, other
    internals. It is not obvious what guarantees these symbols provide.
    However, tests are now installable, and require the ABI stability
    that glib provides for the rest of the symbols.

    In my case, I would like to introduce g_assert* compat code for older
    glib versions, and be able to use the so-called "internal" ABI.

    I propose this change to the headers comments to explain the stability
    guarantees. Removing the "internal" = you must not use this, in favor
    of semi-internal = this is not documented.

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

 glib/gtestutils.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit e81d4ea988c2e35a9cca0ad12516c39608545bc5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 5 16:29:05 2015 +0800

    gio/goscket.c: Fix build on Windows

    5d68947 factored out resuable items, but some of these are only for
    *NIX builds, which will break the build on Windows.  Fix this by
    building these portions only when !G_OS_WIN32.

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

 gio/gsocket.c | 3 +++
 1 file changed, 3 insertions(+)

commit 9b7f5ad61172ff71d0dd4a788a23c5803300ab59
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Oct 4 15:25:03 2015 +0100

    gunixsocketaddress: Clarify construction behaviour of anonymous addrs

    Clarify the handling of G_UNIX_SOCKET_ADDRESS_ANONYMOUS in the
    documentation for g_unix_socket_address_new_with_type().

 gio/gunixsocketaddress.c | 3 +++
 1 file changed, 3 insertions(+)

commit f9d9f9c056d96eccbb75dcbdef2b58f6d2a3edea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 4 10:21:43 2015 -0400

    Update to Unicode 8.0

    Regenerate data tables from the Unicode Character Database, add
    new scripts, and update tests to include some of the new data.

 NEWS                  |    6 +
 glib/gscripttable.h   |   97 +--
 glib/gunibreak.h      | 1620 +++++++++++++++++++++++++++++++-----------
 glib/gunichartables.h | 1853
 ++++++++++++++++++++++++++++++++++---------------
 glib/gunicode.h       |   16 +-
 glib/gunidecomp.h     |   53 +-
 glib/guniprop.c       |    7 +
 glib/tests/unicode.c  |   20 +-
 8 files changed, 2611 insertions(+), 1061 deletions(-)

commit fc59c20e97a196a261d9caeb573ce411a98b8c32
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Oct 4 11:34:36 2015 +0100

    gsocket: Minor documentation clarifications

    As suggested by Dan Winship on bug #697907.

 gio/gsocket.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 237fec7e7025e5b517f06398e3a01354eb3035ec
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Aug 17 20:03:47 2015 +0100

    gsocket: Fix connected state if shutting down in two steps

    The value of g_socket_is_connected() gets stuck high if the GSocket is
    shut down in two steps:
       g_socket_shutdown (socket, TRUE, FALSE, NULL);
       g_socket_shutdown (socket, FALSE, TRUE, NULL);
    rather than one:
       g_socket_shutdown (socket, TRUE, TRUE, NULL);

    Fix that by tracking the connected status for the read half and the
    write half of the connection separately.

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

 gio/gsocket.c | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

commit 58ec6674801f07edcf79ba7e6a4a9f17d1a1e13b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Oct 3 23:30:14 2015 +0100

    gkeyfile: Remove dead code and unused string literals

    In all these functions, group_name is guaranteed to be non-NULL by the
    function preconditions, so there is no need to handle it as NULL when
    building error messages. Remove some unnecessary string literals as a
    result.

    Coverity CID: 1325438–1325441

 glib/gkeyfile.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 456e02f280ede5e990bcfeb4faf6e6acba13d599
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Oct 3 11:52:27 2015 +0100

    gdbusaddress: Fix memory leak when G_DBUS_DEBUG_ADDRESS is enabled

    Coverity CID: 1325374

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

commit 0f98b2f4ec683fc29bee489cafdbbdc7d59ffa1d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Oct 3 11:46:18 2015 +0100

    gsocks5proxy: Fix error reporting in authentication

    set_auth_msg() was returning FALSE to indicate error, but all its
    callers were expecting a negative return value to indicate error. This
    was causing memory leaks for the GError, and errors to not be
    reported.

    Coverity CID: 1325357

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

commit c1c001e300debcea9ba6630c1a87f56036840c52
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Oct 3 11:43:49 2015 +0100

    gresource-tool: Fix minor memory leak when listing resources

    Coverity CID: 1325353

 gio/gresource-tool.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 4f6dc3023205e9480bc4bb738bff06bd02d29567
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Oct 3 11:33:00 2015 +0100

    glib-genmarshal: Fix memory leak with --prefix

    If --prefix is specified, marshaller_prefix is allocated and never
    freed. It does not actually have to be allocated — just use
    the static
    string from argv.

    Coverity CID: 1325370

 gobject/glib-genmarshal.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 292fd1155ae502df9aadc343cdbbd5d6b3149090
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Oct 3 10:58:18 2015 +0100

    gtlscertificate: Fix error reporting if a GError is not passed in

    If the certificate constructor is called as:
       g_tls_certificate_new_from_pem (data, length, NULL);
    and PEM parsing fails for the private key, the function would have
    continued to try and create a certificate using a NULL key_pem value,
    which would have failed or crashed.

    Use g_propagate_error() correctly to avoid this.

    Coverity CID: 1325403

 gio/gtlscertificate.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit 9275be383f63441e45ead925c8956b2d1a7768b1
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Oct 3 10:48:46 2015 +0100

    glocalfile: Fix memory leak in find_topdir_for()

    Coverity CID 1325398.

 gio/glocalfile.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 4b2d92a864f1505f1b08eb639d74293fa32681da
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 2 10:06:22 2015 -0400

    Allow passing unset GValues to g_value_unset()

    This makes it more useful as an autocleanup func.

    Also, add a minimal test of g_value_init/g_value_reset/g_value_unset.

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

 gobject/gvalue.c                        | 11 +++++++----
 gobject/tests/.gitignore                |  2 +-
 gobject/tests/Makefile.am               |  2 +-
 gobject/tests/{valuearray.c => value.c} | 35
 +++++++++++++++++++++++++++++++--
 4 files changed, 42 insertions(+), 8 deletions(-)

commit b4a3c1bb1194d99efb547120bbff2f4442ef505d
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 2 09:55:29 2015 -0400

    Revert "gvalue: Add g_value_clear method"

    This reverts commit 1233962b54de68bfdf06cfde244693ab7fd3558a.

 docs/reference/gobject/gobject-sections.txt |  1 -
 gobject/gvalue.c                            | 20 --------------------
 gobject/gvalue.h                            |  2 --
 3 files changed, 23 deletions(-)

commit 4c870904cd1ae7954ea1412d9145ca75b927dc18
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 2 10:00:54 2015 -0400

    Revert "gvalue: Use g_value_clear as clear function"

    This reverts commit 3bb2e8dfc9eae7c6abd8fbec5fa751ffcb495121.

 gobject/gobject-autocleanups.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8ed9e8c79ffed28b2e6ee533d3d184c0a748ed48
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 2 09:56:16 2015 -0400

    Revert "gvalue: Improve _unset() documentation"

    This reverts commit 3c0d38d68b78a6ea9e6ca82012f011075a625a2b.

 gobject/gvalue.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 0448e758cf9d4dba3c3f8636af850e88597c1821
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Fri Oct 2 01:01:42 2015 +0300

    Skip g_bytes_new_with_free_func() in introspection

    The tricky ownership/mutability semantics on data make this function
    unusable in introspection.

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

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

commit 1e1e6c1086a494f065313dba73f7ab04078b8185
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Fri Oct 2 00:33:14 2015 +0300

    gbytes: fix up annotations

    Annotate array elements as bytes.
    Annotate a missed output parameter.
    Replace (allow-none) with the corresponding modern annotations.

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

 glib/gbytes.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

commit 4a5a30f716ae260bd89416cda8dbdcc5cf6f2e62
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Thu Oct 1 00:32:10 2015 +0100

    docs: Tidy up GObject construction discussion in the GObject tutorial

    Remove some outdated references to an old example, and add a row
    in the
    table of steps in object initialization for the
    GObjectClass.constructed
    virtual method.

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

 docs/reference/gobject/tut_gobject.xml | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

commit be732677f56f4da48f737dc7edd821ec1928515c
Author: Olivier Crête <olivier.crete@collabora.com>
Date:   Thu Jul 2 11:32:34 2015 +0100

    gio: Add G_IO_ERROR_MESSAGE_TOO_LARGE

    Corresponding to EMSGSIZE, for when UDP datagrams are rejected due to
    being too big.

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

 gio/gioenums.h | 4 +++-
 gio/gioerror.c | 9 +++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

commit 1086507e75580083aef46ad3072e9ff7869c2bc4
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Aug 17 18:10:43 2015 +0100

    gsocket: Fix error behaviour of g_socket_send_messages()

    If an error in the underlying sendmmsg() syscall occurs after
    successfully sending one or more messages, g_socket_send_messages()
    should return the number of messages successfully sent, rather than an
    error. This mirrors the documented sendmmsg() behaviour.

    This is a slight behaviour change for g_socket_send_messages(), but as
    it relaxes the error reporting (reporting errors in fewer situations
    than before), it should not cause problems.

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

 gio/gsocket.c      | 32 +++++++++++---------------------
 gio/tests/socket.c | 21 +++++++++++++++++++--
 2 files changed, 30 insertions(+), 23 deletions(-)

commit f62cbfc02230f160e0fd0947d74c4a012eb6232c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jun 12 08:47:37 2015 +0100

    gsocket: Add g_socket_receive_messages()

    Add support for receiving multiple messages with a single system call,
    using recvmmsg() if available. Otherwise, fall back to looping over
    g_socket_receive_message().

    This adds new API, g_socket_receive_messages(), and corresponding unit
    tests.

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

 config.h.win32.in                   |   3 +
 configure.ac                        |   2 +-
 docs/reference/gio/gio-sections.txt |   1 +
 gio/gsocket.c                       | 294
 +++++++++++++++++++++++++++++++++++-
 gio/gsocket.h                       |   7 +
 gio/tests/socket.c                  | 163 ++++++++++++++++++++
 6 files changed, 467 insertions(+), 3 deletions(-)

commit a0cefc2217adafb6a21d87b66115df6abc9a9cdd
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jul 29 11:13:33 2015 +0100

    gsocket: Switch internal functions from blocking booleans to timeouts

    In order to support per-operation timeouts on new API like
    g_socket_receive_messages(), the internal GSocket API should use
    timeouts rather than boolean blocking parameters.

       (timeout == 0) === (blocking == FALSE)
       (timeout == -1) === (blocking == TRUE)
       (timeout > 0) === new behaviour

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

 gio/gsocket.c | 391
 ++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 243 insertions(+), 148 deletions(-)

commit 7f985b35ce599a37144f852903993300e8f1f197
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jul 27 14:21:00 2015 +0100

    gsocket: Factor out blocking parameter from g_socket_receive_message()

    This will make future API additions easier. The factored version is
    internal for the time being.

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

 gio/gsocket.c | 214
 +++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 122 insertions(+), 92 deletions(-)

commit 5d6894746635d19d719fbf15881dbd7fc375d77c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jun 12 08:30:20 2015 +0100

    gsocket: Split out functions to convert to and from struct msghdr

    As new methods are added to GSocket, we don’t want to duplicate this
    code, so factor it out.

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

 gio/gsocket.c | 522
 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 257 insertions(+), 265 deletions(-)

commit 8c4c16ddf405ecd93b1df682cbbbca1d7cfad9ba
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jul 29 11:36:50 2015 +0100

    giotypes: Add GInputMessage struct

    This complements the GOutputMessage struct. It will shortly be
    used for
    adding a g_socket_receive_messages() function, but needs to be
    committed
    first to allow some internal refactoring of GSocket.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/giotypes.h                      | 54
 +++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+)

commit 37fcab17d33b7b5384ec018c3595eb9ec393dc2a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Oct 1 13:49:15 2015 +0100

    build: Bump version to 2.47.0

    So that early adopters of new API have a version number to target.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 037991211d45f400526c8d7f0eb29c940b6e8726
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu Oct 1 11:58:37 2015 +0100

    Revert "Apply the previous change to gmarshal.c"

    This reverts commit 43e8bfca0c687317f96f976586194d26d8e141b4.

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

 gobject/gmarshal.c | 88
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 44 insertions(+), 44 deletions(-)

commit cc818f5fe402c9c04f2ac1277bacbfe1cebfc2fe
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu Oct 1 11:54:11 2015 +0100

    Revert "glib-genmarshal: Treat all parameters the same"

    This reverts commit 8e362161d9554e8a6c1e82f95bff24fc9fdcf9ef.

    There is a fundamental difference between g_value_peek_pointer() and
    g_value_get_pointer(), and it's not just complexity: the latter checks
    if the GValue holds a pointer type, whereas the former doesn't.

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

 gobject/glib-genmarshal.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ad7250ab5324a05456a7d5445edfd3ec26638dba
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 30 12:57:42 2015 +0100

    giostream: Fix a typo in the documentation for g_io_stream_close()

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

commit 202a9c3497e0c0b5789e533509dd8671617ae20c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 29 11:18:54 2015 -0400

    GLocalFile: return text/plain for empty files

    Previously, GLib returned text/plain for empty files.

    This is important because people may want to open empty (eg:
    just-created) text files with the text editor.

    An unintended side-effect of b6fc1df022a0326e7c36122b1416061bf796c98f
    caused GLib to start returning application/octet-stream instead of
    text/plain for these files.

    This commit is essentially a revert of that commit, with a different
    solution: we move the special-case up a bit in the function and
    hard-code it to text/plain.

    This change does not exactly maintain the old behaviour: previously, a
    "fast" lookup would have returned application/octet-stream on an empty
    file and now it will return text/plain.  I consider this to be an
    improvement (since we're returning better data) and don't expect it to
    cause problems.

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

 gio/glocalfileinfo.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit 56b164a19566a63dda23d48a93b91875d89c9fde
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 21 16:54:49 2015 -0400

    g_variant_get_child(): flatten-first logic on '&'

    Copy the flatten-first logic from g_variant_get(), and for the same
    reason: if the user is requesting a direct pointer access to a
    tree-based child inside of argument to this function then that child
    could disappear later.

    Forcing serialisation means that the pointer will remain valid as long
    as the passed-in instance exists, which is the usual expectation with
    GVariant API.

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

 glib/gvariant.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 3c0d38d68b78a6ea9e6ca82012f011075a625a2b
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Sep 29 08:30:21 2015 -0400

    gvalue: Improve _unset() documentation

    g_value_unset() only works with initialized value and will assert
    if the GValue is zero-filled (or initialized with
    G_VALUE_INIT). Document
    this behaviour and refer to g_value_clear() for a method that work on
    both initialized and zero-filled GValue.

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

 gobject/gvalue.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 3bb2e8dfc9eae7c6abd8fbec5fa751ffcb495121
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Mon Sep 28 19:44:44 2015 -0400

    gvalue: Use g_value_clear as clear function

    This change allow leaving a scope before g_value_init() has been
    called. This would happen if you do:

      {
        g_auto(GValue) value = G_VALUE_INIT;
      }

    Or have a return statement (due to failure) before the part of
    your code where you set this GValue.

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

 gobject/gobject-autocleanups.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1233962b54de68bfdf06cfde244693ab7fd3558a
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Mon Sep 28 19:41:28 2015 -0400

    gvalue: Add g_value_clear method

    This method is similar to g_value_unset() but will accept
    an uninitialized (zero-filled) GValue structure.

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

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gvalue.c                            | 20 ++++++++++++++++++++
 gobject/gvalue.h                            |  2 ++
 3 files changed, 23 insertions(+)

commit b36b4941a634af096d21f906caae25ef35161166
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Mon Sep 28 19:35:30 2015 -0400

    glib: Add 2.48 availibity macros

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

 docs/reference/glib/glib-sections.txt |  4 ++++
 glib/gversionmacros.h                 | 25 +++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

commit 43e8bfca0c687317f96f976586194d26d8e141b4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 07:03:25 2015 -0400

    Apply the previous change to gmarshal.c

    Since gmarshal.c is no longer generated, we have to manually
    apply this change to the builtin marshallers.

 gobject/gmarshal.c | 88
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 44 insertions(+), 44 deletions(-)

commit 8e362161d9554e8a6c1e82f95bff24fc9fdcf9ef
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 07:02:07 2015 -0400

    glib-genmarshal: Treat all parameters the same

    There's no need to use a more expensive getter when swapping,
    so just use the g_marshal_ getters there too.

 gobject/glib-genmarshal.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit de04fd13048dd208162573187e4c0d9e7d3428d3
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Sep 28 13:23:29 2015 +0100

    gerror: Document the disadvantages of using GError

    And move the discussion to a new subsection in the GError
    documentation.
    Follow-up from commit 04662a8667c8bf0a594f0c6db7291066c272ad38.

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

 glib/gerror.c | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

commit 04662a8667c8bf0a594f0c6db7291066c272ad38
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 08:38:56 2015 +0000

    gerror: Document advantages of GError over numeric error codes

    Despite knowing about GError, there are multiple cases where
    developers
    have still used traditional numeric error codes, and then got
    themselves
    into a mess about bindability and generation of error messages.

    Try and avoid this by including a brief paragraph on the benefits of
    GError over EINVAL-style error codes.

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

 glib/gerror.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 5ceaeef832fb595d1d5117524937b15c892cbd75
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 08:32:20 2015 +0000

    gerror: Add an extra heading to the GError documentation

    This means that the top of the documentation can link forward to this
    important section, and random people on the internet can link directly
    to it on developer.gnome.org.

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

 glib/gerror.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 21809c8c0fdf72b5859faeb1781ff3edc121120a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Sep 26 13:45:00 2014 +0100

    giostream: Fix some typos in the GIOStream documentation

    This doesn’t change the meaning of the documentation.

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

 gio/giostream.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 363fa1822355021b4b723389d51f63ac263ef30c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Aug 17 19:13:15 2015 +0100

    gsocket: Fix documentation for g_socket_send_message()

    It is no longer the most fully featured version of this function —
    g_socket_send_messages() stole that dubious honour with 2.44.

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

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

commit 347e4a75ec745e09fa8433f557b363e5e95491cd
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jul 29 14:08:31 2015 +0100

    gsocket: Clarify GSocket:blocking doesn’t apply to ops with
    a parameter

    Operations which take an explicit blocking parameter are completely
    unaffected by GSocket:blocking.

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

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

commit 8fdc6701889679d16ac064b481f968807eddbf0f
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jul 27 14:46:54 2015 +0100

    gsocket: Clarify flags documentation for g_socket_receive_message()

    The API design here is a bit awkward — the in/out flags argument
    should
    actually have been an in flags argument and an out msg_flags argument.
    Clarify that a bit in the documentation.

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

 gio/gsocket.c | 2 ++
 1 file changed, 2 insertions(+)

commit 4745c08220b90eac741ae3ca1913cbe90c9831ef
Author: Benjamin Gilbert <bgilbert@backtick.net>
Date:   Sat Sep 26 18:22:34 2015 -0400

    win32: Fix link error with _wstat32i64() on 64-bit

    _wstat32i64() doesn't exist in msvcrt.dll.  This doesn't cause
    a problem
    on 32-bit Windows because mingw-w64 #defines _wstat32i64 to _wstati64,
    but on 64-bit Windows we get a link error.

    In addition, _wstat32i64() takes a struct _stat32i64 *, but
    GLocalFileStat is #defined to struct _stati64, which is not the same
    type on 64-bit Windows.

    Fix by using _wstati64().

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

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

commit da2217859f1b7cc0a2a3b7d50e70b983ee301a10
Author: Trần Ngọc Quân <vnwildman@gmail.com>
Date:   Sun Sep 27 15:28:55 2015 +0700

    Updated Vietnamese translation

    Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>

 po/vi.po | 1159
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 592 insertions(+), 567 deletions(-)

commit a0b4e87f445ca00a73db8bf46cc47215a9f14788
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 25 12:54:26 2015 +0800

    build/Makefile-newvs.am: Update Comments for Usage

    Update the notes that this is also used for Visual Studio 2015
    support,
    and correct the MSVC_VER_LONG for MSVC 2015, which is 14, not 2015.

    Also add a note that this can be used for other projects that have
    Visual Studio build support.

 build/Makefile-newvs.am | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 762437c8495d11879d265965cf24703bf8dbfb5d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 25 12:25:13 2015 +0800

    Build: Make Makefile.msvcproj A Bit More Generic

    Handle also the situation where $(srcdir) == $(top_srcdir), so
    that this
    can also be used in cases like librsvg and gobject-introspection.

 build/Makefile.msvcproj | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

commit ecd265288319c004a862a29c95487a888f62cfc7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 25 17:47:33 2015 +0800

    build/win32/replace.py: Add Note On Its Reusability

    Add a note stating that this script can be copied for use to replace
    strings in files when necessary, such as replacing autotools variables
    in non-autotools builds, such as Visual Studio builds.

 build/win32/replace.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 2d7817887a9f0624f73492d04b2a992545f0beb9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Sep 23 18:55:28 2015 -0400

    Revert "list store: Fix a parameter check"

    This reverts commit d28639507db2029b8f184a5d93e9d8c28acc1955.

    This wasn't meant to go in.

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

 glib/gsequence.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

commit aef2d0c56dd6d363e51b1c37dc0095054f18098c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Sep 23 16:12:50 2015 +0800

    build/win32: Make "Install" Property Sheet Generation More Robust

    List the files that are generated in the process to generate the
    glib-install property sheets, so that we can use that list as a
    depedency, as well as deleting those files in one shot after the
    property sheet is generated, so we don't need to worry about those
    in 'make distclean' or so.

 build/win32/vs10/Makefile.am | 8 ++++----
 build/win32/vs9/Makefile.am  | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit b81f3ced716b81ea604876ba1e89b953e0d04813
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Sep 21 10:41:00 2015 -0400

    Move GStrv typedef to glib.h instead of gobject.h

    GStrv was historically only needed for the boxed G_TYPE_STRV,
    but it is now useful for g_auto(GStrv) as well. This is not
    an ABI change.

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

 docs/reference/glib/glib-sections.txt       | 3 +++
 docs/reference/gobject/gobject-sections.txt | 1 -
 glib/docs.c                                 | 2 ++
 glib/glib-autocleanups.h                    | 1 +
 glib/gstrfuncs.c                            | 7 +++++++
 glib/gstrfuncs.h                            | 1 +
 glib/tests/autoptr.c                        | 8 ++++++++
 gobject/glib-types.h                        | 7 -------
 gobject/gobject-autocleanups.h              | 1 -
 9 files changed, 22 insertions(+), 9 deletions(-)

commit 32811598f384ac165a812b4dde8fb1ad4df2d420
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Tue Sep 15 16:42:10 2015 -0400

    doc: clarify that _get_instance_private() is NULL-safe

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

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

commit ab26dd54337544275ff8bb61eb227aed83a8ed80
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Sep 22 13:10:28 2015 +0100

    Revert use of the system_header GCC pragma

    This reverts commit 662bf991c08b16dea8a36026243b311f6cdb17f1. It
    is not
    a straight up revert because the old commit involved various long
    since
    removed ChangeLog files and we'd end up mudding the patch.

    The system_header GCC pragma is breaking warnings in the various
    g_return_* macros; GCC stopped warning when using a macro with
    a return
    value in a function that returns void, as well as when using a macro
    with no return value in a function that has a non-void return value.
    Suppressing this kind of warnings is not a good idea.

    Other compilers are unaffected, even ones like Clang with a GCC
    compatibility layer.

    Given the fact that the original commit was added 14 years ago as a
    workaround in the old days of GTK+ 1.2, I think it's safe to drop it.

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

 glib/gmessages.h | 6 ------
 1 file changed, 6 deletions(-)

commit d488d75909a7f5bdc13865a155ea583fcc3cb07f
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Sep 21 10:50:38 2015 -0400

    Remove useless NULL check before g_free()

 glib/glib-autocleanups.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit f7f0c86a9c7669a5101615622a29d34098ecb7fc
Author: Милош Поповић <gpopac@gmail.com>
Date:   Tue Sep 22 12:33:23 2015 +0000

    Updated Serbian Latin translation

 po/sr@latin.po | 1014
 ++++++++++++++++++++++++++++++--------------------------
 1 file changed, 538 insertions(+), 476 deletions(-)

commit 45c39bfed487378de5a4b7f977fd74564f29083e
Author: Милош Поповић <gpopac@gmail.com>
Date:   Tue Sep 22 12:32:49 2015 +0000

    Updated Serbian translation

 po/sr.po | 1014
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 538 insertions(+), 476 deletions(-)

commit 613393bc1d52207c22f3fe8dc71c09277f9ac7f7
Author: Petr Kovar <pkovar@redhat.com>
Date:   Mon Sep 21 17:56:16 2015 +0200

    Update Czech translation

 po/cs.po | 427
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 218 insertions(+), 209 deletions(-)

commit 9348af3651afbd554fec35e556cda8add48bd9f8
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Sep 21 09:53:25 2015 -0400

    Doc: g_autoptr(gchar) has been replaced by g_autofree

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

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

commit d73cd49799444f9045d44a414c7b35f129844504
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 21 06:10:10 2015 -0400

    2.46.0

 NEWS         | 16 ++++++++++++++++
 configure.ac |  4 ++--
 2 files changed, 18 insertions(+), 2 deletions(-)

commit 3ffed912c19c5c24b7302d2ff12f82a6167f1c30
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Tue Sep 15 16:50:37 2015 -0400

    doc: small clarification in g_autoptr()

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

 glib/docs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 8297ea8badef5ae5bdeab85b74780fd70de60247
Author: Matthew Waters <matthew@centricular.com>
Date:   Thu Sep 17 20:38:10 2015 +1000

    win32: fix incorrect specifier

    error: format ‘%u’ expects argument of type ‘unsigned int’,
    but argument 4 has
       type ‘gsize {aka long long unsigned int}’ [-Werror=format=]

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

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

commit 2bc094264b334b8afdbdc1cf35ff5265f0ac3415
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 21 06:27:07 2015 -0400

    Documentation fixups

    Various parameter fixups and symbol list additions.

 docs/reference/gio/gio-sections.txt   |  4 +++-
 docs/reference/glib/glib-sections.txt |  1 +
 gio/gnativesocketaddress.c            |  6 +++---
 gio/gwin32registrykey.c               | 20 +++++++++----------
 glib/gasyncqueue.c                    | 36
 +++++++++++++++++------------------
 5 files changed, 35 insertions(+), 32 deletions(-)

commit 3ad2ef7510b036758d5aa928a6a0a1ac5c29c591
Author: Ask Hjorth Larsen <asklarsen@gmail.com>
Date:   Sun Sep 20 20:20:37 2015 +0200

    Updated Danish translation

 po/da.po | 864
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 443 insertions(+), 421 deletions(-)

commit b1af57256721fa0198b63585d3bf26265a8736dd
Author: Rafael Fontenelle <rffontenelle@gmail.com>
Date:   Sun Sep 20 14:32:13 2015 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 1465
 ++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 791 insertions(+), 674 deletions(-)

commit 1dc70d703e925bf441a12961223c4cb6d1e376bd
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Fri Sep 18 22:29:37 2015 +0300

    Updated Latvian translation

 po/lv.po | 1102
 +++++++++++++++++++++++++++-----------------------------------
 1 file changed, 477 insertions(+), 625 deletions(-)

commit 9d859934c5d097bc23578237d01324eb9b30c0f4
Author: Bernd Homuth <dev@hmt.im>
Date:   Thu Sep 17 15:36:28 2015 +0000

    Updated German translation

 po/de.po | 964
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 494 insertions(+), 470 deletions(-)

commit f1599649e55a52a8e331ee282ac4c5a03432cb43
Author: Stas Solovey <whats_up@tut.by>
Date:   Thu Sep 17 11:31:28 2015 +0000

    Updated Russian translation

 po/ru.po | 863
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 446 insertions(+), 417 deletions(-)

commit ea93847a7d6f341c8ed53733c78b8f38f9567bc4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Sep 17 09:15:27 2015 +0800

    MSVC Build: Make Re-use Comment of Autotools Module Clearer

 build/Makefile.msvcproj | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 9fe1c1b3e7a8d680e15d861c1ef224f4b7a2ebad
Author: Muhammet Kara <muhammetk@gmail.com>
Date:   Wed Sep 16 18:51:44 2015 +0000

    Updated Turkish translation

 po/tr.po | 376
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 194 insertions(+), 182 deletions(-)

commit 58eae7782acbbebb2d6793d4087b6e0a8f61e818
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Sep 16 18:44:48 2015 +0200

    tests: Do last commit's fix for enums, too

    We don't want to treat enums as ints but as ints.

 gobject/tests/signals.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

commit 605ff1efe76ee26695077b08b96f222cef96efb2
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Sep 16 18:17:04 2015 +0200

    tests: Make testcase not pass 0 as a flags value

    This will not catch the case where we fail in libffi and always use 0.
    In fact, be a real annoying person and use (1 << 31) as a flags
    value to
    test signedness, too.

    Also update the testcase to actually use flags everywhere and ot uint.

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

 gobject/tests/signals.c | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

commit 7b685eab8821686821c38e398536b0842b0ed131
Author: Ray Strode <rstrode@redhat.com>
Date:   Wed Sep 16 18:01:04 2015 +0200

    ffi: Marshal flags like enums

    Flags are enums.
    Fixes broken marshalling on BE 64bit architectures.

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

 gobject/gclosure.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 846e206146c2f0b6b5321d245004d262c7d585a3
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Wed Sep 16 14:30:29 2015 +0200

    GListModel docs: It's get_n_items(), not get_length().

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

commit 3bd1618ea955f950f87bc4e452029c5f0cea35aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 14 18:42:12 2015 -0400

    Disable deprecation warnings for the stable release again

    Keeping these enabled causes too many people to file
    bugs against gobject, and not enough people to send
    patches to port away from deprecated properties.

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

commit 5475be0c1053df95ac560a94b918445411b3639e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 14 08:42:18 2015 -0400

    2.45.8

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit 4c938c246cf3da8db16a2d9cda7209f1d72e37ee
Author: Fran Dieguez <fran@openhost.es>
Date:   Mon Sep 14 16:49:57 2015 +0200

    Updated Galician translations

 po/gl.po | 935
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 478 insertions(+), 457 deletions(-)

commit 69002f726d597c613223ad0ea8e6262b73842f1b
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 14 13:15:51 2015 +0200

    signal: return TRUE from g_signal_has_handler_pending for custom
    class closure

    This is almost always what you want, because if you're using this you
    want to know if any "custom code" (i.e. not the default class closure)
    is going to be run if you emit this signal.

    I looked at all the existing uses of this and they were all broken
    in the
    presence of g_signal_override_class_closure().

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

 gobject/gsignal.c | 33 ++++++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 11 deletions(-)

commit 2e96668f245dba66c3ceedfea7a8ecc565a018e7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 13 22:44:29 2015 -0400

    Updates

 NEWS | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit a7b2b5686aea1199e3cdea7d1c743e087a1e5b1d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 13 13:37:10 2015 -0400

    Fix make check

    I forgot to add the include to make I_() known in gdbusdaemon.c

 gio/gdbusdaemon.c | 1 +
 1 file changed, 1 insertion(+)

commit 67c5bbaf03c95df198b2828d5dbf51b010721f11
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Sat Sep 12 12:13:10 2015 +0300

    glib/tests/utf8-validate: test known-length case along with
    null-terminated

    For all test cases where the text length is given as -1, also
    call g_utf8_validate() with the actual string length to exercise
    the known-length case. Unknown-length and known-length validation
    use different code paths, but most of the tests only exercised with
    unknown-length parameter.

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

 glib/tests/utf8-validate.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 8ab28b448bfc852b61c515c6fe230f23a5c1298b
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Sat Sep 12 11:38:04 2015 +0300

    glib/tests/utf8-validate: add another test for invalid continuation
    bytes

    This would have caught the regression committed in the course of
    bug #738504.

 glib/tests/utf8-validate.c | 1 +
 1 file changed, 1 insertion(+)

commit d1f4d4a91a5274a33a0aee0748851bce7fbffa23
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Sat Sep 12 11:06:53 2015 +0300

    g_utf8_validate: fix a regression

    A recent change permitted some characters from range 0x80-0xbf as
    would-be valid sequence starters for length 2, as long as
    continuation characters were OK.

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

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

commit a51a877d2739239e2ab7c72a60a5ecc27ba772f3
Author: Nicola Fontana <ntd@entidi.it>
Date:   Fri Mar 22 23:32:45 2013 +0100

    GParamSpec: do not use static GParamSpecTypeInfo

    g_param_type_register_static() has read-only access the pspec_info
    argument: no need to keep the original struct around.

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

 gobject/gparamspecs.c | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

commit 6f752b52e9145986a26a5c6f0bf064a185bb07d2
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Sat Sep 12 21:13:22 2015 +0000

    Updated Swedish translation

 po/sv.po | 761
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 392 insertions(+), 369 deletions(-)

commit d8a7e093b92bee5b4077968984314afe8bf193db
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Sep 12 19:55:24 2015 +0200

    Updated POTFILES.in

 po/POTFILES.in | 9 +++++++++
 1 file changed, 9 insertions(+)

commit b9a27679ec1555262c0c721ec1793d7acd7766d9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 12 12:05:31 2015 -0400

    Revert "Cleanups after we dropped mem vtables"

    This reverts commit 627854fee1fde93e01f27655b00a9082348ee15f.

    It has been argued that not aborting on malloc() failure is
    an incompatible change.

 glib/gstrfuncs.c | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

commit 9acd0ddbf3c0f14e6ae7cb3f7faf4c24767f13b8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 12 00:00:40 2015 -0400

    gio: Intern all signal names beforehand

    This avoids pointless copying of static strings.

 gio/gappinfo.c                 |  6 +++---
 gio/gapplication.c             | 12 ++++++------
 gio/gdbusauthobserver.c        |  4 ++--
 gio/gdbusconnection.c          |  2 +-
 gio/gdbusdaemon.c              |  2 +-
 gio/gdbusinterfaceskeleton.c   |  2 +-
 gio/gdbusobject.c              |  4 ++--
 gio/gdbusobjectmanager.c       |  8 ++++----
 gio/gdbusobjectmanagerclient.c |  4 ++--
 gio/gdbusobjectskeleton.c      |  2 +-
 gio/gdbusproxy.c               |  4 ++--
 gio/gdbusserver.c              |  2 +-
 gio/glistmodel.c               |  3 ++-
 gio/gmenumodel.c               |  4 +++-
 gio/gsettings.c                |  8 ++++----
 gio/gsocketservice.c           |  2 +-
 gio/gthreadedsocketservice.c   |  2 +-
 gio/gunixmounts.c              |  4 ++--
 18 files changed, 39 insertions(+), 36 deletions(-)

commit c90f283be33bffde48c244e0478b63fd6798fbcf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 12 01:47:13 2015 -0400

    Speed up g_dataset_id_dup_data

    This code is used in the property notification path, so it
    better be fast. This commit removes a g_return_if_fail check and
    treats the common case of just a single data element better.

 glib/gdataset.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 59df5440f3805db3e1d00b86d91a76dcb50412e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 11 22:48:05 2015 -0400

    Drop g_slice_set_config tests

    With g_quark_init, we are now calling GSlice from a constructor
    (this was already the case when linking against gobject).

 glib/tests/slice.c | 21 ---------------------
 1 file changed, 21 deletions(-)

commit 2fe992b099bfd3fb121a71b7af43e116b2142b5d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 11 23:59:27 2015 -0400

    Move quark initialization to a constructor

    This removes a branch from the very frequently called
    quark functions.

 glib/glib-init.c |  1 +
 glib/glib-init.h |  2 ++
 glib/gquark.c    | 26 ++++++++++++++------------
 3 files changed, 17 insertions(+), 12 deletions(-)

commit 627854fee1fde93e01f27655b00a9082348ee15f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 11 18:08:33 2015 -0400

    Cleanups after we dropped mem vtables

    Since g_malloc is now always malloc, we can just use
    strdup and strndup directly.

 glib/gstrfuncs.c | 25 ++++---------------------
 1 file changed, 4 insertions(+), 21 deletions(-)

commit 97a25d12031b07540c95387cb434ee5c87b82c46
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 10 23:57:01 2015 -0400

    Optimize g_unichar_iswide

    Apply the same optimization that was done for g_unichar_get_script
    long ago: Use a quick check for the low end, and then remember the
    midpoint of the last bsearch, since we're likely to be called for
    characters that are close to each other.

    This change made g_unichar_iswide disappear from profiles of the
    gtk3-demo listbox example.

 glib/guniprop.c | 38 ++++++++++++++++++++++++++++++--------
 1 file changed, 30 insertions(+), 8 deletions(-)

commit 96675446c5fc9b47265124e479cc300f7a7ced65
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 6 15:39:22 2015 -0400

    Make g_strerror() do less work

    Store the (translated, UTF-8-encoded) error strings in a hash table to
    avoid doing translation and (possibly) g_locale_to_utf8() in every
    g_strerror() call.

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

 glib/gstrfuncs.c | 55
 ++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 34 insertions(+), 21 deletions(-)

commit 19eb511ba4f4914c1914472132d3601069bef906
Author: Dan Winship <danw@gnome.org>
Date:   Wed Sep 9 11:16:30 2015 -0400

    More g_strerror() fixes

    Add a check to configure.ac for strerror_r, since we don't currently
    require POSIX.1-2001 conformance in general. Add back a
    plain-strerror() case as a fallback, and rearrange the glibc-vs-POSIX
    strerror_r() branches.

    Update the docs to not claim that "not all platforms support the
    strerror() function" (we require C90), but still mention the UTF-8 and
    always-valid-string benefits. (And make test_strerror() check that
    last part.)

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

 configure.ac          |  2 +-
 glib/gstrfuncs.c      | 27 +++++++++++++++------------
 glib/tests/strfuncs.c | 11 +++++++++++
 3 files changed, 27 insertions(+), 13 deletions(-)

commit ee6740aa78d267d9890bc3830a723dbc1eaf303a
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Sep 10 20:46:21 2015 -0500

    Fix a typo

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

commit b8a5e22b6b6280ad05dd14cfa920316e85e30d04
Author: Kalev Lember <klember@redhat.com>
Date:   Thu Sep 10 15:06:56 2015 +0200

    Bump version

    So that early adopters of new api have a version to target.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d19411a76f91d47930ea67d16b30fba55734b449
Author: Kalev Lember <klember@redhat.com>
Date:   Thu Sep 10 14:08:35 2015 +0200

    autocleanups: Add GString type

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

 glib/glib-autocleanups.h | 10 +++++++++-
 glib/tests/autoptr.c     |  8 ++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

commit 4025b5a54fcbe2f5bc4c71e3259bc1af60c99169
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Sep 9 11:58:44 2015 +0800

    MSVC Builds: "Add" MSVC 2015 Projects

    This "adds" the Visual Studio 2015 Project files by doing what we did
    before: copying the Visual Studio 2010 projects and replacing items
    in them, as the formats of the Visual Studio 201x projects are largely
    the same.

 build/win32/Makefile.am      |  3 ++-
 build/win32/vs14/Makefile.am | 44
 ++++++++++++++++++++++++++++++++++++++++++++
 configure.ac                 |  1 +
 3 files changed, 47 insertions(+), 1 deletion(-)

commit 9c7df09c3bc784d19c206e8c17c3c288368541d1
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Sep 9 11:54:11 2015 +0800

    MSVC Builds: Simplify Script to Generate glib-mkenums

    Use a simple all-purpose utility script to generate the glib-mkenums
    PERL script with the version info, and stop using the script that
    tries to parse the autotools files.  Move the things that
    were taken out from build/win32/setup.py back there.

 build/win32/Makefile.am                            |  2 +-
 build/win32/process_in_win32.py                    | 77 -----------------
 build/win32/replace.py                             | 98
 ++++++++++++++++++++++
 build/win32/setup.py                               | 35 +++++++-
 build/win32/vs10/Makefile.am                       |  3 +-
 ...{glib-gen-srcs.props => glib-gen-srcs.props.in} |  4 +-
 build/win32/vs9/Makefile.am                        |  3 +-
 ...b-gen-srcs.vsprops => glib-gen-srcs.vsprops.in} |  2 +-
 configure.ac                                       |  2 +
 9 files changed, 142 insertions(+), 84 deletions(-)

commit 0570adff8074a786023bfb7646e7475af52f88f9
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Sep 8 23:19:40 2015 +0200

    Updated Slovenian translation

 po/sl.po | 936
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 481 insertions(+), 455 deletions(-)

commit 20e8b634771f85926a6f9a67e11f13eb01d45bc7
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Fri Sep 4 11:58:57 2015 +0300

    gioerror: Add more mappings for WinSock error codes

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

 gio/gioerror.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 5a84f84325cbb0a58014348cb5513656432ae25d
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Tue Sep 8 14:15:44 2015 +0200

    gparam: Fix Since tag of g_param_spec_get_name_quark

 gobject/gparam.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 925dca1746b45855ad56dbe219f631200e87c9ff
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Tue Sep 8 14:14:13 2015 +0200

    docs: Add index for 2.46 api

 docs/reference/glib/glib-docs.xml       | 4 ++++
 docs/reference/gobject/gobject-docs.xml | 4 ++++
 2 files changed, 8 insertions(+)

commit 0be6766d9be08bce4901ab3b5d80657070e65ee1
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Sep 7 14:46:10 2015 +0800

    MSVC Builds: Prepare For Visual Studio 2015

    Update the autotools module so that we can use it to upgrade the
    Visual Studio 2010 projects to become Visual Studio 2015-compatible.

    Note that this will make the MSVC 2015 builds use the the the latest
    VC140 CRT.

 build/Makefile-newvs.am      | 22 +++++++++++++---------
 build/win32/vs11/Makefile.am |  4 +---
 build/win32/vs12/Makefile.am |  4 +---
 3 files changed, 15 insertions(+), 15 deletions(-)

commit 00933dfc9cc525963c6833d3180b593a87bb15bb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 20:56:10 2015 -0400

    Speed up property change notification a bit

    Avoid the quark lock and hash table lookup for every
    emission of ::notify.

 gobject/gobject.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 41c0d15a6d680738e80a59e89c1058a97ca922ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 20:54:01 2015 -0400

    Add a method to get the pspec name quark

    This lets us avoid the quark lookup in the hot
    property change notification path.

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gparam.c                            | 34
 ++++++++++++++++++++++++++---
 gobject/gparam.h                            |  3 +++
 3 files changed, 35 insertions(+), 3 deletions(-)

commit a62ad79f5c59152d1a52c3b52d969c3c48390cda
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 19:57:53 2015 -0400

    Clean up locking in g_object_notify_queue_add

    Instaed of returning with the lock held, simply assert
    that this cannot happen:

    https://bugzilla.gnome.org/show_bug.cgi?id=749678#c4

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

commit 087d75e3c336547fff37a4bc5d33b1ad041485bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 19:43:19 2015 -0400

    Make g_set_object more symmetric

    As argued in bug 748633, and order of ref, assign, unref is
    preferable.

 gobject/gobject.h | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit ebf961a58d540ea40611ad75bc983f5386d3635b
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Sat Sep 5 23:35:57 2015 +0800

    Make g_strerror work with non-glibc POSIX systems

    We should only use GNU-specific strerror_r on glibc. On other systems,
    we should use the XSI-compliant version.

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

 glib/gstrfuncs.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit e773acfe9a0f8cf4d67799f6177997bd8a761ede
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 14:59:22 2015 -0400

    tests: Don't test g_utf8_to_ucs4_fast too rigorously

    The function is documented to assume valid input, and doesn't
    guarantee behavior with invalid input. So don't test that.

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

 tests/unicode-encoding.c | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

commit db3ffe5bf139a664609ab1f7e3715a2da5019805
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 13:24:18 2015 -0400

    unicode-encoding test: Differentiate error messages

    Spitting out the same error for different cases in not helpful.

 tests/unicode-encoding.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cb3a03e1e2160d4548db3d7b2e55789c05e08225
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Tue Sep 8 01:59:08 2015 +0900

    Updated Korean translation

 po/ko.po | 939
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 470 insertions(+), 469 deletions(-)

commit 23229bfd0cbd2588402835758238e36407814148
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 10:35:13 2015 -0400

    GString: Avoid some repeated parameter checking

    Many of the append and prepend variants are just thin wrappers
    around another one. Remove parameter checking in the wrapper
    for these cases. The wrapped function is checking them anyway.

 glib/gstring.c | 20 +-------------------
 1 file changed, 1 insertion(+), 19 deletions(-)

commit 03db1f455b4265654e237d2ad55464b4113cba8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 09:50:41 2015 -0400

    Remove some unused code

    The function unescape_gstring_inplace was maintaining a line count
    without ever making use of it. Drop that.

 glib/gmarkup.c | 4 ----
 1 file changed, 4 deletions(-)

commit 44af2b1c17b5920052a6bb363c62d8452a570a42
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:02:11 2015 -0400

    Simplify g_param_spec_get_redirect_target a bit more

    It is enough to look for exact matches here, so no need to
    dive into g_type_instance_is_a and take locks, etc.

 gobject/gparam.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f1f80111c9bb691c658e8657c450845387cbefd1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 02:33:50 2015 -0400

    Simplify g_param_spec_get_redirect_target

    There is no need to do a type check in a g_return_if_fail if the
    type check is tne next thing the function does anyway.

 gobject/gparam.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit 401f78652c31a6a9eab68197e1634dcb765eabe6
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Tue Oct 14 23:39:28 2014 +0300

    Reorganized utf8-performance tests

    Now each function-string pair gets its own test path to track
    a single performance result.

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

 glib/tests/utf8-performance.c | 125
 ++++++++++++++++++++++++++----------------
 1 file changed, 77 insertions(+), 48 deletions(-)

commit b963565125f0ec2968300ddc80ab7750aa56625c
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Mon Oct 13 21:31:02 2014 +0300

    Unrolled implementation of g_utf8_to_ucs4_fast()

    Unrolling the branches and expressions for all expected cases
    of UTF-8 sequences facilitates the work of both an optimizing compiler
    and the branch prediction logic in the CPU. This speeds up decoding
    noticeably on text composed primarily of longer sequences.

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

 glib/gutf8.c | 71
 ++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 43 insertions(+), 28 deletions(-)

commit 3188b8ee791a38ac3dd7e477f30761344442f745
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Tue Oct 14 01:18:57 2014 +0300

    Optimized branching in g_utf8_validate()

    The number of branches and logical operations can be reduced by
    never producing a resulting wide character value to check its range.
    Instead, individual bytes in the sequence are validated
    depending on the branch taken on the basis of preceding bytes.
    The syntax given in RFC 3629 is made use of.

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

 glib/gutf8.c | 149
 ++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 80 insertions(+), 69 deletions(-)

commit 5644ee5083c5f03e01ee2e4de615c16cfc0dfcd0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 5 13:02:33 2015 -0400

    markup: trivial refactor

    Avoid an unnecessary branch.

 glib/gmarkup.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit d28639507db2029b8f184a5d93e9d8c28acc1955
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 4 13:55:46 2015 -0400

    list store: Fix a parameter check

    Getting this wrong causes build failures.

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

 glib/gsequence.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit da4927b7fb0213f77d8ca087de6854948487c6ee
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   Fri Sep 4 16:23:43 2015 +0000

    Updated Kazakh translation

 po/kk.po | 947
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 465 insertions(+), 482 deletions(-)

commit 6e1618560035296f0d92231e241bf29b8d7d213c
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Fri Sep 4 07:49:58 2015 +0000

    Updated Italian translation

 po/it.po | 1651
 +++++++++++++++++++++++++-------------------------------------
 1 file changed, 663 insertions(+), 988 deletions(-)

commit 1387a16bf4eb1859170bd2fa9b9efb9d5169d1e7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Sep 3 15:24:06 2015 +0800

    MSVC Builds: Remove Static Items

    ... which are now generated with the new autotools module, so we just
    need to ensure the generated items are being dist'ed.

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

 build/win32/vs10/glib-compile-resources.vcxproj    | 181 -----------
 .../vs10/glib-compile-resources.vcxproj.filters    |  17 --
 build/win32/vs10/glib-compile-schemas.vcxproj      | 181 -----------
 .../vs10/glib-compile-schemas.vcxproj.filters      |  17 --
 build/win32/vs10/glib-install.props                | 332
 ---------------------
 build/win32/vs9/glib-compile-resources.vcproj      | 156 ----------
 build/win32/vs9/glib-compile-schemas.vcproj        | 156 ----------
 build/win32/vs9/glib-install.vsprops               | 314
 -------------------
 8 files changed, 1354 deletions(-)

commit 041e77249af8778db1e37b3ad47c034fa7934e05
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Sep 3 15:19:48 2015 +0800

    Cleanup and Enhance the MSVC Project Generation

    Make use of the common autotools module that is used to generate
    the MSVC
    project files from their respective templates so that the main
    build files
    beccome cleaner, and enhance them in a way that the headers that
    should be
    installed can be written to the property sheets during 'make dist',
    so that
    the chances of missing headers for MSVC builds can be greatly reduced.

    Also use this autotools module to fill in the projects for
    glib-compile-schemas and glib-compile-resources.

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

 build/win32/vs10/.gitignore                        |   5 +
 build/win32/vs10/Makefile.am                       |  96 ++++++-----
 build/win32/vs10/gio.vcxproj.filtersin             |   4 +-
 build/win32/vs10/gio.vcxprojin                     |   4 +-
 .../vs10/glib-compile-resources.vcxproj.filtersin  |  12 ++
 build/win32/vs10/glib-compile-resources.vcxprojin  | 180
 +++++++++++++++++++++
 .../vs10/glib-compile-schemas.vcxproj.filtersin    |  12 ++
 build/win32/vs10/glib-compile-schemas.vcxprojin    | 180
 +++++++++++++++++++++
 build/win32/vs10/glib-install.propsin              | 102 ++++++++++++
 build/win32/vs10/glib.vcxproj.filtersin            |   4 +-
 build/win32/vs10/glib.vcxprojin                    |   2 +-
 build/win32/vs10/gobject.vcxproj.filtersin         |   2 +-
 build/win32/vs10/gobject.vcxprojin                 |   2 +-
 build/win32/vs9/.gitignore                         |   3 +
 build/win32/vs9/Makefile.am                        |  56 ++++---
 build/win32/vs9/gio.vcprojin                       |   2 +-
 build/win32/vs9/glib-compile-resources.vcprojin    | 155
 ++++++++++++++++++
 build/win32/vs9/glib-compile-schemas.vcprojin      | 155
 ++++++++++++++++++
 build/win32/vs9/glib-install.vspropsin             |  76 +++++++++
 build/win32/vs9/glib.vcprojin                      |   2 +-
 build/win32/vs9/gobject.vcprojin                   |   2 +-
 gio/Makefile.am                                    |  57 +++----
 glib/Makefile.am                                   |  50 ++----
 gobject/Makefile.am                                |  44 ++---
 24 files changed, 1032 insertions(+), 175 deletions(-)

commit 700983c8c9827cb4de93d25757c767d1d5211910
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Sep 3 19:08:55 2015 +0800

    build: Add Common Autotools Module for MSVC Projects

    This adds a common autotools module that can be used by various
    projects to generate the Visual Studio projects as needed, and
    if necessary, generate the headers listings to "install" for that
    project, based on items passed in to this.  This is modelled on the
    Makefile.introspection autotools file that is used by many GNOME
    projects to generate the introspection files.

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

 build/Makefile.msvcproj | 110
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)

commit 63a5556aa2821b266b2b14b436abaa9f77e73e46
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Wed Sep 2 21:17:11 2015 +0300

    Updated Lithuanian translation

 po/lt.po | 329
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 168 insertions(+), 161 deletions(-)

commit 7a65d1d3fb86b0ab46a0a425b79985e037cd3b68
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 2 14:48:04 2015 +0100

    gmem: Fix a typo in the g_try_new0() documentation

 glib/gmem.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b77fe970dbbc3c1e2bfaca58aade6874f8530885
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jan 14 10:44:12 2015 +0000

    gstring: Mark g_string_free() as taking (transfer full) input

    This is unusual, but the correct annotation for a free() function.

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

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

commit 4cad3f5e1bc88e626450607ca8c6b59265d7242b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Sep 2 16:09:58 2015 +0800

    glib/strfuncs.c: Fix Build on Windows

    Windows does not have strerror_r(), but does have strerror_s(),
    which is
    threadsafe, and does more or less the same thing, so use it on
    Windows to
    fix the build.

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

 glib/gstrfuncs.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 4a09d0cf7a65cd08d4156eafd80e943712216d49
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Wed Sep 2 01:19:40 2015 +0800

    Fix return value error in g_list_store_sort

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

commit f14e2e5c53a5f1113c5e063511b7ea31319f4ccf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 1 10:58:32 2015 -0400

    2.45.7

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

commit b04c565f33edbe7b81b028ba371da93b946f6393
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Aug 19 13:47:58 2015 +0100

    gio: Link against gmodule when building tools

    Otherwise cross-compilation will fail with linker errors.

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

 gio/Makefile.am | 5 +++++
 1 file changed, 5 insertions(+)

commit 5ce70917df75f87c89a9b1e9d0583ae4135f0b2c
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Aug 19 13:38:30 2015 +0100

    Drop binary checks when cross-compiling

    We don't need to run binaries we just built in order to successfully
    build GLib and friends any more.

    Since commit b74e2a7, we don't need to run glib-genmarshal when
    building
    GIO; since commit f9eb9eed, all our tests (including the ones that do
    need to run binaries we just built) are only built when running "make
    check", instead of unconditionally at every build.

    This means that we don't need to check for existing, native binaries
    when cross-compiling, and fail the configuration step if they are not
    found — which also means that you don't need to natively build
    GLib for
    your toolchain, in order to cross-compile GLib.

    We can also use the cross-compilation conditional, and skip those
    tests
    that require a binary we just built in order to build.

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

 configure.ac              | 24 ++----------------------
 gio/tests/Makefile.am     | 12 +++++-------
 gobject/tests/Makefile.am | 14 ++++++++------
 tests/gobject/Makefile.am | 20 +++++++-------------
 4 files changed, 22 insertions(+), 48 deletions(-)

commit 1dec512a66fddfd8b4b265231b00d4f918b16cef
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 1 10:21:26 2015 -0400

    Revert "GSettings: delay backend subscription"

    This reverts commit 8ff5668a458344da22d30491e3ce726d861b3619.

    This change has had considerable fallout, and there was no
    follow-up to address it.

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

 gio/gsettings-tool.c | 13 -------------
 gio/gsettings.c      | 47 ++++-------------------------------------------
 2 files changed, 4 insertions(+), 56 deletions(-)

commit 7fff264777ac9869ff347dd2bb02304e11d83a20
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 1 10:18:23 2015 -0400

    Revert "GSettings: fix check for delaying backend subscription"

    This reverts commit d511d6b37f051d2cd8698055cbd85ee7f987325d.

 gio/gsettings.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

commit 16721468e5410732f2575be35652ece538587b94
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Wed Jul 15 17:01:03 2015 +0100

    gsignal: Don't crash when operating on signals on the wrong object

 gobject/gsignal.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

commit 261250c46e3eab9b54c9cc59b405a69785a65b35
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Thu Jul 16 15:38:21 2015 +0100

    Test that disconnecting from the wrong thing warns and doesn't crash

    This broke in 916297be799ee001b4a214cc52c3b960bb0b5deb (≥ 2.45.3)

 gobject/tests/signals.c | 53
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

commit 976da775cbeff497e922f959f9a35d5e06cfc7a9
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Tue Sep 1 07:57:48 2015 +0000

    Updated French translation

 po/fr.po | 230
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 120 insertions(+), 110 deletions(-)

commit 9f2e3f6b7262a8cae817a4cc12388fcc1bd63bce
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 3 05:57:29 2014 -0500

    gtestutils: add g_assert_cmpmem()

    Add a test macro to compare two buffers (which are not already known
    to be the same length) for equality.

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

 docs/reference/glib/glib-sections.txt |  1 +
 gio/tests/async-close-output-stream.c |  9 ++-----
 gio/tests/converter-stream.c          | 46
 +++++++++++++++++------------------
 gio/tests/gdbus-peer.c                |  3 +--
 gio/tests/gsettings.c                 |  4 +--
 gio/tests/gsubprocess.c               | 11 ++++-----
 gio/tests/readwrite.c                 | 10 +++-----
 glib/gtestutils.c                     | 33 +++++++++++++++++++++----
 glib/gtestutils.h                     | 10 ++++++++
 glib/tests/base64.c                   | 25 ++++---------------
 glib/tests/bytes.c                    | 23 ++++++------------
 glib/tests/checksum.c                 |  3 +--
 glib/tests/gvariant.c                 |  3 +--
 glib/tests/hmac.c                     |  3 +--
 glib/tests/strfuncs.c                 |  3 +--
 glib/tests/string.c                   | 10 +++-----
 glib/tests/testing.c                  | 26 ++++++++++++++++++++
 17 files changed, 120 insertions(+), 103 deletions(-)

commit 367f36d630afa01b0967547f5a038a1f8f499f45
Author: Dan Winship <danw@gnome.org>
Date:   Fri Dec 12 12:47:00 2014 -0500

    gtestutils: forbid having two tests with the same full path

    In the same way that gtestutils used to let you create multiple suites
    with the same name, it also let you create multiple tests with the
    same name. Make that an error instead (and fix glib/tests/base64.c,
    which was registering three separate tests named
    "/base64/incremental/nobreak/4", and glib/tests/autoptr.c, which was
    running test_g_variant_builder() twice).

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

 glib/gtestutils.c    | 16 +++++++++++++++-
 glib/tests/autoptr.c |  1 -
 glib/tests/base64.c  |  6 +++---
 3 files changed, 18 insertions(+), 5 deletions(-)

commit 123ea70d74e655f7401cf70d364ccfb2b03022a7
Author: Dan Winship <danw@gnome.org>
Date:   Sat Feb 1 18:23:13 2014 +0100

    gtestutils: improve non-TAP output, fix handling of incomplete tests

    In non-TAP mode, tests that used g_test_skip() were labelled "OK", and
    tests that used g_test_incomplete() were labelled "FAIL". Explicitly
    show them as "SKIP" and "TODO" instead, like in the TAP case.

    Also, incomplete/TODO tests are not supposed to be treated as
    failures, so fix that too.

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

 glib/gtestutils.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

commit 6e382208f72cfd449cf076ac1f1fa340fe6eea0f
Author: Dan Winship <danw@gnome.org>
Date:   Fri Dec 12 11:49:31 2014 -0500

    gtestutils: print the TAP test plan first, not last

    TAP allows you to print the "test plan" (ie, the expected number of
    tests" either at the start or the end of the test program, but if you
    put it at the end, and the program crashes, automake will complain
    "missing test plan", which is confusing to users (particularly since
    it prints that *before* it prints that the test program crashed,
    suggesting that somehow the lack of test plan was responsible for the
    crash or something, rather than vice versa).

    Anyway, change it to count the tests ahead of time, and print the test
    plan first. Keeping this simple requires disallowing the '-p', '-s',
    and '--GTestSkipCount' options when using '--tap' (although we were
    already printing the wrong number in the --GTestSkipCount case
    anyway).

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

 glib/gtestutils.c | 44 ++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 42 insertions(+), 2 deletions(-)

commit 51c91ed53d54efed8f82d5ead200ac5b6ef52a6a
Author: Dan Winship <danw@gnome.org>
Date:   Fri Mar 14 14:57:51 2014 -0400

    gtestutils: move "/subprocess" path special-casing

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

 glib/gtestutils.c | 42 ++++++++++++++++++------------------------
 1 file changed, 18 insertions(+), 24 deletions(-)

commit 91ff2ba844a917162307a75afa658571d419701f
Author: Dan Winship <danw@gnome.org>
Date:   Fri Mar 14 11:19:01 2014 -0400

    gtestutils: make g_test_suite_run{,internal} less confusing

    Rewrite g_test_suite_run() and g_test_suite_run_internal() to make it
    clearer what they do (while still preserving exact backward
    compatibility, meaning we need to handle the "-p" case differently
    from the non-"-p" case).

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

 glib/gtestutils.c | 94
 ++++++++++++++++++++++++-------------------------------
 1 file changed, 41 insertions(+), 53 deletions(-)

commit 510331bacf803a905577b93f118f5a32bba55bd3
Author: Dan Winship <danw@gnome.org>
Date:   Fri Mar 14 11:41:44 2014 -0400

    gtestutils: reorganize g_test_name manipulation

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

 glib/gtestutils.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit 34ec21fab54ecd964ab7167060b650ab0ff44602
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 31 13:48:22 2015 -0400

    win32: Fix a g_once_init_enter call

    g_once_init_enter must be given a gsize-sized location.
    A gboolean doesn't qualify. This broke the build on win64.

    http://bugzilla.gnome.org/show_bug.cgi?id=754307

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

commit 591eabcbbcaf3589b004e65c4a11a0d7d18887c8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 31 13:43:47 2015 -0400

    Remove an unused variable

 gio/gwin32registrykey.c | 2 --
 1 file changed, 2 deletions(-)

commit b8a2e08abadda92547ed63881dcfbe779594d03b
Author: Balázs Úr <urbalazs@gmail.com>
Date:   Mon Aug 31 16:16:49 2015 +0000

    Updated Hungarian translation

 po/hu.po | 510
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 256 insertions(+), 254 deletions(-)

commit e5734c37a6f1b0d3ce467e7a5ac11c29c1d5f56a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 26 23:20:39 2015 -0400

    Add g_list_store_sort

    GListStore already has a g_list_store_insert_sorted function,
    which can be used to keep the list sorted according to a fixed
    sort function. But if the sort function changes (as e.g. with
    sort columns in a list UI), the entire list needs to be
    resorted. In that case, you want g_list_store_sort().

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gliststore.c                    | 26 ++++++++++++++++++++++++++
 gio/gliststore.h                    |  5 +++++
 3 files changed, 32 insertions(+)

commit 516adb99c094fc2c4dcb95f97f9d251d7bba1716
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Fri Aug 28 19:47:19 2015 -0500

    Add certificate chain construction test

    Enhance GTestTlsBackend to allow setting the issuer property of
    GTlsCertificates, and add a test to ensure certificate chain
    construction with g_tls_certificate_new_from_pem() works as expected.

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

 gio/tests/cert-tests/cert-list.pem | 16 +++++++++
 gio/tests/gtesttlsbackend.c        |  9 ++++-
 gio/tests/tls-certificate.c        | 69
 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 93 insertions(+), 1 deletion(-)

commit 587068c969716df2b994362e3133c68d91455d47
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Fri Aug 28 19:43:09 2015 -0500

    GTlsCertificate: fix loading of chain with private key

    If a private key (or anything, in fact) follows the final certificate
    in
    the file, certificate parsing will be aborted and only the first
    certificate in the chain will be returned, with the private key
    not set.
    Be tolerant of this, rather than expecting the final character in the
    file to be the newline following the last certificate.

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

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

commit 1ab3e3ed3e0c50cc8e747a9617f9412af8a15bdd
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 25 10:18:06 2015 -0400

    gsocket: add a wrapper around g_set_error() to avoid extra work

    If @error is NULL then we don't even need to evaluate the remaining
    arguments. And if errno is EWOULDBLOCK, then no one should see the
    error message anyway, so don't bother g_strdup_printf'ing up a pretty
    one.

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

 gio/gsocket.c | 54 ++++++++++++++++++++++++++----------------------------
 1 file changed, 26 insertions(+), 28 deletions(-)

commit a70265779480e31d575dd2a4f0444bf5a1849c22
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Fri Aug 28 20:49:53 2015 +0000

    Updated Greek translation

 po/el.po | 676
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 315 insertions(+), 361 deletions(-)

commit 30d95388e7835487e5ed67334bddc2a45c0846a5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 28 16:05:05 2015 -0400

    Test g_strerror some more

    Set a locale here, so we actually do conversion, and also
    run the loop far enough that we hit the 'unknown error' case.

 glib/tests/strfuncs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 36fac0849ceabafb9e2a15045230833e7dbc9e9d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 28 15:38:04 2015 -0400

    Make g_strerror threadsafe

    We need to use strerror_r here, in order to be threadsafe.

 glib/gstrfuncs.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

commit eb7ffccf44ecb27f581693c4f62ed8d361999817
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 28 14:13:24 2015 -0400

    test repeated g_hash_table_remove_all calls

    I just came across a situation where code ended up stuck in
    an infinite loop in GHashTable code, so lets verify that this
    is a safe thing.

 glib/tests/hash.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 323b1d9c5f20ff46d420bdb63f80f772f9f7fb2f
Author: Andika Triwidada <andika@gmail.com>
Date:   Fri Aug 28 13:00:20 2015 +0000

    Updated Indonesian translation

 po/id.po | 196
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 103 insertions(+), 93 deletions(-)

commit f8341badb87ffc7d48488b95b58efbd1c7747674
Author: K. Adam Christensen <pope@shifteleven.com>
Date:   Fri Aug 28 08:17:24 2015 -0400

    gfileenumerator: Don't leak memory if out_info is NULL

    In the unusual case where one just wants the filenames, avoid
    a leak.

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

 gio/gfileenumerator.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 4cbd0d6a602f82f42aa8dc8e83c3daee95134d03
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Thu Aug 27 23:21:08 2015 +0300

    Updated Hebrew translation

 po/he.po | 346
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 178 insertions(+), 168 deletions(-)

commit 42331aa15484dc60561a8848d4696a655ba2d22d
Author: Fran Dieguez <fran@openhost.es>
Date:   Thu Aug 27 16:47:01 2015 +0200

    Updated Galician translations

 po/gl.po | 173
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 99 insertions(+), 74 deletions(-)

commit c061d6995c594c47f718d73b2419547161e92636
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Aug 26 18:21:34 2015 +0200

    Updated Polish translation

 po/pl.po | 1406
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 697 insertions(+), 709 deletions(-)

commit a3f567ad56af4e0c3cad8eab591360609ec94b5a
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Tue Aug 25 22:54:03 2015 +0000

    Updated Chinese (Taiwan) translation

 po/zh_TW.po | 903
 ++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 475 insertions(+), 428 deletions(-)

commit 91a6ec8d07eb521fc3f9be3bf7b7ae36a6108c88
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Aug 25 10:49:06 2015 +0100

    gutils: Clarify return values of g_bit_nth_[lsf|msf]()

    Clarify in the documentation that both functions return -1 if no high
    bits could be found.

 glib/gutils.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit b233d7e324e7661c6a487df9362a6503f0acfea5
Author: Pedro Albuquerque <palbuquerque73@gmail.com>
Date:   Tue Aug 25 06:22:23 2015 +0000

    Updated Portuguese translation

 po/pt.po | 392
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 198 insertions(+), 194 deletions(-)

commit 7da3922d051907ccd9b32de140bab217c7665c02
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 21 17:39:44 2015 -0400

    gdbus: fix race condition in connection filter freeing

    If you called g_dbus_connection_remove_filter() on a filter while it
    was running (or about to be run) in another thread, its GDestroyNotify
    would be run immediately, potentially causing the filter thread to
    crash.

    Fix this by refcounting the filters, and using the existing mechanism
    for running a GDestroyNotify in another thread in the case where the
    the gdbus thread is the one that frees it.

    Also, add a bit of documentation explaining this (and add a related
    clarification to g_dbus_connection_signal_subscribe()).

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

 gio/gdbusconnection.c | 136
 +++++++++++++++++++++++++++++++++++---------------
 1 file changed, 95 insertions(+), 41 deletions(-)

commit 76c1f78cb92cdbfe46321da2b2d2ecfbfdf32eaa
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Aug 24 10:38:27 2015 +0100

    gfile: Clarify g_file_get_parent() documentation

    Clarify that a parent in this case has to be an immediate parent,
    not an
    arbitrary ancestor several levels up in the tree.

 gio/gfile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 50a65cc38a68dcb04f57fb492c83878e5238d15b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Aug 24 10:37:51 2015 +0100

    gfile: Clarify g_file_get_path() documentation

    Clarify that the returned path (if non-NULL) is guaranteed to be
    absolute and canonical, but might still contain symlinks.

 gio/gfile.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 02f9e84709b4e4756f3e512dede3430f3538fbf5
Author: Kalev Lember <klember@redhat.com>
Date:   Sat Aug 22 23:13:33 2015 +0200

    gdbus: Add a missing include

    This fixes the build on non-unix platforms, such as win32 where
    gunixfdlist.h is not included.

 gio/gdbusmethodinvocation.c | 1 +
 1 file changed, 1 insertion(+)

commit a6ae52fa132ef2c5468d924945470957a7ef4c42
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Fri Aug 21 16:46:33 2015 -0500

    docs: Fix a typo finalised -> finalized

    db8455f07d3d58b8d30d35371c0bbd3e342c8960 added use of both "finalised"
    and "finalized". We generally use American spelling, so prefer that.

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

commit d33eae97c99c7dc0df362eba2010ec28ac08058e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Aug 21 15:17:24 2015 +0100

    Revert "TODO ban maman"

    I can’t work git-bz.

    This reverts commit a228f0ac8031379d3568245e24fb287408cf3a26.

 docs/reference/gobject/tut_gtype.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a228f0ac8031379d3568245e24fb287408cf3a26
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Aug 19 12:00:00 2015 +0100

    TODO ban maman

 docs/reference/gobject/tut_gtype.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 57d0ec57e43ce9b98a76fc7d07b3b5827481e516
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Feb 24 08:50:53 2015 +0000

    docs: Clarify costs of using the generic GObject C closure marshaller

    The libffi one is slower than type-specific generated ones, but is
    generally better to use.

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

 docs/reference/gobject/tut_gsignal.xml |  3 ++-
 docs/reference/gobject/tut_howto.xml   | 19 +++++++++++++++----
 2 files changed, 17 insertions(+), 5 deletions(-)

commit e57741791e9bd317a0777ab2eff6b40923f0f854
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Feb 23 15:32:47 2015 +0000

    docs: Port GObject concepts to use G_DECLARE_FINAL_TYPE

    And G_DECLARE_INTERFACE.

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

 docs/reference/gobject/tut_gtype.xml | 172
 +++++++++++++++++------------------
 1 file changed, 85 insertions(+), 87 deletions(-)

commit ab9b52e69ce8d3da9bade6f73468736c7b1cec1a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Feb 23 15:30:57 2015 +0000

    docs: General cleanups and rewording in the GObject concepts docs

     • Remove copies of function declarations from the explanation
     — if
       people want those, they can follow links to the reference manual.
     • Add markup to make C code more defined.
     • Remove use of first person and irrelevant name dropping.

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

 docs/reference/gobject/tut_gobject.xml |  95 ++++++------
 docs/reference/gobject/tut_gsignal.xml | 254
 +++++++++++++++------------------
 docs/reference/gobject/tut_gtype.xml   | 163 +++++++++------------
 docs/reference/gobject/tut_intro.xml   |  23 +--
 4 files changed, 243 insertions(+), 292 deletions(-)

commit a86ef242e4f2907ec1399057f194699f2fe28c94
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Feb 19 14:12:50 2015 +0000

    docs: Link to the GObject how-to from the GType tutorial

    So that first-time users don’t fall into the trap of reading
    about the
    gory memory layout details of GType and GObject when all they
    wanted to
    do was derive a class.

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

 docs/reference/gobject/tut_gtype.xml | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit cd0d605b23f9efe247475ba425f811a513a138db
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Feb 19 14:08:43 2015 +0000

    docs: Mention g_clear_object() in the GObject tutorial

    As an alternative to g_object_unref().

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

 docs/reference/gobject/tut_gobject.xml | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit f9410b16475828f90d27cee58faa3a78a5f181d2
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Feb 19 14:08:03 2015 +0000

    docs: Remove pointless copy of GObject headers from tutorial

    Remove a copy of the refcounting functions from gobject.h from the
    GObject tutorial. It suffices to link to the functions in the API
    reference.

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

 docs/reference/gobject/tut_gobject.xml | 28 ----------------------------
 1 file changed, 28 deletions(-)

commit 92f6325509007aea2022df2d3f618033480f86dd
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Feb 19 14:07:20 2015 +0000

    docs: Miscellaneous formatting and wording fixes to GObject tutorial

    Convert a few sections to use the passive voice, and add some more
    <function> elements.

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

 docs/reference/gobject/tut_gobject.xml | 72
 ++++++++++++++++------------------
 1 file changed, 33 insertions(+), 39 deletions(-)

commit 2aade94fcc768af254e7e169bfabc07477ed7179
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Feb 19 14:05:56 2015 +0000

    docs: Update code examples in GObject tutorial

    Use G_DECLARE_FINAL_TYPE, simplify property handling, and remove some
    unnecessary braces.

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

 docs/reference/gobject/tut_gobject.xml | 74
 +++++++++++-----------------------
 1 file changed, 23 insertions(+), 51 deletions(-)

commit 42baaa88cd20adcce8767fb124682b1b3bd8b0ec
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 13:16:08 2015 +0000

    docs: Use generic marshallers in GObject how-to examples

    They’re the new vogue for handling signals.

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

 docs/reference/gobject/tut_howto.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 01962b4dd1f3ef15e1412a2d1e21ce8e6e68bd1d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 13:15:15 2015 +0000

    docs: Rename a parameter in a GObject how-to example

    Make it obvious the parameter is not related to AClass.

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

 docs/reference/gobject/tut_howto.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a76242b35ab6809f7582fd06b8b30c05f82b3934
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 13:14:08 2015 +0000

    docs: Add vfunc NULL checks to GObject how-to examples

    Not setting a pure vfunc is a programmer error, so can be handled
    with a
    g_return_if_fail() rather than needing a g_warning().

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

 docs/reference/gobject/tut_howto.xml | 42
 ++++++++++++++++++++++++------------
 1 file changed, 28 insertions(+), 14 deletions(-)

commit 82abb80553e0da9dac512822e72f55281a68d38c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 13:12:49 2015 +0000

    docs: Update interfaces in GObject how-to examples

    Use G_DECLARE_INTERFACE and G_DEFINE_INTERFACE. Fix a couple of typos.
    Add some comments to empty functions to make it obvious they’re
    intentionally empty.

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

 docs/reference/gobject/tut_howto.xml | 57
 +++++++++++++++++++++---------------
 1 file changed, 34 insertions(+), 23 deletions(-)

commit ffc248919bc6456a90792a1ea0ecb689b8078791
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 13:10:04 2015 +0000

    docs: Update instance private data in GObject how-to examples

    Use get_instance_private().

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

 docs/reference/gobject/tut_howto.xml | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit b88ac15e65bf424db69614b6021865afb79a333b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 13:08:34 2015 +0000

    docs: Update property handling in GObject how-to examples

    Be a bit more consistent about property enum numbering.

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

 docs/reference/gobject/tut_howto.xml | 41
 +++++++++++++++++++-----------------
 1 file changed, 22 insertions(+), 19 deletions(-)

commit 2e4700d52babcf06ac01243f650ccdf546561812
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 13:04:45 2015 +0000

    docs: Various wording changes in the GObject how-to

     • Consistently make all titles sentence case
     • Fix various typos
     • Remove an unnecessary footnote
     • Remove first person phrasing

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

 docs/reference/gobject/tut_howto.xml | 205
 +++++++++++++----------------------
 1 file changed, 78 insertions(+), 127 deletions(-)

commit f1287a9b2f995b8c7ec228cc3b3418670ef92695
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 12:54:05 2015 +0000

    docs: Remove commented out sections from GObject how-to

    Unused, outdated, and unsalvagable.

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

 docs/reference/gobject/tut_howto.xml | 402
 -----------------------------------
 1 file changed, 402 deletions(-)

commit 0344e6cb83b338c8ba23d9ea8aa7a9fffa8d146e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 12:51:18 2015 +0000

    docs: Add missing <function> elements to GObject how-to

    Break the text up a little with some formatting.

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

 docs/reference/gobject/tut_howto.xml | 57
 +++++++++++++++++++++---------------
 1 file changed, 33 insertions(+), 24 deletions(-)

commit b6b0f5f305eab272192f01bd5adb68adaa31c10b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 12:42:52 2015 +0000

    docs: Update GObject how-to for G_DECLARE_*_TYPE macros

    Restructure the section of the how-to which covers the header
    and source
    code boilerplate for declaring and defining GObjects to use the new
    G_DECLARE_*_TYPE macros. Present both final and derivable types.

    Trim various supporting paragraphs.

    Rename ‘class functions’ to ‘virtual functions’ to use
    consistent,
    modern terminology.

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

 docs/reference/gobject/tut_howto.xml | 283
 +++++++++++++++++++++--------------
 1 file changed, 171 insertions(+), 112 deletions(-)

commit b6fc1df022a0326e7c36122b1416061bf796c98f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 1 04:10:46 2013 -0400

    GLocalFileInfo: don't content-sniff zero-length files

    This will prevent attempting to read from some files that appear
    normal but are
    really device-like, such as those in /proc and /sys.

    If we can't stat() the file then don't bother attempting to sniff,
    either.

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

 gio/glocalfileinfo.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 8f662e72594acf8e7f874f7670d1421af68c7fc6
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Sun May 17 16:25:35 2015 +0800

    glocalfileinfo: Support file creation time on FreeBSD and NetBSD

    FreeBSD and NetBSD have field st_birthtim and st_birthtime in
    struct stat,
    respectively, which can be used to get file creation time on
    supported file
    systems such as UFS2 and tmpfs.

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

 configure.ac         |  2 +-
 gio/glocalfileinfo.c | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

commit 60a6ae6f0b84f059e33b8c658ef22c3d933db0a2
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Sun Mar 29 17:15:15 2015 +0200

    Fix GError leak in g_file_query_writable_namespaces()

    gvfs commit b358ca "Make sure metadata is always returned by
    query_writable_namespaces()" changed the
    query_writable_namespaces vfunc to never return NULL, but the error
    checking in g_daemon_file_query_writable_namespaces still assumes
    vfunc
    failure implies NULL return value and GError set. This causes a memory
    leak as on failure the GError will be set but the vfunc implementation
    will have created its own default list so NULL will not be returned,
    and
    the GError will never be cleared.

    This commit directly checks if the GError is set to detect failures,
    my_error is directly dereferenced in the error block anyway.

    This also removes an unneeded call to g_file_attribute_info_new(); as
    the vfunc always returns us a non-NULL GFileAttributeInfoList.

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

 gio/gfile.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit fa17536598ac931b811727944d7d74f8f4059820
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 21 00:43:54 2015 -0400

    Code cleanup

 gio/tests/testfilemonitor.c | 13 -------------
 1 file changed, 13 deletions(-)

commit b67dac56e30d8e1ba39d6ddf27ea198cecae6f33
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 21 00:41:09 2015 -0400

    Add a test for cross dir moves

    This is a test that is described in

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

 gio/tests/testfilemonitor.c | 133
 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

commit 3498f29b81b522cf4697ff7384b7538f645a63d4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 21 00:08:57 2015 -0400

    Test resource filesystem attributes

 gio/tests/resources.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit d942c64267ec72c19fa1b74050f238041918a479
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 21 00:01:12 2015 -0400

    resource file: Return some filesystem info

    We now return "resource" as the filesystem type, and state
    that the filesystem if readonly.

 gio/gresourcefile.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 1bfdcc8499f49e197c2f59a94a101b03fad51482
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 20 23:48:51 2015 -0400

    resource file: Add a dummy file monitor

    This avoids the fallback to polling in GFile, which is unnecessarily
    expensive for a resource which can never change.

 gio/gresourcefile.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit b995c08bf32cb701b92bd8c98651de2d77cade9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 20 22:31:41 2015 -0400

    Remove unused files

    We no longer have GLocalDirectoryMonitor implementations.
    These files were not included in the build for a while now.

 gio/inotify/ginotifydirectorymonitor.c | 138
 ---------------------------------
 gio/inotify/ginotifydirectorymonitor.h |  51 ------------
 2 files changed, 189 deletions(-)

commit d66e3f57cd5dcc4a2768d40d2a1f1351328ca2fc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 20 22:30:19 2015 -0400

    Add more directory monitoring tests

    These tests clear up a misunderstanding of mine: Monitoring
    nonexisting files and directories *does* work with the inotify
    implementation, it just has a very long timeout for scanning
    for missing locations, so the test needs to take that into
    account.

 gio/inotify/inotify-missing.c |   2 +-
 gio/inotify/inotify-path.c    |   2 +-
 gio/inotify/inotify-sub.c     |   2 +-
 gio/tests/testfilemonitor.c   | 110
 ++++++++++++++++++++++++++++++++++++++----
 4 files changed, 103 insertions(+), 13 deletions(-)

commit ee31d492d80821ab72d6dd1c8950353ad12d54d0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 20 21:10:49 2015 -0400

    poll file monitor: Don't reimplement g_strcmp0

    We have that function now, so use it.

 gio/gpollfilemonitor.c | 22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

commit 09b618f0a162986e5f449acdb68ed125073f50b0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 20 20:16:23 2015 -0400

    Avoid a false deprecation

    gtk-doc misinterprets this comment and marks
    g_find_program_in_path as deprecated, which it isn't.

 glib/gutils.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fa0f51ddf8357f0dbfe1066befb2f73fa639c1e4
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Thu Jun 25 10:05:53 2015 +0200

    fileinfo: Add a G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE attribute

    This is meant for opaque, non-POSIX-like backends to indicate that the
    URI is not persistent. Applications should look at
    G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI.
    Examples of such backends could be a portal for letting sandboxed
    applications access the file-system, or a database-backed storage like
    Google Drive.

    In these cases, the user visible file and folder names are different
    from the real identifiers, used by the backend. So, a request to
    create google-drive://user@gmail.com/foo/New\ File, would actually
    lead to google-drive://user@gmail.com/foo/bar on the server even
    though
    the user visible name is still "New File". Since the server-defined
    URI
    is persistent and sanity-checked by the backend, it is recommended
    that
    applications switch to it as soon as possible. Backends will try to
    keep a mapping from "fake" to "real" URIs, but those are only on a
    best effort basis. They might not be persistent or have the same
    guarantees as the "real" URIs.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfileinfo-priv.h                |  1 +
 gio/gfileinfo.c                     |  1 +
 gio/gfileinfo.h                     | 14 ++++++++++++++
 4 files changed, 17 insertions(+)

commit 4a076032cf6629b3c7bd742ddafae2c9dbbcfab4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 19 19:27:58 2015 -0400

    More file monitor tests

    Test regular writes and attribute changes with a file monitor,
    as well as various file changes under a directory monitor.

 gio/tests/testfilemonitor.c | 235
 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 233 insertions(+), 2 deletions(-)

commit b8aad73af9325307a9cf82544a38d58480bd6ebb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 19 16:24:22 2015 -0400

    2.45.6

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

commit 8d8a1c205b8eb5b54ea1fc8a2e39197dacb1788b
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 19 16:21:46 2015 -0400

    fix previous

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

commit c6862451411ae3039029fdd1e3697343fa2aed19
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 19 13:21:00 2015 -0400

    gdbus: don't warn when returning a value on a closed connection

    g_dbus_method_invocation_return_value(), etc, don't have GError
    parameters (which makes sense since they won't usually return errors,
    and there's not much you could do if they did), so in the rare case
    when something does go wrong, they print a warning.

    However, there is at least one situation where the warning is a bad
    idea: if you are using private bus connections, and a client connects,
    makes a request, and then disconnects before getting the response.
    Given that there's nothing the caller can do to prevent this case from
    getting hit (since the client might not disconnect until after the
    call to g_dbus_method_invocation_return_value() starts) and given that
    the server can never actually know for sure that the client has
    received the response (it might disconnect after reading the response,
    but before processing it), just kill the warning in this case.

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

 gio/gdbusmethodinvocation.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit fc38156cbab15561f3139b2e851668641a6b17af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 19 15:11:12 2015 -0400

    2.45.5

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

commit 656494a7840cfb6c53c2cb9a27d82f58e2dd6f40
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 19 15:45:11 2015 -0400

    gpermission: fix async error returns

    a8eedd00 broke the error return values from
    g_permission_acquire/release_async() on GSimplePermission. Fix that.

 gio/gpermission.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 8c32f7c448593862055a3b8de24514b76da96158
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 19 07:10:55 2015 -0400

    Add some file monitoring tests

    Add a new test which checks that atomically replacing a file that
    is being monitored by GFileMonitor produced the expected events.

    The test can easily be expanded to cover other file monitoring
    scenarios.

 gio/tests/Makefile.am       |   1 +
 gio/tests/testfilemonitor.c | 226
 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 227 insertions(+)

commit ac78d14125a39f1677a5a5d77bb8ab4cb5f2d3c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 19 07:10:01 2015 -0400

    inotify: Fix handling of paired events for atomic replace

    After the big file monitoring rewrite, we only put the IN_MOVED_FROM
    event
    in the queue for such pairs. It matches INOTIFY_DIR_MASK and thus
    we call
    ip_dispatch_event on it, but that function was filtering it out
    because
    the filename in the 'from' event is the one of the temp file, not the
    one we are monitoring. That name is in the 'to' event, so compare
    it as
    well, and let the event passin that case.

    There is another instance of this check in glocalfilemonitor.c,
    which is
    corrected here as well.

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

 gio/glocalfilemonitor.c    | 4 ++--
 gio/inotify/inotify-path.c | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

commit 780b48c4cdc97ca5607ba15bc73ce5cc64d67c04
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Aug 19 20:35:38 2015 +0200

    Updated Spanish translation

 po/es.po | 394
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 198 insertions(+), 196 deletions(-)

commit 5a642651c799906ec67ebb268cbd8148cd774d0a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 15:27:03 2014 +0000

    gmessages: Mention g_return_if_fail() in g_warning() and g_error()
    docs

    It seems to be common for people to use g_warning() or g_error()
    as pre-
    and post-condition error reporting functions, which is not really what
    they’re intended for. Similarly, it is generally a sign of bad API
    design to use g_warning() to report errors — use GError instead.

    Try and suggest this to the user in the hope that nice code results.

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

 glib/gmessages.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit ef1ba452b3302e75f767d6160cf8d379af55d90d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 15:21:09 2014 +0000

    gsignal: Document memory management best practices for signal handlers

    It’s quite common to see naked g_signal_connect() calls without
    a paired
    g_signal_handler_disconnect(). This is commonly a bug which could lead
    to uses of the callback user data after it’s been freed.

    Document the best practices for avoiding this kind of bug by properly
    disconnecting all signal handlers.

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

 gobject/gsignal.c | 26 ++++++++++++++++++++++++++
 gobject/gsignal.h |  3 +++
 2 files changed, 29 insertions(+)

commit db8455f07d3d58b8d30d35371c0bbd3e342c8960
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Dec 18 16:01:26 2014 +0000

    gmain: Document memory management best practices for GSources

    It’s very common to see code where a timeout is scheduled using
    g_timeout_add(), yet the owning object could be destroyed shortly
    afterwards, before the timeout is fired, leading to use-after-free.

    Try and prevent this happening with new code by documenting best
    practices for memory management of user data for GSource callbacks.

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

 glib/gmain.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

commit c5cd1c5f023c6d03de9e551d0b0fde2d2f383d29
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 09:44:27 2015 +0000

    gobject: Add cross-links from GObject reference docs to tutorials

    Add some brief links from the GObject reference documentation to the
    existing tutorial and overview sections on GObjects.

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

 gobject/gobject.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 9874fe3c400f16bbe6769899702a343da525e1d6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 09:43:16 2015 +0000

    gobject: Cross-link from GType reference docs to GType conventions
    page

    Make it a little easier to find the GType conventions page, which I
    guess should be the canonical guide to how to name things.

    This adds a brief mention of the valid characters in a type name
    to the
    conventions page.

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

 docs/reference/gobject/tut_gtype.xml | 4 ++++
 gobject/gtype.c                      | 8 ++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 10f96a914d4bdd9a472d304f76e2f1ed6ff47355
Author: Dušan Kazik <prescott66@gmail.com>
Date:   Wed Aug 19 10:59:44 2015 +0000

    Updated Slovak translation

 po/sk.po | 407
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 208 insertions(+), 199 deletions(-)

commit d624bf4e6673cc989f0d452c6bc2f26b526891c9
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 17:05:36 2014 +0000

    gthread: Suggest using *_async() functions instead of threads

    It’s unfortunately common to see worker threads being spawned
    all over
    the place to do operations which could be brought into the main thread
    with an async call, simplifying everything.

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

 glib/gthread.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit 5ee333e4cb0b3d2160fcde7c6b3287fe2a8f079e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Mar 4 11:37:40 2015 +0000

    gstrfuncs: Add a string formatting note about using G_GUINT64_FORMAT

    …and friends. The ‘String precision pitfalls’ section is
    already linked
    to from all the relevant printf()-style functions, so this
    documentation
    should hopefully be easy to find.

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

 glib/gstrfuncs.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 8c858a018d752e06e4a9720735ffc495c3159e20
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 17:23:54 2014 +0000

    gvariant: Clarify that nullable strings should use maybe types

    Otherwise people might try to encode a NULL string as "NULL". I’m
    not
    even kidding.

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

 docs/reference/glib/gvariant-varargs.xml | 3 ++-
 glib/gvariant.c                          | 9 ++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 5d014a802a4b47fbf5774f613d61b4218a1aa2a2
Author: Janusz Lewandowski <lew21@xtreeme.org>
Date:   Fri Oct 10 22:58:20 2014 +0200

    Add a g_dbus_connection_register_object_with_closures function

    This is a binding-friendly version of
    g_dbus_connection_register_object.
    Based on a patch by Martin Pitt and the code of
    g_bus_watch_name_with_closures.

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

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gdbusconnection.c               | 253
 ++++++++++++++++++++++++++++++++++++
 gio/gdbusconnection.h               |   8 ++
 gio/tests/gdbus-export.c            |  58 ++++++++-
 4 files changed, 313 insertions(+), 7 deletions(-)

commit 61254347b19fa82c53a4f764346b5cb6b2aaf5dc
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Sat Aug 15 11:36:48 2015 +0000

    Updated French translation

 po/fr.po | 517
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 258 insertions(+), 259 deletions(-)

commit 23d8cc57634945d4fcd86eba26e8bdbe1ecf2fa1
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Aug 11 19:41:08 2015 +0200

    Updated Norwegian bokmål translation.

 po/nb.po | 725
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 361 insertions(+), 364 deletions(-)

commit 66116fc272c01a16188b5ce25ab8e88d01d48d92
Author: Jordi Mas <jmas@softcatala.org>
Date:   Tue Aug 11 08:05:34 2015 +0200

    Update Catalan translation

 po/ca.po | 765
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 389 insertions(+), 376 deletions(-)

commit 34277d69960960aeeb936629fc4c5326c7414f25
Author: Felix Riemann <friemann@gnome.org>
Date:   Sun Aug 9 23:13:38 2015 +0200

    gio: g_menu_item_set_icon should not fail if icon is NULL

    It allows passing a NULL icon to unset the icon and thus should not
    log a critical warning if used like that.

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

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

commit 0993cf6dc08829aa7ef826f26757b36b5f6f92b4
Author: Muhammet Kara <muhammetk@gmail.com>
Date:   Sun Aug 9 15:46:12 2015 +0000

    Updated Turkish translation

 po/tr.po | 748
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 379 insertions(+), 369 deletions(-)

commit a8eedd00a726483cd29a2a5c9660c82438a5d57e
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 7 09:48:27 2015 -0400

    gio: fix a leftover GSimpleAsyncResult usage

    And remove remaining unnecessary gsimpleasyncresult.h includes

 gio/gconverterinputstream.c    |  1 -
 gio/gconverteroutputstream.c   |  1 -
 gio/gdbusobjectmanagerclient.c |  1 -
 gio/gdummytlsbackend.c         |  1 -
 gio/gpermission.c              | 11 ++++++-----
 gio/gproxyresolver.c           |  1 -
 gio/gresolver.c                |  1 -
 gio/gunixinputstream.c         |  1 -
 gio/gunixmount.c               |  1 -
 gio/gunixoutputstream.c        |  1 -
 gio/gwin32inputstream.c        |  1 -
 gio/gwin32mount.c              |  1 -
 gio/gwin32outputstream.c       |  1 -
 13 files changed, 6 insertions(+), 17 deletions(-)

commit e02fa68068b05cdc93283af043e735cd19f40fcc
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 7 09:47:09 2015 -0400

    gsettings-tool: fix deprecated call

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

commit ff3dee4bf68c7bf971185f7fe6d06e71a71293d9
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 6 17:00:16 2015 -0400

    gdbus: fix gdbus-exit-on-close for gdbusconnection change

 gio/tests/gdbus-exit-on-close.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

commit a3660532535f92cfac136435579ed4f23231f48c
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 7 09:46:49 2015 -0400

    glib: remove deprecated g_mem_is_system_malloc() check in gprintf.c

 glib/gprintf.c | 7 -------
 1 file changed, 7 deletions(-)

commit ebaa1de304ccad8cd9b82e5d49f229bf1815d529
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 6 15:45:47 2015 -0400

    glib: drop array-test test for bug 568760

    The test relied on g_mem_set_vtable(), so it fails now. But no one
    ever touches that code so it's not like we're going to break it again
    anyway.

 glib/tests/array-test.c | 37 -------------------------------------
 1 file changed, 37 deletions(-)

commit a0e74f6033e2a5aeab1de175de5bfb28328eb23d
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Thu Aug 6 22:53:12 2015 +0300

    Updated Lithuanian translation

 po/lt.po | 751
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 383 insertions(+), 368 deletions(-)

commit 66bc9660c44b71c8bff47b4f7e16a801169a9f23
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jan 5 09:40:37 2015 -0500

    gdbusconnection: Don't g_printerr() when exiting

    exit-on-close for a DBus connection is a completely normal thing.  On
    a regular GNOME login, gdm retains the X server, but terminates the
    session login bus and associated helpers like gnome-settings-dameon,
    the a11y tools, etc.

    I've seen several downstream reports of confusion as to what these
    apparent error messages mean in the system log.  It doesn't help
    that they're so obtuse.

    We're also printing them to stderr, when this is not an error.

    The reason this was introduced is presumably some people were confused
    as to why their process exited when the system bus did.  But the
    solution for that I believe is documentation, not printing stuff to
    everyone's system log in normal operation.

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

 gio/gdbusconnection.c | 11 -----------
 1 file changed, 11 deletions(-)

commit 905e916573a6a714bfbf513df2bb07bb365ca2a8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 5 17:18:48 2015 -0400

    Don't leak an error

    The previous commit introduced a possible memory leak in cases
    where we get a G_IO_ERROR_CLOSED error. Make sure to always
    free an error, if we got one.

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

 gio/gdbusobjectmanagerserver.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit b3fcb1442e81d14846a8b5d2e33352ac0f6d48ea
Author: Stef Walter <stefw@redhat.com>
Date:   Wed Aug 5 13:25:47 2015 +0200

    gdbus: Don't use g_assert_no_error() GDBusObjectManagerServer

    There are real world cases where emitting signals can fail, such
    as if the DBus connection closes. Asserting and aborting the process
    in these cases is just plain lazy.

    Ignore the errors when the connection is closed, and turn the
    others into warnings.

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

 gio/gdbusobjectmanagerserver.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 46cf19c447f50d0aa9a4aee8c58ef2a7da2033ef
Author: Andika Triwidada <andika@gmail.com>
Date:   Mon Aug 3 11:28:22 2015 +0000

    Updated Indonesian translation

 po/id.po | 1010
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 514 insertions(+), 496 deletions(-)

commit a2a35870364d925d1217e4973bbcff53fc3c880d
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Aug 2 17:36:05 2015 +0200

    gmain: Document return value of GSourceFuncs.dispatch

 glib/gmain.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 6b652b1a2e7c6f67e9576e4331da76971d54cc68
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jul 29 11:56:41 2015 +0100

    gio: Fix application of GNetworkMonitor:network-metered patch

    The wrong patch from https://bugzilla.gnome.org/show_bug.cgi?id=750282
    was applied, causing test failures due to not implementing the
    property
    on GNetworkMonitorBase (plus some other omissions).

    Fix that by reverting commit a80e7db1a8f26dc558085844dcb8003edb6eca74
    and re-applying the correct patch over the top.

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

 gio/gnetworkmonitor.c       | 18 +++++++++++-------
 gio/gnetworkmonitorbase.c   |  7 +++++++
 gio/gnetworkmonitornm.c     |  9 ++++++---
 gio/tests/network-monitor.c | 11 +++++++++++
 4 files changed, 35 insertions(+), 10 deletions(-)

commit 7f195ac956153b06483bd0e78cfd3b5c100413b5
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Jul 28 10:13:12 2015 +0100

    gresource: Clarify error docs for g_resource_enumerate_children()

    Document that it returns G_RESOURCE_ERROR_NOT_FOUND if the path
    doesn’t
    exist.

 gio/gresource.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6e4e1c168c2fa1fea4b449ba7a4b551aa4b6af6e
Author: Akom Chotiphantawanon <knight2000@gmail.com>
Date:   Tue Jul 28 15:55:05 2015 +0700

    Updated Thai translation

 po/th.po | 371
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 185 insertions(+), 186 deletions(-)

commit b173244b7d06234ff45027ca277da9dd986b5b37
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 28 00:04:35 2015 -0400

    Remove malloc tests

    These tests were about the no longer supported
    vtable functionality, so just remove them.

 glib/tests/Makefile.am |   1 -
 glib/tests/malloc.c    | 117
 -------------------------------------------------
 2 files changed, 118 deletions(-)

commit 3be6ed60aa58095691bd697344765e715a327fc1
Author: Alexander Larsson <alexl@redhat.com>
Date:   Sat Jun 27 18:38:42 2015 +0200

    Deprecate and drop support for memory vtables

    The memory vtables no longer work, because glib contructors are called
    before main(), so there is no way to set it them before use. This
    stops using
    the vtable at all, and deprecates and stubs out the related functions.

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

 glib/gmem.c | 386
 +++++-------------------------------------------------------
 glib/gmem.h |   8 +-
 2 files changed, 34 insertions(+), 360 deletions(-)

commit 08a3f3f3d2190c7ff393ea13c5a310ba8a13a2e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 27 07:52:27 2015 -0400

    GOptionContext: Don't crash without main group

    This was introduced in 126c685f4aa and caused e.g. gdbus
    to crash when called without arguments.

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

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

commit 17871e6881beb401eebb8b05eccb01490cfa85b6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 27 06:51:17 2015 -0400

    Add a note to the g_str_hash docs

    Point out some shortcomings of the djb hash, as found in

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

 glib/ghash.c | 4 ++++
 1 file changed, 4 insertions(+)

commit a80e7db1a8f26dc558085844dcb8003edb6eca74
Author: Richard Hughes <richard@hughsie.com>
Date:   Tue Jun 2 15:41:48 2015 +0100

    gio: Add network metered information to GNetworkMonitor

    Add a property to GNetworkMonitor indicating if the network
    is metered, e.g. subject to limitations set by service providers.

    The default value is FALSE

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gnetworkmonitor.c               | 47
 +++++++++++++++++++++++++++++++++++++
 gio/gnetworkmonitor.h               |  3 +++
 gio/gnetworkmonitornm.c             | 46
 ++++++++++++++++++++++++++++++++++++
 4 files changed, 97 insertions(+)

commit 9c4887027d6bd09f38120b195c677dbe3bc5654b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 27 06:24:44 2015 -0400

    Remove some questionable documentation

    A function that takes a lock can certainly block in the sense
    that it has to wait if the lock is taken.

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

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

commit c885d42751e35ac8210f889d80e4b059a08d86ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 26 21:39:53 2015 -0400

    Add tests for GApplication::handle-local-options

 gio/tests/gapplication.c | 132
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 132 insertions(+)

commit 243d740c0430a2fa123c2428bf25ae80768ed633
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Sun Jun 21 10:51:50 2015 +0200

    gapplication: Stop handle-local-options emission on errors

    A signal accumulator can return TRUE to continue signal emission, and
    FALSE to stop signal emission. handle-local-options callbacks
    can return
    « return a non-negative option if you have handled your options and
    want to exit the process ».

    Currently, g_application_handle_local_options_accumulator (the
    accumulator for the handle-local-options signal) returns TRUE on
    non-negative return value (ie continue signal emission), and returns
    FALSE on negative return values (ie when the default option processing
    should continue).
    This return value seems backward as on >= 0 values, subsequent
    handle-local-options callbacks could overwrite the 'exit request' from
    the handler, while on < 0 values, the handle-local-options processing
    could end up early if several callbacks are listening for this signal.
    In particular, the default handler for this signal
    (g_application_real_handle_local_options) always returns -1 and will
    overwrite >= 0 return values from other handlers.

    This commit inverts the check so that signal emission stops early when
    one of the handle-local-options callbacks indicates it wants
    processing
    to stop and the process to exit.

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

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

commit 2551685cf629b7f34030f146d71d2400825d36f7
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Sun Jun 21 10:56:58 2015 +0200

    gapplication: Fix typos in handle-local-options API doc

    The @options parameter was missing an 's', and the name of
    g_application_command_line_get_options_dict() was not correct.

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

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

commit c7e49a324164e80cfa64a1a66c110edde5e93cec
Author: Marek Černocký <marek@manet.cz>
Date:   Sat Jul 25 03:27:32 2015 +0200

    Updated Czech translation

 po/cs.po | 479
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 234 insertions(+), 245 deletions(-)

commit 0441ae1ccf31ab10c4c65c74ea58012c44106be5
Author: Peter Meerwald <p.meerwald@bct-electronic.com>
Date:   Thu Jul 23 11:38:47 2015 +0200

    ghash: Fix typo in g_hash_table_replace() documentation

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

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

commit 8520ae3ffa71e2680076fd3fcc1b7350a364ae76
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jun 12 08:32:11 2015 +0100

    gsocket: Factor out blocking parameter from g_socket_send_messages()

    This will make future API additions easier. The factored version is
    internal for the time being.

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

 gio/gsocket.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

commit b65287fea54eea8979914b06ff44adea4bc809cc
Author: TingPing <tingping@tingping.se>
Date:   Sat Dec 20 18:59:15 2014 -0500

    win32: Fix leak in g_win32_get_command_line()

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

 glib/gwin32.c | 1 +
 1 file changed, 1 insertion(+)

commit 3cc349b04e76880a9d2f3c3d2195d171e110f66c
Author: TingPing <tingping@tingping.se>
Date:   Sat Dec 20 18:39:00 2014 -0500

    win32: Replace usage of __wgetmainargs()

    It was an internal function that has been removed with VS 2015

    Use g_win32_get_command_line() or CommandLineToArgvW() directly.

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

 gio/tests/gio-du.c         | 49
 ++++++++++++++++------------------------------
 glib/gspawn-win32-helper.c | 20 +++----------------
 glib/gspawn.c              |  9 ++-------
 3 files changed, 22 insertions(+), 56 deletions(-)

commit be7de8a7fd0883f8514cf8b532ce1c820f7e35fa
Author: Arun Raghavan <git@arunraghavan.net>
Date:   Tue Jul 21 12:09:16 2015 +0530

    gdbusconnection: Fix signal subscription documentation

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

 gio/gdbusconnection.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 53d487e31bc41cca9bca147e02e81b69e404fe07
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jul 21 11:26:29 2015 +0800

    config.h.win32.in: Clean Up and Update

    Merge the parts that has things to do with stdint.h and inttypes.h
    with
    the !_MSC_VER portions, and add initial support for Visual Studio
    2015,
    which added support for C99 snprintf() and vsnprintf().

    Not too sure about the !_MSC_VER for C99 snprintf() and vsnprintf(),
    but
    since this file is mainly for Visual Studio builds, anyways...

 config.h.win32.in | 38 +++++++++++++++++---------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

commit ab3805ab0471d47a2f7cc93d15eeb392c9d22b4b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 20 16:00:16 2015 -0400

    2.45.4

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

commit de1bd45fe9ef82c1f5f48c63975ee18ede67d23a
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jul 20 17:33:42 2015 -0400

    gio/tests/task: fix for change to cancellation behavior

    Multiple tasks cancelled at the same time now complete in the opposite
    order from how they used to. Fix the test to not assume any particular
    order.

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

commit 717ebba9d78151c999b1c1d08dc539be978ee27c
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Jul 20 21:39:49 2015 +0200

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 45e99833e39af76ec9db13bb9d9edcaf3a719870
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Jul 19 23:47:57 2015 +0200

    Move a unit test to the right file

    Move a test for threaded socket service to socket-service.c.

 gio/tests/socket-listener.c | 134
 -------------------------------------------
 gio/tests/socket-service.c  | 136
 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 136 insertions(+), 134 deletions(-)

commit e1d44799c0ba87506873c309ad4e16cce13bbfc4
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Fri Jul 10 21:30:28 2015 +0200

    socketservice: add an "active" property

    We already have start, stop and is_active methods, but turning it
    into a real property is useful for a few reasons:
     - it allows us to bind the property to an UI or a setting
     - it allows us to get notified when the state changes
     - it allows us to instantiate objects directly in the stopped state

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

 gio/gsocketservice.c       | 142
 ++++++++++++++++++++++++++++++++++++---------
 gio/tests/.gitignore       |   1 +
 gio/tests/Makefile.am      |   1 +
 gio/tests/socket-service.c | 111 +++++++++++++++++++++++++++++++++++
 4 files changed, 226 insertions(+), 29 deletions(-)

commit a223796d0b4f47277fe570313829376db0de8108
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Jul 12 19:51:17 2015 +0200

    networkaddress: use free_full

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

 gio/gnetworkaddress.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

commit 6a392a55ec37f33e001bad6495c8513f28f160cc
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Sun Jul 19 12:39:15 2015 +0300

    Updated Hebrew translation

 po/he.po | 449
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 224 insertions(+), 225 deletions(-)

commit 0c121775145645b847aace30d403496d81261fae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 17 16:46:26 2015 -0400

    notification: Add an assertion to clarify

    Coverity doesn't see that g_enum_get_value will never return
    NULL here since we always pass it a valid enum value. Help
    it along with an assertion.

 gio/gnotification.c | 1 +
 1 file changed, 1 insertion(+)

commit dab20975872a9b3d5f37beffa9e8e2b78efe6c02
Author: Daniel Macks <dmacks@netspace.org>
Date:   Wed Jul 1 14:36:35 2015 -0400

    Use GRegexMatchFlags not GRegexCompileFlags for TEST_MATCH _match_opts

    Fix the enums used in some test cases to use the correct enum type in
    some test cases.

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

 glib/tests/regex.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 27fae8390946e73e8343a7fd7505796f3599ee23
Author: Ilya Konstantinov <ilya.konstantinov@gmail.com>
Date:   Thu Jun 11 21:42:00 2015 +0300

    gbacktrace: fix G_BREAKPOINT on Darwin (OSX, iOS)

    Using __builtin_trap() according to Apple's own documentation:
    https://developer.apple.com/library/mac/technotes/tn2124/_index.html#//apple_ref/doc/uid/DTS10003391-CH1-SECCONTROLLEDCRASH

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

 glib/gbacktrace.h | 2 ++
 1 file changed, 2 insertions(+)

commit dafc454e70460b371775a876f3831f280bf097b8
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Wed Jul 8 14:38:16 2015 -0400

    GAsyncInitable: Fix leaked object when using _newv_async

 gio/gasyncinitable.c | 1 +
 1 file changed, 1 insertion(+)

commit 7ed76a4eca245edbf3149815a06795065164cb1f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 6 10:21:33 2015 -0400

    file monitors: report MOVED only with both sides

    Make sure we know the destination file before reporting a MOVED event.
    Otherwise, we should just fall back to reporting it as a DELETED.

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

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

commit c5221f8aea3c4407024a665ce66d8535237d7d62
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Mon Jul 6 01:50:10 2015 +0300

    Updated Greek translation

 po/el.po | 717
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 367 insertions(+), 350 deletions(-)

commit e337fe31637fe868ab94b488caf9b4898a2a1040
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Jul 2 11:06:17 2015 +0000

    W32: Add back the dummy g_app_info_reset_type_associations()

 gio/gwin32appinfo.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 155a6886357eefaed1da156b6593c7a6ec7cddd1
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Wed Jun 24 10:07:40 2015 +0000

    W32: Add a g_app_info_get_all_for_type() implementation

    Also add g_app_info_get_fallback_for_type() and
    g_app_info_get_recommended_for_type() as proxies for
    g_app_info_get_all_for_type(), until gcontenttype support is improved.

 gio/gwin32appinfo.c | 77
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

commit b9d919bd8f95e9eac7144ec7c413256c3f5cfc56
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Wed Jun 24 10:07:15 2015 +0000

    Don't ref a NULL pointer

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

commit f405f4211565fde3c58f3da9b18ddcdc5d82ccf2
Author: Stef Walter <stefw@redhat.com>
Date:   Tue Mar 17 13:06:02 2015 +0100

    gsocket: Don't g_error() if file-descriptor is not a socket

    This code was out of date with current coding practices.

    Nowadays it's common to receive file descriptors over environment
    variables from other processes like systemd. The unit files that
    control these file descriptors are configurable by sysadmins.

    It is not (necessarily) a programmer error when
    g_socket_details_from_fd()
    is called with a file descriptor that is not a socket. It can also
    be a system and/or configuration error.

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

 gio/gsocket.c | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

commit a9c8cc143ce696c70526fb24079fb04b98adbfc7
Author: Pedro Albuquerque <palbuquerque73@gmail.com>
Date:   Wed Jul 1 21:58:39 2015 +0000

    Updated Portuguese translation

 po/pt.po | 2072
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 1076 insertions(+), 996 deletions(-)

commit f2c1cfe8c770f73367a021044bcdda550348714c
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Tue Jun 30 17:13:49 2015 +0100

    gio/tests/appmonitor: Delete file before checking for changed event

    In 4e7d22e268a4e06beb1c09585a48288c31004da5, deleting the file
    was moved
    after the assertion which checks for the changed event that results
    from
    it being deleted. This is the wrong way around and makes the assertion
    fail.

    Move the deletion back up before we check the condition. delete_app is
    no longer an idle callback so it can be made void. The change
    notification might come in when the loop isn't running now, so
    don't try
    to quit if it isn't running. In this case we'll wait for the three
    second timeout and the test will still pass.

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

 gio/tests/appmonitor.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 475445e6e0e1388af7c07eedd1fb3c7679e09561
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Jun 29 20:14:40 2015 +0100

    tests: Fix compiler warning

    Use `const gchar * const` to define a const array of const strings,
    and
    initialize the array when declaring it.

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

 glib/tests/keyfile.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit b25fa8feed42d226b63f4d89ebf4b07041d26181
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 21 12:10:06 2015 -0400

    gio/tests/socket.c: fix on OS X

    The semantics of calling shutdown() on a dup()ed socket aren't
    well-specified, so don't require any specific behavior.

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

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

commit b97d666b2f4ce7f05b54f07906122608358fc177
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 21 12:00:07 2015 -0400

    gio/tests/socket.c: clean up a test case a bit

 gio/tests/socket.c | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

commit 368c3f205ff6447e140396cfac10db31de70f135
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 18 10:37:46 2015 -0400

    GTask: Remove unused function

    We no longer resort the queue, so this function can go.

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

 gio/gtask.c | 8 --------
 1 file changed, 8 deletions(-)

commit e419e1c4e212b1195c8e531fd6eeb4a0b80108d3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 18 10:36:23 2015 -0400

    GTask: Avoid resorting

    When a task is cancelled, we want to move it to the front
    of the queue - our sort function does that for us, but there
    is no need to resort the entire queue here, we can just
    move the one item and be done with it. This uses just-introduced
    threadpool api for this purpose.

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

 gio/gtask.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 9486f697bb3ed3b02fa2c82f50662fde7d77267e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 29 08:19:31 2015 -0700

    GThreadPool: Add some queue manipulation api

    GTask has a need for an api that boosts an unprocessed
    item to the front of the queue, so add one.

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

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gthreadpool.c                    | 30 ++++++++++++++++++++++++++++++
 glib/gthreadpool.h                    |  4 ++++
 3 files changed, 35 insertions(+)

commit 26d87927109d0758775e5455d4c0a22c1b3f9f75
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 22 11:35:06 2015 -0400

    Add tests for new GAsyncQueue api

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

 glib/tests/asyncqueue.c | 48
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

commit b662c6f09fe1a01bb1345f6cd7ab5a702eec5ee3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 18 10:26:14 2015 -0400

    GAsyncQueue: Add some useful api

    The underlying queue supports removing and pushing items to
    the front, and these operations can sometimes be useful.

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

 docs/reference/glib/glib-sections.txt |   4 ++
 glib/gasyncqueue.c                    | 100
 ++++++++++++++++++++++++++++++++++
 glib/gasyncqueue.h                    |  13 +++++
 3 files changed, 117 insertions(+)

commit 5574315b5207e959d162553e3bb5681b6264fe27
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Wed Apr 29 14:51:14 2015 +0800

    tests: Fix tests that fail with non-English locales

    Some tests check whether the translated messages are expected,
    so we have to
    force the use of English locales for them.

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

 glib/tests/date.c             | 2 +-
 glib/tests/fileutils.c        | 1 +
 glib/tests/markup-subparser.c | 1 +
 glib/tests/option-context.c   | 3 +--
 4 files changed, 4 insertions(+), 3 deletions(-)

commit f9af40a1330a8226d72c96bff56cdb4ab895dac7
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 9 09:19:43 2015 -0400

    Fix a FIXME in the WinXP inet_pton() implementation

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

 gio/ginetaddress.c | 44 ++++++++++++++++----------------------------
 1 file changed, 16 insertions(+), 28 deletions(-)

commit a4c3ab58ccf32b0f50ce6f78fa7d18ee5745d510
Author: Wouter Paesen <wouter@blue-gate.be>
Date:   Tue May 26 17:03:50 2015 +0200

    Fix g_inet_address_to_string() on XP

    [This patch originally also included an equivalent to the fix that was
    committed in 3e29dada, but that was not the complete fix for the bug.]

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

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

commit 93dadb17ce9840a6c835f89984350edfb68a5946
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Thu Feb 19 01:18:42 2015 +0800

    gmessages: Add G_GNUC_NORETURN to g_error static function declaration

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

 glib/gmessages.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d7a1d890c109c8610333f938dee15e5d938ee8d8
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Thu Jan 1 13:28:21 2015 +0800

    gmacros: Only set G_ANALYZER_ANALYZING to 1 when clang static analyzer
    is in use

    We set G_ANALYZER_ANALYZING to 1 when clang supporting static
    analyzing before,
    but this will cause compilation error when -Werror=return-type is
    used and the
    static analyzer is not in use because g_error static function only has
    __attribute__((analyzer_noreturn)), which is useless for normal
    compilation.

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

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cb86c222cce2436d6a213e574fbba159b6f34010
Author: Christian Hergert <christian@hergert.me>
Date:   Sat Jun 27 22:41:13 2015 -0700

    gtypemodule: use G_GNUC_UNUSED in G_DEFINE_DYNAMIC_TYPE_EXTENDED

    We already do this in the normal case, might as well support it
    for the
    dynamic type module case as well. This prevents seeing a warning
    when not
    using the get_instance_private() in the dynamic type.

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

commit 409202c1fd6552d4f655ffed3bcc649f30a7dcdb
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Apr 8 09:12:24 2014 +0100

    build: Ensure glibconfig.h.win32 is in DISTCLEANFILES

    Otherwise it’s possible for it to not be regenerated when
    glibconfig.h
    is, leading to inconsistencies.

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

 glib/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit c612fcab0fb2d3f0bdaf011d5b566dc949dbd18a
Author: Kalev Lember <klember@redhat.com>
Date:   Mon Jun 22 19:56:38 2015 +0200

    gapplication: Initialize backend before withdrawing notifications

    Make sure to initialize the notification backend in
    g_application_withdraw_notification() the same way as is done in
    g_application_send_notification().

    This makes it possible for an app to withdraw notifications it
    has sent
    in a previous execution of the application.

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

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

commit bb41a89c42dc4b24dc0a302b406df78e7c273744
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 22 12:46:32 2015 -0400

    2.45.3

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

commit 4e7d22e268a4e06beb1c09585a48288c31004da5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 23 06:55:28 2015 -0400

    Fix distcheck

    The appmonitor test was sometimes leaving files behind, causing
    distcheck some heartburn.

 gio/tests/appmonitor.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 3e29dadae46fe4d1e26ff91c30d9d3b84eb6d84e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 23 13:52:25 2015 +0800

    gio/ginetaddress.c: Fix Windows XP inet_pton() Emulation

    We need to be more careful when we try to assign values to gpointers,
    so
    that means we have to assign the value to the properly-dereference
    gpointer, so that the assigned value will be retained after the
    function
    returns.  This code will be dropped soon, but it is done for XP
    compatibility's sake for 2.44.

    Should fix the issue reported in bug 730352 comment #24.

 gio/ginetaddress.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit fd789f118741d89df348ba21ddc1d813da02fb76
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Wed Jun 3 13:06:24 2015 +0100

    gsocket: avoid unnecessary select in _send_messages() and
    _receive_message()

    For performance reasons we should always try to send or
    receive our messages first and only wait for more space
    or data to become available if we get an EAGAIN (and
    are in blocking mode).

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

 gio/gsocket.c | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

commit 9e85f60ec68eb0330e18254726facdc5d8983e35
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Thu Jun 18 09:36:12 2015 +0200

    socketclient: annotate the connection param of "event" as nullable

    When emitting the RESOLVING/RESOLVED events the connection param is
    set to NULL.

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

commit f5d4543139172f366afa0de36dd7e5eac08e2297
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Jun 17 17:31:19 2015 +0200

    configure: test have_docbook_style != yes, not have_docbook_dtd

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4b02bfd6eee43aaaa0ad30955cc85558f402d90f
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jun 17 09:25:49 2015 +0100

    gfile: Clarify that g_file_replace_contents() uses atomic renames

    It uses g_file_replace() internally, so is inherently safe.

    Though it might vomit .goutputstream-XXXXXX files all over the place
    occasionally.

 gio/gfile.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 6e576503876759d18c94bbad3c20ebb83b82c631
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 16 18:38:27 2015 -0400

    key file: Clarify documentation around comments

    The documentation was not very clear about the handling
    of the '#' comment markers. State clearly how these are
    handled by the getter and the setter.

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

 glib/gkeyfile.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 7a295f063fdef26ae87bfe3a942847c5ecd7f7c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 16 14:46:04 2015 -0400

    Updates

 NEWS | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit 9f90ee5eeccd47f39c7a03dcd786b125a19c195d
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Sat Jun 13 22:52:33 2015 -0500

    genmarshal: silence register storage class warnings

    Using the register keyword triggers warnings on noteworthy compilers
    (clang), since it's deprecated in C++ and at danger of being removed
    from the language. There is no reason to use it since it isn't 1980
    anymore.

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

 gobject/glib-genmarshal.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 0d6e200384c8c2fb172273dcfaa6a48bc357d4a3
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Thu Jun 11 15:56:25 2015 -0700

    gresource: fix a couple of typos in documentation

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

commit 1f0a11c59aa244a70766bdb4c3b06d3d79b25c7a
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Thu Jun 11 07:52:40 2015 +0200

    g_log_set_handler_full: Bump "Since" version accordingly

 glib/gmessages.c | 2 +-
 glib/gmessages.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 2471d9cf8697b07d4e86b6f143eda7b779be02a9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 28 23:31:00 2014 -0500

    Add g_log_set_handler_full

    This is a bindable version of g_log_set_handler that takes
    a destroy notify for the user_data.

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

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gmessages.c                      | 38
 ++++++++++++++++++++++++++++++++---
 glib/gmessages.h                      |  6 ++++++
 3 files changed, 42 insertions(+), 3 deletions(-)

commit 1102e6f9ca89b54e4e1139cca80f97c7bfb72dc3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 29 14:00:36 2015 -0400

    Allow property actions to invert booleans

    This can be handy when you want to change the sense of a toggle
    in the UI without rewriting the underlying logic. Currently, this
    is just exposed as a construct-only property. We may add a
    convenience wrapper or a special !property syntax for this later.

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

 gio/gpropertyaction.c | 45 ++++++++++++++++++++++++++++++++++++++++++++-
 gio/tests/actions.c   | 31 +++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 1 deletion(-)

commit fb1e5ff04b48b9bb93b99b127abf3ffe73a98e5c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 9 19:17:58 2015 -0400

    Fix deprecation notice

    GSimpleAsyncResult has not been deprecated all that long.

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

commit b701c3c60824fca4c0056a7a46c627fe2977257d
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Apr 27 16:26:33 2015 +0100

    Regression test for falling back to autolaunch: and
    XDG_RUNTIME_DIR/bus

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=747941
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>

 gio/tests/Makefile.am            |   2 +
 gio/tests/dbus-launch.c          |  77 ++++++++++++++++++
 gio/tests/gdbus-unix-addresses.c | 170
 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 249 insertions(+)

commit 32492c6ab0000c50564360c74acf069814d942d1
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Apr 15 17:57:29 2015 +0100

    GDBus: try XDG_RUNTIME_DIR/bus before resorting to dbus-launch

    This is the right thing to do for the "a session is a user-session"
    model implemented in dbus 1.9.14, which is described in
    <http://lists.freedesktop.org/archives/dbus/2015-January/016522.html>.

    It also resembles sd-bus' behaviour, although sd-bus will only try
    kdbus and XDG_RUNTIME_DIR/bus, and never runs dbus-launch.

    On systems following the more traditional "a session is a
    login-session"
    model, X_R_D/bus won't exist, so it is harmless to check for it before
    falling back to X11 autolaunching. Again, this matches the behaviour
    of current libdbus and sd-bus versions.

    Now that we do this, g_test_dbus_unset() needs to clear
    XDG_RUNTIME_DIR
    as well as everything else.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=747941
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>

 gio/gdbusaddress.c | 67
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gtestdbus.c    |  2 ++
 2 files changed, 69 insertions(+)

commit 0d3f56e31c9099653539fa2539e05b3ba336a441
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Apr 15 19:59:50 2015 +0100

    g_dbus_address_connect: specifically use dbus-launch for autolaunch:

    This only alters what happens if we specifically connect to
    "autolaunch:", for instance via
    "DBUS_SESSION_BUS_ADDRESS=autolaunch:".
    We will still potentially try other platform-specific things if
    DBUS_SESSION_BUS_ADDRESS is unset. There are currently no other
    platform-specific things, so there is no practical difference yet,
    but I'm about to add a more-preferred fallback path before autolaunch.

    This matches libdbus' behaviour and the D-Bus Specification, in which
    the autolaunch: transport specifically means X11 autolaunch
    (as implemented by "dbus-launch --autolaunch") on Unix, or a
    shared-memory-based protocol on Windows. Other platform-specific
    transports or default/fallback modes, including launchd on Mac OS X
    and XDG_RUNTIME_DIR/bus on Unix, are not part of "autolaunch:".

    It's rather unfortunate that the same name means two different
    platform-specific mechanisms, specific to different platforms -
    if they were added today I'd call them x11: and windows-shm: or
    something - but it's been like this since 2007 so it's too late now.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=747941
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>

 gio/gdbusaddress.c | 38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

commit bf181a3ac78e824ca7e67ecfb2ba957e740594d7
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Apr 27 14:38:41 2015 +0100

    regex: if PCRE is 8.34 or later, disable auto-possessification for DFA

    Normally, recent PCRE behaves as if certain patterns were replaced
    by a more "possessive" pattern that gives the same answer for normal
    regex matching, but is more efficient. However, the modified pattern
    produces fewer results under DFA. If we want the full set of results
    we have to apply PCRE_NO_AUTO_POSSESS, and that's a compile-time flag.

    This currently only affects a system PCRE, but would also work
    fine for
    an internal PCRE 8.34 or later if the embedded copy is updated.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=733325
    Reviewed-by: Christian Persch <chpe@gnome.org>

 glib/gregex.c | 128
 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 95 insertions(+), 33 deletions(-)

commit f45ceb838dae8f96b9bf646998a26a954a6fbf3d
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Wed Jun 3 11:30:43 2015 +0200

    gapplication: Make sure --help output is translated

    Currently, applications using g_application_add_main_option_entries()
    won't get translated entries in --help output. We need to call
    g_option_group_set_translation_domain() with a NULL domain to ensure
    that the
    default application gettext domain (ie the one passed to the
    textdomain() call) will be used for the main entries passed by the
    application.

    If we want to allow more flexibility on which gettext domain should be
    used for these entries, new API will be needed.

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

 gio/gapplication.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 6cd1f8b40ff66509eedfce9c3c46cbef799a7ffe
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 20:43:06 2014 +0000

    gsettings: Document GSettings build system integration

    Add a new section to the main GSettings documentation which documents
    the best practices for integrating GSettings into an autoconf/automake
    build system using the GLIB_GSETTINGS macro.

    Some of this material was adapted from the migrating-gconf.xml guide.

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

 gio/gsettings.c | 54
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit 723961b749613aad05b6bd22d1f12479a0022bef
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 20:42:21 2014 +0000

    gsettings: Expand documentation default value l10n

    Mention context, translation category, and the need for syntactic
    validity of the translated values.

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

 gio/gsettings.c | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

commit 73a71d6a435485714d8a96a156bb805d47438ac0
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Jun 8 11:09:39 2015 -0400

    doc: Add missing GTlsDatabaseClass

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gtlsdatabase.c                  | 36
 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)

commit 1405eeeed797470bed9d8062d4051bf5b011e42b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 5 19:13:19 2015 -0400

    Add registry helpers to the docs

 docs/reference/gio/gio-docs.xml     |  4 +++
 docs/reference/gio/gio-sections.txt | 69
 +++++++++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+)

commit e5e6c25c88349bf9fe2456efeb3785655967ad71
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Tue May 5 02:12:25 2015 +0000

    Bump W32 Registry API 'Since:' version

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

 gio/gwin32registrykey.c | 60 +++++++++++++++++++++---------------------
 gio/gwin32registrykey.h | 70
 ++++++++++++++++++++++++-------------------------
 2 files changed, 65 insertions(+), 65 deletions(-)

commit 6579c87bd2e9d61cac078165505e502f57b03623
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Tue May 5 02:09:10 2015 +0000

    Make W32 registry API compatible with MSVC

    * Only check __OBJECT_ATTRIBUTES_DEFINED and __UNICODE_STRING_DEFINED
      on MinGW (MSVC doesn't have these)
    * MSVC: disable:4005 when including windows.h and ntstatus.h
    * Move NTAPI cconv into the parens with the NtQueryKeyFunc
    * Fix return values in some functions

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

 gio/gwin32registrykey.c | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

commit 1ac5b92c2f16335d686268191e0605ae1f344b4a
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon Aug 25 03:38:35 2014 +0000

    Add W32 Registry reading API to gio

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

 gio/Makefile.am         |    2 +
 gio/gwin32registrykey.c | 2418
 +++++++++++++++++++++++++++++++++++++++++++++++
 gio/gwin32registrykey.h |  283 ++++++
 3 files changed, 2703 insertions(+)

commit 2a71f187d731a71ef16f4368d49af68aa3fe158d
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sun May 17 11:42:55 2015 +0000

    Make GWin32AppInfo MSVC-compatible - use G_VA_COPY

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

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

commit 4d800e4d86db6825dd3c508c83352b9a4cd24350
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Fri Aug 29 08:53:35 2014 +0000

    GWin32AppInfo rewrite

    - On first call scan the registry, collect information about URI
    protocols,
      file extensions, applications and handlers, store that as a set of
      interconnected structures in several hash tables
    - Watch the registry keys, re-scan the registry when any one of
    them changes.

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

 gio/gwin32appinfo.c | 4987
 +++++++++++++++++++++++++++++++++++++++++++++------
 gio/gwin32appinfo.h |    4 +-
 2 files changed, 4432 insertions(+), 559 deletions(-)

commit 5bc0bc2fdeb8a7c7bb56fabbd8886b56bf34c85b
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Tue Oct 14 01:25:56 2014 +0300

    Added g_utf8_validate() to UTF-8 performance testing

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

 glib/tests/utf8-performance.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 007f6684c54a695a6c35315f12f9f306d5af83bb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 5 15:27:59 2015 -0400

    Add index for new api

 docs/reference/gio/gio-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit 01e9302673630b20120505d92bbc245ba1bd027a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 5 15:27:25 2015 -0400

    Add new API to docs

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

commit cb7020af5e864eed81520e980d66ccd683697ed4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 19 12:45:38 2014 -0500

    GSettings: deprecate g_settings_list_keys()

    This is now possible with g_settings_schema_list_keys().

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

 gio/gsettings.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6cf867fb2a5086d2c5c0ac6c71ac795008cd13ae
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 19 12:45:06 2014 -0500

    gsettings tests: use g_settings_schema_list_keys()

    Stop using g_settings_list_keys() because soon it will be deprecated.

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

 gio/tests/gsettings.c | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

commit bb8eea6148fab965969c74e80a936864fc65e671
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 19 12:42:10 2014 -0500

    gsettings tool: use schema for listing keys

    Use the newly added g_settings_schema_list_keys() API instead of
    g_settings_list_keys() in order to list keys.

    Doing this allows the 'list-keys' command to work without creating a
    GSettings object, which is more efficient.  It also means that
    we don't
    have to provide a (meaningless and ignored) path when listing keys on
    relocatable schemas.

    While we're at it, update the 'range' command not to require
    creation of
    a GSettings object, in a similar way.

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

 gio/gsettings-tool.c | 75
 +++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 57 insertions(+), 18 deletions(-)

commit 82fcfeb3b065d7cc4d53e80776f9b476df7c2137
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 19 12:40:22 2014 -0500

    GSettingsSchema: add g_settings_schema_list_keys()

    The list of keys in a GSettings object depends entirely on the schema,
    so it makes sense to expose this API there.

    Move the implementation out of gsettings.c and into gsettingsschema.c,
    replacing the earlier with a simple call to the new location.

    We don't do the same for children because the children can change.

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

 gio/gsettings.c       | 18 +-----------------
 gio/gsettingsschema.c | 41 +++++++++++++++++++++++++++++++++++++++++
 gio/gsettingsschema.h |  3 +++
 3 files changed, 45 insertions(+), 17 deletions(-)

commit 36e093a31a9eb12021e7780b9e322c29763ffa58
Author: Patrick Griffis <tingping@tingping.se>
Date:   Wed Mar 25 15:51:29 2015 -0400

    Implement GNotification on OSX

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

 gio/Makefile.am                 |   5 +-
 gio/gcocoanotificationbackend.c | 278
 ++++++++++++++++++++++++++++++++++++++++
 gio/giomodule.c                 |   7 +
 gio/gnotificationbackend.c      |   4 +-
 4 files changed, 292 insertions(+), 2 deletions(-)

commit 89058e8a9b769ab223bc75739f5455dab18f7a3d
Author: Patrick Griffis <tingping@tingping.se>
Date:   Mon Apr 13 13:39:28 2015 -0400

    configure: Require OSX >= 10.9

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

 configure.ac | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 9e8f4d473604e291c0164965bf9bba5ac77cc2bf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 26 16:35:06 2015 -0400

    kqueue: add a bit of extra paranoia on cancel

    Cancellation of GPollFileMonitor is now handled correctly (in
    the sense
    that no further signals will follow) but let's be extra paranoid and
    disconnect our handler anyway, for good measure.

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

 gio/kqueue/gkqueuefilemonitor.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit a367921d445f290263b052ad3da55525c1a5deb3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 26 16:31:48 2015 -0400

    gpollfilemonitor: send 'changes done' for creates

    The new rules of GFileMonitor says that users should expect to see a
    CHANGES_DONE_HINT following a CREATED as well as CHANGED.

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

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

commit 62e5ee5514f0838689bc7d2d2c1a43fa912eaf1a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 26 16:29:19 2015 -0400

    gpollfilemonitor: don't emit after cancellation

    GPollFileMonitor emits CHANGES_DONE_HINT after CHANGED signals, but it
    doesn't check to ensure that the file monitor wasn't cancelled
    before it
    does that.

    If the original signal caused the monitor to be unreffed, cancelled
    and
    destroyed, we would still end up emitting an extra signal on it.

    Avoid that by checking first for cancellation.

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

 gio/gpollfilemonitor.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 16190d2dcd111b75b240baffe88653e5fa2822f6
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Mon Oct 6 02:01:38 2014 +0300

    glib/genviron.c, GSubprocessLauncher: ain't no "filename encoding"

    Removed all mentions of GLib file name encoding referring to
    the environment strings. The env var content has no defined relation
    to GLib's notion of filename encoding, or any encoding whatsoever.
    It would be wrong to pass all UTF-8 strings through
    g_filename_from_utf8() in order to put them into the environment,
    for one thing.

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

 gio/gsubprocesslauncher.c | 22 +++++++++-------------
 glib/genviron.c           | 19 ++++++++-----------
 2 files changed, 17 insertions(+), 24 deletions(-)

commit b31a873fb3bd1b67af9f7cc88bf44f8b5a941cec
Author: Jan Safranek <jsafrane@redhat.com>
Date:   Tue Nov 4 11:54:00 2014 +0000

    GDBus: Add new call flag to allow interactive authorization

    DBus has recently introduced new message flag
    DBUS_HEADER_FLAG_ALLOW_INTERACTIVE_AUTHORIZATION, which tells that
    caller is willing to wait for unspecified amount of time for the call
    to return, as the service may perform interactive authorization (e.g.
    using polkit).

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

 gio/gdbusconnection.c |  8 +++++++-
 gio/gioenums.h        | 11 +++++++++--
 2 files changed, 16 insertions(+), 3 deletions(-)

commit 865ce79ce0e92326b247ef51e7e2c78aaad99889
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 21 12:32:20 2015 -0500

    GActionGroupExporter: flush queue on requests

    In order to maintain a logical stream of events, we need to make
    sure we
    flush and queued change notifications before responding to any
    requests
    for information from clients.

    If we don't do this, it's possible that we emit an 'add' event
    that was
    queued at the time of a 'DescribeAll' call _after_ the reply to that
    call (which already contained the description of the new action).

    In practice, this is not only logically incorrect, but it can
    also cause
    problems.  If a change to action 'state' or 'enabled' occurs after the
    DescribeAll but before the signal has been dispatched, it will be
    ignored because an 'add' signal is already pending.  When that add
    signal is sent, it will contain the correct data, but the receiver
    will
    ignore it because it already saw the action in the DescribeAll reply.

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

 gio/gactiongroupexporter.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit eeae7950fca962e65a5e08cfceae372782f5cc7e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 25 11:21:06 2014 +0200

    GActionGroup: fix an annotation

    .get_action_state_type() does not return a copy.

    We remove the annotation entirely because it is evident from the
    'const'
    on the return type.

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

 gio/gactiongroup.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 96df2727f4c120a9fec888a2840f60ac3c3edde9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 5 12:30:15 2015 -0400

    win32: Make g_content_type_get_mime_type work for directories

    Now that we are using inode/directory for directories, handle
    this case in g_content_type_get_mime_type() as well.

 gio/gcontenttype-win32.c | 3 +++
 1 file changed, 3 insertions(+)

commit 5f0665cbbc1d8b2fafeeb1fba7569612832b7541
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Apr 30 23:09:30 2015 +0000

    W32: Special treatment for inode/directory mime/type

    This is a hack for GLocalFileInfo to correctly get icons for
    directories.
    Without this change content type for any W32 directory is NULL
    (because there's no registry entry for "inode/directory" by default,
    and in any way there's no file extension that means "directory"
    to put there),
    and GLocalFileInfo uses content type to grab icons.

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

 gio/gcontenttype-win32.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 9931336d2dfbaf44aeb54b7e31164b91718e7769
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 5 12:26:41 2015 -0400

    win32: Return proper icon names

    The code here was returning gtk-directory and similar names as
    fallback, with a comment claiming that these are 'builtin gtk'.
    But they aren't, anymore, so just return the standard names.

 gio/gcontenttype-win32.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

commit c20f3b239cd37733df1b68f113fdc17621cc3157
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 5 11:30:17 2015 -0400

    Fix a markup confusion

    "0." at the beginning of a line is interpreted as a numeric list
    by the gtk-doc markdown parser, so be careful to avoid that.

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

 glib/gdate.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 07b3595c230c42ef8a31406d00477c9f755e902d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 5 11:21:57 2015 -0400

    Trivial: fix a typo

    Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=750399

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

commit c94e4c6f03e39e3e7749980b8d19f1644aacb003
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 21:03:46 2014 +0000

    gsettings: Add a documentation section on relocatable schemas

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

 gio/gsettings.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

commit 338741fff5381d1a8d11b8f62c9e208af8b016fa
Author: Stefan Ekenberg <stefeg@axis.com>
Date:   Wed Jun 3 15:59:57 2015 +0200

    Prevent race condition in g_io_condition_get_type

    Prevents race condition in function g_io_condition_get_type by
    ensuring
    that the initialization section for 'etype' is executed only once
    during a program's life time, and that concurrent threads are blocked
    until initialization completes. This changes solves the problem that
    concurrent threads could execute the check 'etype == 0' before any of
    them had initialized it, which in turn meant that multiple threads
    would then attempt to register the "GIOCondition" type.

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

 gobject/gsourceclosure.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 6c43b6a21aca5cac33992c6b690e566ac1664997
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 4 19:25:20 2015 -0400

    Trivial: fix a comment typo

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

commit cac0a49ca031bbf0d3fa9902010b05e2ad6523b3
Author: Balázs Úr <urbalazs@gmail.com>
Date:   Thu Jun 4 21:03:10 2015 +0000

    Updated Hungarian translation

 po/hu.po | 502
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 261 insertions(+), 241 deletions(-)

commit bdc3f149ec134081943fcd626a1c826cccd05171
Author: Garrett Regier <garrettregier@gmail.com>
Date:   Wed Jun 3 17:16:21 2015 -0700

    binding: Simplify the default transform func

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

 gobject/gbinding.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit ace7f6861e180d8a9a3b6982e2cfa522cb0cb5a0
Author: Garrett Regier <garrettregier@gmail.com>
Date:   Wed Jun 3 17:15:17 2015 -0700

    binding: Remove conditional from the default transform function

    Avoiding checking for INVERT_BOOLEAN each and
    instead choose the correct function in constructed().

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

 gobject/gbinding.c | 49 +++++++++++++++++--------------------------------
 1 file changed, 17 insertions(+), 32 deletions(-)

commit 36593a3aba8dded2781a2bdd9b2ad0050dc939f2
Author: Garrett Regier <garrettregier@gmail.com>
Date:   Wed Jun 3 17:13:53 2015 -0700

    binding: Remove GObject data usage

    It isn't actually doing anything, instead it is
    being managed without actually being used.
    This has the result that GBinding is now more
    thread-safe.

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

 gobject/gbinding.c | 46 ++--------------------------------------------
 1 file changed, 2 insertions(+), 44 deletions(-)

commit f68582356dd94f34e85574852556ab591854da27
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Jun 3 19:02:12 2015 +0200

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 0d8dd2cf5cb7ba2d75b71bf765b299727eb32e26
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Wed Jun 3 10:18:36 2015 -0400

    doc: add GTlsInteractionClass

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

 docs/reference/gio/gio-sections.txt | 2 +-
 gio/gtlsinteraction.c               | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

commit 7cba800a84730c9c5843acdd775e42b8c1438edf
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 1 10:02:47 2015 +0200

    GNetworkMonitorNetlink: Fix check for non-kernel messages

    This code used to look at the SCM_CREDENTIALS and ignore every message
    not from uid 0. However, when user namespaces are in use this does not
    work, as if uid 0 is not mapped you get overflowuid instead. Right now
    this means we ignore all messages in such user namespaces and glib
    apps hang on startup.

    We can't look at pids either, as pid 0 is returned for processes
    outside your pid namespace.

    Instead the correct approach is to look at the sending sockaddr and
    if the port id (nl_pid) is zero, then its from the kernel.

    Source:
    http://lists.linuxfoundation.org/pipermail/containers/2015-May/036032.html

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

 gio/gnetworkmonitornetlink.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit f8273f39a1fa5e961c30e96fa2a82d728736be09
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 1 10:01:26 2015 +0200

    Add GNativeSocketAddress for handling "other" addresses

    Instead of just dropping address types that we're not specifically
    handling we return a GNativeSocketAddress which is just a dummy
    container for the stuct sockaddr.

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

 docs/reference/gio/gio-sections.txt |  20 +++++
 gio/Makefile.am                     |   2 +
 gio/giotypes.h                      |   1 +
 gio/gnativesocketaddress.c          | 160
 ++++++++++++++++++++++++++++++++++++
 gio/gnativesocketaddress.h          |  65 +++++++++++++++
 gio/gsocketaddress.c                |   3 +-
 6 files changed, 250 insertions(+), 1 deletion(-)

commit f7b13e05f9bc5bd2b54f589d16ad580f6d833173
Author: Mattias Ellert <mattias.ellert@fysast.uu.se>
Date:   Fri Oct 24 12:29:00 2014 +0000

    thread: Check sysconf value before using it

    sysconf() is documented as returning -1 if it can't determine
    a minimum thread stack size. Check for this case before using
    the return value.

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

 glib/gthread-posix.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 916297be799ee001b4a214cc52c3b960bb0b5deb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 20 01:08:32 2014 -0400

    Add a global signal handler table

    Add a global lookup table for signal handlers. We already give
    them a unique ID, so there is no good reason to pay for
    non-constant lookups when disconnecting handlers.

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

 gobject/gsignal.c | 50 ++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 10 deletions(-)

commit 8a97dc56528b45dcd84a8c46f94b9a25a26d5cc3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 20 00:34:24 2014 -0400

    Add a performance test for signal connection

    This test checks the performance of connecting, disconnecting and
    blocking many handlers. Various cases are checked: disconnect in
    the same order, in the inverse order, at random. Connect to one
    signal on a single object, to two signals on the same object, or
    to the same signal on two different objects.

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

 gobject/tests/Makefile.am      |   1 +
 gobject/tests/signal-handler.c | 299
 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 300 insertions(+)

commit ff1381e31e2c05d0e410c49e6a728ad175a9fc0a
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue May 26 19:25:56 2015 +0200

    Updated Spanish translation

 po/es.po | 504
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 262 insertions(+), 242 deletions(-)

commit 102ac0e7765796f49ccd271dd9de97885bc3c605
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 25 23:29:41 2015 -0400

    2.45.2

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

commit 126c685f4aa627a8190e09adfc8ab0733c14a6ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 25 13:26:48 2015 -0400

    GOptionContext: Improve help in simple cases

    Only add [OPTION...] to the usage line if the context
    has options. And shorten "Application Options" to just
    "Options" if we don't have to differentiate from other
    kinds of options.

 glib/goption.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 525bbbd6bd7c9abb45c4ddfcfb8dcf45bbbd5726
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon May 25 14:04:06 2015 +0100

    Do not use a string literal when a format string is expected

    Otherwise we'll get compiler errors.

    Based on a patch by: Vincent Le Garrec <legarrec.vincent@gmail.com>

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

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

commit 5e7e058a9c26fa735386cf45b41ad91cc7768137
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Apr 20 14:11:12 2015 +0100

    docs: Add an example of G_DEFINE_BOXED_TYPE

    Mention that the GType of the boxed type is stored inside the
    g_define_type_id variable.

    See bug: https://bugzilla.gnome.org/show_bug.cgi?id=723394

 gobject/gtype.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 7313195ae776dad441b18fb948149dfdd6ae76cc
Author: Akom Chotiphantawanon <knight2000@gmail.com>
Date:   Sun May 24 17:42:33 2015 +0700

    Updated Thai translation

 po/th.po | 1203
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 628 insertions(+), 575 deletions(-)

commit 13a9e8b7a649fb8739f47e88fc2ab4218b9aed7a
Author: Dušan Kazik <prescott66@gmail.com>
Date:   Sat May 23 20:36:38 2015 +0000

    Updated Slovak translation

 po/sk.po | 431
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 223 insertions(+), 208 deletions(-)

commit 3bd703e9c4a4de0ea3faf2073ffaffcb182c5b5d
Author: David Shea <dshea@redhat.com>
Date:   Wed Apr 8 13:14:22 2015 -0400

    Add introspection annotations to GListStore

    GListStore requires that item-type be derived from GObject, so specify
    that the type of the item parameters is GObject so the functions
    can be
    used via gobject-introspection.

    Add a scope parameter for the callback used during insert_sorted.

 gio/gliststore.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 074fe89f226d4c0f3c6bdd48b6b03c8051fbaf75
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 15 22:53:41 2015 -0400

    glib-compile-schemas: Improve an error message

    Mention the expected type when failing to parse a GVariant.

 gio/glib-compile-schemas.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit aecac6e1cb80b3b5e64459f5a8536ad93d021c1b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 15 22:41:29 2015 -0400

    glib-compile-schemas: Show error positions

    GMarkup provides this information, pass it on.

 gio/glib-compile-schemas.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit d853ceddb5bd07e0835ef7b7953404f5c866832d
Author: Jordi Mas <jmas@softcatala.org>
Date:   Fri May 15 22:14:44 2015 +0200

    Fixes to Catalan translation

 po/ca.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4c1f716ef6d8d9bf73e60175ebad52b2c1d13b6b
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Fri May 15 08:46:51 2015 +0000

    Updated French translation

 po/fr.po | 443
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 228 insertions(+), 215 deletions(-)

commit ace7846322634159271c5c75ccadfa3cade78620
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Apr 28 10:10:58 2015 +0100

    regex test: do not assert that system PCRE still has an 8.31 bug

    This was fixed in 8.32, so if we have that version, assert that it is
    fixed; if we don't (e.g. the current internal pcre), still don't
    assert that it *isn't* fixed.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=733325
    Reviewed-by: Christian Persch <chpe@gnome.org>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 glib/tests/regex.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit fe1a2dc1965b564727480c8a99740252ea81274b
Author: Iain Lane <iain.lane@canonical.com>
Date:   Mon Mar 31 11:06:05 2014 +0100

    gdbus tests: wait up to 60s for gdbus-testserver to take its bus name

    Previously, we waited up to 0.5s, but that can fail on slow
    architectures like ARM; now we wait up to 60s in 0.1s increments.

    Patch originally by Simon McVittie <simon.mcvittie@collabora.co.uk>,
    modified by Iain Lane to be called earlier, to catch all testcases
    in a
    particular test.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=724113
    Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Acked-by: Matthias Clasen <mclasen@redhat.com>

 gio/tests/gdbus-connection-loss.c |  3 +--
 gio/tests/gdbus-tests.c           | 52
 +++++++++++++++++++++++++++++++++++++++
 gio/tests/gdbus-tests.h           |  2 ++
 gio/tests/gdbus-threading.c       |  8 +-----
 4 files changed, 56 insertions(+), 9 deletions(-)

commit 3beb67f9f3b1db6ee133973edfd89df89d7bdde5
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Feb 11 14:23:15 2014 +0000

    gdbus-connection: wait up to 10s to actually send a message

    We previously waited 0.25s, which should be enough even on slow
    machines,
    but you never know; but we also now wait in 0.1s increments, so
    this test
    should actually be faster now.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=724113
    Acked-by: Matthias Clasen <mclasen@redhat.com>

 gio/tests/gdbus-connection.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit f1c2e703454cb876a7df9c081c456a3df97b906e
Author: Garrett Regier <garrettregier@gmail.com>
Date:   Wed May 13 23:12:49 2015 -0700

    Connect to the detailed notify signal in GBinding

    This avoids the notify handler being called for each
    and every emitted notify.

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

 gobject/gbinding.c | 44 ++++++++++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 18 deletions(-)

commit b07ba8ed3b3c6b2b0402946283e896ad66b0a573
Author: Garrett Regier <garrettregier@gmail.com>
Date:   Wed May 13 22:15:27 2015 -0700

    Fix g_binding_unbind() when the source and target are the same

    It tried to remove a weak ref, but it is only taken if the
    source and target object are different.

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

 gobject/gbinding.c      |  9 +++++++--
 gobject/tests/binding.c | 13 +++++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

commit 31496767c7caed25c134e58b0f41b1e696f671fe
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 14 08:31:22 2015 +0100

    gresource: Document generated C file function naming

    Mention the relationship to the --c-name argument, plus the need
    to call
    some_prefix_get_resource() to get the GResource object.

 gio/gresource.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit a8c157f92be6915549e1ec06e611e72da935385b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 14 08:15:46 2015 +0100

    gresource: Minor capitalisation fixes in documentation

 gio/gresource.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 6ac2e8c79a012e2d43292efdbd3250de31abff47
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed May 13 15:22:57 2015 +0100

    gmessages: Tweak docs for G_LOG_DOMAIN to use AM_CPPFLAGS

    Instead of INCLUDES, which is deprecated in automake. Using
    AM_CPPFLAGS
    also gives the hint that the -D argument should be a CPPFLAGS
    variable,
    rather than CFLAGS.

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

commit 29d380cc5bbd97ee5b0c95b5499d6dd17523b71b
Author: Garrett Regier <garrett.regier@riftio.com>
Date:   Tue Apr 14 20:44:38 2015 -0700

    gtype: Bump allowed number of children

    Restricting the number of children to be less than 4095 can
    be an issue when generating types. This is also an issue for
    the Lua bindings as each Lua state will create a new GType each
    time the Lua code is executed.

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

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 45dae4b5063f9af7de8211ced95dd73cc770a86e
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon May 11 17:03:00 2015 +0100

    tests: replace most g_print() with g_printerr()

    I searched all files that mention g_test_run, and replaced most
    g_print() calls. This avoids interfering with TAP. Exceptions:

    * gio/tests/network-monitor: a manual mode that is run by
      "./network-monitor --watch" is unaffected
    * glib/gtester.c: not a test
    * glib/gtestutils.c: not a test
    * glib/tests/logging.c: specifically exercising g_print()
    * glib/tests/markup-parse.c: a manual mode that is run by
      "./markup-parse --cdata-as-text" is unaffected
    * glib/tests/testing.c: specifically exercising capture of stdout
      in subprocesses
    * glib/tests/utils.c: captures a subprocess's stdout
    * glib/tests/testglib.c: exercises an assertion failure in g_print()

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=725981
    Reviewed-by: Colin Walters <walters@verbum.org>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 gio/tests/defaultvalue.c        |   2 +-
 gio/tests/g-file.c              |   4 +-
 gio/tests/gdbus-connection.c    |   2 +-
 gio/tests/gdbus-export.c        |  10 +--
 gio/tests/gdbus-peer.c          |   4 +-
 gio/tests/gdbus-proxy-threads.c |   4 +-
 gio/tests/gdbus-test-codegen.c  |   2 +-
 gio/tests/gdbus-threading.c     |  12 +--
 gio/tests/live-g-file.c         |  12 +--
 glib/tests/1bit-mutex.c         |   2 +-
 glib/tests/base64.c             |   4 +-
 glib/tests/bookmarkfile.c       |  26 +++---
 glib/tests/cond.c               |  16 ++--
 glib/tests/fileutils.c          |   6 +-
 glib/tests/gdatetime.c          |   6 +-
 glib/tests/mutex.c              |   2 +-
 glib/tests/private.c            |   6 +-
 glib/tests/queue.c              |   2 +-
 glib/tests/rec-mutex.c          |   4 +-
 glib/tests/rwlock.c             |   2 +-
 glib/tests/sequence.c           |   8 +-
 glib/tests/shell.c              |   2 +-
 glib/tests/utils.c              |   2 +-
 gobject/tests/binding.c         |   4 +-
 gobject/tests/dynamictests.c    |   8 +-
 gobject/tests/private.c         |   8 +-
 gobject/tests/threadtests.c     |   8 +-
 tests/asyncqueue-test.c         |   2 +-
 tests/testglib.c                | 182
 ++++++++++++++++++++--------------------
 29 files changed, 176 insertions(+), 176 deletions(-)

commit 064183a633b7fcfd9b7c1b5a2917fb6f0e9128d3
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon May 11 16:50:00 2015 +0100

    GFileMonitor test: use g_test_skip() instead of g_print()

    This stops it from interfering with structured stdout such as TAP.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=725981
    Reviewed-by: Colin Walters <walters@verbum.org>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

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

commit 0a9d91ab7b3b11df74a46d2068316a7c198e8558
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon May 11 16:38:57 2015 +0100

    testglib: my_hash_callback_remove_test: actually fail the test

    The test is to remove all the odd values with
    my_hash_callback_remove(),
    then iterate over all values and verify that they are even. However,
    failing this check would just print "bad!" instead of failing
    the test.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=725981
    Reviewed-by: Colin Walters <walters@verbum.org>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 tests/testglib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4865538ce3d93dda802d25cbf93743e842507c5f
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon May 11 16:34:35 2015 +0100

    GTestDBus: use g_printerr() for status message

    This avoids any possibility of interfering with test syntax (such as
    TAP) on stdout. TAP specifically does not parse stderr.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=725981
    Reviewed-by: Colin Walters <walters@verbum.org>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

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

commit 472dee39097881502bb593eb2effe37b3b6064a2
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri May 8 16:38:33 2015 +0100

    gdatetime test: don't assume that time stands still

    If we call time(NULL), then do something (however trivial), then call
    g_date_time_new_now_utc(), they do not necessarily share a seconds
    value. Let's say the gmtime call takes 2ms. time(NULL) could
    return xx:xx:23 when the time is actually xx:xx:23.999999, resulting
    in the g_date_time_new_now_utc() happening at xx:xx:24.000001. This is
    unlikely, but did happen to me in a parallel build:

    GLib:ERROR:.../glib/tests/gdatetime.c:674:test_GDateTime_now_utc:
    assertion failed (tm.tm_sec == g_date_time_get_second (dt)):
    (23 == 24)

    A similar argument applies to the rollover from xx:23:59.999999 to
    xx:24:00, so comparing seconds with a 1s "fuzz" or a >= comparison
    is not sufficient; and so on into higher-order fields.

    I haven't seen the other tests that use _now() fail in the same way,
    but they could.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=749080
    Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 glib/tests/gdatetime.c | 79
 +++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 59 insertions(+), 20 deletions(-)

commit e18e7956bfc8a65ecec18b1837d5b7835312c40a
Author: Evan Nemerson <evan@nemerson.com>
Date:   Sat May 9 23:45:03 2015 -0700

    gnetworkaddress: add return type annotation to parse methods

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

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

commit bced30cfbb9d98fdaf71225bae3330e95ea548fa
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu May 7 17:36:01 2015 +0100

    GDBus tests: change progress noise from "if not quiet" to "if verbose"

    It seems that even after Bug #711796, these can still interfere
    with TAP testing:

    PASS: gdbus-proxy-threads 1 /gdbus/proxy/vs-threads
    tap-driver.sh: internal error getting exit status
    tap-driver.sh: fatal: I/O or internal error

    Let's shut them up unless --verbose is used (which would be
    appropriate
    when running them interactively).

    Similar symptoms have been seen in Debian:
    https://buildd.debian.org/status/fetch.php?pkg=glib2.0&arch=mipsel&ver=2.39.91-1&stamp=1394394568
    and in Guix:
    https://lists.gnu.org/archive/html/bug-guix/2014-12/msg00002.html

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=725981
    Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 gio/tests/gdbus-proxy-threads.c | 4 ++--
 gio/tests/gdbus-threading.c     | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 6f859fe21a1955ab60ba4aa7e22841c7dbffdea3
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu May 7 16:45:48 2015 +0100

    gdbus-peer test: let GDBusServer start before notifying main thread

    When running the nonce-tcp and tcp-anonymous tests in one run
    of gdbus-peer, or running one of them twice via command-line options
    "-p /gdbus/tcp-anonymous -p /gdbus/tcp-anonymous", the one run second
    would sometimes fail to connect with ECONNRESET.

    Adding more debug messages revealed that in the successful case,
    g_main_loop_run() was executed in the server thread first:

     # tcp-anonymous: server thread: listening on
     tcp:host=localhost,port=53517
     # tcp-anonymous: server thread: starting server...
     # tcp-anonymous: server thread: creating main loop...
     # tcp-anonymous: server thread: running main loop...
     # tcp-anonymous: main thread: trying tcp:host=localhost,port=53517...
     # tcp-anonymous: main thread: waiting for server thread...

    but in the failing case, the main thread attempted to connect
    before the call to g_main_loop_run() in the server thread:

     # tcp-anonymous: server thread: listening on
     tcp:host=localhost,port=40659
     # tcp-anonymous: server thread: starting server...
     # tcp-anonymous: server thread: creating main loop...
     # tcp-anonymous: main thread: trying tcp:host=localhost,port=40659...
     # tcp-anonymous: server thread: running main loop...

    (The log message "creating main loop" was immediately before
    create_service_loop(), and "running main loop" was immediately
    before g_main_loop_run().)

    To ensure that the GDBusServer has a chance to start accepting
    connections before the main thread tries to connect to it, do not
    tell the main thread about the service_loop immediately, but instead
    defer it to an idle.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=749079
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>

 gio/tests/gdbus-peer.c | 41 ++++++++++++++++++++++++++++-------------
 1 file changed, 28 insertions(+), 13 deletions(-)

commit 474877d916439e20769a4aad4bccdedff2ad04ac
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun May 10 20:09:48 2015 +0200

    Fix a minor typo in a comment

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

commit d92a67afcb4349bd3e9f6d02b0fd1acf4526d5be
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Apr 29 12:28:27 2015 +0100

    gtestutils: better diagnostics if a captured subprocess fails

    It's unhelpful to get an error saying that stderr didn't match a
    desired pattern, or matched an undesired pattern, without also
    telling you what *was* on stderr. Similarly, if a test subprocess
    exits 1, there's probably something useful on its stderr that
    could have told you why.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=748534
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Dan Winship <danw@gnome.org>

 glib/gtestutils.c | 43 +++++++++++++++++++++++++++++++++++++++----
 1 file changed, 39 insertions(+), 4 deletions(-)

commit f42d2c1b54541cf8d4e399f5c6d27d3ac40fc1a9
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Apr 21 20:46:47 2015 +0100

    gdbus-serialization: use check_serialization() instead of dbus-daemon

    This test originally did not connect to the bus, which meant it was
    omitted from commits like 415a8d81 that made sure none of GLib tests
    rely on the presence of an existing session bus. (In particular,
    Debian autobuilders don't have a session bus.)

    When test_double_array() was added, environments like the Debian
    autobuilders didn't catch the fact that this test relied on having a
    session bus, because it is often skipped in minimal environments
    due to its libdbus-1 dependency.

    We don't actually need to connect to a dbus-daemon here: it's enough
    to convert the message from GVariant to D-Bus serialization, and
    back into an in-memory representation through libdbus. That's what
    check_serialization() does, and I've verified that when I re-introduce
    bug #732754 by reverting commits 627b49b and 2268628 locally, this
    test still fails.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=744895
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 gio/tests/gdbus-serialization.c | 26 ++++++++------------------
 1 file changed, 8 insertions(+), 18 deletions(-)

commit 23a5352cd8a1f247ac831ebada9dbc9f5d24476f
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sun May 3 12:17:10 2015 +0100

    glocalfilemonitor: Emit notification on rate limit change

    The changed variable was previously uninitialised in the path
    where the
    rate limit was actually changed. This could result in the
    GObject::notify signal not getting emitted.

    Spotted by Coverity.

    CID: #1296516

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

 gio/glocalfilemonitor.c | 2 ++
 1 file changed, 2 insertions(+)

commit 517ce45f8e21b2f7524fd429ee90ab1fbca9a30a
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Wed Apr 29 15:17:00 2015 +0800

    gsocketlistener: Don't double unref address

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

 gio/gsocketlistener.c | 2 --
 1 file changed, 2 deletions(-)

commit 34e946838d055cff810e32f6dba4331c49ea28c4
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Wed Apr 29 14:55:00 2015 +0800

    tests: Use de_DE.UTF-8 instead of de_DE

    de_DE.UTF-8 is supported by more operating systems, including FreeBSD,
    NetBSD and OpenBSD.

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

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

commit 7ebf2618aac31547131ced79f563266810917ae0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 30 13:40:42 2015 -0400

    2.45.1

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c5fc7608792202b56b2b40e56941a4fcbbe1f400
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 30 12:46:20 2015 -0400

    Updates

 NEWS | 76
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 75 insertions(+), 1 deletion(-)

commit aeb069cd78e17cafa3002dbc40d074131d370571
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Wed Apr 29 14:23:50 2015 +0300

    Updated Hebrew translation

 po/he.po | 433
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 223 insertions(+), 210 deletions(-)

commit c71b16c3be17113f80693690555c453f31e5f31a
Author: Hans Petter Jansson <hpj@cl.no>
Date:   Tue Apr 28 16:50:42 2015 +0200

    gmarkup: Make append_escaped_text() slightly more robust.

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

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

commit 4e29e9a079a8e7a80ee78d9dc55b9ceb90f3421c
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Sun Jul 20 19:34:54 2014 +0100

    regex test: do not assert that system PCRE allows "(?P<1>)"

    Perl >= 5.18, and PCRE >= 8.34, disallow this.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=733325
    Reviewed-by: Christian Persch <chpe@gnome.org>

 glib/tests/regex.c | 3 +++
 1 file changed, 3 insertions(+)

commit 1fdece4f227a800ae44d04838fc29b6d8343fed5
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Sun Jul 20 19:33:17 2014 +0100

    regex test: improve diagnostics for some failures

    These fail with system PCRE 8.35, but the improved diagnostics are
    generic.

    Reviewed-by: Christian Persch <chpe@gnome.org>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=733325

 glib/tests/regex.c | 65
 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 62 insertions(+), 3 deletions(-)

commit 073a81d1da69689c3228846c81e93de2a4931ff4
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jun 30 15:57:28 2014 +0100

    gsignal: Mark the return value of g_signal_emitv() as (inout)
    (optional)

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

 gobject/gsignal.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit ee742ec69cc543962917e073b3ec8ed19d296a10
Author: Marek Černocký <marek@manet.cz>
Date:   Sat Apr 25 12:41:09 2015 +0200

    Updated Czech translation

 po/cs.po | 404
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 208 insertions(+), 196 deletions(-)

commit 0c97cb5fa21f66e6552fa15d3577cd4edb0bc574
Author: Sveinn í Felli <sv1@fellsnet.is>
Date:   Fri Apr 24 14:36:02 2015 +0000

    Updated Icelandic translation

 po/is.po | 5561
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 3144 insertions(+), 2417 deletions(-)

commit 10b5a8befc16bdefdbfb8d1fc10df11d53acb6ef
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed May 14 16:02:35 2014 +0800

    Fix the thumbnail-verification Test

    The third parameter of the thumnail_verify() function had been
    updated to
    const GLocalFileStat, so update the thumbnail-verification test
    likewise
    so that the test works properly on all supported platforms.

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

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

commit 2bb898c60f43330f8bdf277e1931228031fe49b4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 2 17:17:35 2015 -0400

    app info: tweak default application algorithm

    Always run the full algorithm for a given mime type before considering
    fallback types.

    This includes considering installed applications capable of handling a
    particular mimetype, even if such an app is not explicitly marked as
    default, and there is a default app for a less-specific type.

    Specifically, this often helps with cases of installing apps that can
    handle a particular subtype of text/plain.  We want to take those apps
    in preference to a generic text editor, even if that editor is
    listed as
    the default for text/plain and there is no default listed for the more
    specific type.

    Because of the more holistic approach taken by the algorithm, it
    is now
    more complicated, but it also means that we can do more work while
    holding the lock.  In turn, that lets us avoid duplicating some
    strings,
    which is nice.

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

 gio/gdesktopappinfo.c | 103
 ++++++++++++++++++++++----------------------------
 1 file changed, 45 insertions(+), 58 deletions(-)

commit cf940b66bcea7835c2e01b9bfa051a2e826835c9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Apr 22 16:36:13 2015 +0800

    build/Makefile-newvs.am: Fix %.vcxproj Rule

    The if-else statement added in commit 9bc3ae9 was missing a '\'
    after the
    'else', causing 'make dist/distcheck' to break with "unexpected
    end-of-file" errors.

    Fix this-didn't notice this when reviewing that patch.  My fault. :|

 build/Makefile-newvs.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bc01109618009ad748abdc58bdc0c64891b84db0
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Apr 21 23:57:17 2015 +0100

    gdbusmessage: Fix a minor memory leak on an error path

    If g_dbus_message_to_blob() fails at all, it will leak its
    mbuf. Spotted
    by running the gdbus-serialization test under Valgrind — so there
    is a
    justification for leak-free tests after all!

 gio/gdbusmessage.c | 3 +++
 1 file changed, 3 insertions(+)

commit 1b3dbec0658695deee02b35b7d9a3fce981ce772
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Apr 21 23:56:10 2015 +0100

    gvariant-parser: Clarify g_variant_parse() returns a non-floating ref

    Unlike, say, g_variant_new(), which returns a floating reference.
    g_variant_parse() returns a non-floating one, so must always have
    g_variant_unref() called on the result.

 glib/gvariant-parser.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit c62f7a7d688cc7c6d4f88e45cddd74aac5dc4582
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Apr 21 23:55:49 2015 +0100

    tests: Fix various minor memory leaks in gdbus-serialization

 gio/tests/gdbus-serialization.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 41acf970accd25c4446e8f28c0b817e332722c23
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Fri Mar 6 15:22:33 2015 +0100

    gdbus: fix out-of-bound array access

    In path_rule_matches(), the given paths may be of 0-length. Do not
    access memory before the array in those case. This is for example
    triggered by:

    test_match_rule (con, G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH, "/",
    "", FALSE);

    in test_connection_signal_match_rules().

    This bug was found thanks to GCC AddressSanitizer.

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

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

commit 9bc3ae920731448575741bf0a799a32c9c1a6668
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Apr 20 14:54:28 2015 +0100

    Makefile-newvs: some .vcxproj.filters files are in builddir, some
    in srcdir

    Without this change, out-of-tree distcheck doesn't get very far.

    Similarly, allow *.vcxproj, *.props to be in either the builddir or
    the srcdir.

    Finally, since I'm touching these lines anyway, eliminate some
    useless uses of cat: "cat x | sed 's/foo/bar/' > y" is
    equivalent to "sed 's/foo/bar/' < x > y".

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=748176
    Reviewed-by: Chun-wei Fan <fanchunwei@src.gnome.org>

 build/Makefile-newvs.am | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

commit 812ce28d5ccf626bb6594749f4d87951ed5cfc73
Author: Arun Raghavan <git@arunraghavan.net>
Date:   Fri Apr 17 10:00:50 2015 +0530

    gsocketconnection: Fix copy-pasto in documentation

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

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

commit 92331eb10a6ad05d3b811546539a82470a36a466
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Apr 20 12:15:42 2015 +0100

    Distribute summary-xmllang-and-attrs.gschema.xml in tarballs

    This is needed for "make distcheck".

    Reviewed-by: Matthias Clasen <mclasen@redhat.com>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=748177

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

commit 68bb63e3eea4a52a4c3486804087ed60a6f28404
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Apr 17 13:59:28 2015 +0800

    build/Makfile-newvs.am: Use Pattern Rules

    Make use of pattern rules when generating the Visual Studio 2012/2013
    Projects from the Visual Studio 2010 projects, which will help to
    clean up
    the file and also avoid problems when running items like 'make
    -jN dist'.

 build/Makefile-newvs.am | 34 ++++++++++++----------------------
 1 file changed, 12 insertions(+), 22 deletions(-)

commit 6a2543444cf596023efd4d8f185088ecdbc0d507
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon Aug 4 12:39:08 2014 +0000

    W32: use 64-bit stat for localfile size calculation

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

 gio/glocalfile.c | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

commit 46779a31224714ce28d0bea4b0575826bb27e772
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Apr 13 12:30:16 2015 -0700

    Remove UTF-8 quotation marks

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

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 21107959ab12da217151fe8d5f0eb65bd93fd5aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 8 22:07:26 2015 -0400

    gdbus: Validate the --dest argument

    Passing an nonsense string for the --dest argument can lead
    to a segfault of gdbus. Thats not nice, so use our existing
    validation function for bus names here.

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

 gio/gdbus-tool.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit 3fa0a051a47ca9e7ddcaf56cf842dc133fceede9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 8 22:11:27 2015 -0400

    gsettings: add test for repeated <summary> errors

    Make sure error handling on repeated <summary> and <description> is
    being done properly, not resulting in glib-compile-schemas throwing a
    critical.

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

 gio/tests/gschema-compile.c                                 |  3 +++
 .../schema-tests/summary-xmllang-and-attrs.gschema.xml      | 13
 +++++++++++++
 2 files changed, 16 insertions(+)

commit 7f4fdb59aa6963a066e251063dc6b7cfb766fdfe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 8 22:08:13 2015 -0400

    gsettings: fix schema compiler error handling

    Fix a couple of issues in error handling in glib-compile-schemas.

    The first problem is that, in case of repeated <summary> or
    <description> tags we were still allocating a GString which was never
    being freed (due to the throwing of the error resulting in immediate
    termination of the parse).

    The second problem is that if the repeated <summary> tag also had
    attributes, we would attempt to set the GError twice.

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

 gio/glib-compile-schemas.c | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

commit 2b8f131599842d7d6249815412a261df6fa65d15
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 8 21:55:58 2015 -0400

    gsettings: stay compatible with installed schemas

    Bug 747209 introduced an error when multiple <summary> or
    <description>
    tags are found for a single key in a GSettings schema.  This check
    should have been present from the start, but it was left out
    because the
    schema compiler doesn't include these items in the cache file.  Even
    still -- part of the schema compiler's job is validation, and
    it should
    be enforcing proper syntax here.

    Repeated <summary> and <description> tags are a semi-common problem
    when
    intltool has been misconfigured in the build system of a package, but
    it's possible to imagine mistakes being made by hand as well.

    The idea is that these problems would be caught during the build of a
    package and maintainers would be forced to fix their build systems.

    An unintended side-effect of this change, however, is that the schema
    compiler started ignoring already-installed schemas that contained
    these
    problems, when rebuilding the cache.  This means that the installation
    of _any_ application would cause the regeneration of the entire cache,
    with these already-installed applications being excluded.  Without the
    schema in the cache, the application would crash on next startup.

    The validation check in the gsettings m4 macro passes --strict to the
    compiler, which is not used when rebuilding the cache after
    installation.  Pass this flag down into the parser and only throw the
    error in case --strict was given.  This will result in the (desired)
    build failure without also causing already-installed apps to stop
    functioning.

    This means that we will not get even a warning about the invalid
    schema
    file in the already-installed case, but that's fine.  There is
    no sense
    spamming the user with these messages when they are already quite
    fatal
    for the developer at build time.

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

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

commit 89d46d1bdc49755ff99982fb124ec081a2297c12
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 8 06:38:16 2015 -0400

    docs: Document the --strict option of glib-compile-schemas

    Curiously, this option has managed to remain undocumented for
    5 years.

 docs/reference/gio/glib-compile-schemas.xml | 8 ++++++++
 1 file changed, 8 insertions(+)

commit cc287a21cf15350c6edcb029ee83cbf20259c48a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 7 16:20:00 2015 -0400

    Mention the glib-compile-schemas change in NEWS

 NEWS | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 495d864e438472a1c1dce1db79d1ae18a584687d
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Tue Apr 7 18:22:58 2015 +0100

    docs: Fix documentation for 95d300eac58e

 docs/reference/gio/gio-sections.txt | 1 +
 gio/gtlsclientconnection.c          | 2 +-
 gio/gtlsclientconnection.h          | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

commit b470b12c49750777e14990f24d98166d3aab9965
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Sat Feb 21 13:34:36 2015 +0100

    gatomic: Add missing new line in API doc comment

    This causes an overlong line, and a spurious '*' in the generated
    documentation.

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

 glib/gatomic.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 7b8f51750391bf57278c080e366bf0e41235b4f3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Apr 7 15:02:22 2015 +0800

    gio/gdbusproxy.c: Include gasyncresult.h

    Commit f10b655 removed the inclusion of gasyncresult.h from
    gdbusproxy.c,
    but gdbusproxy.c uses g_async_result_get_source_object(), which
    caused a
    build warning/error.  Fix that.

 gio/gdbusproxy.c | 1 +
 1 file changed, 1 insertion(+)

commit 7e8d4145af745e6ac51337ffcc65872791e7299f
Author: Dan Winship <danw@gnome.org>
Date:   Mon Apr 6 10:09:04 2015 -0400

    gdbus: fix deadlock on message cancel/timeout

    The gdbus GTask port introduced a deadlock because some code had been
    using g_simple_async_result_complete_in_idle() to ensure that the
    callback didn't run until after a mutex was unlocked, but in the gtask
    version, the callback was being run immediately. Fix it to drop the
    mutex before calling g_task_return*(). Also, tweak
    tests/gdbus-connection to test this.

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

 gio/gdbusconnection.c        | 58
 +++++++++++++++++++++-----------------------
 gio/tests/gdbus-connection.c | 15 ++++++++++++
 2 files changed, 43 insertions(+), 30 deletions(-)

commit 95d300eac58e6e6a7d57ce50896a7c656ebe78cf
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Thu Feb 26 22:24:36 2015 +0000

    tls: Add support for copying session data

    Add support for copying session data between client connections.
    This is needed for implementing FTP over SSL. Most servers use
    a separate
    session for each control connection and enforce sharing of each
    control
    connection's session between the related data connection.

    Copying session data between two connections is needed for two
    reasons:
    1) The data connection runs on a separate port and so has a different
    server_identity which means it would not normally share the session
    with
    the control connection using the session caching currently
    implemented.
    2) It is typical to have multiple control connections, each of which
    uses a different session with the same server_identity, so only one of
    these sessions gets stored in the cache. If a data connection
    is opened,
    (ignoring the port issue) it may try and reuse the wrong control
    connection's session, and fail.

    This operation is conceptually the same as OpenSSL's
    SSL_copy_session_id
    operation.

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

 gio/gtlsclientconnection.c | 26 ++++++++++++++++++++++++++
 gio/gtlsclientconnection.h |  6 ++++++
 2 files changed, 32 insertions(+)

commit eac975c68225e3c7d5ae21dbf382d6e5b6b02824
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon Apr 21 14:52:35 2014 +0000

    Make sure GStatBuf is typedefed correctly

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

 glib/gstdio.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b64e2956f6b9ae74f1fdcecb129bff7738817509
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Thu Oct 9 15:54:43 2014 +0200

    Add an event signal to GSocketListener

    This allows the caller to know when a socket has been bound so that
    it can for instance set the SO_SENDBUF and SO_RECVBUF socket options
    before listen is called

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

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gioenums.h                      |  23 ++++++
 gio/gsocketlistener.c               | 138
 ++++++++++++++++++++++++++++++++----
 gio/gsocketlistener.h               |   5 +-
 gio/tests/socket-listener.c         |  65 +++++++++++++++++
 5 files changed, 216 insertions(+), 16 deletions(-)

commit ec9c248d7d5cf6c60e212c7ba4b9e8a0a4f76452
Author: Dan Winship <danw@gnome.org>
Date:   Tue Apr 17 10:38:37 2012 -0400

    gio: deprecate GSimpleAsyncResult

    GTask has been around for a long time now, everything in GLib is using
    it, and the run-in-thread deadlock problems should be fixed now.

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

 gio/gasyncinitable.c            |  2 ++
 gio/gasyncresult.c              |  2 ++
 gio/gsimpleasyncresult.c        | 54
 +++++++++++++++++++++++++++++++++++++++++
 gio/gsimpleasyncresult.h        | 50
 +++++++++++++++++++-------------------
 gio/tests/simple-async-result.c |  4 +++
 5 files changed, 87 insertions(+), 25 deletions(-)

commit f10b6550ff2ce55d06b92d6dc3e443fc007b2f7a
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 2 15:46:32 2012 -0400

    gio: (belatedly) port gdbus from GSimpleAsyncResult to GTask

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

 gio/gdbusaddress.c    |  77 ++++-----
 gio/gdbusconnection.c | 431
 ++++++++++++++++++--------------------------------
 gio/gdbusprivate.c    | 197 +++++++++--------------
 gio/gdbusprivate.h    |   3 +-
 gio/gdbusproxy.c      | 266 +++++++++++++------------------
 5 files changed, 366 insertions(+), 608 deletions(-)

commit e2655cd455db5ce3c768693127d983086ac1345c
Author: Dan Winship <danw@gnome.org>
Date:   Sat Apr 4 10:00:39 2015 -0400

    tests: clean up / ignore some more generated files

 gio/tests/.gitignore      | 2 ++
 glib/tests/Makefile.am    | 2 +-
 glib/tests/bookmarkfile.c | 1 +
 glib/tests/fileutils.c    | 1 +
 glib/tests/keyfile.c      | 1 +
 5 files changed, 6 insertions(+), 1 deletion(-)

commit 86866a2a6d4b7aa289f4f782dddac156869400bf
Author: Dan Winship <danw@gnome.org>
Date:   Mon Mar 9 16:33:16 2015 -0400

    gtask: remove hardcoded GTask thread-pool size

    GTask used a 10-thread thread pool for g_task_run_in_thread() /
    g_task_run_in_thread_sync(), but this ran into problems when task
    threads blocked waiting for another g_task_run_in_thread_sync()
    operation to complete. Previously there was a workaround for this, by
    bumping up the thread limit when that case was detected, but deadlocks
    could still happen if there were non-GTask threads involved. (Eg, task
    A sends a message to thread X and waits for a response, but thread X
    needs to complete task B in a thread before returning the response to
    task A.)

    So, allow GTask's thread pool to be expanded dynamically, by watching
    it from the glib worker thread, and growing it (at an
    exponentially-decreasing rate) if too much time passes without any
    tasks completing. This should solve the deadlocking problems without
    causing sudden breakage in apps that assume they can queue huge
    numbers of tasks at once without consequences.

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

 README.in        |  18 ++++++++
 gio/gtask.c      | 138
 +++++++++++++++++++++++++++++++++++++++++--------------
 gio/tests/task.c |  91 ++++++++++++++++++++++++++++++++++++
 3 files changed, 212 insertions(+), 35 deletions(-)

commit b2734d762f9b33c60575e835bbf9ef190315c79a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 1 18:55:54 2015 -0400

    glib-compile-schema: Don't accept duplicate docs

    This schema compiler was completely ignoring <summary> and
    <description> tags. Unfortunately, there are modules out there
    who merge translations for these back in, with xml:lang. And
    this is giving dconf-editor a hard time. Since this is not
    how translations of schemas are meant to be done, just
    reject such schema files.

    Also add tests exercising the new error handling.

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

 gio/glib-compile-schemas.c                         | 27
 ++++++++++++++++++++--
 gio/tests/Makefile.am                              |  2 ++
 gio/tests/gschema-compile.c                        |  2 ++
 .../schema-tests/description-xmllang.gschema.xml   | 13 +++++++++++
 gio/tests/schema-tests/summary-xmllang.gschema.xml | 13 +++++++++++
 5 files changed, 55 insertions(+), 2 deletions(-)

commit 6ba363b6196d06799204655344f8e26b332b7970
Author: Stas Solovey <whats_up@tut.by>
Date:   Mon Mar 30 21:45:26 2015 +0000

    Updated Russian translation

 po/ru.po | 187
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 88 insertions(+), 99 deletions(-)

commit 1f1fa69375f6ed2c8f863aa9a3de38e3be49fb27
Author: alex94puchades <alex94puchades@gmail.com>
Date:   Wed Mar 25 15:26:07 2015 +0100

    Make glib-compile-resources a little smarter

    glib-compile-resources was guessing a filename ending
    in .c when generating sources, but did not do the same
    for headers. Fix it so it generates a .h file when
    guessing the filename for headers.

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

 gio/glib-compile-resources.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 61a105b883c39b188c0eba5fd211adada2677c4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 29 11:41:00 2015 -0400

    Clarify a confusing string

    Relative was repeated twice here, when clearly what was meant is
    relative or absolute. Pointed out in
    https://bugzilla.gnome.org/show_bug.cgi?id=726447

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

commit fd40b5942dc94effbd424302ccc9390e64005d5f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 26 14:49:26 2015 -0400

    inotify: fix move event matching accounting

    The hash table stores the list of unmatched IN_MOVE_FROM events,
    but we
    were removing entries from it when popping IN_MOVE_TO events.

    Fix that up to correct a crash in nautilus due to the assertion
    failure
    below.

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

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

commit 706c4d32adfbca25cdb0663077aa0d82477fb356
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Mar 25 23:08:38 2015 -0400

    file monitors: fix a typo

    Due to a typo, a rename reported via a pair of delete/create events
    (due
    to the watcher not giving the flag for moves to be paired) was
    accidentally reported as being created with the old name instead
    of the
    new name.

    Fix that.

 gio/glocalfilemonitor.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 4a292721bcf2943bfc05c6a1c859992f28e3efec
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Mar 25 09:29:49 2015 -0400

    GListModel: roll back use of type redefinition

    We declare the typedefs for GListModel and GListStore in giotypes.h,
    as
    a matter of convention.  This is not actually required, since the
    typedef is emitted as part of the G_DECLARE_* macros.

    The giotypes.h approach is only used to avoid cyclic dependencies
    between headers, which is not a problem in this case.

    Type redefinition is a C11 feature, and although it was around in some
    compilers before then, gcc 4.2.1 (from 2007) is apparently still
    in wide
    use, being the default compiler for OpenBSD.

    Eventually, we will probably hit a case where we actually need to
    redefine a type, but since we're not there yet, let's back off a bit.

 gio/giotypes.h | 2 --
 1 file changed, 2 deletions(-)

commit 3f36407d4a27e17f766a41fb7b9e7a0fcd75c85b
Author: Petr Kovar <pkovar@redhat.com>
Date:   Wed Mar 25 13:01:47 2015 +0100

    Update Czech translation

 po/cs.po | 184
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 104 insertions(+), 80 deletions(-)

commit 69fd1fd1d0f110800ec713bac5dafb418ceecc1c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 9 11:22:42 2014 -0500

    GClosure: add valgrind hints

    GClosure has been in the "allocate area before the pointer" game since
    before we did this with GTypeInstance.  At the time that this was done
    for GClosure, we didn't have valgrind.h in GLib.

    Now that we do, we should add similar valgrind hints as the ones
    we did
    for GTypeInstance.  This substantially reduces reports of "possibly
    lost" on pretty much any program that makes use of signals.

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

 gobject/gclosure.c | 43 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 38 insertions(+), 5 deletions(-)

commit b0e330b68c161adfc5cffededd6703b6450562d5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 22 15:05:13 2015 -0400

    Fix the build

    The world would be a better place if gcc had __has_feature(), too.

 glib/gmacros.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 42870201f8cd304d9e38b1b99d63a407dc9ae107
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 22 14:18:36 2015 -0400

    Account for clangs lack of __alloc_size__

    clang's emulation of gcc 4.3 is not perfect, despite its
    pretending that it is.

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

 glib/gmacros.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0e0b777cfb8b645e9cc06e899a446c7d1d1d51a3
Author: Muhammet Kara <muhammetk@gmail.com>
Date:   Sun Mar 22 00:17:31 2015 +0000

    Updated Turkish translation

 po/tr.po | 1526
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 711 insertions(+), 815 deletions(-)

commit 1b22df78221c829f89d0955eac970d73790dae4a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 15 11:44:18 2014 +0100

    gsocket: Document FD ownership with g_socket_new_from_fd()

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

 gio/gsocket.c | 3 +++
 1 file changed, 3 insertions(+)

commit d4e7b4cf256380008d7d1b930b4c929b462700a4
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sat Mar 21 16:24:42 2015 +0100

    Updated Danish translation

 po/da.po | 566
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 296 insertions(+), 270 deletions(-)

commit ba46f1a0830531d4d6c55ed7a23420f054aa61f3
Author: Christian Kirbach <Christian.Kirbach@gmail.com>
Date:   Sat Mar 21 15:22:09 2015 +0000

    Updated German translation

 po/de.po | 45 +++++++++++++++++++++------------------------
 1 file changed, 21 insertions(+), 24 deletions(-)

commit fdb6974d3d443553136fc406781911d5eb327b50
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Sat Mar 21 16:07:05 2015 +0100

    Updated Basque language

 po/eu.po | 293
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 159 insertions(+), 134 deletions(-)

commit 15c5e643c64b5f428fdbb515625dd6e939dcd40b
Author: Dan Winship <danw@gnome.org>
Date:   Fri Mar 6 13:43:37 2015 -0500

    gversionmacros: add 2.46 version macros

 docs/reference/glib/glib-sections.txt |  4 ++++
 glib/gversionmacros.h                 | 44
 +++++++++++++++++++++++++++--------
 2 files changed, 38 insertions(+), 10 deletions(-)

commit 7c70377abf045ed93e18227e424b473c087f12df
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 19 17:05:59 2014 -0500

    gmain: Save errno when handling unix signals

    Our signal handler calls write() on a pipe or an eventfd in order to
    deliver the notification.  It's unlikely, but this could fail, setting
    errno.  We even check the case that it fails with EINTR.

    If it does set errno, then it has potentially blown away the value or
    errno that the preempted code cared about (ie: if the signal arrived
    shortly after a system call but before errno was checked).

    Wrap the handler with code to save errno.

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

 glib/gmain.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 671292bbb284735aead726f55fbd8c99f9793959
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 12 19:20:30 2015 +0800

    Win32: Port Directory Monitoring to New GLocalFileMonitor

    This WIP patch moves the Windows Directory Monitoring code to the new
    GLocalFileMonitor mechanism, and adds file monitoring in the process.

    Progress from previous patch:
    -File renames are now properly supported, but
    G_FILE_MONITOR_EVENT_MOVED_IN
     and G_FILE_MONITOR_EVENT_MOVED_OUT needs to be investigated, as
     ReadDirectoryChangesW() seems to send FILE_ACTION_REMOVED when a
     file is
     moved out of a directory.
    -Events are handled for both the long and short (8.3) variants of the
     filenames, and files monitored will report changes when it is changed
     via its short or long filenames.

    Things to be done:
    -Perhaps find out about attribute changes in files in a monitored
     directory; if a file is monitored, attribute changes are correctly
     handled.
    -Investigate on G_FILE_MONITOR_EVENT_MOVED_OUT,
     G_FILE_MONITOR_EVENT_MOVED_IN, G_FILE_MONITOR_EVENT_PRE_UNMOUNT,
     G_FILE_MONITOR_EVENT_UNMOUNTED.
    -Investigate on the "boredom" algoritm, and see how we can do it on
     Windows.

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

 gio/Makefile.am                    |   5 +-
 gio/win32/Makefile.am              |   6 +-
 gio/win32/gwin32directorymonitor.c | 244 ---------------------
 gio/win32/gwin32directorymonitor.h |  60 ------
 gio/win32/gwin32filemonitor.c      | 105 +++++++++
 gio/win32/gwin32filemonitor.h      |  62 ++++++
 gio/win32/gwin32fsmonitorutils.c   | 422
 +++++++++++++++++++++++++++++++++++++
 gio/win32/gwin32fsmonitorutils.h   |  76 +++++++
 8 files changed, 672 insertions(+), 308 deletions(-)

commit d682df186e9cca2b8db0e921450a4db31cf0c467
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 17 11:11:22 2015 -0500

    file monitors: rewrite FAM file monitor

    Completely rewrite the FAM file monitor.  Major changes:

     - now runs in the worker thread

     - dispatches events in a threadsafe way via GFileMonitorSource

     - uses unix fd source instead of a GIOChannel

     - is now simple enough to fit into one short file

 gio/fam/Makefile.am            |  10 +-
 gio/fam/fam-helper.c           | 274
 -----------------------------------------
 gio/fam/fam-helper.h           |  36 ------
 gio/fam/fam-module.c           |  54 --------
 gio/fam/gfamdirectorymonitor.c | 155 -----------------------
 gio/fam/gfamdirectorymonitor.h |  52 --------
 gio/fam/gfamfilemonitor.c      | 258
 +++++++++++++++++++++++++-------------
 gio/fam/gfamfilemonitor.h      |  53 --------
 8 files changed, 172 insertions(+), 720 deletions(-)

commit 21ab660cf8d2622917eceaa24fbd07d81ea949af
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 16 20:25:38 2015 -0500

    fen: remove Solaris file monitor support

    This code is unmaintained and we have no way to port it to the
    new file
    monitoring API.

 configure.ac                   |  17 --
 gio/Makefile.am                |   7 -
 gio/fen/Makefile.am            |  27 --
 gio/fen/fen-dump.c             |  74 -----
 gio/fen/fen-dump.h             |  27 --
 gio/fen/fen-helper.c           | 193 -------------
 gio/fen/fen-helper.h           |  31 --
 gio/fen/fen-kernel.c           | 550 -----------------------------------
 gio/fen/fen-kernel.h           |  41 ---
 gio/fen/fen-node.c             | 638
 -----------------------------------------
 gio/fen/fen-node.h             | 102 -------
 gio/fen/gfendirectorymonitor.c | 140 ---------
 gio/fen/gfendirectorymonitor.h |  56 ----
 gio/fen/gfenfilemonitor.c      | 140 ---------
 gio/fen/gfenfilemonitor.h      |  57 ----
 15 files changed, 2100 deletions(-)

commit 641b98ce6b7f58d32001002881f049be4680429b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 16 18:51:34 2015 -0500

    kqueue backend: port to new GLocalFileMonitor API

    This is the bare minimal effort.  This seems not to crash immediately,
    but it definitely needs some better testing.

    The backend is not in good shape.  It could use some serious work.

 gio/kqueue/Makefile.am               |   2 -
 gio/kqueue/gkqueuedirectorymonitor.c | 205
 -----------------------------------
 gio/kqueue/gkqueuedirectorymonitor.h |  49 ---------
 gio/kqueue/gkqueuefilemonitor.c      |  54 ++++-----
 gio/kqueue/gkqueuefilemonitor.h      |   4 +-
 gio/kqueue/kqueue-helper.c           | 138 +++++------------------
 gio/kqueue/kqueue-helper.h           |   3 +-
 gio/kqueue/kqueue-utils.c            |  32 ------
 gio/kqueue/kqueue-utils.h            |   4 -
 9 files changed, 49 insertions(+), 442 deletions(-)

commit 19522424b15ff4b0e2be6dc453183e836953d20c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 16 16:41:21 2015 -0500

    GPollFileMonitor: use thread default main context

    Attach the GPollFileMonitor to the thread default main context instead
    of the global default.

    This matches the behaviour of the other file monitors.

 gio/gpollfilemonitor.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit c5d5e2916bc2ce81e4882167f1439570f0ac178e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 15 16:38:22 2015 -0500

    inotify: implement "boredom" algorithm

    Use the "interesting" value from g_file_monitor_source_handle_event()
    to
    decide if we're currently being flooded by a stream of boring events.

    The main case here is when one or more files is being written to
    and the
    change events are all being rate-limited in the GFileMonitor
    frontends.

    In that case, we become "bored" with the event stream and add
    a backoff
    timeout.  In the case that it is exactly one large file being written
    (which is the common case) then leaving the event in the queue
    also lets
    the kernel perform merging on it, so when we wake up, we will only see
    the one event.  Even in the case that the kernel is unable to perform
    merging, the context switch overhead will be vastly reduced.

    In testing, this cuts down on the number of wake ups during a
    large file
    copy, by a couple orders of magnitude (ie: less than 1% of the
    number of
    wake ups).

 gio/inotify/inotify-helper.c |  24 ++--
 gio/inotify/inotify-kernel.c | 260
 ++++++++++++++++++++++++++++++++++---------
 gio/inotify/inotify-kernel.h |   2 +-
 gio/inotify/inotify-path.c   |  29 +++--
 gio/inotify/inotify-path.h   |   2 +-
 5 files changed, 241 insertions(+), 76 deletions(-)

commit 9adf948a2b2215814bbc6b10e827349d05f2c883
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 15 15:39:43 2015 -0500

    GFileMonitorSource: return "interesting" value

    Return an "interesting" boolean from the event handler function on
    GFileMonitorSource.

    An event was "interesting" if it will result in a signal actually
    being
    dispatched to the user.  It is "uninteresting" if it only hit an
    already-dirty rate limiter.

    We will use this information to do some backing off in the backends
    when
    faced with a flood of uninteresting events.

 gio/glocalfilemonitor.c | 35 +++++++++++++++++++++++------------
 gio/glocalfilemonitor.h |  2 +-
 2 files changed, 24 insertions(+), 13 deletions(-)

commit 3d2d4b8efe44af1da7206b10e4565e59dbdb5121
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 15 11:08:35 2015 -0500

    inotify: send CHANGES_DONE when new files 'appear'

    We generally assume that an IN_CREATE event is the start of a
    series of
    events in which another process is doing this:

      fd = creat (...)         -> IN_CREATE
      write (fd, ..)           -> IN_MODIFY
      write (fd, ..)           -> IN_MODIFY
      close (fd)               -> IN_CLOSE_WRITE

    and as such, we use the CHANGES_DONE_HINT event after CREATED in order
    to show when this sequence of events has completed (ie: when we
    receive
    IN_CLOSE_WRITE when the user closes the file).

    Renaming a file into place is handled by IN_MOVED_FROM so we
    don't have
    to worry about that.

    There are many other cases, however, where a new file 'appears' in a
    directory in its completed form already, and the kernel reports
    IN_CREATE.  Examples include mkdir, mknod, and the creation of
    hardlinks.  In these cases, there is no corresponding IN_CLOSE_WRITE
    event and the CHANGES_DONE_HINT will have to be emitted by an
    arbitrary
    timeout.

    Try to detect some of these cases and report CHANGES_DONE_HINT
    immediately.

    This is not perfect.  There are some cases that will not be reliably
    detected.  An example is if the user makes a hardlink and then
    immediately deletes the original (before we can stat the new file).
    Another example is if the user creates a file with O_TMPFILE.  In both
    of these cases, CHANGES_DONE_HINT will still eventually be delivered
    via
    the timeout.

 gio/inotify/inotify-helper.c | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

commit 2737ab3201163631be152801a859b3874a667f10
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 12 14:59:35 2015 -0500

    substantially rework file monitors

    Remove all event merging and dispatch logic from GFileMonitor.
    The only
    implementation of GFileMonitor outside of glib is in gvfs and
    it already
    does these things properly.

    Get rid of GLocalDirectoryMonitor.  We will use a single class,
    GLocalFileMonitor, for both directory and file monitoring.  This will
    prevent every single backend from having to create two objects
    separately (eg: ginotifydirectorymonitor.c and ginotifyfilemonitor.c).

    Introduce GFileMonitorSource as a thread-safe cross-context dispatch
    mechanism.  Put it in GLocalFileMonitor.  All backends will be
    expected
    to dispatch via the source and not touch the GFileMonitor object
    at all
    from the worker thread.

    Remove all construct properties from GLocalFileMonitor and remove the
    "context" construct property from GFileMonitor.  All backends must now
    get the information about what file to monitor from the ->start() call
    which is mandatory to implement.

    Remove the implementation of rate limiting in GFileMonitor and add an
    implementation in GLocalFileMonitor.  gvfs never did anything
    with this
    anyway, but if it wanted to, it would have to implement it for itself.
    This was done in order to get the rate_limit field into the
    GFileMonitorSource so that it could be safely accessed from the worker
    thread.

    Expose g_local_file_is_remote() internally for NFS detection.

    With the "is_remote" functionality exposed, we can now move all
    functions for creating local file monitors to a proper location in
    glocalfilemonitor.c

    Port the inotify backend to adjust to the changes above.  None of the
    other backends are ported yet.  Those will come in future commits.

 gio/Makefile.am                        |   2 -
 gio/gdesktopappinfo.c                  |  14 +-
 gio/gfilemonitor.c                     | 632 ++++--------------------
 gio/gioenums.h                         |  27 +-
 gio/giomodule.c                        |  34 +-
 gio/glocaldirectorymonitor.c           | 245 ----------
 gio/glocaldirectorymonitor.h           |  84 ----
 gio/glocalfile.c                       |  38 +-
 gio/glocalfile.h                       |   2 +
 gio/glocalfilemonitor.c                | 861
 ++++++++++++++++++++++++++++++---
 gio/glocalfilemonitor.h                |  58 ++-
 gio/inotify/Makefile.am                |   2 -
 gio/inotify/ginotifydirectorymonitor.c |   2 +-
 gio/inotify/ginotifyfilemonitor.c      | 133 ++---
 gio/inotify/ginotifyfilemonitor.h      |   4 +-
 gio/inotify/inotify-helper.c           | 149 ++----
 gio/inotify/inotify-kernel.c           |   8 +-
 gio/inotify/inotify-path.c             |  97 +---
 gio/inotify/inotify-sub.c              |   2 -
 gio/inotify/inotify-sub.h              |   1 -
 po/POTFILES.in                         |   1 -
 21 files changed, 1081 insertions(+), 1315 deletions(-)

commit 779c809a3d07fca6c1da4f87d4ce6cf7f2d95608
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 5 21:28:29 2015 -0500

    inotify: rewrite inotify-kernel

    Remove the hardwired 1 second event queue logic from inotify-kernel
    and
    replace it with something vastly less complicated.

    Events are now reported as soon as is possible instead of after a
    delay.

    We still must delay IN_MOVED_FROM events in order to look for the
    matching IN_MOVED_TO events, and since we want to report events
    in order
    this means that events behind those events can also be delayed.  We
    limit ourselves, however:

     - no more than 100 events can be delayed at a time

     - no event can be delayed by more than 10ms

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

 gio/inotify/inotify-kernel.c | 659
 ++++++++++++-------------------------------
 gio/inotify/inotify-kernel.h |   1 +
 2 files changed, 183 insertions(+), 477 deletions(-)

commit fd8b45eb6785831d4a3749b31724de6eea74de1a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 5 21:05:06 2015 -0500

    GLocalFile: add _new_from_dirname_and_basename

    Add a new internal constructor for GLocalFile (which itself is
    private).

    This new constructor allows creating a GLocalFile from a dirname and a
    basename, assuming that the dirname is already in canonical form
    and the
    basename is a regular basename.

    This will be used for creating GLocalFile instances from the file
    monitoring code (for signal emissions).

 gio/glocalfile.c | 32 ++++++++++++++++++++++++++++++++
 gio/glocalfile.h |  3 +++
 2 files changed, 35 insertions(+)

commit 6a86390555c19f34c5ac4d2090f0c799c3b96479
Author: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>
Date:   Fri Mar 20 17:43:30 2015 +0200

    Finnish translation update

 po/fi.po | 3455
 +++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 2188 insertions(+), 1267 deletions(-)

commit ea512bf1e6219c99617da80e1367ad37ba1aefb8
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Mar 19 21:16:10 2015 +0100

    Updated Norwegian bokmål translation.

 po/nb.po | 181
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 103 insertions(+), 78 deletions(-)

commit 93c8cbcfcd9ffe13fe9dd761b660ac9e1ff04da8
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Mar 18 14:28:07 2015 -0700

    Update .gitignore

 gio/tests/.gitignore  | 1 +
 glib/tests/.gitignore | 1 +
 2 files changed, 2 insertions(+)

commit 0fee64032eec45a5f66218a2f608ad43dd085e2a
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Tue Mar 17 12:27:19 2015 +0200

    Updated Hebrew translation

 po/he.po | 281
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 153 insertions(+), 128 deletions(-)

commit f1f39e7b2afd3828dafb2ead8ae3ef8a04d7ae8f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 16 15:22:03 2015 -0400

    bump version (to GLib 2.45.0)

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 76f77fe8c971acf087abf8b969800289717ee89a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 16 14:25:53 2015 -0400

    GLib 2.43.92

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

commit fdc7cd6dd371b1eb438c02ac910bb5a5283f91d3
Author: Stas Solovey <whats_up@tut.by>
Date:   Mon Mar 16 10:01:52 2015 +0000

    Updated Russian translation

 po/ru.po | 189
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 109 insertions(+), 80 deletions(-)

commit e6de48e68053b92b88cb4f08d8b6b1072fb66b5a
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sun Mar 15 14:31:13 2015 +0100

    Updated Slovenian translation

 po/sl.po | 181
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 103 insertions(+), 78 deletions(-)

commit e2d05dfe989f365495ec7b99089c7dcc507115fc
Author: Claude Paroz <claude@2xlibre.net>
Date:   Sat Mar 14 09:34:57 2015 +0100

    Updated French translation

 po/fr.po | 170
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 98 insertions(+), 72 deletions(-)

commit 7ed2928054f899f75e8debc095a498e4ca655f09
Author: A S Alam <aalam@users.sf.net>
Date:   Fri Mar 13 22:50:42 2015 -0500

    Translation pa updated for Gnome

 po/pa.po | 503
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 266 insertions(+), 237 deletions(-)

commit 0de16c98f7606da0d6cb3700bb6eeac0e16ac4a4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 13 17:34:57 2015 -0400

    ContextSpecificGroup: some fixups

    For all of the effort spent ensuring that this algorithm would be
    correctly threadsafe, I messed up the order of operations within a
    single thread when porting to the new approach.

    Fix that up.

    Also: fix some overzealous asserting in the testcases.  Since shutdown
    is now lazy, we can never surely say !is_running at any particular
    point
    in time.

 gio/gcontextspecificgroup.c | 7 +++----
 gio/tests/contexts.c        | 5 ++---
 2 files changed, 5 insertions(+), 7 deletions(-)

commit 7a3c8e900aed6d04647efb2a32d2565558e04d19
Author: Samir Ribic <samir.ribic@etf.unsa.ba>
Date:   Fri Mar 13 20:57:49 2015 +0000

    Updated Bosnian translation

 po/bs.po | 6432
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 3600 insertions(+), 2832 deletions(-)

commit 3a2c35850854ceaac372067b19415aa4368c646b
Author: Sebastian Rasmussen <sebras@gmail.com>
Date:   Fri Mar 13 17:16:00 2015 +0000

    Updated Swedish translation

 po/sv.po | 181
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 103 insertions(+), 78 deletions(-)

commit c5c8bac69337f6a9e9d0311f5b9793cf6b15e41c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Mar 13 09:10:01 2015 +0000

    goption: Mention type of G_OPTION_ARG_CALLBACK in documentation

 glib/goption.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 627a145e16abe92dc5fe94bff6a379a9a1379837
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Fri Dec 12 01:38:24 2014 +0000

    threads: use FUTEX_WAIT_PRIVATE and FUTEX_WAKE_PRIVATE if possible

    This avoids some expensive code paths in the kernel, see
    http://lwn.net/Articles/229668/

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

 glib/gbitlock.c      |  9 +++++++--
 glib/gthread-posix.c | 17 +++++++++++------
 2 files changed, 18 insertions(+), 8 deletions(-)

commit 6fffce2588b19e5c80915cc9f713fc51d6dd3879
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 12 17:24:05 2015 -0400

    docs: clean up a few glib issues

    Fix a few typical problems, and also stop wrapping the inline
    definition
    of g_steal_pointer in parens, since it is not necessary and it
    confuses
    gtk-doc.

 docs/reference/glib/glib-sections.txt | 3 +++
 glib/gmem.h                           | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit bf19b8e6c32aee318da237f8b9beb9278a10c3aa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 12 17:01:00 2015 -0400

    gio docs: remote errant colon from docstring

    This does not belong there.

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

commit d9de830b65224f6e8f1e1b9284bd049b86b56619
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 12 16:53:18 2015 -0400

    Convert remaining uses of 'Rename to:'

    This was replaced by (rename-to) in 2013 (see bug 676133).

    They're also causing gtk-doc trouble, so let's get rid of them.

 gio/gdbusinterface.c    |  4 +---
 gio/gdbusnameowning.c   |  8 ++------
 gio/gdbusnamewatching.c |  8 ++------
 gio/gsubprocess.c       |  3 +--
 glib/giochannel.c       |  3 +--
 glib/glib-unix.c        |  3 +--
 glib/gmain.c            | 12 ++++--------
 gobject/gbinding.c      |  4 +---
 gobject/gobject.c       |  3 +--
 gobject/gvaluearray.c   |  3 +--
 10 files changed, 15 insertions(+), 36 deletions(-)

commit eff505ed3c36dd15706094cc4bef36b41924d01d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 12 16:43:02 2015 -0400

    docs: more cleanups for GIO

 docs/reference/gio/Makefile.am      | 9 ++++++++-
 docs/reference/gio/gio-sections.txt | 3 +--
 docs/reference/gio/gio.types        | 1 +
 gio/gdbusprivate.c                  | 2 +-
 gio/gsubprocess.c                   | 2 +-
 5 files changed, 12 insertions(+), 5 deletions(-)

commit 497b294510599f987433833ac15d25e8d7f8da12
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Wed Feb 11 11:27:28 2015 -0500

    Doc: Fix missing API from GOptionGroup boxing

 docs/reference/glib/glib-sections.txt       | 2 ++
 docs/reference/gobject/gobject-sections.txt | 2 ++
 2 files changed, 4 insertions(+)

commit 15a4af545e409004e758903b1f522257e5454e13
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Thu Feb 5 13:10:14 2015 -0500

    Doc: Mark a few things as private

 docs/reference/gio/gio-sections.txt | 5 +++++
 gio/gresource.c                     | 2 +-
 gio/gresource.h                     | 1 +
 gio/gsettingsbackend.h              | 1 +
 4 files changed, 8 insertions(+), 1 deletion(-)

commit 8b654e24a5743a32b1d11794fef10a7cbf8ff5d3
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Wed Jan 28 12:25:10 2015 -0500

    Win32: Move g_win32_check_windows_version() to the correct place
    in header

    It was added after G_END_DECLS, outside the #ifdef G_PLATFORM_WIN32,
    and inside a #ifndef __GTK_DOC_IGNORE__ block. So it was missing from
    the doc.

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

 glib/gwin32.h | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit 3626e1426d4fa24dc565618001df3ad9a26b3b00
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Thu Mar 12 21:54:49 2015 +0200

    Updated Latvian translation

 po/lv.po | 525
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 277 insertions(+), 248 deletions(-)

commit 5c825d32725bb48c276d3b0be2971feb3cacd2e2
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Thu Mar 12 02:51:35 2015 +0900

    Updated Korean translation

 po/ko.po | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

commit 8668631baaf09c58f782c884035ac2710b9b14de
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Wed Mar 11 13:12:14 2015 +0000

    Updated Greek translation

 po/el.po | 173
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 99 insertions(+), 74 deletions(-)

commit b4d6a5fb1826da3441ed9040a4c3bf6e2e4cc2c8
Author: Jordi Mas <jmas@softcatala.org>
Date:   Tue Mar 10 17:44:19 2015 -0400

    Update Catalan translation

 po/ca.po | 526
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 276 insertions(+), 250 deletions(-)

commit a866155e8e26fba75f87c643cbcadbc47e13bc82
Author: Benjamin Steinwender <b@stbe.at>
Date:   Tue Mar 10 20:56:05 2015 +0000

    Updated German translation

 po/de.po | 528
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 279 insertions(+), 249 deletions(-)

commit f6ccb19e1a9b8acb700f271b3dc3e6c809babfe0
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Mar 10 19:50:30 2015 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 4f1f68e6bebc0694208bc7bf43816bde58229fd6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Aug 21 19:04:04 2014 +0100

    gtask: Add a GTask:completed property

    This can be used to query whether the task has completed, in the sense
    that it has had a result set on it, and has already – or will
    soon –
    invoke its callback function.

    Notifications for this property are emitted immediately after the
    task’s
    main callback, in the same main context as that callback. This allows
    for multiple bits of code to listen for completion of the GTask, which
    opens the door for blocking on cancellation of the GTask and improved
    handling of ‘pending’ behaviour.

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

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gtask.c                         |  88 +++++++++++++++++-
 gio/gtask.h                         |   2 +
 gio/tests/task.c                    | 175
 ++++++++++++++++++++++++++++++++----
 4 files changed, 245 insertions(+), 21 deletions(-)

commit e83f9e52542af1b3986999638e4aec33587c19b8
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Tue Mar 10 10:35:24 2015 +0200

    Updated Bulgarian translation

 po/bg.po | 449
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 235 insertions(+), 214 deletions(-)

commit a065c7c5d47a6da35c17f77fd62b25ac9e4ec01e
Author: Dušan Kazik <prescott66@gmail.com>
Date:   Mon Mar 9 11:48:33 2015 +0000

    Updated Slovak translation

 po/sk.po | 135
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 80 insertions(+), 55 deletions(-)

commit ec9f16846ff59629042c6dcd8b22d9cac9d3b223
Author: Trần Ngọc Quân <vnwildman@gmail.com>
Date:   Mon Mar 9 13:26:18 2015 +0700

    Updated Vietnamese translation

    Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>

 po/vi.po | 597
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 313 insertions(+), 284 deletions(-)

commit dfb9f09c280101aa0fc220f4aed917ccdf1533a1
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Mar 8 21:25:11 2015 +0100

    Updated Spanish translation

 po/es.po | 197
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 112 insertions(+), 85 deletions(-)

commit 81473a0fff03d0cf0096d38be27e203f1ac1393b
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Mar 8 20:26:36 2015 +0200

    Updated Lithuanian translation

 po/lt.po | 147
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 87 insertions(+), 60 deletions(-)

commit 65efd817b26f5182f219fa774bdb2e475359569b
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   Sun Mar 8 18:06:01 2015 +0000

    Updated Kazakh translation

 po/kk.po | 5054
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 2875 insertions(+), 2179 deletions(-)

commit 1e317331e4b078c5525d37a9c49f470a5048d246
Author: Balázs Úr <urbalazs@gmail.com>
Date:   Sun Mar 8 17:38:41 2015 +0000

    Updated Hungarian translation

 po/hu.po | 277
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 151 insertions(+), 126 deletions(-)

commit 3deaf41e87d09d7e7598eba87c0093b521f93e32
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Sun Mar 8 15:32:40 2015 +0000

    Updated Italian translation

 po/it.po | 1035
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 701 insertions(+), 334 deletions(-)

commit 4a7e68fd73f73cfb97be4ec06b225bf16ef92659
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Mar 8 15:42:16 2015 +0100

    Updated Polish translation

 po/pl.po | 145
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 85 insertions(+), 60 deletions(-)

commit d4122b954f83e349921b3dea149978d2b821b4f5
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Mar 8 15:39:02 2015 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit fdcfe584010f0f33945bd5fd7231d3bee167fa26
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Sun Mar 8 03:31:59 2015 +0900

    Updated Korean translation

 po/ko.po | 518
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 263 insertions(+), 255 deletions(-)

commit 6ce79e586f0bb5df49e8f1a1935bfef666986f8a
Author: Dan Winship <danw@gnome.org>
Date:   Tue Dec 9 13:35:06 2014 +0100

    GSocketClient: fix handling of application proxies

    g_socket_client_add_application_proxy() claimed "When the indicated
    proxy protocol is returned by the #GProxyResolver, #GSocketClient will
    consider this protocol as supported but will not try to find a #GProxy
    instance to handle handshaking." But in fact, it did the checks in the
    wrong order, so GProxy proxies ended up overriding
    application-specified ones. Fix that.

    Also, simplify the code a bit by making use of g_hash_table_add() and
    g_hash_table_contains().

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

 gio/gsocketclient.c | 34 +++++++++++++++-------------------
 1 file changed, 15 insertions(+), 19 deletions(-)

commit ed4a742946374f7ee3c46b93eb943c95f04ec4c4
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sat Feb 28 11:05:02 2015 +0100

    HTTP proxy support

    Based on code from "WockyHttpProxy" written by Nicolas Dufresne
    and Marc-André Lureau. Initial glib patch by Brian J. Murrell.

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

 docs/reference/gio/Makefile.am |   1 +
 gio/Makefile.am                |   2 +
 gio/ghttpproxy.c               | 392
 +++++++++++++++++++++++++++++++++++++++++
 gio/ghttpproxy.h               |  54 ++++++
 gio/giomodule.c                |   3 +
 5 files changed, 452 insertions(+)

commit 6fe28eef3ce5dd7ce12c6ace080bac5d9479f50c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 5 16:13:03 2015 +0800

    Windows: Use Standard Networking Functions If Possible

    Currently, the Windows code use Winsock2-specific APIs to try
    to emulate
    calls such as inet_pton(), inet_ntop() and if_nametoindex(), which
    may not
    do the job all the time.  On Vista and later, Winsock2 does provide a
    proper implementation for these functions, so we can use them if
    they exist
    on the system, by querying for them during g_networking_init().
    Otherwise,
    we continue to use the original code path for these, in the case of
    XP and
    Server 2003.

    This enables many of the network-address tests to pass on Windows as a
    result, when the native Winsock2 implementations can be used.

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

 gio/Makefile.am        |   1 +
 gio/ginetaddress.c     | 169
 ++++++++++++++++++++++++++++++++-----------------
 gio/gnetworking.c      |  39 +++++++++++-
 gio/gsocket.c          |   8 +++
 gio/gwin32networking.h |  42 ++++++++++++
 5 files changed, 199 insertions(+), 60 deletions(-)

commit ec1edef3ab171f1fa24d62858a2643de6e582f58
Author: ria.freelander@gmail.com <ria.freelander@gmail.com>
Date:   Thu Mar 5 13:07:00 2015 +0000

    gfdonotificationbackend: support themed icons

    The spec allows setting the "image-path" hint to an icon name as well.

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

 gio/gfdonotificationbackend.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

commit b9c8cecc9d83d40ea680bbb297047fa837481dc2
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 19 11:03:57 2015 +0800

    gresolver.c: Windows: Fix IPv6 Address Handling

    Check the IPv6 addresses on Windows, as we need to reject those
    that have
    brackets/ports around them as valid addresses in this form would
    have been
    accepted during the call to g_inet_address_new_from_string ().

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

 gio/gresolver.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

commit fecec087024f81fc3afb36ac30e1af3d35ecb65f
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Wed Mar 4 11:46:46 2015 +0100

    gio: add some missing autocleanup

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

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

 gio/gio-autocleanups.h | 2 ++
 1 file changed, 2 insertions(+)

commit 74c9eaac11c1d4d2c0cdadf572760150c893e625
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Mar 4 20:11:43 2015 +0800

    MSVC Builds: Few More Enahncements

    Update the .pdb file generation for the MSVC 2010+ DLLs (and the
    x64 gspawn
    helper programs), so that they match the names of the DLLs/EXEs
    that are
    built.  Also update the .lib generation so that all will use
    -$(ApiVersion)
    from the property sheets instead of the -2.0 which was previously hard
    coded (as we will eventually move into GLib 3.x in the future,
    for example)

 build/win32/vs10/gio.vcxprojin                     | 12 +++++++----
 build/win32/vs10/glib.vcxprojin                    | 24
 ++++++++++++++--------
 build/win32/vs10/gmodule.vcxproj                   | 12 +++++++----
 build/win32/vs10/gobject.vcxprojin                 | 12 +++++++----
 .../win32/vs10/gspawn-win32-helper-console.vcxproj |  2 ++
 build/win32/vs10/gspawn-win32-helper.vcxproj       |  2 ++
 build/win32/vs10/gthread.vcxproj                   | 12 +++++++----
 build/win32/vs9/gio.vcprojin                       |  8 ++++----
 build/win32/vs9/glib.vcprojin                      | 16 +++++++--------
 build/win32/vs9/gmodule.vcproj                     |  8 ++++----
 build/win32/vs9/gobject.vcprojin                   |  8 ++++----
 build/win32/vs9/gthread.vcproj                     |  8 ++++----
 12 files changed, 76 insertions(+), 48 deletions(-)

commit 6d030ea0aef634cfdd6b82c9f213c1061b68709a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Mar 4 08:52:22 2015 +0000

    gobject: Mark a helper variable as const

    It’s only used for argv values, which are not modified here.

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

 gobject/gobject-query.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bdfc8231c6252dfe11cc0d614e71dd98e7570b53
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 18:21:30 2014 +0000

    gerror: Minor clarifications to the GError documentation

     • Clarify that GError** parameters are for the return of _newly
       allocated_ GError*s.
     • Clarify that errors may need to be checked for explicitly if the
       return value of a function doesn’t reliably indicate them.

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

 glib/gerror.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 7f159f13dc7829613c4b2063cd78b027bf702637
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Tue Mar 3 20:05:47 2015 +0100

    Updated Serbian translation

 po/sr.po       | 468
 ++++++++++++++++++++++++++++-----------------------------
 po/sr@latin.po | 468
 ++++++++++++++++++++++++++++-----------------------------
 2 files changed, 468 insertions(+), 468 deletions(-)

commit 2a581fab7d4eb3c72b0a76c1662f4932ba7be1db
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 17:08:59 2014 +0000

    gvariant: Use ‘UTF-8’ in docs rather than ‘utf8’

    Nitpicky correction.

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

 glib/gvariant.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 8df6e5fa3ffeb74739d5d914669c7e245a84e46d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 15:33:59 2014 +0000

    gmain: Explicitly document the threading behaviour of g_timeout_add()

    i.e. That calling g_timeout_add() from a thread other than the
    main one
    probably doesn’t do what you want. Same for g_idle_add() and the
    *_full() variants.

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

 glib/gmain.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

commit 4aedc85fb35f58b602259d34b94dcebeefa198bc
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 19:02:15 2014 +0000

    gobject: Mention g_clear_object() in g_object_unref() documentation

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

 gobject/gobject.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 18c9a4e17a74b1707b8a17779e13956e151edc27
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 19:01:06 2014 +0000

    gmem: Clarify that a NULL check is not needed before calling g_free()

    It was documented before, but wasn’t especially clear. Doing
        if (X)
            g_free (X);
    is apparently quite a pervasive real-world anti-pattern, so perhaps it
    could be documented more explicitly.

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

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

commit 984576c01e54f335a1a2cde9e6f235946bd35f96
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 18:53:54 2014 +0000

    glist: Clarify that g_list_nth() is expensive

    Just in case people have forgotten their basic algorithms course. Seen
    in some pretty terrible code in the wild; hopefully mentioning
    the cost
    in the documentation will make people think twice about using
    a counter
    variable when iterating over a linked list.

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

 glib/glist.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit c6312daba0418e384b9ee64917861225a85edacf
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 18:53:22 2014 +0000

    glist: Clarify how g_list_free_1() handles links

    It doesn’t, which is fine, but could be unexpected if undocumented.

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

 glib/glist.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 59748c3be03fb4df0005fcc54f6b6267d6b2ada8
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 18:52:32 2014 +0000

    ghash: Document that g_hash_get_[keys|values]() are expensive

    And definitely not the right way to iterate over a hash table (as seen
    in code in the wild).

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

 glib/ghash.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit c639b628ec425ac28b79bd48c703fc7115b1fc97
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Dec 18 11:23:05 2014 +0000

    gparamspecs: Recommend use of most specific GParamSpec types

    It’s quite common to see a g_param_spec_pointer() used for
    GObject or
    boxed types which, while not incorrect, does make memory management
    unsafe, since no copying or reference counting can be performed
    automatically.

    Similarly, people often use g_param_spec_boolean() when an enum
    would be
    more appropriate, cf.
        http://blog.ometer.com/2011/01/20/boolean-parameters-are-wrong/
    Using enums also means that the set of allowable values can be
    extended
    in future if needed.

    In the hope that people who write code like that read the
    documentation,
    mention the more specific types in the documentation.

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

 gobject/gparamspecs.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 430814992ddefae2588ae12e4d6aa4d66ed23461
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Feb 18 17:01:18 2015 +0000

    docs: Expand introduction to mention using async calls over sync ones

    As discussed on the mailing list (see the whole thread):
        https://mail.gnome.org/archives/desktop-devel-list/2015-February/msg00126.html

    Expand the GIO documentation introduction to talk a little about
    when to
    use async and sync functions, and how the former should almost
    always be
    preferred over the latter.

    Link to this from the GFile documentation, which is an entry point
    for a
    lot of async calls.

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

 docs/reference/gio/overview.xml | 52
 +++++++++++++++++++++++++++++++++++++++++
 gio/gfile.c                     | 12 +++++++---
 2 files changed, 61 insertions(+), 3 deletions(-)

commit f829bde76acf0d139dcbe4b81b3721d9e929fbee
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Jan 14 10:44:52 2015 +0000

    gstring: Mark the return value from g_string_free() as nullable

    It’s NULL iff free_segment is TRUE, so the annotation doesn’t
    quite
    capture all the function definition, but is a safe over-estimate
    of the
    return value’s nullability.

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

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

commit b9c94b344eacba14ad7b9a29e8a4b161c5d3e10e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jun 20 21:20:36 2014 +0100

    gfileutils: Mark the return value from g_path_skip_root() as nullable

    It returns NULL for non-absolute paths.

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

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

commit 32956587f35a8c4f1048549f9fce521c1e21de15
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Feb 18 17:58:32 2015 +0000

    docs: Remove redundant header examples from GObject tutorial

    These are in the header boilerplate section, but are actually source
    boilerplate which is covered in later sections.

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

 docs/reference/gobject/tut_howto.xml | 73
 ++----------------------------------
 1 file changed, 4 insertions(+), 69 deletions(-)

commit 88e011a7cfe531f9f41cc7f0ca91c5ddf6b86325
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Feb 20 14:29:43 2015 +0000

    docs: Change tutorial encodings from ISO-8859-1 to UTF-8

    ISO-8859-1 — that’s a blast from the past.

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

 docs/reference/gobject/tut_gobject.xml | 2 +-
 docs/reference/gobject/tut_gsignal.xml | 2 +-
 docs/reference/gobject/tut_gtype.xml   | 2 +-
 docs/reference/gobject/tut_howto.xml   | 2 +-
 docs/reference/gobject/tut_intro.xml   | 2 +-
 docs/reference/gobject/tut_tools.xml   | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

commit 6be1e678dc2ad1dbe707ab6e58ac56c9053784d3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 3 19:21:40 2015 +0800

    Visual Studio Builds: "Install" .pdb files

    They are helpful in debugging in a stack.

 build/win32/vs10/glib-install.props  | 25 +++++++++++++++++++++++--
 build/win32/vs9/glib-install.vsprops | 25 +++++++++++++++++++++++--
 2 files changed, 46 insertions(+), 4 deletions(-)

commit 6e117b3fcc6cc076fb0d784c40ca91a756c6b7e7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 3 18:24:08 2015 +0800

    MSVC Builds: GIO: Standardize zlib Linking

    Link to zlib1.lib for all builds, as:
    -The notion of zlib1d.lib is rather not standardized across the
    board for
     most cases.
    -Easier for the grand all-in-one solution file.

 build/win32/vs10/gio.vcxprojin | 4 ++--
 build/win32/vs9/gio.vcprojin   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit d76ac1560e606a23e3437370559ab9079f8f81a2
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 3 18:09:42 2015 +0800

    Visual Studio 2008 Builds: Speed Up Release Builds

    Use the /MP option so that each project can build multiple sources in
    parallel, which can cut down release build times by quite a bit.
    This will
    cause a brief warning for debug builds due to their use of /Gm,
    and builds
    would otherwise proceed as they did before.

    Unfortunately Visual Studio 2008 is too old to support the /d2Zi+
    flag, so
    we can't make a better debug situation for it at the moment.

 build/win32/vs9/glib-build-defines.vsprops | 1 +
 1 file changed, 1 insertion(+)

commit 7b1729f3c066c07ca075a08b3b46ed4d43fb9e29
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 3 13:52:22 2015 +0800

    MSVC Builds: Improve Build Speed and Debugging

    Use Multiprocessor compilation which can cut down build times by
    quite a
    bit and use the /d2Zi+ flag to have better debugging info being
    logged to
    the .pdb for release builds.

    These are only applicable for Visual Studio 2010/2012 and later.

 build/win32/vs10/glib-build-defines.props | 2 ++
 1 file changed, 2 insertions(+)

commit 94b9d87a43fbde8295f78fc86cb88bbe552cdbba
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 3 12:05:50 2015 +0800

    MSVC Builds: Fix and Update "Installation"

    The gobjectnotifyqueue.c was accidently dropped from the files to
    copy, and
    a new public header for GIO was added, so address these parts.

 build/win32/vs10/glib-install.props  | 6 ++++--
 build/win32/vs9/glib-install.vsprops | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

commit ad66ec82ee35bbcb00ef6f5597c5c212fa46ac03
Author: Marek Černocký <marek@manet.cz>
Date:   Mon Mar 2 21:52:32 2015 +0100

    Updated Czech translation

 po/cs.po | 458
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 227 insertions(+), 231 deletions(-)

commit 8c104a01e19a60301fb5857eeddd1c610634ba70
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 12 12:18:22 2015 -0500

    GContextSpecificGroup: fix deadlock

    There was a theoretical deadlock between the worker trying to emit a
    signal at the same time as we were waiting for it to shutdown the
    notification (while holding the lock).

    The deadlock was particularly annoying because we didn't really
    need to
    wait for the shutdown and because it wasn't possible to signals to
    arrive while waiting for a start.  Attempting to deal with start and
    stop in an asymmetric way could have lead to other weird situations,
    however.

    Drop the lock while waiting for the worker thread to start.
    This means
    that we face the possibility of multiple waiters on the cond at
    the same
    time, so we need to make more of a state machine.

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

 gio/gcontextspecificgroup.c | 77
 +++++++++++++++++++++++++++------------------
 gio/gcontextspecificgroup.h |  4 +++
 gio/tests/contexts.c        |  4 +--
 3 files changed, 52 insertions(+), 33 deletions(-)

commit 88745c2fa70eed50beb90a61c58e51baf369f74d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 25 15:16:50 2015 +0000

    tests: add some tests for GContextSpecificGroup

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

 gio/tests/contexts.c | 222
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 222 insertions(+)

commit 548c165a9f8386af29e8bb8243d8923e0f315c2e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 8 01:35:33 2015 -0500

    Make GUnixMountMonitor per-context

    GUnixMountMonitor was not threadsafe before.  It was a global
    singleton
    which emitted signals in the first thread that happened to construct
    it.

    Move it to a per-context singleton model where each GMainContext gets
    its own GUnixMountMonitor.  Monitor for the changes from the GLib
    worker
    thread and dispatch the results to each context with an active
    monitor.

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

 gio/gunixmounts.c | 261
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 131 insertions(+), 130 deletions(-)

commit ae38d2bfa4e0bd72bf418a42cd5bda7a156b6092
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 7 23:52:53 2015 -0500

    gunixmounts: move GUnixMountMonitor code

    Move this code to the correct part of the file.

    While we're at it, drop an unused #define MOUNT_POLL_INTERVAL.

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

 gio/gunixmounts.c | 56
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 27 insertions(+), 29 deletions(-)

commit f535218f703528060fcc2a72df57c52ab86d628f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 7 23:49:47 2015 -0500

    gunixmounts.c: add fold markers

    This is a large file with a lot of very complicated code in it.  Add
    some fold markers to make things a bit more manageable.

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

 gio/gunixmounts.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 3167c6124ccb19fe655044e30aecea93598d1df0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 8 02:16:50 2015 -0500

    Deprecate g_unix_mount_monitor_set_rate_limit()

    Deprecate g_unix_mount_monitor_set_rate_limit() and turn it into a
    no-op.

    This function doesn't behave as advertised.  It only controls rate
    limiting for filesystem-based monitors.  It has no impact over
    reporting
    mount changes on Linux, for example, because those are based on
    polling
    for changes in /proc (which doesn't use filesystem monitors).  It also
    has no impact on Mac OS because a library interface is used there.

    This was added in https://bugzilla.gnome.org/show_bug.cgi?id=521946 in
    order to be used by HAL, which is effectively dead.  udisks no longer
    uses this code at all.

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

 gio/gunixmounts.c | 18 +++++++++---------
 gio/gunixmounts.h |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 73d4e6f12ff20648996f655fe66cd916be631ba3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 8 02:03:18 2015 -0500

    Rename g_unix_mount_monitor_new() to _get()

    This is a singleton, but we have a function called _new() to get it.
    What's worse is that the documentation makes no mention of this, and
    actually specifically says that a new monitor will be created
    each time.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/glocaldirectorymonitor.c        |  2 +-
 gio/gunixmounts.c                   | 41
 ++++++++++++++++++++++++++++---------
 gio/gunixmounts.h                   |  4 +++-
 gio/gunixvolumemonitor.c            |  2 +-
 5 files changed, 37 insertions(+), 13 deletions(-)

commit 720274511ba243e72ab169cde96ab827804fd871
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 8 02:36:26 2015 -0500

    GAppInfoMonitor: port to GContextSpecificGroup

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

 gio/gappinfo.c | 131
 ++++-----------------------------------------------------
 1 file changed, 9 insertions(+), 122 deletions(-)

commit c90b083fa8fd3da88086e634b45a190c0e4ba165
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 7 23:09:30 2015 -0500

    Add internal helper GContextSpecificGroup

    Add a new internal helper called GContextSpecificGroup.

    This is a mechanism for helping to maintain a group of
    context-specific
    monitor objects (eg: GAppInfoMonitor, GUnixMountMonitor).

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

 gio/Makefile.am             |   2 +
 gio/gcontextspecificgroup.c | 258
 ++++++++++++++++++++++++++++++++++++++++++++
 gio/gcontextspecificgroup.h |  47 ++++++++
 3 files changed, 307 insertions(+)

commit 220f7754c4db601715a7285584c0fb563a69ce3e
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Mar 2 20:26:45 2015 +0100

    Updated Polish translation

 po/pl.po | 452
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 224 insertions(+), 228 deletions(-)

commit cd3f4bb32ccc6baa78cca92df423d1a51bb11931
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 2 11:54:48 2015 -0500

    GLib 2.43.91

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

commit 0cb75bf796a3d8d2918509d8e370853a72f3e673
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 27 07:50:28 2015 -0500

    GApplication: don't iterate further on _quit()

    If someone explicitly calls g_application_quit() then don't attempt to
    drain the mainloop of remaining sources.

    This allows applications with 100% CPU utilisation to quit reliably.

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

 gio/gapplication.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit eb92b4fdff8ec70511b9a249999ad8864007c36a
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Sun Mar 1 18:12:09 2015 +0100

    gio: Add some missing type annotations to object arguments

    Similar to https://bugzilla.gnome.org/show_bug.cgi?id=745239

 gio/gapplication.c | 4 ++--
 gio/gsettings.c    | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 71642ce766d73bb06f2cd33b4f585bafff315c7d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 1 00:47:17 2015 -0500

    tests: only chmod autorun.exe on UNIX

    We install win32-software/autorun.exe (as test data for mime scanning)
    only on UNIX builds, so don't attempt to chmod it on 'make install'
    unless we're on UNIX.

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

commit 8bbeb6fd2f8b2d44b8185155a851c85917ed712b
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Feb 28 21:25:35 2015 +0200

    Updated Lithuanian translation

 po/lt.po | 528
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 265 insertions(+), 263 deletions(-)

commit f15f860ed9cda8db0a6ef7b27bac203d6747f78b
Author: Dušan Kazik <prescott66@gmail.com>
Date:   Sat Feb 28 12:53:36 2015 +0000

    Updated Slovak translation

 po/sk.po | 2611
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 1248 insertions(+), 1363 deletions(-)

commit a3a9664ed202303b899ca55625877542309d1a1f
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Sat Nov 9 12:09:20 2013 +0900

    make *_get_instance_private const-compliant

    This is pure read-only access to an external struct
    so void warnings for people calling it from const
    contexts such as accessors

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

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

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

commit 52f23db74ad58b822bafb0fdcac106489d864f8c
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Tue Feb 24 09:17:33 2015 +0100

    G_DECLARE_*: be const-compliant

    switching to the old macros boilerplate to G_DECLARE_*
    a lot of warnings start to pop when *_IS_A_* or such are
    called from a const context.
    Fix this by taking const pointers as parameters

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

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

 gobject/gtype.h | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 3f596074a90c692fa5de736e37a0cc8bb1685c19
Author: Evan Nemerson <evan@nemerson.com>
Date:   Thu Feb 26 10:17:59 2015 -0800

    GPropertyAction: add type annotation to constructor's object argument

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

 gio/gpropertyaction.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d36f6a9633f18cbf14e8a52add66b40d8eb6a4da
Author: David King <dking@redhat.com>
Date:   Mon Feb 9 11:23:58 2015 +0000

    gobject.h: Use correct format specifier for __LINE__

    GCC 5.0, with its new -Wformat-signedness, warns about the sign being
    different between a type and the format string in printf-format
    messages, leading to compiler warnings with
    G_OBJECT_WARN_INVALID_PSPEC.
    In other uses of __LINE__ inside GLib, %d is used, and GCC seems to
    expect a format specifier of %d as well:
    https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html

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

 gobject/gobject.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e966cc51de22a9f8b045f6f0f6f0de82f934d46d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Feb 24 10:57:14 2015 +0000

    gcancellable: Mention nullability in g_cancellable_cancel() docs

    Calling g_cancellable_cancel(NULL) is an explicitly allowed no-op, for
    convenience. Document and annotate that.

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

commit 99232046d6d26cdd76de02bae065e1f153332c49
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Tue Feb 24 00:42:43 2015 +0000

    Updated French translation

 po/fr.po | 454
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 228 insertions(+), 226 deletions(-)

commit 0550708ca7b615ab9e0df96ded43d18653f33ac2
Author: Colin Walters <walters@verbum.org>
Date:   Mon Feb 23 08:32:36 2015 -0500

    tests: Add many autoptr tests

    I love Emacs keyboard macros, used them to convert the list of
    defines cleverly into a list of tests, then iterated and filled in
    the necessary constructor arguments.

 gio/tests/Makefile.am    |   6 +
 gio/tests/autoptr.c      |  23 +++
 glib/glib-autocleanups.h |   3 +
 glib/tests/autoptr.c     | 420
 ++++++++++++++++++++++++++++++++++++++++++++++-
 4 files changed, 447 insertions(+), 5 deletions(-)

commit 1b348a876f84342bb3a197fadd249f8ce95abfeb
Author: Colin Walters <walters@verbum.org>
Date:   Mon Feb 23 07:56:34 2015 -0500

    autocleanups: Remove g_autoptr(gchar)

    - It's not sufficient, there are other bare array types
      like guint8, gdouble, etc.

    - Other types like GVariant* always come as pointers, whereas
      there's a rather fundamental distinction between "gchar" and
      "gchar*" that has been signified to C programmers for 30+ years via
      the '*' character, and we're hiding that.

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

 glib/glib-autocleanups.h | 1 -
 1 file changed, 1 deletion(-)

commit d0105f1c0845c1244c8419d0bb24c6f64ac9015f
Author: Colin Walters <walters@verbum.org>
Date:   Sun Feb 15 08:58:44 2015 -0500

    Add g_autofree

    The g_autoptr() being associated with the type name works out really
    well for things like GHashTable.  However, it's a bit more awkward to
    associate with "gchar".  Also because one can't use "char".
    Similarly, there are a lot of other "bare primitive array" types that
    one might reasonably use.

    This patch does not remove the autoptr for "gchar", even though I
    think it's rather awkward and strange.

    Also while we're here, add a test case for the cleanup bits.

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

 glib/docs.c              | 34 ++++++++++++++++++++++++++++++++++
 glib/glib-autocleanups.h |  8 ++++++++
 glib/gmacros.h           |  1 +
 glib/tests/Makefile.am   |  6 ++++++
 glib/tests/autoptr.c     | 37 +++++++++++++++++++++++++++++++++++++
 5 files changed, 86 insertions(+)

commit 2844f239f60cab6e549102d7cdc3cf0333076cbe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Feb 21 10:24:23 2015 -0500

    GApplication: let the main loop drain on shutdown

    After ::shutdown, run the mainloop until all pending activity is
    handled, before returning from run().

    Among other things, this gives a chance for destroyed windows to be
    properly withdrawn from the windowing system.

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

 gio/gapplication.c | 3 +++
 1 file changed, 3 insertions(+)

commit 9cee2e6a72bb06f7483442ab364910879c512e39
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Feb 21 11:09:48 2015 +0000

    Updated Chinese (Taiwan) translation

 po/zh_TW.po | 464
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 233 insertions(+), 231 deletions(-)

commit 5e994b1e9ba0ddbd27773825cb8bfe30ee2e69d2
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Fri Feb 20 19:54:07 2015 +0000

    gobject: Add missing autocleanup for GInitiallyUnowned

    We are missing the auto cleanup function for this type, which means
    G_DECLARE_* macros won't work with classes inheriting from
    GInitiallyUnowned.

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

commit f141607eecc1e592cc811cdaf580a5994c1b34a7
Author: Colin Walters <walters@verbum.org>
Date:   Fri Feb 20 14:35:59 2015 -0500

    gfileenumerator: Convert docbook tag -> markdown

    This code predated the markdown conversion.  Pointed out by mclasen.

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

commit 52cd62d946946af3b0c9dac644ddc4bd517d131b
Author: Colin Walters <walters@verbum.org>
Date:   Thu Feb 12 18:20:14 2015 -0500

    filenumerator: Add g_file_enumerator_iterate()

    This is *significantly* more pleasant to use from C (while handling
    errors and memory cleanup).

    While we're here, change some ugly, leaky code in
    tests/desktop-app-info.c to use it, in addition to a test case
    in tests/file.c.

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

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gfileenumerator.c               | 116
 ++++++++++++++++++++++++++++++++++++
 gio/gfileenumerator.h               |   8 +++
 gio/tests/desktop-app-info.c        |  77 ++++++++++++++----------
 gio/tests/file.c                    |  46 ++++++++++++++
 5 files changed, 215 insertions(+), 33 deletions(-)

commit 9d6d30475b4039b3bd352e641c4266efeb14329c
Author: Colin Walters <walters@verbum.org>
Date:   Thu Feb 19 18:31:29 2015 -0500

    autocleanups: Add G*Array types

    Not sure how these were omitted.  Probably few people are really using
    this yet...and we don't have test cases (that's in the other patch).

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

 glib/glib-autocleanups.h | 3 +++
 1 file changed, 3 insertions(+)

commit 9b0358770716f1f6cc7e891ad71ee2111ae0f626
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Feb 19 14:03:43 2015 +0000

    gliststore: Add missing parameter documentation

 gio/gliststore.c | 2 ++
 1 file changed, 2 insertions(+)

commit 0d27b2e4e2e88b2cae88cb1936af4cb93add1aab
Author: Fran Dieguez <fran.dieguez@mabishu.com>
Date:   Thu Feb 19 11:00:05 2015 +0100

    Updated Galician translations

 po/gl.po | 456
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 229 insertions(+), 227 deletions(-)

commit 2b273825965bc824dbc2ca8bfbde863c07032d45
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Thu Feb 19 00:41:42 2015 +0100

    gapplication: test setting and binding busy state

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

 gio/tests/gapplication.c | 60
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

commit b4ef6d957f301ab7020acb6ecdae736d3087b79d
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Thu Feb 19 00:33:01 2015 +0100

    gapplication: add "is-busy"

    A property to query the current busy state of an application.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gapplication.c                  | 50
 ++++++++++++++++++++++++++++++++++---
 gio/gapplication.h                  |  2 ++
 3 files changed, 50 insertions(+), 3 deletions(-)

commit 6ef0664017722a5f06739a03973c368c69c9746e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 18 16:45:59 2015 -0500

    gapplication: stop using deprecated API

    More fallout from the GOptionGroup binding patch.

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

commit 2d3d8cdce2e30978c259bdbc61c2af26ee081533
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Tue Feb 17 08:39:05 2015 +0100

    gapplication: tune busy-binding

    g_application_bind_busy_property() had the restriction that only one
    property can be bound per object, so that NULL could be used to
    unbind.
    Even though this is enough for most uses, it is a weird API.

    Lift that restriction and add an explicit unbind function.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gapplication.c                  | 89
 ++++++++++++++++++++++++-------------
 gio/gapplication.h                  |  5 +++
 3 files changed, 65 insertions(+), 30 deletions(-)

commit a2172ee247b43265b249188de53c8f9d6cb7b7b3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 18 11:03:03 2015 -0500

    GLib 2.43.90

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

commit 03de825c7e5e768662b36f090f47287b99158668
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Feb 18 13:43:12 2015 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 6b33ec39ad297ffb4066ddb7c4443a4d09dfe877
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Wed Feb 18 08:12:00 2015 +0000

    Updated Italian translation

 po/it.po | 189
 +++++++++++++++++++++++++++------------------------------------
 1 file changed, 82 insertions(+), 107 deletions(-)

commit 07ae2e1278201a9b3441a3afdc25768c01ed179d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 20 08:38:18 2015 -0500

    tests: add GSimpleIOStream async close tests

    Just a couple of tests to make sure the two paths are working
    properly,
    without crashes or leaks.

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

 gio/tests/io-stream.c | 61
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

commit d4e3b82a93c59edd6f8c396868413e0fbf621972
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Wed Dec 17 09:11:29 2014 +0100

    Add GSimpleIOStream class

    GSimpleIOStream represents an object that wraps an input and an output
    stream making easy to use them by calling the #GIOStream methods.

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

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  14 +++
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/giotypes.h                      |   1 +
 gio/gsimpleiostream.c               | 222
 ++++++++++++++++++++++++++++++++++++
 gio/gsimpleiostream.h               |  45 ++++++++
 gio/tests/defaultvalue.c            |   1 +
 gio/tests/io-stream.c               |  83 +-------------
 9 files changed, 291 insertions(+), 79 deletions(-)

commit c2c0a6ae5c8a0e924cb4b3a25b6adadcad7bd87e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 20 08:11:02 2015 -0500

    GIOStream: support for unemulated async close()

    Add an implementation of non-thread-emulated async close of a
    GIOStream
    if either of the underlying stream objects support it.

    This prevents us from calling close() functions from another thread on
    an object that may not be expecting that.  It also allows us to
    skip the
    thread entirely in case our objects support a pure async close.

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

 gio/giostream.c | 81
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 78 insertions(+), 3 deletions(-)

commit cb40c553aefff522cf3c6ff8af783afa3e217649
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 20 08:09:33 2015 -0500

    streams: add private 'async close via threads' API

    Add an internal helper to find out if close_async() is implemented via
    threads using the default implementation in the base class.

    We will use this to decide if we should do a 'pure async' close of a
    GIOStream or not.

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

 gio/ginputstream.c  | 20 ++++++++++++++++++++
 gio/gioprivate.h    |  2 ++
 gio/goutputstream.c | 19 +++++++++++++++++++
 3 files changed, 41 insertions(+)

commit f56f1ef074c6043f505b05a4ca134c9ee2c717a1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 20 12:54:09 2015 -0500

    streams: de-gtkdocify internal API

    Remove the /** **/-style block from two internal helpers to prevent
    gtk-doc from picking them up.

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

 gio/ginputstream.c  | 2 +-
 gio/goutputstream.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 512e9b3b34d067ae4685143eb0c5f7969c6fd1e8
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Thu Feb 12 22:29:36 2015 +0100

    gdbus: delay closing stream after read finish

    Closing the stream on the writing side my race with a pending
    read. This
    patch ensures that closing is delayed after reading is finished.

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

 gio/gdbusprivate.c | 28 +++++++++++++++++++++++-----
 1 file changed, 23 insertions(+), 5 deletions(-)

commit c7f0ea435471024fc2531ac5185d9f4b5127bfb0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 4 17:47:39 2015 +0100

    tests: check for NULL before g_object_unref()

    delayed_close_free() calls g_object_unref() on a variable that is
    expected to possibly contain NULL (as indicated by the fact that the
    NULL case is handled in my_slow_close_output_stream_close_async()).

    This is dead code right now (due to a bug in GDBus), which is why it
    isn't actually causing a failure.  It should still be fixed, however.

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

 gio/tests/gdbus-close-pending.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 619832f729fbe696575fe1c42a3101eab7691427
Author: Colin Walters <walters@verbum.org>
Date:   Tue Feb 17 13:36:20 2015 -0500

    autocleanups: Use g_option_context_unref()

    This fixes a use of a deprecated API.

 glib/glib-autocleanups.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fcb30409ec7f5d2903f5f944c8b0b52fdffaab12
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Wed Feb 4 11:01:41 2015 +0100

    gapplication: never set the prgname to the app id

    GApplication set the prgname to the application's id when it was
    running
    in service mode. This broke with the addition of new --app-id option,
    because g_set_prgname() was called before parsing the options. Calling
    it after option parsing doesn't work, because GOptionContext sets
    prgname to argv[0] unconditionally.

    Instead of changing the semantics of GOptionContext, simply remove
    this
    functionality from GApplication. It is very unusual to have the
    prgname
    set to the app id instead of the binary's name and might confuse
    people
    when looking at logs etc.

    When overriding local_command_line() from a subclass,
    g_option_context_parse() might never be invokded. Thus, continue
    setting
    the prgname to argv[0] in GApplication.

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

 gio/gapplication.c | 23 ++++++-----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

commit 62f7ea8191bbfd05f40abee2af0146fb8a193362
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Tue Feb 17 13:32:06 2015 +0000

    Updated Italian translation

 po/it.po | 1261
 +++++++++++++++++++++++---------------------------------------
 1 file changed, 470 insertions(+), 791 deletions(-)

commit 0f2b54142a455dd7f31aa9f3795b9173edd8fb1d
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Sun Feb 15 18:54:13 2015 +0100

    gapplication: add bind_busy_property()

    Balancing g_application_{un,}mark_busy() is non-trivial in some cases.

    Make it a bit more convenient by allowing to bind multiple boolean
    properties (from different objects) to the busy state. As long
    as these
    properties are true, the application is marked as busy.

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

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gapplication.c                  | 104
 ++++++++++++++++++++++++++++++++++++
 gio/gapplication.h                  |   5 ++
 3 files changed, 110 insertions(+)

commit c59d195dd2bc56d393c06b066c3ac80bea7016bb
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sun Feb 15 21:11:57 2015 +0100

    Updated Slovenian translation

 po/sl.po | 450
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 226 insertions(+), 224 deletions(-)

commit f7d6c3ba904857f82e369f056f61f016b6b82c98
Author: Sebastian Rasmussen <sebras@gmail.com>
Date:   Sun Feb 15 19:49:43 2015 +0000

    Updated Swedish translation

 po/sv.po | 3751
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 1963 insertions(+), 1788 deletions(-)

commit 0adb8e9da5a72823ad319a0e176257ae15a2f536
Author: Ivan Komaritsyn <vantu5z@mail.ru>
Date:   Sun Feb 15 09:10:44 2015 +0300

    Updated Russian translation

 po/ru.po | 457
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 230 insertions(+), 227 deletions(-)

commit ab8493fa907fa9abb1c07202c4d99b1874ba4bd8
Author: Efstathios Iosifidis <iefstathios@gmail.com>
Date:   Sat Feb 14 17:09:14 2015 +0200

    Updated Greek translation

 po/el.po | 456
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 230 insertions(+), 226 deletions(-)

commit a074c7a6f2c4468f9d4fdf9d03f3953b819207e6
Author: Phillip Wood <phillip.wood@dunelm.org.uk>
Date:   Wed Nov 5 15:04:45 2014 +0000

    Test functions should have async scope

    The testing utilities execute fixture and test functions
    asynchronously.

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

 glib/gtestutils.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 977be8c1494ac2e51414f956022e7441045d6ab7
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Feb 12 01:27:02 2015 +0100

    Updated Norwegian bokmål translation.

 po/nb.po | 263
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 131 insertions(+), 132 deletions(-)

commit 43df97ab86187a56495c8c00abb6130b7e379c8c
Author: Bastien Nocera <hadess@hadess.net>
Date:   Thu Jan 22 14:44:47 2015 +0100

    goption: Add boxed type for GOptionGroup

    This would allow bindings to use _get_option_group() functions, which
    would then allow them to use GOption parsing.

    This also adds introspection annotations to
    g_option_context_add_group(), g_option_context_set_main_group() and
    g_option_context_get_main_group().

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

 glib/goption.c       | 85
 ++++++++++++++++++++++++++++++++++++++--------------
 glib/goption.h       |  6 +++-
 gobject/gboxed.c     |  2 ++
 gobject/glib-types.h | 11 +++++++
 4 files changed, 81 insertions(+), 23 deletions(-)

commit 93f2998765cf2d8b0416a7d645e600b111373a76
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Dec 2 15:00:45 2014 +0000

    glist: Mention that g_list_length() is bad for checking list emptiness

    Despite linked lists being a fairly fundamental computer science
    concept, some developers insist on using:
        g_list_length (list) > 0
    to determine whether a list is non-empty, rather than using:
        list != NULL

    Add a comment to the documentation for g_list_length() and
    g_slist_length() pointing out the better alternative in the hope
    that it
    will prevent some of this abuse.

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

 glib/glist.c  | 3 ++-
 glib/gslist.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 926955f325e1fee48301d5a595a78a5bffd86ce5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 10 19:49:10 2015 -0500

    2.43.4

 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

commit 56f0c637cffce17c3aae5033aa3142a5ebc4edfd
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Feb 10 11:50:53 2015 -0800

    Update .gitignore

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

commit 433fc9475d351f3529bea0ea18a443eb5ec7f3dc
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 9 15:42:01 2015 +0800

    gmem.h, gthread.h: Include glib/gutils.h

    gmem.h and gthread.h made use of the inline keyword, that is not
    available
    on all compilers in C-mode, causing builds to break on such compilers.

    Include glib/gutils.h which handles the inline issue, in place of
    glib/gtypes.h if applicable, which is included quite early on by
    glib/gutils.h.

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

 glib/gmem.h    | 2 +-
 glib/gthread.h | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 59c0ff48257b812ad4542c914372fcc646abb0df
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Sun Oct 5 15:12:25 2014 +0200

    GI annotation for g_get_charset()

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

 glib/gcharset.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 3f6d233e872e5d8a520486a644fb118d358a9be8
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Sep 18 17:16:59 2014 +0200

    docs: code example for enumeration types

    I had to read the GTK+ code recently to have an example.

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

 gobject/genums.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 0110f2a810cfd638a0a6525deb69aeec7a0f0cab
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 6 17:00:01 2015 +0100

    g_steal_pointer: make it C++ clean

    We have a test that #includes our headers from a C++ program to make
    sure we don't throw any errors or warnings as a result of that.

    The new inline implementation of g_steal_pointer() does an implicit
    conversion from (void *), which is not valid in C++.

    Add a cast to avoid the problem.

    Thanks to Ignacio Casal Quinteiro for the report.

 glib/gmem.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aa68b3d6d6f6d6c51e753b26b0fdc67b0eeefa17
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 6 12:41:57 2015 +0100

    tests: add a test case for g_steal_pointer()

    Just some basic checking to make sure it works as intended.

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

 glib/tests/utils.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit e668796c5a90a19bce0ff893794817af6aad4dc2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 6 12:38:26 2015 +0100

    Add new API g_steal_pointer()

    This is particularly nice when used with g_autoptr().  See examples in
    the docs.

    This patch is based upon an idea (and original patch submission) from
    Will Manley <will@williammanley.net>.

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

 glib/gmem.h | 71
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

commit b5538416c065bafe760220e92754f891abd254b2
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Tue Feb 3 10:40:15 2015 -0500

    GListModel: Use G_DECLARE_INTERFACE

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

 gio/gio-autocleanups.h |  1 -
 gio/glistmodel.h       | 12 +++---------
 2 files changed, 3 insertions(+), 10 deletions(-)

commit 3d39b8eb01aa5590865691a303ee9153b2a35cf5
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Tue Feb 3 10:40:07 2015 -0500

    Add G_DECLARE_INTERFACE

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

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gtype.h                             | 74
 +++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)

commit 1404d3e12819b342fda74d082dcb067a029141b1
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Thu Feb 5 10:35:42 2015 -0500

    Add GMutexLocker

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

 docs/reference/glib/glib-sections.txt |  5 +++
 glib/glib-autocleanups.h              |  1 +
 glib/gthread.h                        | 69
 +++++++++++++++++++++++++++++++++++
 3 files changed, 75 insertions(+)

commit 74c22150cf4c2f8a9c7d7fae058a7fd589a94a27
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Thu Feb 5 16:20:43 2015 +0100

    docs: fix up docs issues in gio/

 docs/reference/gio/Makefile.am       |  10 ++++
 docs/reference/gio/gio-sections.txt  | 111
 +++++++++++++++++++++++++++++++++--
 gio/fen/fen-kernel.c                 |   1 -
 gio/gaction.c                        |   7 +++
 gio/gactiongroup.c                   |   7 +++
 gio/gactionmap.c                     |   7 +++
 gio/gappinfo.c                       |  10 +++-
 gio/gappinfo.h                       |   1 +
 gio/gapplication.c                   |  10 ++++
 gio/gapplication.h                   |   5 --
 gio/gapplicationcommandline.c        |   7 +++
 gio/gdbusactiongroup.c               |   7 +++
 gio/gdbusmenumodel.c                 |   7 +++
 gio/gdbusobject.c                    |   7 +++
 gio/gdbusobjectmanager.c             |   7 +++
 gio/gdesktopappinfo.c                |   7 +++
 gio/gdesktopappinfo.h                |   4 +-
 gio/gfile.h                          |   3 +
 gio/gfiledescriptorbased.h           |   2 +
 gio/gfileinfo.h                      |   4 +-
 gio/gicon.h                          |   1 +
 gio/giomodule.c                      |  12 ++++
 gio/gnetworkmonitor.c                |  16 +++++
 gio/gproxyaddress.c                  |   8 +++
 gio/gproxyresolver.c                 |  13 ++++
 gio/gremoteactiongroup.c             |   7 +++
 gio/gresource.c                      |   7 +++
 gio/gsettings.c                      |   7 +++
 gio/gsettingsbackend.h               |  15 +++++
 gio/gsettingsschema.c                |  15 ++++-
 gio/gsimpleaction.c                  |   8 +++
 gio/gsocketcontrolmessage.h          |   2 +
 gio/gsocketlistener.h                |   2 +
 gio/gsocketservice.h                 |   2 +
 gio/gtcpwrapperconnection.c          |   7 +++
 gio/gtlsbackend.c                    |   4 ++
 gio/gtlscertificate.c                |   1 -
 gio/gtlsclientconnection.h           |   8 +++
 gio/gtlspassword.h                   |   9 +++
 gio/gtlsserverconnection.h           |   8 +++
 gio/gunixconnection.c                |   7 +++
 gio/gunixfdlist.c                    |   7 +++
 gio/gunixfdmessage.c                 |   7 +++
 gio/gwin32mount.c                    |   2 +-
 gio/kqueue/kqueue-exclusions.c       |   2 +-
 gio/kqueue/kqueue-helper.c           |   4 +-
 gio/win32/gwinhttpfile.c             |   2 +-
 gio/win32/gwinhttpfileinputstream.c  |   2 +-
 gio/win32/gwinhttpfileoutputstream.c |   2 +-
 49 files changed, 385 insertions(+), 26 deletions(-)

commit 6a97275c4507e08b66fdeb4bb054bb8f78096f14
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Thu Feb 5 15:24:27 2015 +0100

    docs: fix many documentation issues in gobject/

 docs/reference/gobject/Makefile.am          |  5 ++---
 docs/reference/gobject/gobject-sections.txt |  5 ++++-
 gobject/gboxed.c                            |  6 ------
 gobject/gclosure.c                          | 20 ++++++++++++++++++++
 gobject/gclosure.h                          | 19 +++++++++++++++++++
 gobject/gparam.c                            |  2 +-
 gobject/gparam.h                            |  1 +
 gobject/gsignal.c                           | 13 +++++++++++++
 gobject/gtype.h                             |  2 --
 gobject/gtypemodule.h                       | 14 ++++++++++++++
 gobject/gvaluecollector.h                   |  7 +++++++
 11 files changed, 81 insertions(+), 13 deletions(-)

commit 7417198e4e1915e3ab026ce454ebb3f6349af1c6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 4 16:29:56 2015 +0100

    docs: fix typo in g_settings_new_full() docstring

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

commit 8d96932cb8aa9869dece68318176900334f40b3f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 4 15:37:27 2015 +0100

    docs: add a bunch of pointless documentation

    Document each of the baked-in CClosure marshallers that we have in
    gobject, along with their #GVaClosureMarshal equivalents.

    Based on a patch from Xavier Claessens
    <xavier.claessens@collabora.com>.

 gobject/gmarshal.c | 790
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 790 insertions(+)

commit d4791bd383189f4ea056e4f2aa0c90171bf7a6be
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Feb 2 09:46:31 2015 -0500

    Doc: Fix g_auto and g_autoptr typo

 glib/docs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a1c85833d4951bdb7dfd2c252f7e318059c3389b
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Feb 2 15:00:25 2015 -0500

    Doc: Add missing functions in gio.types

    This is made by doing a build with --rebuild-types option,
    then manually remove those functions:
      g_win32_input_stream_get_type
      g_win32_output_stream_get_type
      g_io_extension_get_type

    Maybe Makefile.am could remove them automatically so we can
    remove gio.types from git and rely on --rebuild-types option?

 docs/reference/gio/gio.types | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

commit 116d8fa042772be5828c4af8a1134ec09119b4fc
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Mon Feb 2 14:41:04 2015 -0500

    Doc: sort and uniquify gio.types

 docs/reference/gio/gio.types | 76
 +++++++++++++++++++++-----------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

commit caf9db2dfbea4fd0306d4edf12b11ee91d235c7c
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Fri Jan 30 11:40:46 2015 -0500

    Doc: Fix GListModel/GListStore

 docs/reference/gio/gio-sections.txt |  3 +--
 gio/glistmodel.c                    | 10 +++++++++-
 gio/gliststore.c                    |  9 ++++++++-
 3 files changed, 18 insertions(+), 4 deletions(-)

commit 642f7a5c792ae2c2ba6deb301f910a3ca9438eac
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 4 16:00:52 2015 +0800

    Visual Studio 2008 Builds: Fix Header "Installation"

    Apparently I did not fix the "installation" of gliststore.h and
    glistmodel.h fully for Visual Studio 2008 builds.  Fix that.  Doh!

 build/win32/vs9/glib-install.vsprops | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5b74681f5b4dd3f5fc93b82a4f706c2337d76a8d
Author: Aurélien Zanelli <aurelien.zanelli@parrot.com>
Date:   Tue Feb 3 15:41:05 2015 +0100

    gnulib/vasprintf: handle unsigned modifier for long long

    Otherwise, an unsigned integer will be displayed as a signed one if we
    use internal printf and if HAVE_LONG_LONG_FORMAT is not defined.

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

 glib/gnulib/vasnprintf.c | 5 +++++
 1 file changed, 5 insertions(+)

commit c1b0f178ca4739e7ab2e4e47c4585d41db8637e5
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Tue Feb 3 16:06:53 2015 +0100

    GListStore: fix preconditions in insert_sorted()

 gio/gliststore.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 2b536d3cbb718e9cf731bf07df96738341540701
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Tue Feb 3 15:57:54 2015 +0100

    docs: fix typos in G_DECLARE_*_TYPE

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

 gobject/gtype.h | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

commit 26af7c152f602896cabf9ab6cb6ba42a47a5b992
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 3 13:42:59 2015 +0100

    tests: add test for GListStore inserted sort

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

 gio/tests/glistmodel.c | 96
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 96 insertions(+)

commit 3f3eac474b26d5e01fbfdb50f3e45b7f7826bad9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 3 13:18:10 2015 +0100

    GListStore: add sorted insert function

    Add g_list_store_insert_sorted() which takes a GCompareDataFunc to
    decide where to insert.  This ends up being a very trivial function,
    thanks to GSequence.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gliststore.c                    | 39
 +++++++++++++++++++++++++++++++++++++
 gio/gliststore.h                    |  6 ++++++
 3 files changed, 46 insertions(+)

commit 6161b285da3d00fb4e02d4774d741799b6e18584
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 23:25:31 2015 +0800

    gtype.h: Fix Build on non-GCC

    Use the (private) _GLIB_DEFINE_AUTOPTR_CHAINUP macro for
    G_DECLARE_DERIVABLE_TYPE and G_DECLARE_FINAL_TYPE so that we will
    attempt to typedef and define items necessary for GCC
    __attribute__((cleanup)) on, well, GCC only.

    This fixes the build on non-GCC.

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

 gobject/gtype.h | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit 696db7561560d9311dca93f0c849f96770f41d01
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 23:21:35 2015 +0800

    gmacros.h: Add Private Macro _GLIB_DEFINE_AUTOPTR_CHAINUP

    This is necessary as we are using _GLIB_AUTOPTR_TYPENAME and
    _GLIB_AUTOPTR_FUNC_NAME in gtype.h for G_DECLARE_DERIVABLE_TYPE and
    G_DECLARE_FINAL_TYPE, but _GLIB_AUTOPTR_TYPENAME and
    _GLIB_AUTOPTR_FUNC_NAME expand to nothing on non-GCC, causing
    builds on
    non-GCC to break, due to bad typedef and function definitions.

    This patch defines a new private macro which does what is needed
    on GCC
    builds and does nothing on non-GCC builds, thus fixing the build.

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

 glib/gmacros.h | 8 ++++++++
 1 file changed, 8 insertions(+)

commit ccf696a6e1da37ed414f08edb745a99aba935211
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 13:33:18 2015 +0800

    glistmodel.h: Fix _GListModelInterface Define

    "interface" is a reserved word on Visual Studio, so fix the build by
    using g_iface instead.

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

 gio/glistmodel.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 57a49f6891a0d69c0b3b686040bf81e303831b77
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 2 09:16:55 2015 +0100

    fix G_DEFINE_AUTO_CLEANUP_FREE_FUNC on non-GCC

    Add the missing 'none' argument to this macro in the non-GCC case.
    The
    none parameter was added after the others and I forgot to update the
    non-GCC case.

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

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 08f7f976961ca1174d187a917ec2a3d235f09448
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 30 17:38:45 2015 +0100

    docs: link the GListModel docs from the index

 docs/reference/gio/gio-docs.xml | 5 +++++
 1 file changed, 5 insertions(+)

commit dee57faa6ca60f451b83655b59af806da4a48a17
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 14:27:29 2015 +0800

    MSVC Builds: Fix "Installation" of GListModel Headers

    Somehow I had the wrong path for getting the headers... oops.

 build/win32/vs10/glib-install.props  | 4 ++--
 build/win32/vs9/glib-install.vsprops | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 25e26ea034eff1b1f9823106efb3d8db5fcbeaed
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 14:16:18 2015 +0800

    MSVC Builds: Update vs11|vs12/Makefile.am

    The rename of install.vxproj to glib-install.vcxproj needs to
    be applied
    here as well for dist'ing the project files correctly.

 build/win32/vs11/Makefile.am | 2 +-
 build/win32/vs12/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 444a5fcd4a22ca8c78cde5b4ee333287429c980e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 12:49:42 2015 +0800

    MSVC Builds: Rename "install" Projects

    Rename the project to "install" the GLib files, as we are planning
    to have
    a grand solution file that would build the entire GTK+ stack with
    its deps,
    to ease the process for people building the GTK+ stack from a stock
    installation of Visual Studio.

 build/win32/vs10/Makefile.am                               | 2 +-
 build/win32/vs10/{install.vcxproj => glib-install.vcxproj} | 2 +-
 build/win32/vs10/glib.sln                                  | 2 +-
 build/win32/vs9/Makefile.am                                | 2 +-
 build/win32/vs9/{install.vcproj => glib-install.vcproj}    | 4 ++--
 build/win32/vs9/glib.sln                                   | 2 +-
 6 files changed, 7 insertions(+), 7 deletions(-)

commit 407adc6ea12e08950b36722b95fa54ef925de53a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 11:16:29 2015 +0800

    gobject\gtype.h: Make up for Missing '\'

    The macro definition for G_DECLARE_DERIVABLE_TYPE was missing a
    '\' when
    we wanted to ignore deprecation warnings for it.

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

commit 65f4bd17a2bab8c8ffb13a4c0311cfda86c5a630
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 11:14:07 2015 +0800

    One More Update For MSVC Builds

    We also need to "install" the headers for Lars' new APIs for
    GListModel/
    GListStore.

 build/win32/vs10/glib-install.props  | 2 ++
 build/win32/vs9/glib-install.vsprops | 2 ++
 2 files changed, 4 insertions(+)

commit 50012fb426394c21f656c9c01f41cdf031794f28
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Feb 2 10:51:25 2015 +0800

    MSVC Builds: "Install" the Autocleanup Headers

    We are including the autocleanup headers as public headers for
    all builds,
    although they work only for GCC in reality, so "install" them.

    Also clean up a bit as we are having "\\" in places, where we
    only need
    "\".

 build/win32/vs10/glib-install.props  | 283
 ++++++++++++++++++-----------------
 build/win32/vs9/glib-install.vsprops | 283
 ++++++++++++++++++-----------------
 2 files changed, 286 insertions(+), 280 deletions(-)

commit e2f8afdd85c18c6eea4ce42b0c9dad2cdbfc9b3e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 30 15:21:20 2015 +0100

    gio: add support for g_auto() and g_autoptr()

    Add support to libgio types for the new cleanup macros.

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

 gio/Makefile.am               |   1 +
 gio/gdbusdaemon.h             |   2 +
 gio/gdesktopappinfo.h         |   2 +
 gio/gfiledescriptorbased.h    |   1 +
 gio/gio-autocleanups.h        | 147
 ++++++++++++++++++++++++++++++++++++++++++
 gio/gio.h                     |   2 +
 gio/gunixconnection.h         |   2 +
 gio/gunixcredentialsmessage.h |   2 +
 gio/gunixfdlist.h             |   1 +
 gio/gunixfdmessage.h          |   2 +
 gio/gunixinputstream.h        |   2 +
 gio/gunixmount.h              |   1 +
 gio/gunixmounts.h             |   1 +
 gio/gunixoutputstream.h       |   2 +
 gio/gunixsocketaddress.h      |   2 +
 gio/gunixvolume.h             |   1 +
 gio/gwin32appinfo.h           |   2 +
 gio/gwin32inputstream.h       |   2 +
 gio/gwin32mount.h             |   1 +
 gio/gwin32outputstream.h      |   2 +
 20 files changed, 178 insertions(+)

commit 8ea414c8c6c40e208ebe4a9fdd41c7abdb05c392
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 28 11:47:05 2015 +0000

    G_DECLARE_*_TYPE: add auto cleanup support

    Automatically add support for the new cleanup macros to the type
    declaration macros.

    This is an API break because now your parent class needs to support
    cleanup if you want to use G_DECLARE_*_TYPE.  These macros are only 1
    day old, however, so that's probably not a big problem (and we are
    already busy adding the macros all over GLib and Gtk+).

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

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

commit 3d5de34def8b3120190ffb2561b5093abb6a3abb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 28 11:46:34 2015 +0000

    gobject: add support for g_auto() and g_autoptr()

    Add support to libgobject types for the new cleanup macros.

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

 glib/glib-object.h             |  2 ++
 gobject/Makefile.am            |  1 +
 gobject/gobject-autocleanups.h | 26 ++++++++++++++++++++++++++
 3 files changed, 29 insertions(+)

commit 663834671dd34e95f7dbb6b96bebf1daac468c93
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 28 11:45:26 2015 +0000

    glib: add support for g_auto() and g_autoptr()

    Add support to the libglib types for the new cleanup macros.

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

 glib/Makefile.am         |  1 +
 glib/glib-autocleanups.h | 67
 ++++++++++++++++++++++++++++++++++++++++++++++++
 glib/glib.h              |  2 ++
 3 files changed, 70 insertions(+)

commit 2596919c58a364243196e65a9adda693448139f7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 28 11:27:35 2015 +0000

    macros: add support for GNUC cleanup __attribute__

    Add g_auto() and g_autoptr() as helpers for declaring variables with
    automatic cleanup.

    Add some macros to help types define cleanup functions for themselves.

    Going forward it will be an expectation that people use this
    macro when
    creating a new type, even if they do not intend to use the
    auto-cleanup
    functionality for themselves.

    These new macros only work on GCC and clang, which is why we resisted
    adding them for so long.  There exist many people who are only
    interested in writing programs for these compilers, however, and a
    similar API in libgsystem has proven to be extremely popular, so let's
    expose this functionality to an even wider audience.

    We ignore deprecation warnings when emitting the free functions, which
    seems suspicious.  The reason that we do this is not because we
    want to
    call deprecated functions, but just the opposite: sometimes the free
    function will be an _unref() function that is only AVAILABLE_IN newer
    versions, and these warnings are also implemented as deprecation
    warnings.

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

 docs/reference/glib/glib-sections.txt |   7 ++
 glib/docs.c                           | 190
 ++++++++++++++++++++++++++++++++++
 glib/gmacros.h                        |  34 ++++++
 3 files changed, 231 insertions(+)

commit b5e1ea6fee6ac5b97585ffc1e30eb4f1ec137e1f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 30 16:40:03 2015 +0100

    DECLARE_TYPE: ignore deprecations in inlines

    Prevent complaints about deprecations in the inline functions
    emitted by
    the new G_DECLARE_*_TYPE macros.

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

commit 9d0389b3b574e6e0fc181ac161bf7c9ccd231e15
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 28 11:30:23 2015 +0000

    G_DECLARE_FINAL_TYPE: trivial fix in docs comment

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

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

commit 93982d4a16d8623137177da2f994abaf8075b4b0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 30 15:30:02 2015 +0100

    giotypefuncs test: tweak _get_type() regexp

    Make sure that we only match the _get_type() function name by
    restricting the regexp to matching [A-Za-z0-9_].  We were matching
    on .*
    before which means that if we had two _get_type() functions
    appearing on
    a single line then we would get everything in between them included
    (by
    the default rule of '*' being greedy).

    This affected G_DECLARE_*_TYPE which puts several uses of _get_type()
    into a single line.

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

commit b69beff42691ef300b6829beb261ca4cdfff02be
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Thu May 1 20:04:32 2014 +0200

    Add GListModel

    GListModel is an interface that represents a dynamic list of GObjects.

    Also add GListStore, a simple implementation of GListModel that stores
    all objects in memory, using a GSequence.

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

 docs/reference/gio/gio-sections.txt |  38 ++++
 gio/Makefile.am                     |   4 +
 gio/gio.h                           |   2 +
 gio/giotypes.h                      |   2 +
 gio/glistmodel.c                    | 260 ++++++++++++++++++++++
 gio/glistmodel.h                    |  78 +++++++
 gio/gliststore.c                    | 421
 ++++++++++++++++++++++++++++++++++++
 gio/gliststore.h                    |  66 ++++++
 gio/tests/Makefile.am               |   1 +
 gio/tests/glistmodel.c              | 132 +++++++++++
 10 files changed, 1004 insertions(+)

commit 6d55189d8c7eaf95b7d94d62b6e88caccaa4034a
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Mon Jan 26 10:13:26 2015 +0000

    gsettings: add g_settings_schema_list_children

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gsettings.c                     | 24 +---------------------
 gio/gsettingsschema.c               | 41
 +++++++++++++++++++++++++++++++++++++
 gio/gsettingsschema.h               |  3 +++
 4 files changed, 46 insertions(+), 23 deletions(-)

commit d95bb1f08b07c3ae701076cd9d3cf6894a122e9c
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Mon Jan 26 09:50:34 2015 +0000

    gsettings: add g_settings_schema_key_get_name

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gsettingsschema.c               | 18 ++++++++++++++++++
 gio/gsettingsschema.h               |  2 ++
 3 files changed, 21 insertions(+)

commit f3c604d2735fd63c5d45ecbeff9cb0e90d3356ac
Author: Christian Hergert <christian@hergert.me>
Date:   Tue Jan 27 18:50:04 2015 +0000

    G_DECLARE_DERIVED_TYPE: allow forward declarations

    This allows multiple declarations such as:

     typedef struct _Foo Foo;

    as is needed when you have systems with circular referencing.

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

 gobject/gtype.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit e8d3f29300b695b1f49723fc561f3ab81a1fb361
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jan 27 07:38:31 2015 -0500

    gcredentialsprivate: clarify the USE_FREEBSD_CMSGCRED users

    Add comments clarifying what the three non-FreeBSD platforms using
    G_CREDENTIALS_USE_FREEBSD_CMSGCRED are.

 gio/gcredentialsprivate.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 4c54b9fe31b2a9b2db3ccbce71ae486001cb8b5e
Author: Peeter Must <karu.pruun@gmail.com>
Date:   Tue Jan 27 11:34:48 2015 +0900

    gcredentials: Add support for DragonFly

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

 gio/gcredentialsprivate.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3b4cb28e17c6a5dac64eb8afda2b1143757ad7a4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 3 17:40:17 2014 +0000

    gtype: add type declaration macros for headers

    Add G_DECLARE_DERIVABLE_TYPE() and G_DECLARE_FINAL_TYPE() to allow
    skipping almost all of the typical GObject boilerplate code.

    These macros make some assumptions about GObject best practice
    that mean
    that they may not be usable with older classes that have to preserve
    API/ABI compatibility with a time before these practices existed.

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

 docs/reference/gobject/gobject-sections.txt |   2 +
 gobject/gtype.h                             | 158
 ++++++++++++++++++++++++++++
 2 files changed, 160 insertions(+)

commit e07cc89dee9ef3ad7d0062c0ac669025584ef281
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 26 11:17:28 2015 +0800

    glib-sections.txt: Add g_win32_check_windows_version()

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

 docs/reference/glib/glib-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit bcbf80c35580142216f4b1ed2f71717efb2de99d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 26 11:11:48 2015 +0800

    gwin32: Add g_win32_check_windows_version() API

    This adds a public API where one can use to see whether the running
    version
    of Windows where the code is run is at least the specified version,
    service
    pack level, and the type (non-server, server, any) of the running
    Windows
    OS.

    This API is done as:
    -GetVersion()/GetVersionEx() changed in the way they work since
    Windows 8.1
     [1][2], so a newer mechanism to check the version of the running
     Windows
     operating system is needed.  MSDN also states that GetVersion()
     might be
     further changed or removed after Windows 8.1.  This provides a
     wrapper for
     VerfyVersionInfo() as well in GLib for most cases, which was
     recommended
     in place of g_win32_get_windows_version() for more detailed Windows
     version checking.
    -Provides an OS-level functionality check, for those that we don't
    need to
     venture into GetProcAddress(), and also to determine system API
     behavior
     changes due to differences in OS versions.

    Also added a note for the g_win32_get_windows_version() API that
    since the
    behavior of GetVersion() which it uses, is changed since Windows
    8.1, users
    of the API should be aware.

    [1]:
    http://msdn.microsoft.com/zh-tw/library/windows/desktop/ms724451%28v=vs.85%29.aspx
    [2]:
    http://msdn.microsoft.com/zh-tw/library/windows/desktop/ms724451%28v=vs.85%29.aspx

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

 glib/gwin32.c | 82
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 glib/gwin32.h | 26 ++++++++++++++++++-
 2 files changed, 105 insertions(+), 3 deletions(-)

commit be2d9b4f5801380ac02e8d158686538d10e3dee5
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Mon Jan 26 11:18:06 2015 +0000

    GSimpleAction: add g_simple_action_set_state_hint

    Currently the only way to set a state hint on an action is through a
    subclass; add a g_simple_action_set_state_hint() method so that this
    becomes easier for clients that already use GSimpleAction.

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

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gsimpleaction.c                 | 39
 ++++++++++++++++++++++++++++++++++++-
 gio/gsimpleaction.h                 |  4 ++++
 3 files changed, 43 insertions(+), 1 deletion(-)

commit 2a0c18041ba71435df3fc3834d360553c97fdfe4
Author: Ilya Konstantinov <ilya.konstantinov@gmail.com>
Date:   Sat Dec 20 11:19:00 2014 -0500

    gthread: add thread name support on Mac OS

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

 configure.ac         | 10 ++++++++++
 glib/gthread-posix.c |  8 ++++----
 2 files changed, 14 insertions(+), 4 deletions(-)

commit 1cf7f5a2400ee9f4140e5c5bfab60e536bdabf14
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Jan 25 17:09:35 2015 +0000

    gobject: Fix a typo in a documentation comment

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

commit 4462cd30bc737a590ab8eec8b50b90e9952ad083
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Jan 25 17:09:24 2015 +0000

    gthread: Fix a typo in a documentation comment

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

commit 92041f4b3b7eca6ddff0bade48b77d88f906ca6f
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sun Jan 25 16:22:43 2015 +0000

    gstrfuncs: Document that g_ascii_dtostr() writes a nul terminator

    And g_ascii_formatd().

    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gstrfuncs.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit ef09373e03c9f2f8bf9388013c812bb73c12076f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jan 21 14:28:47 2015 +0800

    gio/Makefile.am: Fix MSVC Project Generation

    We need to filter out gnetworkmonitornm.c in the MSVC Projects,
    as that is
    UNIX-only code.

 gio/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 29307b4e41d36bfbc73f3c6405d6ccdfbf1f87e6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 20 01:38:13 2015 -0500

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95ea50d73c342796bffd20110c62dc9aef988c0c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 20 00:05:11 2015 -0500

    GLib 2.43.3

 NEWS | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 11a846b6bf646ef6b4686c02fdf3fd8d2c72fb41
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 09:14:08 2015 +0000

    gtestutils: Add an example of using test fixtures

    Add a simple example of a test suite with two unit tests both
    using the
    same fixture.

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

 glib/gtestutils.c | 64
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

commit ee245b57ffa8fb0677d9eaf48bfcaf20ced638ea
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Sat Jan 17 17:14:46 2015 +0100

    Updated Basque language

 po/eu.po | 431
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 216 insertions(+), 215 deletions(-)

commit cf03e824780d4ca58de664737bf5ba9ed416cfa2
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Dec 22 16:38:50 2014 +0100

    gsocket: always try before waiting for condition

    When implementing blocking operations on top of
    nonblocking sockets we should always first try to
    perform the operation and then if needed handle
    EAGAIN and wait with g_socket_wait_condition.
    This is an optimization since we avoid calling
    wait condition when it is not needed, but most
    importantly this fixes hangs on win32 where some
    events (in particular FD_WRITE) are only emitted
    after the operation fails with EWOULDBLOCK.

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

 gio/gsocket.c | 147
 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 77 insertions(+), 70 deletions(-)

commit 4f4714285dcc5c3ce9c87f65d9f684f285113a6e
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sat Jan 10 15:23:07 2015 +0100

    gsocket: add a testcase that shows a hang on win32

    Add a unit test that checks g_socket_new_from_fd by creating
    a gsocket, obtaining its fd, duplicating the fd and then creating
    a gsocket from the new fd. This shows a hang on win32 since the
    gsocket created from the fd never receives the FD_WRITE event
    because we wait for the condition without first trying to write
    and windows signals the condition only after a EWOULDBLOCK error.

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

 gio/tests/socket.c | 94
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)

commit 2c5076cd58d27eca46aa32ea44ec54cefb96499e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 09:22:21 2015 +0000

    gtestutils: Add links to gtester and gtester-report documentation

    Link some existing text to make cross-referencing a little easier.

 glib/gtestutils.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 056f50ce94e4b5c6bf6c128c348983401b402b45
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 09:18:41 2015 +0000

    gtestutils: Fix a typo in the g_test_add() documentation

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

commit 7dd7c04148dac716ce2eb7df72056d739efa3c30
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 09:10:46 2015 +0000

    gtestutils: Clarify that test fixtures are allocated by GLib

    Make it a little clearer that the user’s fixture setup and teardown
    functions don’t have to do the allocation or freeing.

 glib/gtestutils.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit 123bd7aecf29598a8a04d55998bf8ec778fc6dd7
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 16 09:12:53 2015 +0000

    gtestutils: Fix a typo in the g_test_run() documentation

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

commit 9114923db213a53cdaee7de8dd1ad818919048a2
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Jan 15 14:20:33 2015 +0000

    ggettext: Include an example of setlocale() and friends in the
    i18n docs

    Include an example main() function, and include a link to the gettext
    manual’s section on integrating gettext with build systems.

    That should work as a complete reference for how to add i18n
    support to
    an application.

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

 glib/ggettext.c | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

commit 7a8ef00aae2620b66306c8ab521e0d109e38d1ab
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Tue Jan 13 12:44:20 2015 +0100

    Avoid warning when using G_STMT_END macro with MSVC

    Workaround found on
    http://cnicholson.net/2009/03/stupid-c-tricks-dowhile0-and-c4127/

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

 glib/gmacros.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 432476355bc03ca4b62508f90747497644cc687c
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Tue Jan 13 13:22:07 2015 +0100

    Use G_STMT_START/END in gslice.h

 glib/gslice.h | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit be0c9e507a59aec5655a1c109adb3b0a588e2502
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Tue Jan 13 13:19:58 2015 +0100

    Use G_STMT_START/END in gtestutils

 glib/gtestutils.h | 72
 ++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 45 insertions(+), 27 deletions(-)

commit 70e2630f5aa7045cafda2ede0d25f325adc37152
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Dec 19 21:10:53 2014 +0000

    gsettings: Fix a typo in the GSettings documentation

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

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

commit b1e5b0e73324d9c2db6abb4cf459cbb9b03a24ef
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 13 16:54:59 2015 -0500

    Bump version

    So that early adopters of new api have a version to target.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f7be461601ab51a9f29e1fd07692efb261d0104b
Author: Iain Lane <iain.lane@canonical.com>
Date:   Mon Jan 12 10:03:18 2015 +0000

    gnetworkmonitornm: Check if network-manager is running

    We were asking for properties on NM's dbus interface, but if NM is not
    running then there won't be any. Check if the name has an owner before
    doing anything to it.

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

 gio/gnetworkmonitornm.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 84a1efeabd56b080a2a63acb783a9bbc35513873
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 7 16:15:22 2015 -0500

    configure.ac: reject 'universal' builds

    AC_C_BIGENDIAN can return 'universal' as the result in the case
    that we
    are trying to do a universal build on Mac OS.  This has to be
    opted into
    explicitly by using multiple -arch CFLAGS.

    Previously, we detected this result and fell back to doing our
    own check
    based on the endianness of the build machine, hardcoding that.  This
    means that universal builds might successfully build, but the binaries
    would never actually run correctly on the 'opposite' arch.

    This check was added because of a bug in the intial implementation of
    this detection in autoconf, which was inappropriately identifying
    non-macos compilers as 'universal'.  That was hitting ppc64 systems.
    See https://bugzilla.redhat.com/show_bug.cgi?id=449944 for more info.

    Commit b0e687ef42e21b1eb7af18c4eaebcd41b0bd5632 in autoconf ("Limit
    AC_C_BIGENDIAN univeral checks to Mac OS X") solved this issue
    in 2008,
    so let's remove our workaround.  For good measure, if we detect
    "universal" in the result, error out.

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

 configure.ac | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

commit 12b5eff6dc612b0bfbff4e84806442c3b0daa432
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Fri Jan 9 01:49:13 2015 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 1009
 ++++++++++++++++++++++++++++-------------------------------
 1 file changed, 471 insertions(+), 538 deletions(-)

commit 1632d5716e5df22ff4eaf5698245cee2dd70f82c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jan 7 09:59:47 2015 +0800

    Win32: Update Pre-configured Config Headers

    Update config.h.win32.in and glibconfig.h.win32.in so that they
    will be
    in-line with the ones that are produced with configure.ac, for use on
    Windows builds.

    Thanks to Philip Withnall for pointing out the changes needed
    to update
    glibconfig.h.win32.in in bug 727829.

 config.h.win32.in          | 3 +++
 glib/glibconfig.h.win32.in | 8 ++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

commit 327d35ed414b845e0199a11e8bcbb5296ad70c95
Author: Timm Bäder <mail@baedert.org>
Date:   Mon Jan 5 11:51:46 2015 +0100

    gnetworkmonitornm: Prevent crash

    g_dbus_proxy_get_cached_property_names can return NULL if there are no
    cached properties, so don't try to access them in that case.

 gio/gnetworkmonitornm.c | 4 ++++
 1 file changed, 4 insertions(+)

commit aa4e2d4dc3131076bed5f8e3fb83d4238a4f93b9
Author: TingPing <tingping@tingping.se>
Date:   Sat Aug 16 04:47:46 2014 -0400

    Fix GContentType usage

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

 gio/glocalfileinfo.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 48293bb47d9c1fa403d54e3f9f7bd4f2f1b8ad1e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 23 19:49:27 2014 -0500

    Fix a typo

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

commit 8344bf117929bfa70d5bf99937ab176a9ab0c8fb
Author: Erick Pérez Castellanos <erick.red@gmail.com>
Date:   Sun Dec 21 11:08:39 2014 -0500

    Fix document typo

    This one was making syntax highlighting fail.

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

commit 30abc73c1a8ff1e86513d7b3f4d1ba1a51d70790
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 20 21:32:53 2014 -0500

    Silence the build some more

 glib/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c447bc7f93fbc6e1aaf7f46eef9da2f820c8f209
Author: Thomas Haller <thaller@redhat.com>
Date:   Wed Dec 17 10:00:35 2014 +0100

    gobject: don't use G_STRLOC in G_OBJECT_WARN_INVALID_PSPEC() macro

    Using G_STRLOC ends up embedding unique strings of the form
    __FILE__:__LINE__ in the compiled binary. We can avoid these
    by passing __FILE__ and __LINE__ separately when constructing
    the warning text.
    This probably reduces the size of the binary as __FILE__ is
    likely already contained as string otherwise.

    Note that for GCC 2.x this changes behavior because G_STRLOC
    also contained __PRETTY_FUNCTION__.

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

 gobject/gobject.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d951db4236146efd8f4f343740d50433739526c8
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Dec 16 11:29:03 2014 +0000

    gobject: Add g_set_object() convenience function to set GObject
    pointers

    Along the same lines as g_clear_object(), g_set_object() is a
    convenience function to update a GObject pointer, handling reference
    counting transparently and correctly.

    Specifically, it handles the case where a pointer is set to its
    current
    value. If handled naïvely, that could result in the object instance
    being finalised. In the following code, that happens when
    (my_obj == new_value) and the object has a single reference:
        g_clear_object (&my_obj);
        my_obj = g_object_ref (new_value);

    It also simplifies boilerplate code such as set_property()
    implementations, which are otherwise long and boring.

    Test cases included.

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

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gobject.h                           | 63
 +++++++++++++++++++++++++++++
 gobject/tests/reference.c                   | 60
 +++++++++++++++++++++++++++
 3 files changed, 124 insertions(+)

commit 4f3ab40c042d8c53e8540188a7508e91301baa41
Author: Philip Chimento <philip.chimento@gmail.com>
Date:   Tue Dec 2 12:34:30 2014 -0500

    gfile: Explain nonobvious use of my_error

    In g_file_make_directory_with_parents(), the my_error variable is used
    for several different purposes throughout the whole function, not
    all of
    which are obvious. This explains the situation with some comments.

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

 gio/gfile.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 44372f4dd0a4a8aac1b66b820810b3f7bdf70513
Author: Philip Chimento <philip.chimento@gmail.com>
Date:   Tue Dec 3 18:51:51 2013 -0800

    gfile: Use g_error_matches

    Make proper use of g_error_matches() instead of comparing only
    error codes.

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

 gio/gfile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 5a7db3015ab0f14e4e2ad6766b3ce819447faf93
Author: Philip Chimento <philip.chimento@gmail.com>
Date:   Wed Nov 27 17:43:18 2013 -0800

    gfile: make_directory_with_parents race condition

    A race condition could cause g_file_make_directory_with_parents() to
    fail with G_IO_ERROR_EXISTS despite the requested directory not
    existing.

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

 gio/gfile.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 388e0d576f5a50a3219e01eb93fe689a7f30ee38
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Dec 17 12:31:29 2014 +0100

    Updated Spanish translation

 po/es.po | 496
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 249 insertions(+), 247 deletions(-)

commit e98a5828d3ada47b080ab6d69c9349e2c5a4ee5d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Dec 16 11:23:12 2014 +0000

    docs: Remove a mention of g_clear_object() being atomic

    It is no longer atomic.

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

 docs/reference/gobject/tut_howto.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 924f269763fec66194d3357285f6d860986f66b2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 15 11:56:12 2014 -0500

    2.43.2

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0f21ee4c89551fd14f2926e86a174a8338fab9e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 15 13:17:02 2014 -0500

    gobject: Add missing symbols to the docs

 docs/reference/gobject/gobject-sections.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 169eae47e519068a0afa2ec44b24b884214d79ec
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 15 13:14:01 2014 -0500

    gio: Add missing symbols to docs

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

commit b32ea8d9242c84f3959a9e3d6b5ed63fcb6eff9b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 15 11:52:42 2014 -0500

    Updates

 NEWS | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit b6d1c66c506637ba614a2327e0071eb6a1873fc2
Author: Dan Winship <danw@gnome.org>
Date:   Sun Dec 14 08:04:27 2014 -0500

    gio/tests/socket: fix one of the new tests

    One of the recently-added tests was using g_test_cmpstr() on a buffer
    containing a string that wasn't necessarily 0-terminated.

 gio/tests/socket.c | 1 +
 1 file changed, 1 insertion(+)

commit 1a2a689deacaac32b351ae97b00d8c35a6499cf6
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Sat Nov 29 08:39:24 2014 -0500

    Doc: glib: Fix all undocumented/unused/undeclared symbols

    There is one issue left in gscanner.h due to a bug #741305 in gtk-doc.

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

 docs/reference/glib/Makefile.am        |  6 +++-
 docs/reference/glib/glib-overrides.txt |  5 ----
 docs/reference/glib/glib-sections.txt  | 50
 ++++++++++++++++++++++++++++++++++
 glib/docs.c                            | 14 ++++++++--
 glib/gconstructor.h                    |  3 ++
 glib/gconvert.h                        |  2 ++
 glib/gdir.h                            |  2 ++
 glib/genviron.h                        |  3 +-
 glib/gfileutils.h                      |  2 ++
 glib/ghash.c                           |  2 ++
 glib/giochannel.h                      |  2 ++
 glib/gkeyfile.c                        | 20 +++++++++++++-
 glib/goption.c                         |  3 ++
 glib/gspawn.h                          |  2 ++
 glib/gstdio.c                          |  2 ++
 glib/gunicode.h                        |  4 +--
 glib/gwin32.h                          |  2 ++
 glib/valgrind.h                        |  2 --
 18 files changed, 112 insertions(+), 14 deletions(-)

commit b6aa0c4890442845205a1b8696376a3e5fe0f2d7
Author: Shankar Prasad <prasad.mvs@gmail.com>
Date:   Fri Dec 12 11:55:07 2014 +0000

    Updated Kannada translation

 po/kn.po | 533
 +++++++++++++++++++++++----------------------------------------
 1 file changed, 194 insertions(+), 339 deletions(-)

commit 45e4ea75da0016675352bb00da8f148b07c23c04
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Fri Dec 12 12:36:27 2014 +0200

    Updated Hebrew translation

 po/he.po | 432
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 217 insertions(+), 215 deletions(-)

commit de657238774755eb58a1c6fbf9123f978fb828e7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 11 18:49:16 2014 -0500

    ghash: minor docs tweak

    We should not advise people to cast the result of
    g_hash_table_get_keys_as_array() to a type that looks suitable for use
    with g_strfreev().  Advise to use (const gchar **) instead.

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

commit ae1b6ecd9d1b5e0fa701cd2fd44425ab2312ab02
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Fri Jun 13 20:19:09 2014 +0100

    gio/tests/socket: add unit test for g_socket_send_messages()

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

 gio/tests/socket.c | 55
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

commit fff5c7cd631f7eefeb93412b1d9d90517c4b895e
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Thu Jun 12 18:16:45 2014 +0100

    gsocket: add g_socket_send_messages()

    Allows sending of multiple messages (packets, datagrams)
    in one go using sendmmsg(), thus drastically reducing the
    number of syscalls when sending out a lot of data, or when
    sending out the same data to multiple recipients.

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

 configure.ac   |   2 +-
 gio/giotypes.h |  35 ++++++++
 gio/gsocket.c  | 275
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gsocket.h  |   9 ++
 4 files changed, 320 insertions(+), 1 deletion(-)

commit 3c3fc0e463278f368e6192ff65a45b6873bf370a
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Fri Jun 13 19:45:25 2014 +0100

    gio/tests/socket: add datagram version of test_ip_sync

 gio/tests/socket.c | 170
 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 163 insertions(+), 7 deletions(-)

commit 486485042719dd13c03d5261a7945e94bdf63d69
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Fri Jun 13 10:48:52 2014 +0100

    gio/tests/socket: add test for g_socket_send_message()

 gio/tests/socket.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit dd5fd6902d8433b8771da9d92ec2ce8c056eae29
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Thu Dec 11 09:30:01 2014 +0530

    Updated gujarati translations

 po/gu.po | 365
 ++++++++++++++++++++++++++++-----------------------------------
 1 file changed, 164 insertions(+), 201 deletions(-)

commit fbf0b2e19c9a4720fa019ebef8995104d85c2c4e
Author: Muhammet Kara <muhammetk@gmail.com>
Date:   Wed Dec 10 22:04:49 2014 +0000

    Updated Turkish translation

 po/tr.po | 6825
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 3842 insertions(+), 2983 deletions(-)

commit f8da414d089057f63cb277af575675deb63536b0
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 10 18:39:21 2014 +0100

    gio: fix the Since/AVAILABLE version on network connectivity stuff

 gio/gioenums.h        | 2 +-
 gio/gnetworkmonitor.c | 4 ++--
 gio/gnetworkmonitor.h | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

commit a12f546b3bd32ae826306c4c7dbd931fe37ec632
Author: Colin Walters <walters@verbum.org>
Date:   Sun Dec 7 16:00:55 2014 -0500

    keyfile: Add "in group" to GError message consistently

    This originated with https://github.com/GNOME/ostree/pull/23
    It's nicer for the user if we also mention which group the expected
    key would be in.

    And in fact, every other error *except* _get_value() already had it.

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

 glib/gkeyfile.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit 7966f27882095e1c2c4e2a0f6e36925bcdc65e9f
Author: Balázs Úr <urbalazs@gmail.com>
Date:   Sun Dec 7 09:26:40 2014 +0000

    Updated Hungarian translation

 po/hu.po | 347
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 175 insertions(+), 172 deletions(-)

commit 7d9816934e6a233369a2df1282a49d1549d9fa0f
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Sun Nov 30 22:17:51 2014 +0000

    gio/tests: Prevent hangs and aborts in socket-listener

    Fix two problems:
    1) If g_socket_service_stop is called before the accept call is
    requeued,
    then the reference count won't decrease and this code will hang
    forever:
      while (G_OBJECT (service)->ref_count == ref_count)
        g_main_context_iteration (NULL, TRUE);

    2) Sometimes the testcase fails (maybe 1 in 200 times for me):
    GLib-GIO:ERROR:socket-listener.c:73:connection_cb: assertion failed
    (G_OBJECT (service)->ref_count == 2): (3 == 2)
    Aborted (core dumped)

    The problem is that depending on ordering, cancellation of the async
    listener can require further main context iterations before it
    releases
    the reference on the socket service. Furthermore, in some cases, it
    requires at least one iteration.

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

 gio/tests/socket-listener.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 53abf0dc7d22d8a150fdc6162ef212cb5aa87c2f
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Dec 5 23:04:04 2014 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 485a6900fcd481f0899e4a775c96d5a34b62cb90
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Dec 3 18:36:25 2014 +0100

    gio: Add GNetworkMonitor impl based on NetworkManager

    Which implements the new GNetworkConnectivity property.

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

 gio/Makefile.am         |   2 +
 gio/giomodule.c         |   2 +
 gio/gnetworkmonitornm.c | 307
 ++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gnetworkmonitornm.h |  53 +++++++++
 4 files changed, 364 insertions(+)

commit 8d08b821090d5394175c17f375a192bb3f824c0c
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 16 10:39:12 2014 -0400

    gio: add network connectivity state to GNetworkMonitor

    Add a property to GNetworkMonitor indicating the level of network
    connectivity: none/local, limited, stuck behind a portal, or full.

    The default implementation just returns none or full depending on the
    value of is-available.

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

 gio/gioenums.h              | 24 +++++++++++++++++++
 gio/gnetworkmonitor.c       | 56
 +++++++++++++++++++++++++++++++++++++++++++++
 gio/gnetworkmonitor.h       | 35 +++++++++++++++-------------
 gio/gnetworkmonitorbase.c   | 24 +++++++++++++------
 gio/tests/network-monitor.c | 11 +++++++++
 5 files changed, 127 insertions(+), 23 deletions(-)

commit ed68d80e61b60833c15b69e57117e7f267757632
Author: Bastien Nocera <hadess@hadess.net>
Date:   Thu Dec 4 12:27:23 2014 +0100

    gio: Correct the "available in" for GNetworkMonitor

    They were marked as available in all versions when the main interface
    was actually added in glib 2.32.

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

 gio/gnetworkmonitor.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit e0f1a19332fd2aa25dc08eda289a217044e07472
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Dec 2 14:25:56 2014 +0100

    gio: provide G_IO_ERROR_NOT_CONNECTED translation for ENOTCONN

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

 gio/gioerror.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 22ab227348e9ac6671da3d2bf143aafbf99838ca
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Dec 2 14:29:11 2014 +0100

    gio: fix build

    next time I should definitely try to compile after a rebase
    conflict...

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fbfc23453ddbbf8fc44984c78910c4e8c23ef847
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Dec 2 13:50:51 2014 +0100

    gio: add G_IO_ERROR_NOT_CONNECTED

    It adds a new error G_IO_ERROR_NOT_CONNECTED
    and makes the win32 error ERROR_PIPE_LISTENING
    to be translated to it.

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

 gio/gioenums.h | 2 ++
 gio/gioerror.c | 3 +++
 2 files changed, 5 insertions(+)

commit d0d5ea71bbbee5146a0d0221efa6ecfab703822c
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Mon Dec 1 14:16:54 2014 +0100

    docs: Add index for 2.44 api

 docs/reference/gio/gio-docs.xml         | 4 ++++
 docs/reference/glib/glib-docs.xml       | 4 ++++
 docs/reference/gobject/gobject-docs.xml | 4 ++++
 3 files changed, 12 insertions(+)

commit 8b27ac0d9f8f87ca5a2f4e7b2ff071be5adb61e3
Author: Trần Ngọc Quân <vnwildman@gmail.com>
Date:   Mon Dec 1 09:07:13 2014 +0700

    Updated Vietnamese translation

    Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>

 po/vi.po | 2804
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1518 insertions(+), 1286 deletions(-)

commit 967fedc0ae04fab3162f25715c6d7bde73d22d57
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 19 10:23:12 2011 -0400

    gsocket: add G_IO_ERROR_CONNECTION_CLOSED

    Add G_IO_ERROR_CONNECTION_CLOSED as an alias for
    G_IO_ERROR_BROKEN_PIPE, and also return it on ECONNRESET.

    It doesn't really make sense to try to distinguish EPIPE and
    ECONNRESET at the GLib level, since the exact choice of which error
    gets returned in what conditions depends on the OS. Given that, we
    ought to map the two errors to the same value, and since we're already
    mapping EPIPE to G_IO_ERROR_BROKEN_PIPE, we need to map ECONNRESET to
    that too. But the existing name doesn't really make sense for sockets,
    so we add a new name.

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

 gio/gioenums.h     | 10 ++++++++--
 gio/gioerror.c     |  9 +++++++++
 gio/tests/socket.c | 38 ++++++++++++++++++++++++++++++++------
 3 files changed, 49 insertions(+), 8 deletions(-)

commit 64f9bf96fdc47ab7fedd91d291f805c3e10322b4
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 23 12:53:03 2014 -0500

    gnetworkaddress: Add g_network_address_new_loopback() constructor

    This is a convenience method for creating a GNetworkAddress which is
    guaranteed to return IPv4 and IPv6 loopback addresses. The program
    cannot guarantee that 'localhost' will resolve to both types of
    address, so programs which wish to connect to a local service over
    either IPv4 or IPv6 must currently manually create an IPv4 and another
    IPv6 socket, and detect which of the two are working. This new API
    allows the existing GSocketConnectable machinery to be used to
    automate that.

    Based on a patch from Philip Withnall.

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

 docs/reference/gio/gio-sections.txt |   5 +-
 gio/gnetworkaddress.c               |  45 ++++++++++++
 gio/gnetworkaddress.h               |   2 +
 gio/tests/network-address.c         | 132
 ++++++++++++++++++++++++++++++++++++
 4 files changed, 182 insertions(+), 2 deletions(-)

commit 296c710c64c3f145674a6c20357d4c0b0da1b393
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 28 17:55:28 2014 -0500

    GVariant tests: test with larger strings

    Allocate some larger strings in the testcase to make sure we
    handle them
    correctly as well.

 glib/tests/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5aba9ca837205f8eddec138326430af9d2fd6b11
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 28 12:43:03 2014 -0500

    gmain: fix poll record comparison

    We intend to keep the list of poll records sorted by (integer) file
    descriptor, but due to a typo we are actually keeping it sorted by
    pointer address of the GPollFD.

    Fix that.

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

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

commit c476f7cd264ca3c69c002c4bcc1563b17cd976b2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 28 16:20:40 2014 -0500

    gsignal: add a clarification to the docs

    As evidenced by a mistake that I made recently, this documentation
    could
    use a little bit of clarification.

 gobject/gsignal.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit d511d6b37f051d2cd8698055cbd85ee7f987325d
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Fri Nov 28 13:06:04 2014 +0100

    GSettings: fix check for delaying backend subscription

    g_settings_has_signal_handlers() checks whether any of the signals has
    pending handlers. However, g_signal_has_handler_pending() matches on
    exact detail, even when passing 0. Subscribing to one of GSettings'
    signals with a detail will fail this check and never connect to the
    backend.

    Fix this by calling has_handler_pending() with the key as detail as
    well.

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

 gio/gsettings.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 7f2f4ab12df6ddb501900846896f496520871d16
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 27 09:12:42 2014 -0500

    Use the new g_strv_contains

    No need to keep our own copy of this in the testsuite.

 gio/tests/contenttype.c | 39 ++++++++++++---------------------------
 1 file changed, 12 insertions(+), 27 deletions(-)

commit 71944b1bfd2cff57e889b806d001458dce6fa2b5
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Apr 15 14:54:31 2013 +0200

    gstrfuncs: Add g_strv_contains()

    Includes unit tests.

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

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gstrfuncs.c                      | 27 +++++++++++++++++++++++++++
 glib/gstrfuncs.h                      |  4 ++++
 glib/tests/strfuncs.c                 | 19 +++++++++++++++++++
 4 files changed, 51 insertions(+)

commit 3f5a78a248406611c3eb7096a72749c892d47653
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 24 13:07:22 2014 -0500

    2.43.1

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

commit e784a4ba326e939b74578f417202833d3231c7ac
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 23 12:33:01 2014 -0500

    gio/tests: add a socket-listener test

    Add a GSocketListener test program. Currently the only test is a
    regression test for bug 712570 (based on a standalone bug reproducer
    provided by Ross Lagerwall).

 gio/tests/.gitignore        |   1 +
 gio/tests/Makefile.am       |   1 +
 gio/tests/socket-listener.c | 166
 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 168 insertions(+)

commit 9a6e01ea5bde908e2bcce4dc66d89483e84fd837
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Tue Oct 28 21:16:50 2014 +0000

    gio: Prevent hang when finalizing GThreadedSocketService

    If all users of a GThreadedSocketService release their references
    to the
    service while a connection thread is running, the thread function will
    release the last reference to the service which causes the finalize to
    deadlock waiting for all threads to finish (because it's called
    from the
    thread function).

    To fix this, don't wait for all threads to finish in the service's
    finalize method.  Since the threads hold a reference to the service,
    finalize should only be called when all threads are finished running
    (or
    have unrefed the service and are about to finish).

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

 gio/gthreadedsocketservice.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 91802bbf2bfd336aec640c9412f955b1df8f80ae
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Oct 28 13:45:34 2014 -0700

    gparam: Make the documentation clearer for CONSTRUCT_ONLY properties

    It's not that the properly will only be set on construction, it's that
    it *can* only be set upon construction.

 gobject/gparam.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 89e663107ecefd6db7ea24d2ffdf935020222947
Author: Michael Henning <drawoc@darkrefraction.com>
Date:   Wed Nov 5 01:20:25 2014 -0500

    gio: Implement g_win32_app_info_launch_uris for windows.

 gio/gwin32appinfo.c | 48 +++++++++++++++++++++++++++++++-----------------
 1 file changed, 31 insertions(+), 17 deletions(-)

commit 90f0eb101f108ee4096b5b3ef2d570ce588abb64
Author: Michael Henning <drawoc@darkrefraction.com>
Date:   Wed Nov 5 01:18:25 2014 -0500

    gio: Implement g_app_info_get_default_for_uri_scheme for windows.

 gio/gwin32appinfo.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

commit 7f5c862e166a6f288d8d0ec2622685316f64b87c
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 22 10:54:41 2014 -0500

    GTlsClientConnection: loosen the semantics of "use-ssl3"

    If SSL 3.0 has been disabled (at the host, application, or library
    level), then the "use-ssl3" property becomes a "fail-immediately"
    property.

    Despite the name, the point of the property wasn't really specifically
    to use SSL 3.0; it was to allow fallback when talking to broken
    servers that do SSL/TLS negotiation incorrectly and break when they
    see unexpectedly-high version numbers. So if we can't fall back to SSL
    3.0, then the "use-ssl3" property should fall back to TLS 1.0 instead
    (since there are hosts that will reject a TLS 1.2 handshake, but
    accept a TLS 1.0 one).

    glib-networking is being updated to implement that behavior, so update
    the documentation here.

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

 gio/gtlsclientconnection.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit f6bbd19beb41aeb52426ba96b3c39c1b09f6bc17
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Nov 20 18:34:21 2014 +0800

    GSettings Registry Backend: Init cache_lock Earlier

    In commit 8ff5668, we are subscribing the GSettings backend later,
    but this
    meant that we need to initialize cache_lock earlier, as we might
    try to
    use that lock before a change notification is issued to subscribe the
    backend, which would then cause an access violation if we are
    trying to
    read GSettings values, as that lock is used to access the Windows
    Registry.

    Initialize cache_lock once we initialize the GSettings Registry
    backend,
    and delete it upon finalize, so that g_settings_read_from_backend()
    can
    proceed normally, even if the GSettings backend is not yet subscribed.

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

 gio/gregistrysettingsbackend.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

commit 5c68fc9f93ee3d3cdb94cda2be5565584dfbb908
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Sep 23 10:46:53 2014 +0200

    gsettingsschema: Print the string that failed to parse

    When parsing a translated value fails, print the actual string that
    failed to parse instead of the 'domain\004string' untranslated string.

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

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

commit 8ff5668a458344da22d30491e3ce726d861b3619
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 26 17:16:37 2014 +0200

    GSettings: delay backend subscription

    GSettings objects begin watching for changes as soon as they are
    created
    in order that they can emit the "changed" signal.

    In the case of dconf, if we want to be able to emit the changed
    signal,
    we need to go on the bus and add some match rules.  This requires
    creating the dconf helper thread and also requires initialising GDBus
    (which creates another thread).

    Some users of GSettings are never interested in the "changed" signal.
    One of these users is the glib-networking code that gets run
    every time
    a new network connection is created.

    Some users are reporting that they are annoyed that simply
    establishing
    a network connection would spawn two extra threads and create a D-Bus
    connection.

    In order to avoid doing unnecessary work for these simple uses, delay
    the subscription until we know that we will actually need to do it.

    We do this in a simple way, using a simple argument: in order for the
    user to care that a value changed then they must have:

     1) watched for a change signal; and then
     2) actually read a value

    If the user didn't actually read a value then they cannot possibly be
    interested in if the value changed or not (since they never knew
    the old
    value to begin with and therefore would be unable to observe that it
    ever changed, since they have nothing to compare the new value with).

    This really is a behaviour change, however, and it does impact
    at least
    one user: the 'monitor' functionality of the GSettings commandline
    tool,
    which is interested in reporting changes without ever having known the
    original values.  We add a workaround to the commandline tool in order
    to ensure that it continues to function properly.

    It's also possible to argue that it is completely valid to have read a
    value and _then_ established a change signal connection under the
    (correct) assumption that it would not have been possible to miss a
    change signal by virtue of not having returned to the mainloop.
    Although this argument is true, this pattern is extremely
    non-idiomatic,
    and the problem is easily avoided by doing things in the usual order.

    We never really talked about change notification in the overview
    documentation for GSettings, so it seems like now is a good time
    to add
    some discussion, including the new rules for when one can expect
    change
    signals to be emitted.

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

 gio/gsettings-tool.c | 13 +++++++++++++
 gio/gsettings.c      | 47 +++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 56 insertions(+), 4 deletions(-)

commit 6c080721fc1879d8c92176fe630e00122110ea2e
Author: Alberto Ruiz <aruiz@gnome.org>
Date:   Tue Nov 18 14:43:41 2014 +0000

    glib: Improve documentation for g_strfreev()

    Fixes #740309.

 glib/gstrfuncs.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 61e125a57783422e25bb0e9616c9115f68641426
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat Nov 15 18:31:40 2014 +0100

    Updated Norwegian bokmål translation.

 po/nb.po | 340
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 171 insertions(+), 169 deletions(-)

commit 021c4ad050f979e5b36c34474d5fbb189278acdf
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Sat Nov 15 10:30:41 2014 +0100

    gapplication: enable --help when app has options

    This should already work according to the documentation, but doesn't
    because main_options is consumed before the check in
    g_application_parse_command_line().

    Fix by moving the check for main_options up.

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

 gio/gapplication.c       | 28 ++++++++++++++--------------
 gio/tests/gapplication.c | 45
 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 14 deletions(-)

commit 61cecd5a68743542baf685b47e8a4a5f4a98d205
Author: David King <amigadave@amigadave.com>
Date:   Thu Nov 13 17:49:31 2014 +0000

    docs: Add missing opening parenthesis

    https://mail.gnome.org/archives/gnome-web-list/2014-November/msg00003.html

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

commit 1edd463137067ccb7533f3a1e072dc516bb32d86
Author: Volker Sobek <reklov@live.com>
Date:   Fri May 23 22:45:30 2014 +0200

    docs: Update GParamFlags docs.

    Remove reference to G_PARAM_READWRITE from GParamFlags' description,
    since commit 6c395244a5db added G_PARAM_READWRITE to GParamFlags.

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

 gobject/gparam.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 20f6cc2a10ba26860e7a6d27c100deadb5497772
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Wed Nov 5 14:00:45 2014 +0100

    Simplify code that uses g_queue_insert_before() and insert_after()

    g_queue_insert_before() and g_queue_insert_after() now accept a NULL
    sibling.

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

 glib/gqueue.c         |  5 +----
 glib/tests/sequence.c | 16 +++-------------
 2 files changed, 4 insertions(+), 17 deletions(-)

commit 8a90f5e9f6da778743aaec365ee4ceb62b717130
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Wed Nov 5 14:03:30 2014 +0100

    GQueue: accept a NULL sibling for insert_before() and insert_after()

    It simplifies a little bit some code that inserts data relative to a
    GList location, that might be NULL for the tail of the queue. A NULL
    sibling is probably less useful for insert_after(), so it's more for
    consistency with insert_before().

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

 glib/gqueue.c      | 35 ++++++++++++++++++++++++-----------
 glib/tests/queue.c |  2 ++
 2 files changed, 26 insertions(+), 11 deletions(-)

commit 012c9dcd820f9679784181568f97c0e1e6b5e37f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 3 10:09:14 2014 +0800

    gnetworking.h.win32: Move "#undef interface"

    This is a follow-up commit due to the fix in gnetworking.h.in
    in commit
    7103484 (gnetworking.h.in: move "#undef interface").

 gio/gnetworking.h.win32 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7103484017ff000d01ed94567539d37fa09b32b2
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 2 09:36:14 2014 -0500

    gnetworking.h.in: move "#undef interface"

    The win32 headers do:

      #define interface struct

    which is just evil and breaks other code that assumes it can use
    "interface" as a variable name. gnetworking.h was supposed to be doing
    "#undef interface" after including the win headers, but it did it too
    soon, resulting in it getting redefined by a later include. Fix this.

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

 gio/gnetworking.h.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 982d0e11d702ff49f69cb90cb65dd71ebd3df54d
Author: Dan Winship <danw@gnome.org>
Date:   Tue Oct 28 15:08:43 2014 -0400

    GTlsCertificate: fix loading of bad certificate chains

    g_tls_certificate_new_from_file() was only loading the complete chain
    if it was fully valid, but we only meant to be validating that it
    formed an actual chain (since the caller may be planning to ignore
    other errors).

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

 gio/gtlscertificate.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 0728e62be8bf247f9d097822efd26312367ff133
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Mon Sep 8 21:09:08 2014 +0100

    doc: Clarify documentation regarding g_file_replace and etags

    Clarify that with g_file_replace, a non-NULL etag is only checked
    if the
    file already exists.

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

 gio/gfile.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 226c292b6ab95014648e9fc0a082bb6c26eeccc8
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Wed Oct 29 22:12:39 2014 +0000

    gio: Prevent hang writing to a large GMemoryBuffer

    Fix a hang due to overflow by using unsigned numbers and explicitly
    checking if the number overflows to zero.  This also fixes the
    previous
    logic which assigned an int which may be negative to an unsigned
    number
    resulting in sign extension and strange results.

    Use gsize rather than int to allow for large buffers on 64 bit
    machines.

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

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

commit 5a6f13d16f38ea0a6c9d48332b7e3932b7f3b7d4
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Wed Oct 29 22:05:32 2014 +0000

    gio: Prevent hang writing to a large GMemoryOutputStream

    Fix a hang due to overflow by using unsigned numbers and explicitly
    checking if the number overflows to zero.  This also fixes the
    previous
    logic which assigned an int which may be negative to an unsigned
    number
    resulting in sign extension and strange results.

    Use gsize rather than int to allow for large streams on 64 bit
    machines.

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

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

commit b3e3ed73864143e732c4d65441eaec086a3ab83e
Author: Dan Winship <danw@gnome.org>
Date:   Tue Mar 13 11:43:38 2012 -0400

    gmain: don't pass the same fd to g_poll() multiple times

    If a given fd is being polled by multiple sources, we used to pass it
    multiple times to g_poll(), which is technically illegal (and not
    supported by the select()-based fallback implementation of poll() in
    gpoll.c), and also made it more likely that we'd exceed the maximum
    number of pollfds.

    Fix it to merge together "duplicate" GPollFDs. The easiest way to do
    this involves re-sorting context->poll_records into fd order rather
    than priority order. This means we now have to walk the entire pollrec
    list for every g_main_context_query() and g_main_context_poll(),
    rather than only walking the list up to the current max_priority.
    However, this will only have a noticeable effect if you have tons of
    GPollFDs, and we're already too slow in that case anyway because of
    other O(n) operations that happen too often. So this shouldn't change
    much (and the new poll API will eventually let us be cleverer).

    Remove some win32-specific code which did the same thing (but was
    O(n^2)).

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

 glib/gmain.c          |  86 ++++++++++++++++-----------
 glib/gpoll.c          |  35 ++++-------
 glib/tests/mainloop.c | 161
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 222 insertions(+), 60 deletions(-)

commit 66fc112c742f56f85fc34b458325e87df4cd78d0
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Thu Oct 9 14:40:45 2014 -0400

    GDBusInterfaceVTable: clarify memory handling for the method()
    virtual function

    There are two consistent interpretations that could be taken for
    memory
    handling of the 'invocation' parameter passed to the method_call()
    virtual
    function of GDBusInterfaceVTable

     - A reference is passed (transfer full) to the method_call()
     virtual function,
       and that reference is then passed (transfer full) to the
       return_value/error
       functions on GDBusMethodInvocation.
     - An internal reference is retained from the point where
     method_call() is called
       until the return_value/error function is called.

    Since the return_value/error functions were already marked (transfer
    full),
    we use the first interpretation, annotate the invocation parameter of
    method call as (transfer full) and describe this in the documentation,
    along
    with the idea that you are always supposed to call one of the
    return_value/error
    functions.

    See bug 738122 for the leak this caused in GJS.

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

 gio/gdbusconnection.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 837d0b94a9bc96275c635450879c12fd54005426
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 27 17:32:06 2014 -0400

    Updates for 2.43.0

 NEWS | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

commit 203fe3b8a8817da8e1ec771e2ebd15c747653158
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 24 14:06:02 2014 +0100

    gcancellable: Clarify that GSources hold references to GCancellables

    Clarify in the documentation that a GSource created with
    g_cancellable_source_new() must be explicitly removed from its
    GMainContext before the GCancellable can be finalised.

    This could be a common way of leaking GCancellables.

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

 gio/gcancellable.c | 2 ++
 1 file changed, 2 insertions(+)

commit 92d67358986c3be48ccbd4135b53ea591f15ea86
Author: Erik van Pienbroek <epienbro@fedoraproject.org>
Date:   Thu Jul 17 18:37:04 2014 +0200

    Guard g_inet_address_mask_equal against invalid input

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

 gio/ginetaddressmask.c | 3 +++
 1 file changed, 3 insertions(+)

commit 0501bf26b924cdaccf9c1c38522f267b7a520ef4
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 15 17:49:09 2014 -0400

    gio/tests/tls-certificates: fix

    da053e34 broke the tls-certificates test by requiring the backend to
    implement g_tls_certificate_verify() (which the test TLS backend
    didn't). Add a trivial implementation to make the test pass again;
    we'll need something more complicated when we add tests that are
    supposed to get errors.

 gio/tests/gtesttlsbackend.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

commit 4125415e7f4d1213fc7122beac0d91af08e37b28
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Oct 12 02:21:08 2014 +0200

    gfile: g_file_equal (x, x) is TRUE

    So shortcut it.

    I wrote this patch less as a performance optimization and more as a
    clarification, so that people looking at the code can be assured
    of this
    invariant.

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

 gio/gfile.c | 3 +++
 1 file changed, 3 insertions(+)

commit b768d0e4eaf15934067557cfee6b8beebca5df42
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 21 11:30:47 2014 -0400

    Add tests for {read,write}_all_async()

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

 gio/tests/.gitignore      |   1 +
 gio/tests/Makefile.am     |   1 +
 gio/tests/stream-rw_all.c | 258
 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 260 insertions(+)

commit 223b5f757fe07cdec2879315965297a31edc3478
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 29 11:50:05 2014 -0400

    docs: explain inconsistency of _{read,write}_all()

    These functions are inconsistent with our normal conventions in that
    they set an output variable to a specified value, even in the
    case that
    an error is thrown.

    Document very clearly that this should be considered exceptional.

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

 gio/ginputstream.c  | 10 ++++++++--
 gio/goutputstream.c | 11 +++++++++--
 2 files changed, 17 insertions(+), 4 deletions(-)

commit c8d10470939847069b1a346d4c44f2adde3469f6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 29 11:44:09 2014 -0400

    Add g_output_stream_write_all_async()

    Similar to the previous patch, this commit contains a minor
    violation of
    normal API conventions.  See the explanation in the previous commit
    message.

    Heavily based on a patch from Ignacio Casal Quinteiro.

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

 gio/goutputstream.c | 183
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/goutputstream.h |  16 +++++
 2 files changed, 199 insertions(+)

commit 76b890d0f104b6ee48a057fc58f1c6b495fdf2f2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 29 11:40:46 2014 -0400

    Add g_input_stream_read_all_async()

    Add an asynchronous version of _read_all().

    This API is not fully consistent with the normal expectations of a
    non-asynchronous version.  Consistency between the sync and async
    version is
    probably more important.

    The API will still bind correctly, but access to all functionality
    will
    not be available: specifically, in the case of an error, higher level
    languages will be unable to determine how many bytes were successfully
    read before the error.  Most users will probably not want to use this
    information anyway, so this is OK -- and if they do need the
    information, then they can just write the loop for themselves.

    Heavily based on a patch from Ignacio Casal Quinteiro.

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

 gio/ginputstream.c | 179
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/ginputstream.h |  15 +++++
 2 files changed, 194 insertions(+)

commit aabc3a41c36f89363884b2a61dd9b038e5b5c214
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Mon Oct 20 19:05:26 2014 -0500

    Fix another ancient docs typo

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

commit f4af8d1d007edcfa5949315be563b3aa8792f250
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 4 12:47:33 2014 -0400

    GApplication: ignore --help if not handling args

    If the user didn't register any arguments for parsing, also ignore
    --help.  This fixes a regression in meld.

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

 gio/gapplication.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 817f82da6c92d8a2ef0e0582037fd2bbd248798c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 20 14:28:10 2014 +0200

    GOption: stop calling getopt()

    We called getopt() to try to find out of the platform on which we are
    running defaults to strict POSIX-style argument handling (ie: flags
    following the first filename are considered as further filenames
    rather
    than flags).

    This is the default case on BSDs, for example.  It is also the case on
    GNU systems with the POSIXLY_CORRECT environment variable set.

    Unfortunately many of our tools rely on being able to accept
    commandline
    arguments in the non-strict ordering and the code for making these
    calls
    is spread widely (for example in Makefile fragments invoking some
    of our
    build tools).

    For this reason we need to revert the getopt() check and only enable
    strict POSIX mode in the case that the application explicitly
    opts into
    it using the _set_strict_posix() API.

    This also fixs a failure to build on Windows due to missing getopt().

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

 glib/goption.c | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

commit e9b7c702404929c415320545905dcf008c9cd666
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 17 14:38:43 2014 +0200

    GHashTable: small docs fix

    We use g_hash_table_unref() here, not g_object_unref().

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

commit 18745ff674896c931379d097b18d74678044668e
Author: Benjamin Berg <benjamin@sipsolutions.net>
Date:   Fri Oct 17 14:16:22 2014 +0200

    Allow hash table destroy notifiers to remove other entries

    With this patch it is fine to call g_hash_table_lookup and
    g_hash_table_remove from destroy notification functions. Before
    this could lead to an infinitie loop if g_hash_table_remove_all
    was used.

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

 glib/ghash.c      | 91
 ++++++++++++++++++++++++++++++++++++++++++++-----------
 glib/tests/hash.c | 55 +++++++++++++++++++++++++++++++--
 2 files changed, 125 insertions(+), 21 deletions(-)

commit cb042bf5b5750a31f93b122b49f5a90975a5ed6a
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Fri Oct 17 11:14:10 2014 +0100

    docs: Add missing get_type() reference to gio.types

    GSubprocessLauncher is a GObject, so we need to tell gtk-doc to
    inspect
    it.

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

 docs/reference/gio/gio.types | 1 +
 1 file changed, 1 insertion(+)

commit ae52ab3d1170a393b0b734e9b9b37c3f107a7c03
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 27 15:42:23 2014 +0000

    GOption: add strict posix mode

    Add a "posixly correct" mode to GOption to stop parsing arguments as
    soon as the first non-option argument is encountered.

    We determine the default value on the basis of duplicating the
    behaviour
    of the system getopt() implementation (which we directly check the
    behaviour of at runtime).  On GNU systems this allows the user
    to modify
    our behaviour using POSIXLY_CORRECT.

    The user can change the value by g_option_context_set_strict_posix(),
    which might be useful for some usecases of GOptionContext (as
    mentioned
    in the doc string of this new function).

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

 glib/goption.c              | 72
 +++++++++++++++++++++++++++++++++++++++++++++
 glib/goption.h              |  6 ++++
 glib/tests/option-context.c | 66
 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 144 insertions(+)

commit f2786908a8858ec9d063e8fae7e4b2d8d612b682
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 14 23:22:14 2014 -0400

    GApplication: Plug a memory leak

    We were not freeing resource_path.

 gio/gapplication.c | 2 ++
 1 file changed, 2 insertions(+)

commit 5a0a85e444f5f7d18e4d20fc0340afb58f732e5f
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Oct 14 19:14:01 2014 -0700

    gdesktopappinfo: Fix copy/paste typo from e24e89b

    Commit e24e89b accidentally ironically introduced a typo when
    replacing
    the code with symbolic contents. Specifically, "Added Associations"
    was
    replaced with "Default Applications" when reading defaults.list,
    giving
    a warning about the file containing a "Default Applications" group.

    If this was intended, it should have not been lumped in with
    a cleanup.

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

commit e054bbfe1646239abc673658db314f546ff27709
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Oct 12 01:57:02 2014 +0200

    gfile: Clarify docs

    Clarify corner cases that were unclear while reviewing a GTK patch.

 gio/gfile.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 6e994d06560bdb36921eef8338681caf95d90102
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Oct 12 01:29:27 2014 +0200

    Bump version to 2.43.0

    We have new API.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 36d8b941d4b5007b71c2b60bb80b80fa31a354e6
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Sep 7 05:28:56 2014 +0200

    signal: Keep only one list of emissions

    There is no need to keep 2 lists.

    This simplifies the code and gets rid of the only user inside glib of
    G_HAVE_GROWING_STACK.

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

 gobject/gsignal.c | 73
 +++++++++++++++++++------------------------------------
 1 file changed, 25 insertions(+), 48 deletions(-)

commit 58ec89ea7c86f9b61ae4a0017019e19f09a1542f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 11 15:53:13 2014 -0400

    Fix a return_if_fail confusion

    This slipped through my editing of the patch.

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 011bf876e75c93c6b3fb9dd24d9458d881d4b36b
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Thu Oct 9 16:38:10 2014 -0400

    Add simple instance count facility

    Add GOBJECT_DEBUG=instance-count which enables internal accounting
    of the number of instances of each GType, and
    g_type_get_instance_count()
    to retrieve the result.

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

 gobject/gtype.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 gobject/gtype.h |  6 +++++-
 2 files changed, 55 insertions(+), 2 deletions(-)

commit aa401aef878eb0dc02e0c4523cadceaa714ac012
Author: Krasimir Chonov <mk2616@abv.bg>
Date:   Sat Oct 11 08:17:10 2014 +0300

    Updated Bulgarian translation

 po/bg.po | 2239
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1230 insertions(+), 1009 deletions(-)

commit 26c66ab1b9806d097bd1080240435cb37642f141
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 10 14:17:56 2014 -0400

    Clarify g_propagate_error docs

    I just ran into a bug that was caused by having src being a
    persistent GError* that was not cleared after propagating it.

 glib/gerror.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 0bfea5e7728bf7bc9e25da3c828b60c6fc9c776f
Author: Benjamin Gilbert <bgilbert@backtick.net>
Date:   Thu Oct 9 00:07:36 2014 -0400

    Fix g_cond_timed_wait() timeout with !CLOCK_MONOTONIC

    g_get_monotonic_time() and g_get_real_time() now always use different
    clocks, so we cannot avoid correcting for their offset.  Fixes failure
    to time out on Mac OS X.

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

 glib/deprecated/gthread-deprecated.c | 6 ------
 1 file changed, 6 deletions(-)

commit 549e7b0de62b9f31825f0c24f41cfa7eaad97360
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Wed Oct 8 20:37:42 2014 +0200

    garray: initialize allocated size in g_byte_array_new_take()

    Internal allocation size (array->alloc) was being kept to 0 when a new
    GByteArray was created from an already existing heap-allocated buffer.

    Among other things, this was making g_byte_array_set_size() fully
    clear all
    the buffer contents (not just the newly allocated memory) when
    G_DEBUG=gc-friendly was being used...

      if (G_UNLIKELY (g_mem_gc_friendly))
        memset (array->data + array->alloc, 0, want_alloc - array->alloc);

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

 glib/garray.c | 1 +
 1 file changed, 1 insertion(+)

commit de82b641b05ee32812d945a9d4ecd1c1bbc3401e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 6 22:41:06 2014 -0400

    Add advice on g_cancellable_reset

    Don't use it at home.

 gio/gcancellable.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit da053e345b4729a8a166eca54da257ae9accc7b1
Author: Aleix Conchillo Flaqué <aconchillo@gmail.com>
Date:   Mon Oct 6 10:19:48 2014 -0700

    tlscertificate: add support for certificate chains

    This patch changes the behavior of the following functions:

       g_tls_certificate_new_from_pem
       g_tls_certificate_new_from_file
       g_tls_certificate_new_from_files

    If more than one certificate is found it will try to load the chain.

    It is assumed that the chain will be in the right order (top-level
    certificate will be the last one in the file). If the chain cannot be
    verified, the first certificate in the file will be returned as
    before.

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

 gio/gtlscertificate.c | 230
 ++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 184 insertions(+), 46 deletions(-)

commit 4454b815367831a71b1ae00b0182b5b389a78df2
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Sun Oct 5 12:11:08 2014 -0500

    Fix typo

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

commit 6cd13d34fe9db74dd1d6a144630262ab6306a95f
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Sun Oct 5 13:07:12 2014 +0000

    Updated Italian translation

 po/it.po | 688
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 350 insertions(+), 338 deletions(-)

commit 5cbc94d8294634e54218fcc5d78d2f31e116469f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 2 14:41:01 2014 -0400

    GDataSet: Add more tests

    These tests exercise the NULL key fix from the previous commit.

 glib/tests/dataset.c | 54
 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 53 insertions(+), 1 deletion(-)

commit f6a9d0479622593c8339346b7298ca04f31a56be
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 2 14:40:16 2014 -0400

    GDataSet: silently accept NULL/0 as keys

    This used to be the behaviour before we made these functions
    threadsafe; keep it that way.

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

 glib/gdataset.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit e24e89bc0777044b41f180dbf3891f852b4a749e
Author: Bastien Nocera <hadess@hadess.net>
Date:   Thu Sep 4 15:39:19 2014 +0200

    gdesktopappinfo: Use symbolic names in the code

    We have #defines for the key file groups, so use them to avoid typos.

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

 gio/gdesktopappinfo.c | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

commit 45344f362256d725e8e8b5d334b5062853554115
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Mon Sep 29 23:25:11 2014 +0800

    GCredentials: Fix ABI break when adding NetBSD support

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

 gio/gioenums.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 682bca095068d2823a129bebae42bb4f27f3e118
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 29 11:39:51 2014 -0400

    Add version macros for 2.44

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gversionmacros.h                 | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)

commit a4612a922bc984ff45e2096d2d286da1be5be481
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Sep 26 16:18:46 2014 +0100

    tests: Fix some minor leaks in the unit tests

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

 glib/tests/bookmarkfile.c   | 1 +
 glib/tests/fileutils.c      | 3 ++-
 glib/tests/option-context.c | 8 ++++++--
 3 files changed, 9 insertions(+), 3 deletions(-)

commit cb2c6eef0a5a044b39f8c92360e3e01375e23d10
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Sat Sep 27 00:04:55 2014 +0200

    gslist: indentation fix

 glib/gslist.c | 102
 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 51 insertions(+), 51 deletions(-)

commit 66ef10eec9f4acae19335373fe7cbbebed5ceb60
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Sep 18 16:41:32 2014 +0200

    docs: syntax highlighting for the code examples

    In the sections Concepts, Tools and Tutorial.

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

 docs/reference/gobject/glib-genmarshal.xml |  12 +--
 docs/reference/gobject/glib-mkenums.xml    |  12 +--
 docs/reference/gobject/tut_gobject.xml     |  20 ++--
 docs/reference/gobject/tut_gsignal.xml     |  40 ++++----
 docs/reference/gobject/tut_gtype.xml       |  80 +++++++--------
 docs/reference/gobject/tut_howto.xml       | 156
 ++++++++++++++---------------
 docs/reference/gobject/tut_intro.xml       |   8 +-
 docs/reference/gobject/tut_tools.xml       |   4 +-
 8 files changed, 166 insertions(+), 166 deletions(-)

commit 1c6df7aaeb52672c7a63517c4df271db7727b8be
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Sep 25 09:51:25 2014 +0100

    gmain: Unref child sources when finalising a GSource

    If a GSource is created, *not* attached to a GMainContext, and
    then has
    child sources added, dropping the last reference to the parent GSource
    will leak its references to its child sources. Currently, child
    sources
    are only unreffed when g_source_destroy() is called on the parent.

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

 glib/gmain.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit eaca86801e1ae149559ec1575cac4ef4813a255e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Sep 25 09:51:00 2014 +0100

    gmain: Fix some signed/unsigned integer comparisons

    Just to shut gcc up.

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

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

commit 42d0dc363e3597d36136051d53e25c09ebff253f
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Sep 24 23:09:32 2014 +0530

    Updated gujarati translations

 po/gu.po | 2135
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1198 insertions(+), 937 deletions(-)

commit 0ab9d66b058ad2fadf0194578739a2aece607b6f
Author: Krishnababu Krothapalli <k.meetme@gmail.com>
Date:   Tue Sep 23 14:28:34 2014 +0000

    Updated Telugu translation

 po/te.po | 2161
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1212 insertions(+), 949 deletions(-)

commit e1b84e3296c1ab0cba29ce2114505ae9f5002cae
Author: Hib Eris <hib@hiberis.nl>
Date:   Mon Sep 22 22:37:43 2014 +0200

    Include <stdint.h> in glib/valgrind.h

    This ensures the uintptr_t type is defined on mingw-w64.

    Fixes compile error:

    make[4]: Entering directory
    `/home/abuild/rpmbuild/BUILD/glib-2.42.0/gobject'
      CC       libgobject_2_0_la-gtype.lo
    In file included from gtype.c:24:0:
    ../glib/valgrind.h: In function 'VALGRIND_PRINTF':
    ../glib/valgrind.h:5601:4: error: unknown type name 'uintptr_t'
        uintptr_t _qzz_res;
        ^

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

 glib/valgrind.h | 3 +++
 1 file changed, 3 insertions(+)

commit f5ed7d2d3e26d7b06c5aac4ef38f5eb995289a59
Author: Saibal Ray <sray@redhat.com>
Date:   Tue Sep 23 11:27:44 2014 +0000

    Updated Bengali (India) translation

 po/bn_IN.po | 6452
 ++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 3675 insertions(+), 2777 deletions(-)

commit f41ebebd3476e3e6887f11ed26672a39513c4f98
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Sep 19 08:54:33 2014 +0100

    gtask: Ignore errors from g_thread_pool_push()

    g_thread_pool_push() only returns an error if it fails to spawn a new
    thread. However, it unconditionally adds the task to its worker queue,
    so:
     • if _any_ threads exist in the pool, the task will eventually be
       handled; and
     • if _no_ threads exist in the pool, the task will be handled
     if one
       is eventually successfully spawned.
    If no more threads are ever spawned, the process probably has bigger
    problems than a single GTask which is taking forever to complete.

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

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

commit 925913d8dd8f4f283265fb7b2e17fc3da4d06b3e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 17 17:20:46 2014 +0100

    gtask: Document signal handler reference counting

    Explain why the signal handler holds a reference to the GTask, even
    though that causes a reference loop at first glance.

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

 gio/gtask.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit c6838ffaa1dd5ff9d2b44f7eaffcd8ecf9886f2a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 17 15:07:25 2014 +0100

    gtask: Fix a signed/unsigned integer comparison

    The GSource times assigned to creation_time are always signed.

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

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

commit 26a240fd1004c76500c6be104364a3a12bf9a279
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 22 13:15:02 2014 -0400

    GLib 2.42.0

 NEWS         | 36 ++++++++++++++++++++++++++++++++++++
 configure.ac |  4 ++--
 2 files changed, 38 insertions(+), 2 deletions(-)

commit c8d884da433696b3cc8f19ce83ff3b86b4978472
Author: A S Alam <aalam@users.sf.net>
Date:   Sun Sep 21 08:52:43 2014 -0500

    update Punjabi Translation for 3.14 release

 po/pa.po | 694
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 335 insertions(+), 359 deletions(-)

commit db41a84239a0adda496f2577a85303f0c679482d
Author: Rajesh Ranjan <rajeshkajha@yahoo.com>
Date:   Sun Sep 21 04:14:06 2014 +0000

    Updated Hindi translation

 po/hi.po | 2269
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1268 insertions(+), 1001 deletions(-)

commit d3c65dcbba2e23c55a15bb09106b045e5d860b2d
Author: YunQiang Su <yqsu@src.gnome.org>
Date:   Sun Sep 21 10:58:01 2014 +0800

    Revert "update zh_CN translation"

    Add wrong po file
    This reverts commit ee3d55573ff3731b2f92deb5e35decc316d53475.

 po/zh_CN.po | 5039
 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 4378 insertions(+), 661 deletions(-)

commit ee3d55573ff3731b2f92deb5e35decc316d53475
Author: YunQiang Su <yqsu@src.gnome.org>
Date:   Sun Sep 21 10:30:53 2014 +0800

    update zh_CN translation

 po/zh_CN.po | 5039
 ++++++++---------------------------------------------------
 1 file changed, 661 insertions(+), 4378 deletions(-)

commit f550be0c6ab978ded5c9e94d98858a26b2682dca
Author: Tong Hui <tonghuix@gmail.com>
Date:   Sun Sep 21 10:24:22 2014 +0800

    update zh_CN translation

 po/zh_CN.po | 657
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 334 insertions(+), 323 deletions(-)

commit a2d4a612c67951a0c9090b4225ccd1774af414df
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sat Sep 20 17:19:18 2014 +0200

    Updated Danish translation

 po/da.po | 654
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 334 insertions(+), 320 deletions(-)

commit dceff8fc2c354b994793d8792455bee7ed195169
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 16 19:48:06 2014 -0400

    gmain: improve g_source_set_name thread safety

    Step up thread safety on g_source_set_name() to the same standard
    as all
    other GSource functions: after we are attached to a main context, this
    function should be threadsafe.

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

 glib/gmain.c | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

commit 1cbdbef77209fe82239bd10f062425491cf256ae
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 16 19:40:30 2014 -0400

    gsource: clarify restrictions on non-existant IDs

    Document that one must not use the "by id" source APIs with
    non-existent
    IDs.  The real justification behind this restriction is that the reuse
    of source ids makes it unsafe to call these functions unless you're
    absolutely sure that the source exists and it belongs to you.  If you
    call one of these functions on a source that may already have been
    removed then you run the risk of finding someone else's source (with
    your reused id).

    This also bails us out of a slightly tricky situation with respect to
    the threadsafety of g_main_context_find_source_by_id().  The fact that
    this function doesn't return a reference implies that its return value
    cannot be safely accessed unless we already know for sure that a
    reference is being held elsewhere (by example, by the main context
    itself if we know that the source has not been removed).  The function
    itself, however, performs an access to the value, which could
    result in
    a crash.

    If we mandate that it is only valid to call this function on
    known-to-exist source IDs then we dodge this problem.

    https://bugzilla.gnome.org/show_bug.cgi?id=736683

 glib/gmain.c | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

commit 7db1baf59078c667ac1ae43f839b2b1866e65a87
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Sep 19 15:05:04 2014 +0100

    GVariant: say that serialized form needs an out-of-band length

    This confused me for a while, because it isn't the same as D-Bus.
    Like GVariant, the D-Bus serialization needs an out-of-band
    endianness and type indicator, but unlike GVariant, serialized
    D-Bus objects encapsulate their own length (often by starting with
    a byte-count). This does come at some redundancy cost, so I can see
    why the more efficient GVariant format does this the way it does;
    but it's a difference between D-Bus and GVariant that seems worth
    calling out.

    It's also relevant for the designers of file or message-framing
    formats: with D-Bus serialization it would be feasible to say
    "the file
    starts with a little-endian D-Bus variant, followed by...",
    but in GVariant you wouldn't be able to deserialize the variant
    unless you either assume that it extends to end-of-file, or have
    an explicit length.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=736975
    Reviewed-by: Ryan Lortie

 glib/gvariant.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 174ebaefcc2b1b94f4a628e60f150b7209230dbf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 18 15:26:36 2014 -0400

    gresource: Make extract work better

    When no section is specified, look for the resource to extract
    in all sections - previously, we would stop after the first
    section.

 gio/gresource-tool.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

commit 5c951e5b042d80ae2dcb1e17ec07fa8008e07085
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 18 14:51:09 2014 -0400

    gresource: Use GError in more places

    The API gives us an error message, lets use it.

 gio/gresource-tool.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit dfaaf37338533b2412800c61b342b296fff7c6cf
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Sep 18 20:31:52 2014 +0200

    Update URLs library.gnome.org -> developer.gnome.org

 INSTALL.in                              | 4 ++--
 docs/reference/gio/gio-docs.xml         | 2 +-
 docs/reference/glib/glib-docs.xml       | 2 +-
 docs/reference/gobject/gobject-docs.xml | 2 +-
 docs/reference/gobject/tut_tools.xml    | 4 ++--
 5 files changed, 7 insertions(+), 7 deletions(-)

commit 4fb9421528777e80beeae1e85eafb46e44f5b408
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Wed Sep 17 21:11:50 2014 +0200

    Updated Serbian translation

 po/sr.po       | 694
 +++++++++++++++++++++++++++------------------------------
 po/sr@latin.po | 694
 +++++++++++++++++++++++++++------------------------------
 2 files changed, 668 insertions(+), 720 deletions(-)

commit 5486481fab3fc149aa41a440cfe63bcfa8567926
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Fri Sep 12 19:01:35 2014 +0530

    Updated Marathi Translations

 po/mr.po | 2134
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1197 insertions(+), 937 deletions(-)

commit 38a061422532b3d7b8bce0988f3767806ac28f8f
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Sep 16 15:41:58 2014 -0600

    GApplication:handle-local-options: document return value

    The return value for this signal was documented in the prose, but not
    properly in a Returns: stanza.  Fix that.

 gio/gapplication.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 8061694c496094015bfd3959cbece7ab158ef6ef
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Sep 16 15:39:59 2014 -0600

    goption: Add G_OPTION_FLAG_NONE

    This is helpful to better document code, as G_OPTION_FLAG_NONE is more
    readable than 0.

 glib/goption.h | 2 ++
 1 file changed, 2 insertions(+)

commit 84ec6b4d78928d4b51d64f17b4bde56314e75b1b
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Sep 16 15:39:41 2014 -0600

    g_application_add_main_option: fix type signature

    The flags argument is a GOptionFlags so use that type instead of
    'int'.

 gio/gapplication.c | 2 +-
 gio/gapplication.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 4482977238ae80f64c2fe318d1500f4662c73980
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Sep 16 14:45:34 2014 -0600

    Fix some introspection warnings

 gio/gapplication.c    | 2 +-
 gio/gapplication.h    | 2 +-
 gio/gdesktopappinfo.c | 3 +++
 gio/gmenumodel.h      | 2 +-
 4 files changed, 6 insertions(+), 3 deletions(-)

commit 0177cece40ab8a31bf8994706ac4cac8d80f8755
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 15 14:43:42 2014 -0400

    2.41.5

 NEWS         | 23 +++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 24 insertions(+), 1 deletion(-)

commit bb6a77afa328f16568a41b26de75f255dcfc9daf
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Sat Sep 13 16:31:03 2014 +0300

    grand: Only use rand_s() when targetting Visual Studio >= 2005

    It did not exist before. Fall back to the current time plus
    process id on older targets. This makes GLib work again on
    Windows XP.

    https://bugzilla.gnome.org/show_bug.cgi?id=736458

 glib/grand.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit f2b5edb6527e5bdde6f9e9c6771556308d0ea027
Author: Shantha kumar <shantha.thamizh@gmail.com>
Date:   Mon Sep 15 13:39:11 2014 +0000

    Updated Tamil translation

 po/ta.po | 1798
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 914 insertions(+), 884 deletions(-)

commit 27405ae878ebabb4361d38ed22be11b6891fd866
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sun Sep 14 22:18:09 2014 +0200

    Updated Slovenian translation

 po/sl.po | 643
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 328 insertions(+), 315 deletions(-)

commit 25990eb2b6da94e1d03631eab8a952ef84cb9986
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Tue Sep 9 21:20:34 2014 +0200

    docs: various small fixes

    For the GPtrArray example, several variables declared on the same line
    is harder to read and to work with (to move, remove or comment
    a single
    variable declaration).

 gio/gfileinfo.c | 2 +-
 glib/garray.c   | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

commit fdc5b8f7443ccc0778c8163f47370be1ff65d86d
Author: Shankar Prasad <prasad.mvs@gmail.com>
Date:   Fri Sep 12 12:58:11 2014 +0000

    Updated Kannada translation

 po/kn.po | 3003
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1584 insertions(+), 1419 deletions(-)

commit d2f3e1190719d655a0f75a6a08ed6185ea558032
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 12 15:51:49 2014 +0800

    MSVC Builds: Update "Installation"

    This updates the glib-install.[props|vsprops] so that the headers to
    "install" for the build are kept up-to-date.  Note that this has been
    generated by a script, so that this hopefully means that the header
    "installation" can be maintained along with the autotools files
    for most
    uses, to simplify maintenance.

 build/win32/vs10/glib-install.props  | 750
 +++++++++++------------------------
 build/win32/vs9/glib-install.vsprops | 473 +++++++++++-----------
 2 files changed, 473 insertions(+), 750 deletions(-)

commit 0c5ed58342917d79ff3f6811e6b9a9a6d6a4b675
Author: Balázs Úr <urbalazs@gmail.com>
Date:   Thu Sep 11 16:40:14 2014 +0000

    Updated Hungarian translation

 po/hu.po | 701
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 339 insertions(+), 362 deletions(-)

commit bebfd422af0a2fef422489d04f3b1d87bebd8b92
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Tue Sep 9 20:18:20 2014 +0200

    gutils: Don't use issetugid() on Android

    Android had it in older versions but the new 64 bit ABI does not
    have it anymore, and some versions of the 32 bit ABI neither.

    https://code.google.com/p/android-developer-preview/issues/detail?id=168

    https://bugzilla.gnome.org/show_bug.cgi?id=736351

 glib/gutils.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 3b8bc8bacf1fe31cda44fb5293711e87989388ea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 9 13:58:38 2014 -0400

    GDesktopAppInfo: avoid inotify on missing dirs

    Some desktop file directories, like /usr/local/share/applications
    may be
    missing on some systems.

    When we try to inotify on these directories, this will result in a
    every-4-seconds poll being setup which is quite bad.

    This is an issue that should be fixed in inotify itself but the
    problem
    is much larger there.  For now, we can work around it in
    GDesktopAppInfo
    by refusing to monitor missing directories.

    We may get some spurious notifications of changes in the case that
    /usr/local/share or /usr/local/share/applications is created without
    actually adding desktop files, but spurious changes can already be
    reported in other cases, so that's OK.  We won't get (user-visible)
    notification for a simple case of a completely unrelated file being
    created (however we cannot avoid the wakeup in this case due to how
    inotify works).  That's probably pretty theoretical, though,
    since files
    in /usr don't change much and for the home directory we're likely to
    have at least ~/.config and ~/.local existing.

    https://bugzilla.gnome.org/show_bug.cgi?id=736350

 gio/gdesktopappinfo.c | 88
 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 85 insertions(+), 3 deletions(-)

commit 2f55c66c64d77de9fa7d5524468d424071aecc44
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 9 13:58:18 2014 -0400

    apps test: add new "monitor" subcommand

    Waits until something modifies a desktop directory, then exits.

    https://bugzilla.gnome.org/show_bug.cgi?id=736350

 gio/tests/apps.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 9ac7d51a8086dece5994da4899fb07b223bd2ff7
Author: Yuri Myasoedov <ymyasoedov@yandex.ru>
Date:   Tue Sep 9 17:04:40 2014 +0400

    Updated Russian translation

 po/ru.po | 790
 +++++++++++++++++++++++++++------------------------------------
 1 file changed, 335 insertions(+), 455 deletions(-)

commit 8df2cca08a5c06286303b39a34121c7e6925bf15
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Sep 7 18:34:26 2014 +0200

    Fix minor mem leak in test case

 gio/tests/simple-proxy.c | 2 ++
 1 file changed, 2 insertions(+)

commit 5bb62d077b7882a105ac2468f4d152bc5e557d7d
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Wed Sep 3 08:12:01 2014 +0200

    GThreadPool: expand g_thread_pool_new docs

 glib/gthreadpool.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit aef0e4b7f3c7a33cd9d6c370fdad2b6f7d725f15
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 7 22:50:36 2014 -0400

    Fix docs to talk about --enable-coverage

    The configure options to turn on coverage testing got renamed
    at some point, but the docs were not updated. Fix that.

    https://bugzilla.gnome.org//show_bug.cgi?id=735915

 docs/reference/glib/building.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 281fdd372ea65af230074fe95c8dd5d664809f05
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Sun Sep 7 12:55:20 2014 +0300

    Updated Latvian translation

 po/lv.po | 693
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 334 insertions(+), 359 deletions(-)

commit 09979125d816ac726641c93cb735f73ece35cbf5
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu Sep 4 21:35:07 2014 +0200

    Updated Galician translations

 po/gl.po | 261
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 135 insertions(+), 126 deletions(-)

commit 08efbda7333cf1d349719e699bbcbb63b8ef09e4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 4 13:17:27 2014 -0400

    GDesktopAppInfo: fix default app logic

    We use "tweaks" structures to track how a particular directory impacts
    the list of added, removed and default applications.  We maintain this
    set of tweaks for each directory, in a hash table, keyed by unaliased
    mime type name, in order to facilitate fast lookups.

    A typo in the logic for creating and maintaining the uniqueness
    of these
    structures was causing the default app to be selected incorrectly from
    time to time.  Fix that.

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e763d93456881cb45a28a4c5c566d53128633aaa
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Mon Sep 1 18:42:43 2014 +0200

    GCredentials: credentials messages are not correctly supported
    on NetBSD

    https://bugzilla.gnome.org/show_bug.cgi?id=735819

 gio/gcredentialsprivate.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7dd3397820f5dcbcd523432aadf5897b58f6eeb8
Author: Andika Triwidada <andika@gmail.com>
Date:   Wed Sep 3 13:49:48 2014 +0000

    Updated Indonesian translation

 po/id.po | 682
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 348 insertions(+), 334 deletions(-)

commit 0ba39c1c7a447930009935101e97ada0cc93cb5c
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Sep 3 03:10:27 2014 +0200

    Updated Polish translation

 po/pl.po | 654
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 334 insertions(+), 320 deletions(-)

commit d73886675ec391caa46f2b8004286b1342d1e6f3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 2 11:36:32 2014 -0400

    2.41.4

 NEWS         | 29 +++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 30 insertions(+), 1 deletion(-)

commit 5fe65ec2719ef842ccb4389d5ed0744965c21220
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Tue Sep 2 13:05:58 2014 +0900

    Updated Korean translation

 po/ko.po | 713
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 364 insertions(+), 349 deletions(-)

commit 62f0d6143a3ae9203638e5650ab2f6656222d7ce
Author: Claude Paroz <claude@2xlibre.net>
Date:   Mon Sep 1 09:30:32 2014 +0200

    Updated French translation

 po/fr.po | 657
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 336 insertions(+), 321 deletions(-)

commit d4298e5ed12afbc4966d3ec61a34eb5f31431729
Author: Christian Kirbach <Christian.Kirbach@gmail.com>
Date:   Sun Aug 31 22:00:45 2014 +0000

    Updated German translation

 po/de.po | 2101
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1158 insertions(+), 943 deletions(-)

commit a78443a1e48409d32eb2b24b52dad03ae2231e10
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 29 15:12:31 2014 -0400

    Don't mark GThread struct as deprecated

    Having a definition of struct _GThread inside a deprecation
    ifdef confuses gtk-doc into marking it as deprecated. Avoid this.

    https://bugzilla.gnome.org//show_bug.cgi?id=735297

 glib/deprecated/gthread.h | 4 ++++
 1 file changed, 4 insertions(+)

commit 325ffb376c971ab86b709144f35eab5cea1cf482
Author: Maria  Mavridou <mavridou@gmail.com>
Date:   Thu Aug 28 21:25:31 2014 +0000

    Updated Greek translation

 po/el.po | 705
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 361 insertions(+), 344 deletions(-)

commit 0a37264fd1953845cc386bb4ff207294e691fee8
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Thu Aug 28 18:11:06 2014 +0300

    Updated Hebrew translation

 po/he.po | 477
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 243 insertions(+), 234 deletions(-)

commit f16d7f887e48ec3e9eacd6cae6aaa694beaeecad
Author: Manoj Kumar Giri <mgiri@redhat.com>
Date:   Wed Aug 27 13:34:53 2014 +0000

    Updated Oriya translation

 po/or.po | 2152
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1211 insertions(+), 941 deletions(-)

commit 369c8bd566ba76d0c87a92cdb6a1c8abe2599c61
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Tue Aug 26 17:27:23 2014 +0100

    GUnixMounts: Improve efficiency in polling case

    https://bugzilla.gnome.org/show_bug.cgi?id=583330

 gio/gunixmounts.c | 42 +++++++++++++++---------------------------
 1 file changed, 15 insertions(+), 27 deletions(-)

commit 35eaf037bdfca985abf5d349e7355f1d2ed9c77b
Author: Thomas Haller <thaller@redhat.com>
Date:   Fri Aug 1 16:59:36 2014 +0200

    gmacros.h: add G_GNUC_*_IGNORE_DEPRECATIONS macros for clang

    https://bugzilla.gnome.org/show_bug.cgi?id=734126

    Signed-off-by: Thomas Haller <thaller@redhat.com>

 glib/gmacros.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit cb320cb5feb78a5a06651d3223914d9099a6f212
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Aug 21 19:00:13 2014 +0100

    gsocketclient: Handle cancellation between CONNECTING and CONNECTED

    If a g_socket_client_connect_async() operation is cancelled between
    the
    CONNECTING and CONNECTED events (i.e. while in the
    g_socket_connection_connect_async() call), the code in
    g_socket_client_connected_callback() would previously unconditionally
    loop round and try the next socket address from the address enumerator
    (by calling enumerator_next_async()). This would correctly handle the
    cancellation and return from the overall task — but not before
    emitting
    a spurious RESOLVING event.

    Avoid emitting the spurious RESOLVING event by explicitly handling
    cancellation at the beginning of g_socket_client_connected_callback().

    https://bugzilla.gnome.org/show_bug.cgi?id=735179

 gio/gsocketclient.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 607d5a785891729889f1606e8d38edcc7332dfa1
Author: Marek Černocký <marek@manet.cz>
Date:   Fri Aug 22 08:08:51 2014 +0200

    Updated Czech translation

 po/cs.po | 413
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 211 insertions(+), 202 deletions(-)

commit c74af7369fb32791973e94bcd3c5f45ddd3f5d0b
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Thu Aug 21 17:06:03 2014 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 890
 ++++++++++++++++++++++-------------------------------------
 po/zh_TW.po | 891
 ++++++++++++++++++++++--------------------------------------
 2 files changed, 663 insertions(+), 1118 deletions(-)

commit bf9c8625048d2adc5cbc5893fa27e7e9a3a9ba3e
Author: Jonas Danielsson <jonas@threetimestwo.org>
Date:   Wed Aug 13 07:06:36 2014 -0400

    GApplication: Add g_application_add_main_option

    This function adds a single main option entry to be handeled by
    GApplication. The option entry has it arg_data field set to NULL
    and will be added to the applications packed_options.

    The rationale for this is that bindings will be able to add
    command line options even when they can't use the un-boxed struct
    GOptionEntry.

    https://bugzilla.gnome.org/show_bug.cgi?id=727455

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gapplication.c                  | 67
 +++++++++++++++++++++++++++++++++++--
 gio/gapplication.h                  |  9 +++++
 3 files changed, 75 insertions(+), 2 deletions(-)

commit 4f775b7b7ff38581b110ce1664451381ca3d88b6
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Mon Aug 18 21:48:28 2014 +0100

    GUnixMounts: Fall back to polling on systems without mtab

    This is necessary for many of the BSD family at least.

    https://bugzilla.gnome.org/show_bug.cgi?id=583330

 gio/gunixmounts.c | 103
 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 89 insertions(+), 14 deletions(-)

commit d964c7d6863758fca1e2e5ed18553d0cd76ea3bc
Author: ngoswami <ngoswami@redhat.com>
Date:   Mon Aug 18 15:44:42 2014 +0000

    Updated Assamese translation

 po/as.po | 1845
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 937 insertions(+), 908 deletions(-)

commit e0e52b60ea4c65d1f3660ff6b8c547c82665036b
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Mon Aug 18 14:08:41 2014 +0200

    docs: Fix broken gtk-doc formatting

 gio/fen/fen-kernel.c                 |  6 ++---
 gio/gdbusprivate.c                   |  4 ++--
 gio/gfileattribute.c                 | 44
 ++++++++++++++++++------------------
 gio/gresource.c                      |  2 +-
 gio/gunixmounts.c                    |  6 ++---
 gio/gwin32mount.c                    |  2 +-
 gio/gwin32volumemonitor.c            |  2 +-
 gio/kqueue/kqueue-thread.c           | 12 +++++-----
 gio/tests/gdbus-threading.c          |  2 +-
 gio/tests/test-io-stream.c           |  2 +-
 gio/tests/test-pipe-unix.c           |  4 ++--
 gio/win32/gwinhttpfile.c             |  2 +-
 gio/win32/gwinhttpfileinputstream.c  |  2 +-
 gio/win32/gwinhttpfileoutputstream.c |  2 +-
 gio/win32/gwinhttpvfs.c              |  2 +-
 15 files changed, 47 insertions(+), 47 deletions(-)

commit 4c8480e6fa9e7e0971bc800fee8a5f0aba67dd9a
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Sun Aug 17 22:54:22 2014 +0200

    docs: Add index for 2.42 api

 docs/reference/glib/glib-docs.xml       | 4 ++++
 docs/reference/gobject/gobject-docs.xml | 4 ++++
 2 files changed, 8 insertions(+)

commit 96af008bdfe53be2ea4ef719b8c8f2121c76a504
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Sun Aug 17 13:19:46 2014 +0200

    [l10n] Updated Catalan (Valencian) translation

 po/ca@valencia.po | 2479
 ++++++++++++++++++++++++++---------------------------
 1 file changed, 1215 insertions(+), 1264 deletions(-)

commit 7585cc49c7d8e016da99d9686af1ebdbe061b989
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sun Aug 17 13:19:42 2014 +0200

    [l10n] Updated Catalan translation

 po/ca.po | 650
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 331 insertions(+), 319 deletions(-)

commit e03fc7a522fd623bfe521ceb44ff51ca85c598b3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 16 08:59:40 2014 -0400

    Updates for 2.41.3

 NEWS | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit 01fec1f0d58c344eacae265440938eb7759b21db
Author: Christian Kirbach <christian.kirbach@gmail.com>
Date:   Fri Aug 15 17:56:35 2014 +0200

    Updated German translation

 po/de.po | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 52b5a06dea63c9489e76862f16895b08118aa63f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 13 09:55:11 2014 +0800

    Visual C++ Builds: Update README.txt's

    Update notes about usage of PCRE and for people attempting to
    build GLib
    on a Chinese, Japanese or Korean locale.

 build/win32/vs10/README.txt | 31 +++++++++++++++++++------------
 build/win32/vs9/README.txt  | 31 +++++++++++++++++++------------
 2 files changed, 38 insertions(+), 24 deletions(-)

commit b88fdf0b0f7e6acf109745322e27fe7869e5267e
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 12 07:50:20 2014 -0400

    docs: hyphenate "High-level" and "Low-level"

 docs/reference/gio/gio-docs.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3d89041220a2a783b5706763b35778f9154c0883
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Aug 8 17:39:22 2014 +0800

    MSVC Builds: Generate glib-mkenums If Possible

    As glib-mkenums would likely be used in the building of the other
    components of the stack, such as Cogl, Clutter and
    gsettings-desktop-schemas, generate that using a Python script
    (if Python
    can be found) and "install" it.

 build/win32/Makefile.am                    |  3 +-
 build/win32/process_in_win32.py            | 77
 ++++++++++++++++++++++++++++++
 build/win32/setup.py                       | 35 +-------------
 build/win32/vs10/glib-gen-srcs.props       |  4 ++
 build/win32/vs10/glib-install.props        |  2 +
 build/win32/vs10/glib-version-paths.props  |  4 ++
 build/win32/vs10/gobject.vcxproj.filtersin |  5 +-
 build/win32/vs10/gobject.vcxprojin         | 26 ++++++++--
 build/win32/vs9/glib-gen-srcs.vsprops      | 20 ++++----
 build/win32/vs9/glib-install.vsprops       |  1 +
 build/win32/vs9/glib-version-paths.vsprops |  4 ++
 build/win32/vs9/gobject.vcprojin           | 42 ++++++++++++++--
 12 files changed, 167 insertions(+), 56 deletions(-)

commit 3e2735f4680b9f46548e7d039b0241cd24aee162
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Mon Jun 23 11:39:04 2014 +0200

    gtype: Fast-path for g_type_is_a

    Do I really need to explain why ?

    https://bugzilla.gnome.org/show_bug.cgi?id=732085

 gobject/gtype.c | 3 +++
 1 file changed, 3 insertions(+)

commit 4b5bdf6cebc4c1b7c6db7e23c678cc2f5003e757
Author: Andre Moreira Magalhaes (andrunko)
<andre.magalhaes@collabora.co.uk>
Date:   Tue Jul 29 21:04:48 2014 -0300

    Do not crash when checking whether an instance type is of a given
    fundamental.

    Not all instances have a TypeNode associated (e.g. GstEvent), so
    lets check if node is available
    before trying to use it.

    This crash can be easily reproduced by creating an event with
    gst_event_new_eos and using
    G_IS_OBJECT on the event instance.

    https://bugzilla.gnome.org/show_bug.cgi?id=733982

 gobject/gtype.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 5053054c629c3ead90ec3c6fa1fc0fa642476d46
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Wed Aug 6 14:15:40 2014 +0200

    Updated Slovenian translation

 po/sl.po | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 3c6efd4d5077862adc918c651ab7c49dc133d643
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon Apr 21 15:00:18 2014 +0000

    Make sure compiled resources only have / as dirsep

    https://bugzilla.gnome.org/show_bug.cgi?id=725511

 gio/glib-compile-resources.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b637714ded46a05a98fb92b7b96e69fe9b215307
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Tue Aug 5 21:03:32 2014 +0200

    Updated Slovenian translation

 po/sl.po | 70
 ++++++++++++++++++++++++----------------------------------------
 1 file changed, 26 insertions(+), 44 deletions(-)

commit 10504edfaae764c8d32213d40db0438a8d392207
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Tue Aug 5 14:02:42 2014 +0200

    Updated Basque language

 po/eu.po | 599
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 307 insertions(+), 292 deletions(-)

commit 14f2376c8a06f0936d734ec6a7e0e836072acf65
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Wed Jul 30 07:15:39 2014 +0000

    Change W32 console detection to look at the window, not stdout

    Check for console window being attached to the process, not for stdout
    being redirected into a console window.

    https://bugzilla.gnome.org/show_bug.cgi?id=733960

 glib/gspawn-win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4f734873006729d18551c215d9dcf22392dbeaf3
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon Apr 21 15:44:47 2014 +0000

    Fix tests to compile again - add missing headers to W32, call  correct
    process-id-getting function

    https://bugzilla.gnome.org/show_bug.cgi?id=725513

 gio/tests/filter-cat.c           | 1 +
 gio/tests/gsubprocess-testprog.c | 2 ++
 gio/tests/win32-streams.c        | 6 +++---
 glib/tests/fileutils.c           | 2 +-
 4 files changed, 7 insertions(+), 4 deletions(-)

commit 7e0cb48dee9a8ecd87d403b7941ad3209eee658c
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat Aug 2 12:36:37 2014 +0000

    Silence a controversial warning in win_iconv

    https://bugzilla.gnome.org/show_bug.cgi?id=711547

 glib/win_iconv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 42ddcc6ff22c66f1ded9d7a3879df39988531878
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat Aug 2 12:35:43 2014 +0000

    Silence some uncontroversial warnings

    https://bugzilla.gnome.org/show_bug.cgi?id=711547

 gio/gresolver.c | 2 ++
 glib/gmain.c    | 1 +
 glib/gutils.c   | 3 ++-
 3 files changed, 5 insertions(+), 1 deletion(-)

commit 40650e33239994237917322d4cfecc34e4cc4394
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat Aug 2 12:22:16 2014 +0000

    Fix printf-tests on W32 by ifdefing the expected output

    https://bugzilla.gnome.org/show_bug.cgi?id=725515

 glib/tests/test-printf.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit 6680ff1ee93127b247f8ca32958620ec7db6af48
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon Apr 21 15:55:59 2014 +0000

    Save errno and pass it along to make sure gettext does not change it

    https://bugzilla.gnome.org/show_bug.cgi?id=725514

 glib/gfileutils.c | 58
 +++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 41 insertions(+), 17 deletions(-)

commit 786590fe93682c9b28136ccf65d870b23dd807f7
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jul 29 18:59:21 2014 +0200

    win32: improve the package installation dir lookup

    As an example, the core of gedit is in a private library
    placed in %INSTALLDIR%/lib/gedit/libgedit.dll

    Before this patch we would get %INSTALLDIR%/lib/gedit as the
    installation package dir, while what we actually want is to get
    %INSTALLDIR%

    https://bugzilla.gnome.org/show_bug.cgi?id=733934

 glib/gwin32.c | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

commit 905a8e655c4f50f655cbd90455b26a37b977c563
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Jul 31 10:12:59 2014 +0000

    Ensure critial sections are released before returning

    https://bugzilla.gnome.org/show_bug.cgi?id=734035

 gio/gregistrysettingsbackend.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit ad4f7846569980c54c29aac55ace01b20ba9b3d2
Author: Olav Vitters <olav@vitters.nl>
Date:   Wed Jul 30 15:41:13 2014 +0200

    doap category core

 glib.doap | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b1dd594a22e3499caafdeccd7fa223a032b9e177
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Jul 30 12:32:21 2014 +0200

    Remove atomics from g_clear_object/g_clear_pointer

    Practically no caller of these functions require atomic behaviour,
    but the atomics are much slower than normal operations, which makes
    it desirable to get rid of them. We have not done this before because
    that would be a break of the ABI.

    However, I recently looked into this and it seems that even if the
    atomics *are* used for g_clear_* it is not ever safe to use this.  The
    atomics protects two threads that are racing to free a global/shared
    object from freeing the object twice. However, any *user* of the
    global
    object have no protection from the object being freed while in use,
    because there is no paired operation the reads and refs the object
    as an atomic unit (nor can such an operation be implemented using
    purely atomic ops).

    So, since nothing could safely have used the atomic aspects of these
    functions I consider it acceptable to just remove it.

    https://bugzilla.gnome.org/show_bug.cgi?id=733969

 glib/gmem.c       | 16 +++++-----------
 glib/gmem.h       | 13 ++++++-------
 gobject/gobject.c |  3 ---
 3 files changed, 11 insertions(+), 21 deletions(-)

commit 2266f6b743a5a4e4d560238ebd085bf0e1ad8934
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Jul 30 12:09:01 2014 +0200

    tests/gobject/performance: Clean up and add refcount performance test

 tests/gobject/performance.c | 129
 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 119 insertions(+), 10 deletions(-)

commit 03b510fde17b130dd7273cee6a65e2d54ff85fff
Author: David King <amigadave@amigadave.com>
Date:   Wed May 7 10:25:40 2014 +0100

    gfile: Fix memory leak in g_file_move()

    https://bugzilla.gnome.org/show_bug.cgi?id=729703

 gio/gfile.c | 4 ++++
 1 file changed, 4 insertions(+)

commit e15ba53cdab91587721a38efa4eeea9acf871860
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 27 10:08:00 2014 +0200

    configure.ac: fix typo in last patch

    20e709d8b92e28d162c78b147afe4040e3a48b85 fixed some issues in
    configure.ac but also introduced a typo.  Fix that.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d36f4ec593e877b2f077df116f47fb6b0c08a5f8
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Jul 27 01:03:32 2014 +0300

    Updated Lithuanian translation

 po/lt.po | 169
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 89 insertions(+), 80 deletions(-)

commit 20e709d8b92e28d162c78b147afe4040e3a48b85
Author: Alessandro Di Federico <ale+gnomebz@clearmind.me>
Date:   Fri Jul 25 04:16:00 2014 -0400

    configure: Remove unintentional nested functions

    More of the same as 9362a1b2d987125a8aa0723b916d29aaaece329a.

    https://bugzilla.gnome.org/show_bug.cgi?id=733715

 configure.ac | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 2268628565e4fb098252e782e58709d6b525b48a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 24 11:36:57 2014 +0200

    gdbus: Properly fix encoding of double arrays

    It turns out that this bug actually would (sometimes) impact any
    sort of
    fixed-sized array with an alignment requirement of 8 due to
    incorrectly
    counting the alignment inserted between the (aligned 4) array
    length and
    the actual data.

    Fix this properly and remove the exception for doubles.

    https://bugzilla.gnome.org/show_bug.cgi?id=732754

 gio/gdbusmessage.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

commit 7009e317d84f661ec63b85edb436d3a2727be488
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:04:44 2014 -0400

    gtlsinteraction: Hoist precondition before allocation

    We're using a precondition in the middle of the function, and if we
    hit it, we leak the closure.

    Let's allocate the closure per path; this allows us to allocate it
    before path-specific preconditions, and better avoids a pointless
    malloc/free pair in the unhandled case.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gtlsinteraction.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 627b49b39039d43a784fa9890f473d1ca8d52417
Author: Stef Walter <stefw@gnome.org>
Date:   Tue Jul 22 21:29:27 2014 +0200

    gio: Fix regression encoding an array of doubles

    Take the simple slow path in this case. Encoding a double
    takes special precautions as you can see in append_value_to_blob()
    and friends.

    https://bugzilla.gnome.org/show_bug.cgi?id=732754

 gio/gdbusmessage.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit b6c1d696a98b7fc4e691e8acc9f88b7bc8d57e9d
Author: Stef Walter <stefw@gnome.org>
Date:   Tue Jul 22 21:13:50 2014 +0200

    gio: Add regression test for double array encoding

    https://bugzilla.gnome.org/show_bug.cgi?id=732754

 gio/tests/gdbus-serialization.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit d0083f7e2dd621c6b78496bdb6ecf5d580c5e110
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Wed Jul 23 09:27:31 2014 -0400

    Revert "gatomic: statically assert that our assumptions hold"

    This reverts commit 7269d75321b9d2a967a59fb35f243397f577eb41.

    Adding G_STATIC_ASSERT() into a header file caused compilation
    problems with at least one app (Anjuta). Reverting to keep
    GNOME continuous testing running.

    https://bugzilla.gnome.org/show_bug.cgi?id=730932

 glib/gatomic.h | 6 ------
 1 file changed, 6 deletions(-)

commit d40a2df0886cdd5ba5aabee9e81ab3d3859302d6
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Jul 23 14:57:15 2014 +0200

    Updated Norwegian bokmål translation.

 po/nb.po | 598
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 305 insertions(+), 293 deletions(-)

commit 91821974e1e9e71fb5f2c623f68c0c9e2a6a59a9
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:31:25 2014 -0400

    gcredentials: Add assertion to pacify static analysis

    This should always be true.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gcredentials.c | 1 +
 1 file changed, 1 insertion(+)

commit 8ebd287fe6ae7aee11038679d086a880c13845a2
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:23:47 2014 -0400

    gkeyfilesettingsbackend: Add assertion for known-true condition

    We know the group exists since we enumerated it.  Should silence a
    static analysis warning.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gkeyfilesettingsbackend.c | 1 +
 1 file changed, 1 insertion(+)

commit 7ea4bf3f309232d85b7b60f6ac6295e679a22ed8
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:22:23 2014 -0400

    glocalfileinfo: Suppress static analysis return value warning

    Just ignore the return value, since we're checking contents != NULL.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/glocalfileinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5fe71c7c5c44b429eebba028cca6ecdc1356b50c
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:21:31 2014 -0400

    gsettingsschema: Suppress return value check

    We're intentionally ignoring the value here.  Pacifies static
    analysis.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gsettingsschema.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit acdcf5cd50ccbf76fb4d74dbef4e768d5980e46e
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:14:46 2014 -0400

    gapplicationimpl-dbus: Fix leak of fd list object

    Spotted by static analysis.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gapplicationimpl-dbus.c | 1 +
 1 file changed, 1 insertion(+)

commit 3fb44c4c713847059aac22c4c71074e14d11aceb
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:11:25 2014 -0400

    gsettingsschema: Close directory

    Spotted by static analysis.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gsettingsschema.c | 2 ++
 1 file changed, 2 insertions(+)

commit e55a953642a9e402f4363f9fa347b6061dd78990
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:08:00 2014 -0400

    gthreadedresolver: Unref unexpected address

    I don't believe any real app would hit this, but we do leak
    if it occurs.

    Spotted by static analysis.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gthreadedresolver.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 49a5d0f6f2aed99cd78f25655f137f4448e47d92
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 14:00:23 2014 -0400

    gfileutils: Add missing g_free() in error path

    Discovered by static analysis.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 glib/gfileutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit feec280b7c5c7b9198e34b10b4f5764c9c3c4505
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 22 13:58:53 2014 -0400

    gfile: Initialize variable to pacify static analysis

    Not a real bug, but will quiet the analysis.

    https://bugzilla.gnome.org/show_bug.cgi?id=733576

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9060a85193a0e15f67568ea6cac3a082fbcab30f
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Sun Jul 20 12:41:57 2014 +0100

    glib-init: statically assert that we have 8-bit bytes

    configure.ac assumes this.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=730932

 configure.ac     | 1 +
 glib/glib-init.c | 3 +++
 2 files changed, 4 insertions(+)

commit 7269d75321b9d2a967a59fb35f243397f577eb41
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Sun Jul 20 12:39:24 2014 +0100

    gatomic: statically assert that our assumptions hold

    This code assumes that int is exactly 4 bytes, and that pointers
    are either 4 or 8 bytes, on platforms with __ATOMIC_SEQ_CST.
    In practice this is going to be true.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=730932

 glib/gatomic.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 19e0cdd7a08af4e9ea8b15f6f82199f93bb4355d
Author: Daniel Mustieles <dnaiel.mustieles@gmail.com>
Date:   Tue Jul 22 12:29:34 2014 +0200

    Updated Spanish translation

 po/es.po | 496
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 252 insertions(+), 244 deletions(-)

commit 015db2d2af3d5a3f31909c7ffb5307e5141d8fbd
Author: Dan Winship <danw@gnome.org>
Date:   Wed May 7 09:17:05 2014 -0400

    gio/tests/socket: add some missing g_assert_no_error()s

 gio/tests/socket.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 634b69219979c084837c59874e5b2aec01a1d3e4
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 1 09:59:05 2014 -0400

    gsocket: Set SO_NOSIGPIPE on sockets on Darwin

    This is a best-effort approach to preventing SIGPIPE emissions
    on Darwin
    and iOS, where they continue to be intercepted by the Xcode debugger
    even if SIG_IGN prevents them crashing the program.

    This is similar to the existing code which sets MSG_NOSIGNAL on all
    send() calls. MSG_NOSIGNAL doesn't exist on Darwin though.

    Based on a patch from Philip Withnall.

    https://bugzilla.gnome.org/show_bug.cgi?id=728730

 gio/gsocket.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit 7b34e07ac4576b75bcf932fd8dfeca23242ea1b1
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 1 09:58:07 2014 -0400

    gsocket: move set_fd_nonblocking() into g_socket_constructed()

 gio/gsocket.c | 58
 +++++++++++++++++++++++++++-------------------------------
 1 file changed, 27 insertions(+), 31 deletions(-)

commit ccf5959bf490e1124f66e971c9491c07ff86812f
Author: Enrico Nicoletto <liverig@gmail.com>
Date:   Fri Jul 18 18:49:04 2014 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 460
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 235 insertions(+), 225 deletions(-)

commit ebe47823db6409eda6e391826666b3eb8dedb692
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jul 18 08:49:19 2014 +0100

    ginetaddress: Add a precondition to g_inet_address_new_from_string()

    Ensure that the input string is non-NULL, as inet_pton() does not like
    NULL strings.

    https://bugzilla.gnome.org/show_bug.cgi?id=733345

 gio/ginetaddress.c | 2 ++
 1 file changed, 2 insertions(+)

commit 641864bcba5cc85c0a5ab3a62b3781ca90271acb
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Thu Jul 17 13:27:54 2014 +0200

    socketservice: minor cleanup

 gio/gsocketservice.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 79e63d4e5dfbf42ecb001e8b698c32d0bc73117b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 14 10:48:09 2014 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 76ec61dee30b81d5b91df86b3f23060364efded9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 14 09:11:46 2014 -0400

    2.41.2

 NEWS | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

commit c7c4c3bf5e3fdb5f95f92e881743ef8e7ad779f1
Author: Marek Kasik <mkasik@redhat.com>
Date:   Mon Jul 14 15:37:06 2014 +0200

    Remove redundant checks before free

    Remove checks for NULL before g_free().

    https://bugzilla.gnome.org/show_bug.cgi?id=733156

 gio/fen/fen-kernel.c     | 4 +---
 gio/gdbusintrospection.c | 3 +--
 gio/gnetworkaddress.c    | 3 +--
 gio/gnetworkservice.c    | 3 +--
 4 files changed, 4 insertions(+), 9 deletions(-)

commit 24d614357a1ab42af8a55db189a8ac05f67c013d
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Jul 14 08:54:45 2014 +0200

    gspawn-win32: do not rely on __argc and __argv global vars.

    Since we are getting passed Unicode values these global vars
    might not have the correct value. Instead always get the wide
    arguments
    and convert them to utf8 to use them.

    https://bugzilla.gnome.org/show_bug.cgi?id=733146

 glib/gspawn-win32-helper.c | 67
 +++++++++++++++++++++++-----------------------
 1 file changed, 34 insertions(+), 33 deletions(-)

commit d67813045dfd6336a6e109c4818990c3fb117ade
Author: Gergely POLONKAI <gergely@polonkai.eu>
Date:   Sat Jul 12 07:36:00 2014 +0000

    Fix typos in gbytes_hash and g_time_zone_find_interval docs

    https://bugzilla.gnome.org/show_bug.cgi?id=733084

 glib/gbytes.c    | 2 +-
 glib/gtimezone.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f62c8fce8e7f9ae102de308941423006e419cdf3
Author: SyncEvolution Nightly Testing <syncevolution@syncevolution.org>
Date:   Thu Jul 10 09:52:26 2014 +0000

    gio: avoid g_object_ref(NULL) in g_dbus_object_manager_client_finalize

    When establishing a D-Bus connection failed,
    g_dbus_object_manager_client_finalize()
    calls g_object_ref(manager->priv->connection) when that pointer
    is NULL,
    which is considered and logged as error by glib.

    https://bugzilla.gnome.org/show_bug.cgi?id=732984

 gio/gdbusobjectmanagerclient.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b458d3da325c94308f442cebe897c6648938c119
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 14 08:27:30 2014 -0400

    Fix a failing testcase

    This fix is a bit of a blind guess, I couldn't really discern
    from recent commits whether this is an expected behavior change
    or not.

 gio/tests/desktop-app-info.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit 60fe7b46d2a500bd6a5cd47105dc3172acf9c7a9
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Jul 10 17:09:07 2014 +0100

    docs: Use "Returns:" instead "Return:"

 glib/gdataset.c   | 2 +-
 gobject/gobject.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 02c6e908d7a1ea85ba4fdc39e2c4f8d45d8be739
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Wed Jul 9 10:48:47 2014 -0500

    Fix typo

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d0e295fb858cce1cba3f45019a844521b735777
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 9 11:19:58 2014 -0400

    GDBusMessage: add some G_UNLIKELY on error paths

    More for documentation than anything else...

 gio/gdbusmessage.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 636cd00c213995ffecd302369515bc3b36257589
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Sat Jul 5 15:03:22 2014 +0100

    GCond (linux): fix g_cond_wait_until() return value on timeout

    It should return FALSE on timeout (and only on timeout), and
    TRUE otherwise.

    https://bugzilla.gnome.org/show_bug.cgi?id=731986

 glib/gthread-posix.c | 5 +++--
 glib/tests/cond.c    | 6 ++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

commit ecf1359191b2f796a7d63288652dd1a93525417d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 29 17:47:10 2014 -0400

    GMutex (linux): detect and report some errors

    Detect the following two errors:

     - attempting to unlock a mutex that is not locked

     - attempting to clear a mutex that was not initialised or was
       initialised but is still locked

    Both of these are fatal errors.  We avoid using g_error() here because
    doing so would involve calls back into the GMutex code, and if things
    are going off the rails then we want to avoid that.

    https://bugzilla.gnome.org/show_bug.cgi?id=731986

 glib/gthread-posix.c | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

commit 49b59e5ac4428a6a99a85d699c3662f96efc4e9d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 10 08:28:32 2014 -0400

    GLib: implement GMutex natively on Linux

    If we have futex(2) then we can implement GMutex natively and gain a
    substantial performance increase (vs. using pthreads).

    This also avoids the need to allocate an extra structure in memory
    when
    using GMutex or GCond: we can use the structure directly.

    The main reason for the increase in performance is that our
    implementation can be made more simple: we don't need to support the
    array of options on pthread_mutex_t (which includes the possibility,
    for
    example, of being recursive).

    The result is a ~30% improvement in uncontended cases and a much
    larger
    increase (3 to 4 times) in contended cases for a simple testcase.

    https://bugzilla.gnome.org/show_bug.cgi?id=731986

 glib/gthread-posix.c | 208
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 207 insertions(+), 1 deletion(-)

commit be0b921115c319186c678a054958f405b8c90a2b
Author: Dan Winship <danw@gnome.org>
Date:   Thu Apr 10 11:37:23 2014 -0400

    Fix up failure-to-see-expected-message logging

    When GLib had been told to expect message X, but then actually saw
    message Y, it would log the "did not see expected message" error with
    message Y's log level and domain, which makes no sense. Change it to
    log with domain "GLib" and G_LOG_LEVEL_CRITICAL instead.

    Also, include the expected domain in the error message, so that if
    that's the reason why the expectation didn't match, you can tell that
    from the error message.

    Update glib/tests/testing.c for these changes; for all other test
    programs in GLib and elsewhere, this change should not break any
    existing tests, it should only improve the output on failure.

    https://bugzilla.gnome.org/show_bug.cgi?id=727974

 glib/gmessages.c     | 10 ++++++----
 glib/tests/testing.c | 12 +++++++++---
 2 files changed, 15 insertions(+), 7 deletions(-)

commit 5463c8cedbdf9ea2829f83c53876f21b34f57250
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 4 15:00:49 2014 -0400

    GDBusMessage: fast-path decoding of fixed arrays

    Instead of creating a separate GVariant for each of the 'y's in an
    'ay',
    use g_variant_new_fixed_array().

    https://bugzilla.gnome.org/show_bug.cgi?id=732754

 gio/gdbusmessage.c | 145
 +++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 114 insertions(+), 31 deletions(-)

commit 958da1e9dc82fbb91862501226b8928faf2f9558
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 4 18:42:14 2014 -0400

    GDBusMessage: fast-path encoding of fixed arrays

    Instead of handling each item separately, handle the array as a whole.

    https://bugzilla.gnome.org/show_bug.cgi?id=732754

 gio/gdbusmessage.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

commit f8d42cefbddf4930e40d6866e7002e556186763e
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 9 10:36:57 2014 -0400

    gtask: fix leak in example code

 gio/gtask.c | 1 +
 1 file changed, 1 insertion(+)

commit e608ec7b2e47d29fa189fca6e97f484f41c115a4
Author: Tristan Van Berkom <tristan@upstairslabs.com>
Date:   Tue Jul 8 13:13:51 2014 -0300

    Added missing "Since:" annotations for g_input_stream_read_bytes()
    APIs.

 gio/ginputstream.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit d108ada4b98cb50fb1517f55c4f09acdaf3de471
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 4 14:59:17 2014 -0400

    GDBusMessage: simplify byteswapping

    Remove some duplication by simplifying our byteswap checks.

    https://bugzilla.gnome.org/show_bug.cgi?id=732754

 gio/gdbusmessage.c | 108
 +++++++++++++++++------------------------------------
 1 file changed, 35 insertions(+), 73 deletions(-)

commit 58250555224ffcd22be24b1da9025564090cdba0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 4 19:18:40 2014 -0400

    gapplication tests: test resource base path

    Run some cases to make sure resource base path is behaving as
    we expect
    it to.

    https://bugzilla.gnome.org/show_bug.cgi?id=722092

 gio/tests/gapplication.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit cea9de93c8838099661f5b54462f9c4b6410bfc9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 4 09:53:51 2014 -0400

    GApplication: add a "resource base path"

    We don't use this for anything inside of GApplication yet, but Gtk is
    about to start using it to find various bits of the application
    (such as
    its menus, icons, etc.).

    By default, we form the base path from the application ID to end
    up with
    the familiar /org/example/app style.

    https://bugzilla.gnome.org/show_bug.cgi?id=722092

 docs/reference/gio/gio-sections.txt |   3 ++
 gio/gapplication.c                  | 104
 ++++++++++++++++++++++++++++++++++++
 gio/gapplication.h                  |   6 +++
 3 files changed, 113 insertions(+)

commit 60226a0386158e6969ec406e8af5efde4085d15b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jul 4 14:04:17 2014 +0100

    ginetsocketaddress: Explicitly initialise flags for getaddrinfo()

    This is not a functional change, as the hints field is static
    and hence
    automatically initialised to zero — which happens to be what
    AF_UNSPEC
    and the unspecified protocol are defined as. However, it’s best
    to be
    explicit about this, in case AF_UNSPEC is _not_ defined as zero.

    https://bugzilla.gnome.org/show_bug.cgi?id=732739

 gio/ginetsocketaddress.c | 2 ++
 1 file changed, 2 insertions(+)

commit 29c48f623fdcf516d6123ee9544087e1f512ed53
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Sat Jul 5 20:27:58 2014 -0500

    Fix typo

 gobject/gclosure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 46ca06228486ce725bf202d3abb0a55a22250ba2
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Jul 5 13:41:58 2014 +0300

    Updated Lithuanian translation

 po/lt.po | 583
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 293 insertions(+), 290 deletions(-)

commit 97f34bacce1fa59c6b3ee05bdbc2ab96a8ad9a4e
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Jul 3 19:53:51 2014 +0200

    doc: small improvement and fixes

    - Add an example to g_strsplit(), like it is done for
    g_strsplit_set().

    - GTK-Doc generates a list if a "1." is at the beginning of a line.

    https://bugzilla.gnome.org/show_bug.cgi?id=732704

 glib/giochannel.c | 4 ++--
 glib/gstrfuncs.c  | 6 +++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 48c7d041e2d046462156056d297f609465fce6ab
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Jul 3 18:02:31 2014 +0200

    doc: improve doc of g_input_stream_read()

    I recently needed to nul-terminate the returned buffer, and I wasn't
    sure if g_input_stream_read() does that or not. I've checked
    glocalfileinputstream.c, which calls read(2) which doesn't
    nul-terminate
    the buffer. So I assume it's the same behavior for all GInputStream
    subclasses.

    https://bugzilla.gnome.org/show_bug.cgi?id=732704

 gio/ginputstream.c | 3 +++
 1 file changed, 3 insertions(+)

commit b0c7221c559693baf0735d6562940e0eec0a798c
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Jul 3 15:45:11 2014 +0200

    doc: improve doc of g_subprocess_wait()

    When using this API, I wasn't sure what the cancellable does. I think
    it's generally desirable to kill the subprocess if the wait
    operation is
    cancelled, since in this case the application is no longer
    interested by
    the subprocess.

    https://bugzilla.gnome.org/show_bug.cgi?id=732704

 gio/gsubprocess.c | 3 +++
 1 file changed, 3 insertions(+)

commit c3842d1969feace4bfb12919be730e75e53877d9
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Tue Jul 1 23:52:19 2014 -0500

    Fix old wiki links

 README.win32                         | 4 ++--
 build/win32/vs10/README.txt          | 2 +-
 build/win32/vs9/README.txt           | 2 +-
 docs/reference/gio/gdbus-codegen.xml | 2 +-
 docs/reference/gobject/tut_tools.xml | 2 +-
 gio/gactiongroupexporter.c           | 2 +-
 gio/gapplicationimpl-dbus.c          | 2 +-
 7 files changed, 8 insertions(+), 8 deletions(-)

commit 451f732e4f80523a14628375a981566c2d6b0bb8
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Jul 1 18:01:59 2014 +0200

    Updated Galician translations

 po/gl.po | 675
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 340 insertions(+), 335 deletions(-)

commit 98d37f203e1f60f45a761f3be74a5e6864f5d9d6
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jul 1 16:08:21 2014 +0800

    MSVC 2012/2013 Support: Update Property Sheet Creation

    Be a bit more careful when copying and updating the property sheets,
    so that
    we don't accidently change fields with '10' in them that are
    actually not
    indicating the Visual Studio version.

 build/Makefile-newvs.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 46df528adf7ce75be4bbdd3f97349670cb24a018
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Mon Jun 30 14:46:32 2014 +0200

    glib: Fix make dist

 glib/Makefile.am | 2 --
 1 file changed, 2 deletions(-)

commit 72de983469ce1db81134ed3b5e2af77b56170bf3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jun 30 17:31:57 2014 +0800

    valgrind.h: Disable Valgrind features on x64 Visual C++ Builds

    ...so that builds of GLib on x64 Visual C++ can be restored, as
    the build
    fails in line 449 of valgrind.h as it only supports MinGW/GCC for x64
    Windows and simply will not build otherwise.  Make the x64 Visual C++
    builds compile again by defining NVALGRIND when GLib is being
    built for
    Windows on x64 Visual C++.

    https://bugzilla.gnome.org/show_bug.cgi?id=732465

 glib/valgrind.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit b39b19ca20159597ad7faece38de53a2939244c5
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 29 20:17:57 2014 +0200

    unicode: Update test data files for unicode 7.0.0

    https://bugzilla.gnome.org/show_bug.cgi?id=731929#c2

 tests/casefold.txt |  51 +++++++++++++++++-
 tests/casemap.txt  | 153
 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 196 insertions(+), 8 deletions(-)

commit ffe286e647ce9ba9bb8e1631ba3cf0194038f438
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Fri Jun 27 20:43:39 2014 +0200

    doc: improve doc of g_file_equal()

    A critical message is printed when a parameter of g_file_equal()
    is not
    a GFile. When we read the documentation before this commit, we
    can think
    that passing NULL or another type than GFile is allowed, but it is not
    the case.

    Another option is to allow NULL parameters. But for consistency with
    e.g. g_str_equal(), it's probably better to keep the code as is.

    https://bugzilla.gnome.org/show_bug.cgi?id=732357

 gio/gfile.c | 1 -
 1 file changed, 1 deletion(-)

commit 82352ab8e7bc0d499a1e1a805ba4c5f896d3ba8c
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Sun May 11 18:51:29 2014 +0200

    doc: various improvements

    - g_subprocess_launcher_spawn() and spawnv(): there is no other way
      AFAIK to create a GSubprocess from a launcher. So these
      functions are not "convenience helper".

    - annotate optional arguments for g_shell_parse_argv().

    - other trivial fix

    https://bugzilla.gnome.org/show_bug.cgi?id=732357

 gio/gsubprocess.c         | 2 +-
 gio/gsubprocesslauncher.c | 6 ++----
 glib/gshell.c             | 7 ++++---
 3 files changed, 7 insertions(+), 8 deletions(-)

commit 42e04f4effe2a8759392f1485b5f4df85aefe48e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 29 11:34:16 2014 -0400

    GActionEntry: one more docs fix

    Hyperlink "GVariant text format".

 gio/gactionmap.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit c78037773b574b6f15915c23299eb7a2ff3c1900
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 29 11:13:25 2014 -0400

    GActionEntry: improve documentation

    Document that giving %NULL for the activate handler is supported since
    GLib 2.40.  We documented this on GSimpleAction itself (where the
    default handler functionality is implemented) but expecting the
    user to
    dig that up is asking a bit much.

    Also, add some more explicit documentation about the conditions under
    which each field is expected to be filled in.

    https://bugzilla.gnome.org/show_bug.cgi?id=732429

 gio/gactionmap.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 1b3deb5f56a6d73fadb4303a02bf52a67bdefaf5
Author: Koop Mast <kwm@rainbow-runner.nl>
Date:   Sun Feb 23 01:09:45 2014 +0100

    Change gio/data-to-c.pl to /usr/bin/env perl.

    On FreeBSD perl gets installed in /usr/local, And a compat symlink in
    /usr/bin. However this symlink might go away in the future.

    https://bugzilla.gnome.org/show_bug.cgi?id=724986

 gio/data-to-c.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit afce39c228eacfecb45bd9de0f58e7ca767e36ed
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Tue Apr 15 15:09:22 2014 +0100

    gcredentials: add NetBSD support

    https://bugzilla.gnome.org/show_bug.cgi?id=728256

 gio/gcredentials.c            | 28 ++++++++++++++++++++++++++++
 gio/gcredentialsprivate.h     |  8 ++++++++
 gio/gioenums.h                |  2 ++
 gio/gsocket.c                 | 17 +++++++++++++++++
 gio/gunixcredentialsmessage.c |  2 ++
 gio/tests/credentials.c       |  8 ++++++++
 6 files changed, 65 insertions(+)

commit 01098e34c188b4ec93944e14dbece6818d786aec
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Sun Jun 15 15:42:31 2014 +0200

    GNotification: add priority

    https://bugzilla.gnome.org/show_bug.cgi?id=731623

 gio/gfdonotificationbackend.c | 26 ++++++++++++++++++--
 gio/gioenums.h                | 26 ++++++++++++++++++++
 gio/gnotification-private.h   |  2 +-
 gio/gnotification.c           | 55
 ++++++++++++++++++++++++++++++++++---------
 gio/gnotification.h           |  7 +++++-
 gio/tests/gnotification.c     |  8 +++----
 6 files changed, 105 insertions(+), 19 deletions(-)

commit baef9d18116d55196f00847e0b96c317bab2238b
Author: Kang Hu <hukangustc@gmail.com>
Date:   Sat May 10 20:47:57 2014 +0800

    gobject: move _g_type_debug_flags from gtype.h to gtype-private.h

    _g_type_debug_flags is used internally to suport GOBJECT_DEBUG
    environment variable. it should never be exposed to the outside.

    https://bugzilla.gnome.org/show_bug.cgi?id=729914

 gobject/gtype-private.h | 2 ++
 gobject/gtype.h         | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 9f5afe3966d31ef6f1e880d950206a0325e6c777
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Sun Sep 22 23:34:27 2013 +0300

    glib/tests/mainloop: Acquire the context while asserting its state

    The iteration methods presume that the context is acquired.

    https://bugzilla.gnome.org/show_bug.cgi?id=699132

 glib/tests/mainloop.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit c0e8f8a8dbd0dc2c92cd7b7b450d624585570d05
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Tue Sep 17 09:07:07 2013 +0300

    A simple test for polling on a file-like descriptor

    https://bugzilla.gnome.org/show_bug.cgi?id=699132

 glib/tests/mainloop.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

commit 000737612852d76fd1b85b42363901ec6ab12bd9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 6 12:16:55 2014 -0400

    giochannel: avoid setting uninitialised length

    Our internal call to g_io_channel_read_line_backend() may return
    G_IO_STATUS_ERROR, in which case two things will be true:

     - the GError will have been set (if appropriate)

     - the &got_length return value may not have been set

    Since it's our convention to leave 'out' parameters untouched in
    exception cases, this is perfectly fine.  Unfortunately,
    g_io_channel_read_line(), in wrapping this internal function, always
    promotes the length parameter, even in the case of error.

    Stop doing that in order to avoid overwriting the callers's variable
    with junk in the error case.

    https://bugzilla.gnome.org/show_bug.cgi?id=731339

 glib/giochannel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 88b284c07051ccf5a7561d04236d83c8bb61993a
Author: Bastien Nocera <hadess@hadess.net>
Date:   Thu Apr 17 09:18:14 2014 +0200

    GDateTime: Add guards to g_date_time_new()

    https://bugzilla.gnome.org/show_bug.cgi?id=728401

 glib/gdatetime.c | 2 ++
 1 file changed, 2 insertions(+)

commit f18811f2dcca8e49f001d86541bfd05deb7290a9
Author: Florian Pelz <pelzflorian@googlemail.com>
Date:   Thu May 8 19:44:30 2014 +0200

    docs: Fix formatting of g_alloca documentation.

    https://bugzilla.gnome.org/show_bug.cgi?id=729825

 glib/galloca.h | 47 ++++++++++++++++++++---------------------------
 1 file changed, 20 insertions(+), 27 deletions(-)

commit cc38cb359fc4966cbd7616cac0bf867a31762235
Author: Daniel Macks <dmacks@netspace.org>
Date:   Tue Jun 10 13:43:27 2014 -0400

    Convert multiple #if/#endif to single #if/#elif/#endif

    https://bugzilla.gnome.org/show_bug.cgi?id=731424

 glib/gutils.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit ab9f63fadd8f769b2b2ae7c32a8cce42fac01451
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Sat Jan 4 17:42:23 2014 +0000

    gmessages: make g_assert_warning compiler friendly

    https://bugzilla.gnome.org/show_bug.cgi?id=720708

 glib/gmessages.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

commit dce88768dc9bedaa46eb310a1f64562ea1247b68
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 25 12:18:14 2014 +0200

    all: remove use of 'register' keyword

    We should have done this a decade ago...

    https://bugzilla.gnome.org/show_bug.cgi?id=730293

 glib/deprecated/gcompletion.c |   8 +--
 glib/gchecksum.c              |   2 +-
 glib/gdataset.c               |  10 ++--
 glib/gmessages.c              |  14 ++---
 glib/gpattern.c               |   4 +-
 glib/gstrfuncs.c              |  30 +++++-----
 glib/gtypes.h                 |  16 ++---
 glib/gutils.h                 |   2 +-
 glib/pcre/pcre_compile.c      |  40 ++++++-------
 glib/pcre/pcre_dfa_exec.c     |   6 +-
 glib/pcre/pcre_exec.c         |  51 ++++++++--------
 glib/pcre/pcre_ord2utf8.c     |   2 +-
 glib/pcre/pcre_study.c        |  12 ++--
 glib/pcre/pcre_valid_utf8.c   |   4 +-
 gobject/gmarshal.c            | 132
 +++++++++++++++++++++---------------------
 gobject/gsignal.c             |   2 +-
 gobject/gtype.c               |   2 +-
 tests/bit-test.c              |   2 +-
 18 files changed, 168 insertions(+), 171 deletions(-)

commit d217429729aad360f372633f2ec99778c0fc08d5
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 3 19:36:18 2014 +0200

    unicode: Update to unicode 7.0.0

    See bug https://bugzilla.gnome.org/show_bug.cgi?id=731929.

 glib/gscripttable.h   |  241 +-
 glib/gunibreak.h      | 3405 ++++++++++++++++------
 glib/gunichartables.h | 2462 ++++++++++++----
 glib/gunicode.h       |   50 +-
 glib/gunicomp.h       |  254 +-
 glib/gunidecomp.h     | 7781
 +++++++++++++++++++++++++------------------------
 glib/guniprop.c       |   25 +
 glib/tests/unicode.c  |   50 +-
 8 files changed, 8762 insertions(+), 5506 deletions(-)

commit 30ed5f53e205e6bfc35126a9d3c62dac8a9c5dad
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 19 19:29:16 2014 +0200

    unicode: Switch compose_second_single to gunichar

    This will be required for the update to unicode 7.0.0.

 glib/gen-unicode-tables.pl | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 7e3d32b7053b47ca7feecf185abac96b619770c2
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 3 18:49:07 2014 +0200

    unicode: Move gscripttable.h generation into main script

    So we just have to run one script when updating the unicode data,
    not two.

 glib/gen-script-table.pl   | 119
 -----------------------------------------
 glib/gen-unicode-tables.pl | 129
 +++++++++++++++++++++++++++++++++++++++++++--
 glib/gscripttable.h        |  14 ++---
 3 files changed, 133 insertions(+), 129 deletions(-)

commit 33c8a894907cf557c50849d8a3a2447324750414
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 3 17:56:07 2014 +0200

    unicode: Simplify width table generation

    Move width table generation into the gen-unicode-tables.pl
    script. This makes
    updating the tables automatic without the previously required
    manual editing
    required to insert the tables in the right place of the source code.

 glib/gen-iswide-table.py   |  58 ------------
 glib/gen-unicode-tables.pl |  97 +++++++++++++++++++-
 glib/gunichartables.h      | 220
 +++++++++++++++++++++++++++++++++++++++++++++
 glib/guniprop.c            |  90 ++-----------------
 4 files changed, 322 insertions(+), 143 deletions(-)

commit 66779064368742f04eb0e45346a3b4fb53a8d6ca
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 27 13:21:03 2014 -0400

    GObject: tweak property deprecation warnings

    Don't emit property deprecation warnings for construct properties that
    are being set to their default value during construction, but _do_
    emit
    them in all cases when the property was explicitly given to
    g_object_new().

    https://bugzilla.gnome.org/show_bug.cgi?id=732184

 gobject/gobject.c | 56
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 27 insertions(+), 29 deletions(-)

commit 4d327bdcb0fe94901c6d207afa90477a52f88df2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 24 21:42:46 2014 -0400

    GTimeZone: remove some dead code

    Remove code that parsed out and stored the unused isstd and isgmt
    fields.

 glib/gtimezone.c | 39 ++-------------------------------------
 1 file changed, 2 insertions(+), 37 deletions(-)

commit f948a7148340012a20286dfb94912be73c32c1f6
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Jun 25 11:56:12 2014 +0100

    gtype: Remove unused header

    GType does not use GBSearchArray any more.

 gobject/gtype.c | 1 -
 1 file changed, 1 deletion(-)

commit 59c9291f5f12492bab5bb303af41a38b930be97b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 24 16:56:20 2014 -0400

    Revert "gsettings: remove long-deprecated "schema" property"

    This reverts commit cf9b162e0d0defaff2ad5c85aeaf7af0899ad22f.

    It turns out that there are still a very large number of users of this
    API.

    https://bugzilla.gnome.org/show_bug.cgi?id=732102

 gio/gsettings.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit d0e706178584d2251b11f71321cdbfee5af04847
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 24 16:13:30 2014 -0400

    GObject: warn on use of deprecated properties

    By default G_PARAM_DEPRECATED means absolutely nothing.  We only
    emit a
    warning if G_ENABLE_DIAGNOSTIC is set to '1' and then, only on sets.

    Turn the logic on its head: emit the warning by default, unless
    G_ENABLE_DIAGNOSTIC is set to 0.  In order to avoid a torrent of
    output, only
    emit a warning once per property name.

    https://bugzilla.gnome.org/show_bug.cgi?id=732184

 gobject/gobject.c | 83
 +++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 63 insertions(+), 20 deletions(-)

commit c5c3c320a2eb32aa9bde5d412ce5bee0fc215ead
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Jun 19 11:28:48 2014 +0200

    gvalue: New g_value_init_from_instance

    Used for the commonly used case (in signal emission) where we
    initialize and set a GValue for an instance

    Includes a fast-path for GObject

    Overall makes it 6 times faster than the previous combination
    of g_value_init + g_value_set_instance

    Makes signal emission around 10% faster

    https://bugzilla.gnome.org/show_bug.cgi?id=731950

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gsignal.c                           |  6 +--
 gobject/gvalue.c                            | 65
 +++++++++++++++++++++++++++++
 gobject/gvalue.h                            |  3 ++
 4 files changed, 71 insertions(+), 4 deletions(-)

commit f727c820b823178285d90b3f033f7d2a4d3cdf9f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 24 10:40:30 2014 -0400

    gvariant tests: workaround libc/compiler "issue"

    memcmp() is declared by glibc as follows:

      /* Compare N bytes of S1 and S2.  */
      extern int memcmp (const void *__s1, const void *__s2, size_t __n)
           __THROW __attribute_pure__ __nonnull ((1, 2));

    despite the fact that it is valid to call it with a null pointer
    if the
    size is zero.

    gcc 4.9.0 contains a new optimisation that sees that we pass a pointer
    to this function and concludes that it certainly must not be null,
    removing a later check and thereby causing a crash.

    We protect the invocation of memcmp() with a condition to prevent gcc
    from making this false assumption (arguably under wrong advice from
    glibc).

 glib/tests/gvariant.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit cf9b162e0d0defaff2ad5c85aeaf7af0899ad22f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 23 08:53:26 2014 -0400

    gsettings: remove long-deprecated "schema" property

    This property has been deprecated for three years after only having
    existed for one.  We've wanted to reuse the name for all that time, so
    let's try to actually remove it now and see if we can get away
    with it.

    https://bugzilla.gnome.org/show_bug.cgi?id=732102

 gio/gsettings.c | 24 ------------------------
 1 file changed, 24 deletions(-)

commit f2ceb74e91e05e9556622bc2cde7ab57cbc30ea3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 23 08:53:06 2014 -0400

    gsettings test: stop testing long-deprecated API

    We want to try taking this away now...

    https://bugzilla.gnome.org/show_bug.cgi?id=732102

 gio/tests/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 753e6ef7d78374072141bbf8fc0f3f3d7e1b57db
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Tue Jun 24 10:49:00 2014 -0500

    docs: fix typos

 docs/reference/gobject/tut_howto.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bc56512dd77b9b2386d5a2f43c5ec33691bb185e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 23 23:14:56 2014 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1429ff12d8dd7d36c4bdc3cb771d12748f16410a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 23 21:58:07 2014 -0400

    2.41.1

 NEWS         | 30 ++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 31 insertions(+), 1 deletion(-)

commit f1095de46f5f43edf494ea6adcabbe86685baadf
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jun 23 15:01:28 2014 +0100

    gsocketlistener: Don’t explicitly close sockets on finalisation

    Instead of closing the sockets explicitly, let them close themselves
    when their final reference is dropped. This makes use of
    g_socket_listener_add_socket() more natural.

    https://bugzilla.gnome.org/show_bug.cgi?id=732107

 gio/gsocketlistener.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 00e733315de2c2588b0b5b95e02fcd29bb259cb1
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jun 23 10:12:08 2014 +0100

    gsocket: Document that g_socket_create_source() holds a socket ref

    This is quite important, as it means you can safely let the GSocket
    drop
    out of scope while maintaining a reference to the GSource, and the
    socket will remain open. That means fewer closure structures, simpler
    code, and fewer allocations.

    https://bugzilla.gnome.org/show_bug.cgi?id=732081

 gio/gsocket.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 248ca727820923c28a39d2e0ee40db54c141adea
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Jun 23 00:59:39 2014 +0100

    gsignal: Add an example to the g_signal_connect_swapped()
    documentation

    The precise behaviour of and motivation behind swapping parameters was
    not entirely clear before.

    https://bugzilla.gnome.org/show_bug.cgi?id=732068

 gobject/gsignal.h | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

commit 90025254fd0047d61fe5c1de84b905da842c43f0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 20 20:54:47 2014 -0400

    Return folder as icon for directories

    'folder' is the name of the folder icon in the incon naming spec,
    and the Adwaita icon theme doesn't include an inode-directory icon.
    This fixes folders appearing as generic file in the file chooser.

    https://bugzilla.gnome.org/show_bug.cgi?id=731996

 gio/glocalfileinfo.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit d80adeaa960ddfa13837900d0391f9bd9c239f78
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Jun 21 23:01:08 2014 +0100

    gtestdbus: Don’t close stdout for dbus-daemon

    The stdout FD passed to dbus-daemon is propagated to all its child
    processes, such as service activated processes. If we close the
    FD after
    reading the bus address from the daemon, any child process which
    subsequently writes to stdout (e.g. for logging) will get a SIGPIPE
    and
    explode.

    Instead of closing the stdout FD immediately after dbus-daemon has
    spawned, keep it open until the daemon is killed.

    https://bugzilla.gnome.org/show_bug.cgi?id=732019

 gio/gtestdbus.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

commit 0950369899ac04ebe0357d0b1ba834c4dab39219
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Jun 21 12:29:09 2014 +0100

    gclosure: Remove an unused alloca() and assignment

    Coverity issue: #1159511

    https://bugzilla.gnome.org/show_bug.cgi?id=732005

 gobject/gclosure.c | 3 ---
 1 file changed, 3 deletions(-)

commit afea86a7ef4f73a6fffd2155f2ddf411bb6fd8c6
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Jun 21 12:28:54 2014 +0100

    goption: Remove an unused assignment

    Coverity issue: #1159514

    https://bugzilla.gnome.org/show_bug.cgi?id=732005

 glib/goption.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6b8ae8f21b909102b4279900e90cb294cf542188
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Jun 21 10:48:08 2014 +0100

    gwakeup: Clarify buffer sizing in g_wakeup_signal()

    The code in g_wakeup_signal() is currently correct: it writes a 64-bit
    counter increment value if the FD is an eventfd, and writes an
    arbitrary
    8-bit value if using a normal pipe.

    However, the reasoning behind these buffer sizes is not clear, and the
    mismatch between the allocated buffer size and the length passed to
    write() in the pipe case could be mistaken for a bug.

    Coverity issue: #1159490

    https://bugzilla.gnome.org/show_bug.cgi?id=732002

 glib/gwakeup.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit eb6da409fa904d99ec6c62718f366e3a70033881
Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Date:   Fri Jun 20 18:25:03 2014 +0100

    docs: Correct param to interface's default_init()

    https://bugzilla.gnome.org/show_bug.cgi?id=731979

 docs/reference/gobject/tut_howto.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d552a1f125eac718b988cdae654e36645c685343
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Fri Jun 20 16:44:08 2014 -0500

    docs: fix a broken sentence

 docs/reference/gobject/tut_gtype.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9362a1b2d987125a8aa0723b916d29aaaece329a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 20 14:43:26 2014 -0400

    configure.ac: fix check for futex and eventfd

    We were using AC_LANG_PROGRAM to build a program to test for our
    ability
    to call syscall (__NR_futex, ...);.  This macro adds "main () { ... }"
    around the provided code segment automatically.  The provided code
    segment provided its own main() function, however.

    The result looked something like:

    int main (void) {
      int main (void) {
        ...
      }
    }

    which worked on GCC, but not on clang.

    Let's fix that.  Let's fix the same mistake copied over for eventfd()
    detection while we're at it.

 configure.ac | 11 -----------
 1 file changed, 11 deletions(-)

commit bef557e55d8ab89b324ff2099b2621254aeb3929
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 20 14:38:45 2014 -0400

    gatomic: disable GCC extension atomics for clang

    clang defines the macro that we use to test for GCC's extension
    support
    for C11 atomics, but doesn't define the extension in the same way.
    Check for clang and disable the macros again if we find it.

    https://bugzilla.gnome.org/show_bug.cgi?id=731513

 glib/gatomic.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7991178a752a22274950e54dc4f05b55ae54d756
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 16 15:24:37 2014 -0400

    Try to make gobject.py work with both pythons

    This change was suggested on the fedora test list, and has been
    reported to work.

 gobject/gobject.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 9f69534030f963183ac5398889630a641a71409b
Author: Erik van Pienbroek <epienbro@fedoraproject.org>
Date:   Sat Jun 14 17:10:17 2014 +0200

    Prevent an invalid @CARBON_LIBS@ from appearing in the .pc files

    Fixes static linking when using the glib pkgconfig file.
    Regression was introduced in commit 8d037c6 (bz #668152)

    https://bugzilla.gnome.org/show_bug.cgi?id=731657

 configure.ac | 2 ++
 1 file changed, 2 insertions(+)

commit 94e13c71c5b722b4d236cc6b4c2a8d6a843aeadd
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Fri Jun 13 19:23:13 2014 +0100

    gio/tests/socket: fix minor memleak

 gio/tests/socket.c | 1 +
 1 file changed, 1 insertion(+)

commit 09498e52bbc71496cd1b99ad5c8781783a864881
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 12 13:37:16 2014 -0400

    gparam: Remove unnecessary conditionals around preconditions

    These cause a static analyzer to think we're trying to actually handle
    them being NULL, which is not the case.  They both must not be NULL,
    period.

    No idea why the code was like this originally.

    Reviewed by mclasen on IRC.

 gobject/gparam.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit f7d7e5ab2f3f9421f9df5d76487f37d4bdc78088
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 12 12:53:18 2014 -0400

    gbookmarkfile: Cleaner error handling code to pacify static analysis

    A static analyzer flagged the g_file_get_contents() call as not
    checking its return value.  While the code here is actually correct,
    it's verbose at best.

    I think the "goto out + cleanup" code style is substantially cleaner,
    less error prone, and easier to read.  It also will pacify the static
    analyzer.

    https://bugzilla.gnome.org/show_bug.cgi?id=731584

 glib/gbookmarkfile.c | 35 +++++++++--------------------------
 1 file changed, 9 insertions(+), 26 deletions(-)

commit fcdd25a96eb33c389f381cacce42e6d4f2912c5c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 6 14:35:55 2014 -0400

    gparam: change value of G_PARAM_EXPLICIT_NOTIFY

    GParamSpec has a possibility of user-introduced flags, and we didn't
    respect that with the addition of _EXPLICIT_NOTIFY.

    Change the documentation for the maximum number of user flags to 10,
    just to pick a somewhat random number.  The documentation here
    was never
    correct anyway -- it previously claimed that as many as 38 flags were
    possible.

    Meanwhile, move G_PARAM_EXPLICIT_NOTIFY next to _DEPRECATED in
    order to
    avoid conflicts with low-numbered user flags (which are in use by at
    least evolution-data-server).

    https://bugzilla.gnome.org/show_bug.cgi?id=731341

 gobject/gparam.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit b413f7a285f597e4bcbb8866fcb22bea661fcdcd
Author: Daniel Macks <dmacks@netspace.org>
Date:   Mon Jun 9 15:17:19 2014 -0400

    gnextstepsettingsbackend: Use same token for function-call and
    its availability

    Availability of the g_nextstep_settings_backend_get_type() prototype
    is controlled by HAVE_COCOA in gsettingsbackendinternal.h and the
    actual implemenation by OS_COCOA in Makefile.am. Therefore, the
    giomodule.c call to that function should also be protected by a COCOA
    token rather than an CARBON token (cocoa and carbon are independent
    autoconf tests).

    https://bugzilla.gnome.org/show_bug.cgi?id=731425

 gio/giomodule.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 93d0c632326064f3e72f0e88e3dc971bdfc74af0
Author: Daniel Macks <dmacks@netspace.org>
Date:   Tue Jun 10 06:00:33 2014 -0400

    assert-msg-test: Explicitly quit gdb session to avoid zombie

    gdb is run in batch mode, and can leave leave the program being
    executed/debugged running when the batchfile is finished. Explicitly
    "quit"ing the subprocess prevents it from leaving the stray subprocess
    when gdb finishes.

    https://bugzilla.gnome.org/show_bug.cgi?id=731366

 tests/assert-msg-test.gdb | 1 +
 1 file changed, 1 insertion(+)

commit 545b44444b365a4e3ba98ec71fab4f12293a229c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 6 16:51:40 2014 -0400

    gtype: remove interface-after-init exceptions

    A year ago, we tried to remove support for adding interfaces on
    already-initialised types.  There were problems with the C++ and C#
    bindings at the time, so we added exceptions to give them a bit more
    time to catch up.

    It's already one cycle after when these exceptions were planned to be
    removed, so let's take them out now.

    https://bugzilla.gnome.org/show_bug.cgi?id=697229

 gobject/gtype.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit 91b9aef0c9988fcab6adb7be3af46953c1c558c9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jun 9 10:27:36 2014 +0800

    MSVC 2010+ Projects: Update "Installation" Process

    Currently, due to the way that Visual Studio 2010+ projects are
    handled,
    the "install" project does not re-build upon changes to the sources,
    as it
    does not believe that its dependencies have changed, although
    the changed
    sources are automatically recompiled.  This means that if a part
    or more
    of the solution does not build, or if the sources need some other
    fixes
    or enhancements, the up-to-date build is not copied automatically,
    which
    can be misleading.

    Improve on the situation by forcing the "install" project to
    trigger its
    rebuild, so that the updated binaries can be copied.  This does
    trigger an
    MSBuild warning, but having that warning is way better than not
    having an
    up-to-date build, especially during testing and development.

 build/win32/vs10/glib-install.props | 40
 +++++++++++++++++++++++++++----------
 build/win32/vs10/install.vcxproj    | 28 +++++++++++++++-----------
 2 files changed, 46 insertions(+), 22 deletions(-)

commit 39d70301c58b0e79f90fc2729eecc10ba5c3caf9
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Fri Jun 6 19:04:12 2014 -0500

    trivial: docs: add some missing commas

 docs/reference/gobject/gobject-docs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f2f66bfe45f41d18e7437341e5ebf4c70d815958
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 6 16:42:23 2014 -0400

    docs: warn about installing properties after init

    Leave ourselves a little wiggle room: if people install properties
    after
    initialisation then we reserve the right to handle that in a way that
    may not be threadsafe.

    https://bugzilla.gnome.org/show_bug.cgi?id=698614

 gobject/gobject.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit 85e9455f68c6cc6093a1ede1c5f15587bba08b51
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 6 16:40:15 2014 -0400

    Revert "GObject: prevent installing properties after init"

    This reverts commit ddb0ce14215cd62c7a2497d6cf9f2ea63c40ebb5.

    Conflicts:
            gobject/gobject.c

    https://bugzilla.gnome.org/show_bug.cgi?id=698614

 gobject/gobject.c       |  6 ------
 gobject/gtype-private.h |  1 -
 gobject/gtype.c         | 10 ----------
 3 files changed, 17 deletions(-)

commit 256305dea5ce0a7c4512b4842b0703c025853e1c
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Sat May 31 14:54:08 2014 +0100

    gthread: use inline keyword for _get_impl() functions

    Give compiler a hint that these should be inlined,
    which doesn't seem to happen by default with -O2.
    Yields 5% speedup in artificial benchmarks, and
    1% speedup in a real-world test case doing a lot
    of mutex locking and unlocking.

    https://bugzilla.gnome.org/show_bug.cgi?id=730807

 glib/gthread-posix.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit db0e43d25a5316f3a6f2f31712a0b8359e247a20
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 27 15:28:08 2014 +0200

    gatomic: use GCC C11-style atomics, if available

    GCC does not yet support ISO C11 atomic operations, but it has
    compatible versions available as an extension.  Use these for load and
    store if they are available in order to avoid emitting a hard fence
    instruction (since in many cases, we do not need it -- on x86, for
    example).

    For now we use the fully seqentially-consistent memory model, since
    these APIs are documented rather explicitly: "This call acts as a full
    compiler and hardware memory barrier".

    In the future we can consider introducing new APIs for the more
    relaxed
    memory models, if they are available (or fall back to stricter ones
    otherwise).

    https://bugzilla.gnome.org/show_bug.cgi?id=730807

 glib/gatomic.h | 77
 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 64 insertions(+), 13 deletions(-)

commit 875eeb2ca1d32fc0fdd70518f7d6f4dc8de1a287
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 27 15:27:54 2014 +0200

    gatomic: whitespace fixes

    https://bugzilla.gnome.org/show_bug.cgi?id=730807

 glib/gatomic.h | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit aa0e8735c14ebb3cbfa38d441a6a05bb978e23b2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 27 15:25:37 2014 +0200

    gatomic: fix typo in deprecation attribute

    https://bugzilla.gnome.org/show_bug.cgi?id=730807

 glib/gatomic.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d558e87c65517e3646f3b8ebc8f11448e25ccbf2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 6 10:45:51 2014 -0400

    gtype: guard uses of new fundamental type check

    g_type_is_fundamentally_a (see bug 730984) is a new API/ABI and is
    marked with a version macro.  We should therefore avoid its
    unconditional use from G_IS_OBJECT() and G_IS_PARAM_SPEC() which are
    APIs that have been around for a long time.

    This prevents deprecation warnings from being emitted when these
    functions are used with an older GLIB_VERSION_MAX_ALLOWED and also
    prevents linking to the new ABI in that case (so that it's possible to
    use the resulting binary with an older version of GLib).

    https://bugzilla.gnome.org/show_bug.cgi?id=731335

 gobject/gobject.h | 4 ++++
 gobject/gparam.h  | 4 ++++
 2 files changed, 8 insertions(+)

commit 0208861a13afc30964fb4f409525fa1cdb544cf4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 6 10:25:16 2014 -0400

    test: add test for explicit-notify properties

    https://bugzilla.gnome.org/show_bug.cgi?id=731200

 gobject/tests/properties.c | 62
 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 60 insertions(+), 2 deletions(-)

commit bbdb2345fc7e5a57cb7af90ab0bf8ced437ada24
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 4 08:59:50 2014 -0400

    gobject: add 'explicit notify' GParamSpec flag

    Add a flag to prevent the automatic emission of the "notify" signal
    during g_object_set_property().

    If this flag is set then the class must explicitly emit the notify
    for themselves.  This is already standard practice on most classes,
    but
    we cannot simply remove the existing behaviour because there are
    surely
    many cases where it is needed.

    https://bugzilla.gnome.org/show_bug.cgi?id=731200

 gobject/gobject.c | 13 ++++++++-----
 gobject/gparam.h  |  5 +++++
 2 files changed, 13 insertions(+), 5 deletions(-)

commit dc496ac7644d11e47b626a879b12813b31ef83b7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 5 08:04:19 2014 -0400

    Add a test for GMenuAttributeIter

 gio/tests/gmenumodel.c | 62
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

commit c4fc3aa5258bee806d19fa587355f0daa093e097
Author: David King <amigadave@amigadave.com>
Date:   Fri May 16 12:32:49 2014 +0100

    valgrind.h: Update to latest upstream version

    Avoid crashes in g_type_free_instance() on mingw64.

    https://bugzilla.gnome.org/show_bug.cgi?id=730198

 glib/valgrind.h | 2142
 +++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 1623 insertions(+), 519 deletions(-)

commit 6eb55b9a33b3b025859e1a08e11c89719d542d41
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 3 15:50:37 2014 +0800

    Support Building Using Visual Studio 2013

    Like the Visual Studio 2012 project files, the Visual Studio 2013
    files are
    largely the same as the Visual Studio 2010 project files, so support
    Visual Studio 2013 by updating the autotools scripts that is used for
    Visual Studio 2012.  This means that project files for Visual
    Studio 2012
    and Visual Studio 2013 can be maintained by simply maintaining
    the Visual
    Studio 2010 project files, adding minimal maintenance overhead.

 build/Makefile-newvs.am      | 14 +++++++-------
 build/win32/Makefile.am      |  3 ++-
 build/win32/vs11/Makefile.am |  4 ++++
 build/win32/vs12/.gitignore  | 31 +++++++++++++++++++++++++++++
 build/win32/vs12/Makefile.am | 46
 ++++++++++++++++++++++++++++++++++++++++++++
 configure.ac                 |  1 +
 6 files changed, 91 insertions(+), 8 deletions(-)

commit 90671cd3cd0a98e8f706acf6e72d037aba1892e5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 1 09:38:49 2014 -0400

    docs: Add missing language annotations

 gio/gdbusauthobserver.c | 2 +-
 glib/ghash.c            | 2 +-
 glib/gvariant.c         | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

commit adfaf0e456eceaf531d12d667afef8fce85103c1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 20:55:00 2014 -0400

    docs: GType documentation cleanup

    Still some markup left.

 gobject/gtype.c |   3 +-
 gobject/gtype.h | 325
 +++++++++++++++++++++++++++-----------------------------
 2 files changed, 160 insertions(+), 168 deletions(-)

commit 24ab95582b03ec947fc512cb85545fe87026baf1
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sat May 31 19:21:23 2014 +0100

    docs: Replace <function> XML tag with back ticks

    https://bugzilla.gnome.org/show_bug.cgi?id=731050

 gobject/gtype.h       | 3 +--
 gobject/gtypemodule.h | 6 +++---
 2 files changed, 4 insertions(+), 5 deletions(-)

commit a0c3fdfae0af260bd90adbb4f784afc21dbb9b24
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sat May 31 19:20:03 2014 +0100

    docs: Replace <structname> tags with back ticks

    https://bugzilla.gnome.org/show_bug.cgi?id=731050

 glib/gbookmarkfile.h |  2 +-
 glib/gdatetime.h     |  2 +-
 glib/gerror.h        |  4 ++--
 glib/gmain.h         | 10 +++++-----
 glib/goption.h       |  6 +++---
 5 files changed, 12 insertions(+), 12 deletions(-)

commit 903a5d711e7337f4803f42815fe996061bd2a8eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 11:32:55 2014 -0400

    docs: Add an index for 2.40 api

 docs/reference/gobject/gobject-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit ab18d71e6f7a281687dd39b2616ae3a41fdaaf29
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 09:04:11 2014 -0400

    Minor documentation additions and corrections

    Going for 100%.

 glib/deprecated/gthread-deprecated.c |  2 ++
 glib/docs.c                          |  8 +++++-
 glib/gconvert.h                      |  7 +++---
 glib/giochannel.c                    |  7 +-----
 glib/gmessages.c                     |  7 ++++++
 glib/gpoll.h                         |  8 ++++++
 glib/gregex.h                        | 13 +++++++---
 glib/gscanner.c                      |  8 ++++++
 glib/gvariant-parser.c               |  2 ++
 glib/gversion.c                      | 47
 ++++++++++++++++++++++++++++++++++++
 gobject/gvalue.c                     | 11 +++++----
 11 files changed, 101 insertions(+), 19 deletions(-)

commit f38b438c965a8cfc84bc62086f0cec6637aa6f1f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 10:38:47 2014 -0400

    docs: Fill in the gspawn long description

 glib/gspawn.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 06b7786f31a6038e78bcc99c88c076e8f9ff07f0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 10:18:07 2014 -0400

    docs: Fill in gshell long description

 glib/gshell.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit ad5b4bf92e9a2afdea8d817e0d799c4c1ba0d4f7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 09:02:27 2014 -0400

    Document g_signal_handlers_destroy

 gobject/gsignal.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit a4847190332ec2e9b749e68c5153de9e972d8b4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 08:55:21 2014 -0400

    docs: Fix up varargs documentation

    gtk-doc expects varargs to be documented in a specific way,
    otherwise it complains.

 gio/gsubprocess.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit abd4df4b55fc447cad9a9d907c61d6254dc1fba1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 08:54:52 2014 -0400

    docs: Add some missing apis

 docs/reference/gio/gio-sections.txt | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 5b0183fd23dd58cd995df0b41f9f3eb4432d7f34
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 31 08:54:16 2014 -0400

    docs: Add a 2.42 api index

 docs/reference/gio/gio-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit f8595a490f15c702578dc6c08bc182806e02681b
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Fri May 30 12:25:27 2014 +0200

    GParamSpec: Use new fundamental instance check

    https://bugzilla.gnome.org/show_bug.cgi?id=730984

 gobject/gparam.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit faceb8960bf5a623a1af4ac876c964daa8fbab42
Author: Edward Hervey <edward@collabora.com>
Date:   Wed May 28 10:59:14 2014 +0200

    gobject: Use fast fundamental instance type check

    Speeds up g_object_ref/_unref by 50%-65% (i.e. takes 60-65% of
    the time
    it used to take).

    https://bugzilla.gnome.org/show_bug.cgi?id=730984

 gobject/gobject.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6072e3650fba8ff57b5c3f135f81488c83f27f0b
Author: Edward Hervey <edward@collabora.com>
Date:   Wed May 28 10:57:28 2014 +0200

    gtype: Add check for fundamental instance type

    When checking whether an instance is of a given fundamental type (such
    as G_TYPE_OBJECT), we can avoid over 60%+ of the cost of checking
    types.

    https://bugzilla.gnome.org/show_bug.cgi?id=730984

 docs/reference/gobject/gobject-sections.txt |  2 ++
 gobject/gtype.c                             |  9 +++++++++
 gobject/gtype.h                             | 16 ++++++++++++++++
 3 files changed, 27 insertions(+)

commit 03a48e1adea2862635c439f8270a5cc2d969289a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 30 10:21:43 2014 -0400

    Fix the closure test in continuous

    This test has the same problem as the mapping-test - it uses
    SIGUSR1 without checking the signal mask. Apply the same fix
    here.

 gobject/tests/closure.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 367dbdce367fd504804a1256dc393534d6784bfc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 30 10:18:36 2014 -0400

    Fix the mapping test in continuous

    It turns out that due to a recent gdm change, the inherited
    signal mask has SIGUSR1 blocked - which is bad news for
    tests using SIGUSR1. Fix the test by explicitly checking the
    signal mask before using SIGUSR1.

 tests/mapping-test.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 79f930f6dc23c05fef7fdcaaeed0df230698453e
Author: Thiago Santos <ts.santos@sisa.samsung.com>
Date:   Thu May 29 19:13:37 2014 -0300

    gconvert: mention that the g_convert len should be in bytes

    Some charsets have each char with more than one byte, make it
    clear that
    the length should be in bytes

    https://bugzilla.gnome.org/show_bug.cgi?id=730963

 glib/gconvert.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 1e28df02642237f776f9b4f42bffd8de675af754
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 28 06:14:56 2014 -0400

    Add more debug spew to the mapping-test

 tests/mapping-test.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit fd9120dc505773faf3ace728c8ad8c503824ee9f
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue May 27 15:50:00 2014 +0100

    gvariant: Clarify type and format strings in the docs

    '@' and '&' are only used in format strings as prefixes to type
    strings and not to full format strings.

    https://bugzilla.gnome.org/show_bug.cgi?id=729269

 docs/reference/glib/gvariant-varargs.xml | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit de1c0722b92d101171f7c2ce7eb199727528dff1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 27 22:13:33 2014 -0400

    mapping-test: Add debug spew

    This might help figuring out why the test is failing in continuous.

 tests/mapping-test.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 84fd73b2fa098ff63656e7cbe1ef211f948123c2
Author: Dan Winship <danw@gnome.org>
Date:   Tue May 27 09:39:46 2014 -0400

    gio/tests/network-address: fix when no network is available

    GResolver doesn't do full validation of its inputs, so in some of
    these tests, the fact that we were getting back
    G_RESOLVER_ERROR_NOT_FOUND is because the junk string was getting
    passed to an upstream DNS resolver, which returned NXDOMAIN. But if
    there's no network on the machine then we'd get
    G_RESOLVER_ERROR_INTERNAL instead in that case.

 gio/tests/network-address.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

commit e93f7be60d6a45ca5ca76fd033be887f10e886a4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 26 17:34:48 2014 +0200

    GLib 2.41.0

 NEWS | 83
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

commit 6f7dc3a44f966e69a7495cd5af5017ec02b3938c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 26 23:01:25 2014 +0200

    gio tests: rm xdgconfighome on 'make clean'

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 61a9142cd0936bd67dcb88db5591e1190caf3188
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 26 17:33:57 2014 +0200

    Revert "gvariant: Fix confusion between type and format strings in
    the docs"

    This reverts commit fca1b83be74c9840037cfee84015fd8460cc33f9.

    The original documentation was correct.

    https://bugzilla.gnome.org/show_bug.cgi?id=729269

 docs/reference/glib/gvariant-varargs.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d3fd88ddd54dd533b09e8782a8ffc0dc9f6f0571
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri May 16 23:08:10 2014 +0100

    gtestutils: Error out if /dev/null stdin redirection fails

    https://bugzilla.gnome.org/show_bug.cgi?id=730189

 glib/gtestutils.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 570b27b9acbf6e6f31ab0f9a31a4cce60f4d228a
Author: Evan Nemerson <evan@nemerson.com>
Date:   Wed May 21 00:27:36 2014 -0700

    gio: port annotations from the Vala metadata.

    https://bugzilla.gnome.org/show_bug.cgi?id=730493

 gio/gaction.c                  |  2 +-
 gio/gactiongroup.c             |  9 ++++----
 gio/gapplicationcommandline.c  |  2 +-
 gio/gcancellable.c             |  4 ++--
 gio/gcontenttype.c             |  6 +++---
 gio/gdatainputstream.c         | 49
 +++++++++++++++++++++---------------------
 gio/gdbusmessage.c             |  3 ++-
 gio/gdbusobjectmanagerclient.c |  4 ++--
 gio/gfile.c                    | 24 ++++++++++-----------
 gio/gfileenumerator.c          |  5 +++--
 gio/gfileinfo.c                |  6 +++---
 gio/gicon.c                    |  4 ++--
 gio/gloadableicon.c            | 13 +++++------
 gio/gpollableinputstream.c     |  4 ++--
 gio/gpollableutils.c           |  3 ++-
 gio/gsettingsschema.c          |  2 +-
 gio/gtlsclientconnection.c     |  2 +-
 gio/gtlsdatabase.c             |  4 +++-
 gio/gvolume.c                  |  4 ++--
 19 files changed, 79 insertions(+), 71 deletions(-)

commit e3db9632e7e8a1e4177f503aa9ffa184a991e8a4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri May 23 10:14:16 2014 +0800

    config.h.win32.in: Define _WIN32_WINNT Conditionally

    This is done so that _WIN32_WINNT may be overridden in the project
    files,
    if needed, so that one can access the Vista+ (or so) Windows APIs
    easier
    by using "preprocessor defines" (or so) in the Visual C++ project
    files.

 config.h.win32.in | 2 ++
 1 file changed, 2 insertions(+)

commit 922dd548d5697556b76f720c985728d110ac6b9d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 22 17:22:56 2014 -0400

    Try to fix mapping-test

    The mapping-test is failing under gnome-continuous. I suspect this
    is simply due to running many tests in parallel, and mapping-test
    being racy. Replace the blind sleep by signals, to avoid the
    races.

 tests/mapping-test.c | 46 +++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 7 deletions(-)

commit 2a27b7252243b0eaceeb9fbc6ecba1b3a3b36905
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Tue Apr 29 13:21:41 2014 +0200

    GDBusError enum: Remove trailing comma.

    This is helpful to people using the g++ --pedantic option.

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a8c2685be3992d0aac0c54d12a3fb31dd198624
Author: Marek Kasik <mkasik@redhat.com>
Date:   Thu May 22 11:00:14 2014 +0200

    gobject: unref unused class

    If g_type_class_ref() returns a class which is not
    a GObjectClass we need to unref it before return in
    object_interface_check_properties().

    https://bugzilla.gnome.org/show_bug.cgi?id=706983

 gobject/gobject.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit ace7658b28642e8a5b9ffe54838ccb4847b1cc6b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 21 07:40:09 2014 -0400

    Trivial: fix a guard comment

    The conventional comment for the #endif at the bottom of the
    header was not matching the #ifdef at the top in glib-private.h.
    Fix that.

 glib/glib-private.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cdb9670dc3448e3f582e04c742f3689d619d066d
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat May 17 12:08:58 2014 +0100

    gdbus-tool: Remove dead variables

    Coverity issues: #1159447, #1159446

    https://bugzilla.gnome.org/show_bug.cgi?id=730295

 gio/gdbus-tool.c | 8 --------
 1 file changed, 8 deletions(-)

commit 03a82ce898ea435efd73a250d989f8dc6249aaf8
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri May 16 21:47:24 2014 +0100

    gthread: Fix use of a local variable after it went out of scope

    This could theoretically cause problems, although in practice we would
    have seen them by now (the bug was introduced in 2012).

    Coverity issue: #1159486

    https://bugzilla.gnome.org/show_bug.cgi?id=730277

 glib/gthread-posix.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit e1243d11f000e18436b439f5655532801a71aeec
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri May 16 22:09:29 2014 +0100

    gsubprocess: Add a missing va_end() call

    Coverity issues: #1214070, #1214069

    https://bugzilla.gnome.org/show_bug.cgi?id=730278

 gio/gsubprocess.c         | 1 +
 gio/gsubprocesslauncher.c | 1 +
 2 files changed, 2 insertions(+)

commit f4ae0cbf9a464122ed4207a8ee74e424851d9bdf
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon May 19 14:49:39 2014 +0800

    Update config.h.win32.in for Newer Windows

    Make use of if_indextoname() and if_nametoindex() when building
    against
    Window Vista/Server 2008 or later, as these are provided by the
    system.

    This is not turned on by default as we still want to support XP and
    Server 2003-turn this on by changing _WIN32_WINNT to 0x600 or
    later prior
    to compiling GLib.

    https://bugzilla.gnome.org/show_bug.cgi?id=730352

 config.h.win32.in | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

commit 4844b4bb564b152812ef6bf2ce5c514877ef323e
Author: Marek Černocký <marek@manet.cz>
Date:   Sun May 18 08:38:05 2014 +0200

    Updated Czech translation

 po/cs.po | 470
 ++++++++++++++++++++++++++++-----------------------------------
 1 file changed, 212 insertions(+), 258 deletions(-)

commit 9c539a86b12430108b3d1951daab117b83e1fb25
Author: Yosef Or Boczko <yoseforb@src.gnome.org>
Date:   Fri May 16 04:37:21 2014 +0300

    Updated Hebrew translation

 po/he.po | 1741
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 879 insertions(+), 862 deletions(-)

commit 7f5cc2c3c5409a6d5e3acab5d6349ae69fb67922
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 15 12:16:00 2014 +0100

    gsocket: Add missing preconditions to g_socket_send_message()

    https://bugzilla.gnome.org/show_bug.cgi?id=730190

 gio/gsocket.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 60e459b196947c9c9aaa6fd14ca682ddf9f7a492
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 15 10:18:38 2014 +0100

    gresource-tool: Fix an FD leak in an error path

    Coverity issues: #1214054, #1214055, #1214056

 gio/gresource-tool.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 46b7217fbf02b679749cf1d042ecc57504a3b97c
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu May 15 10:15:26 2014 +0100

    gtestutils: Don’t free unassigned variables in an error path

    If the stream is invalid, msg.nums and msg.strings have not been
    assigned to, so don’t free them.

    Coverity issue: #1159505

 glib/gtestutils.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 4360756c6903491977886f4b4eee0650469d9ea4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 12 23:05:41 2014 -0400

    Avoid overeager warning about deprecated properties

    Construct properties are always set during construction.
    It makes no sense to warn about this even if the property
    is marked as deprecated; the deprecation warning should
    only be issues for explicit uses of the property after
    construction.

    https://bugzilla.gnome.org/show_bug.cgi?id=730045

 gobject/gobject.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 4dba2eb48625c7d5f72e4737eff28688332143c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 7 23:08:50 2014 -0400

    Remove some markup from docs

 gobject/gsignal.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c2a828772b30a0c10a8f4b15d7fc841f26b807b8
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 18 12:54:10 2014 +0800

    gio/gtestdbus.c: Fix write_config_file() for Windows

    Windows does not like g_unlink() to be called on files whose file
    descriptor is still open, so doing that would cause a permission
    denied error.  Since the fd is not used in that function after
    acquiring the temp file, close it earlier before
    g_file_set_contents(), so that it can complete successfully.

    This fixes a number of GTK+ tests on Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=719344

 gio/gtestdbus.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 54d1751fd824ded1f1437572b5c16e2db4154db5
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Sun May 11 23:41:23 2014 +0200

    doc: better ordering of GSubprocessLauncher functions

    Take the same order as the header.

 docs/reference/gio/gio-sections.txt | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 25bd4e79169af27f193d3b7c7b1b3295a7042074
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sat May 10 19:43:59 2014 +0200

    Updated Spanish translation

 po/es.po | 451
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 227 insertions(+), 224 deletions(-)

commit 20cda557e5766cc34af8efb3a6eb4cfcea149ea7
Author: Tom Tromey <tromey@redhat.com>
Date:   Fri Feb 21 19:16:00 2014 +0000

    gobject.py: Port to gdb 7.7 frame filter API

    https://bugzilla.gnome.org/show_bug.cgi?id=623552

 gobject/gobject.py | 92
 ++++++++++++++++++++++++++++--------------------------
 1 file changed, 48 insertions(+), 44 deletions(-)

commit 430e6fd6ad4ecf68ca110e90a626a60fd5d4eca8
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Mon Apr 21 14:50:53 2014 +0200

    doc: various improvements

    - GSubprocessLauncher exists since 2.40, not 2.36
    - more logical order for g_markup functions
    - fix short description of GMarkup
    - GMarkupParser: specify that some parameters are NULL-terminated.
    - g_string_new (NULL); is possible.
    - other trivial fixes.

    https://bugzilla.gnome.org/show_bug.cgi?id=728983

 docs/reference/glib/glib-sections.txt | 4 ++--
 gio/giotypes.h                        | 2 +-
 glib/gmarkup.c                        | 3 ++-
 glib/gmarkup.h                        | 3 ++-
 glib/gstring.c                        | 3 ++-
 gobject/gsignal.c                     | 4 ++--
 6 files changed, 11 insertions(+), 8 deletions(-)

commit 7c205ae90d5ee1dc583b20548fcb65a231af48ff
Author: Lukasz Skalski <l.skalski@samsung.com>
Date:   Fri May 9 15:06:52 2014 +0200

    gio: cleanup gdbusmessage.c file

    * removed passing GError to ensure_input_padding() function
      - it was necessary before commit 3e5214c15c2a19b64d74e714
      when we used GData*Streams and GMemoryInputStream with
      g_seekable_seek() - now it's useless,

    * removed checking return value of ensure_input_padding()
      function - in previous implementation (like above)
      g_seekable_seek() could return FALSE - now it's always TRUE,

    * removed passing GError to g_memory_buffer_read_*() functions
      and checking returned value - it also has been inherited after
      old implementation with g_data_input_stream_read_*() functions
      - now it's also useless

    * cleaned up code formatting,

    https://bugzilla.gnome.org/show_bug.cgi?id=729875

 gio/gdbusmessage.c | 187
 +++++++++++++++++++----------------------------------
 1 file changed, 67 insertions(+), 120 deletions(-)

commit 079d20f012127873335fccd174b104b60d9d7f4f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 8 16:16:35 2014 -0400

    tests: add testcase for {Only,Not}ShowIn

    https://bugzilla.gnome.org/show_bug.cgi?id=729813

 gio/tests/appinfo.c                                |  4 +--
 gio/tests/apps.c                                   | 12 +++++++
 gio/tests/desktop-app-info.c                       | 42
 +++++++++++++++++++---
 .../usr/applications/gcr-prompter.desktop          |  3 +-
 4 files changed, 53 insertions(+), 8 deletions(-)

commit 5a5e16e93c4f11e635918ecdb41681f63fd05a39
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 8 08:57:50 2014 -0400

    AppInfo: use XDG_CURRENT_DESKTOP for OnlyShowIn

    Expand the functionality of g_desktop_app_info_set_desktop_env() to
    include the possibility of passing strings containing ':' characters
    (as
    some apps, such as gnome-session, are directly passing the value of
    XDG_CURRENT_DESKTOP).  At the same time, deprecate it, since now
    we get
    the list from the environment variable for ourselves.

    Modify the checks in g_desktop_app_info_get_show_in() to deal with
    multiple items listed in XDG_CURRENT_DESKTOP.  For example, if we find
    that we have

      XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME

    and a desktop file contains:

      OnlyShowIn=GNOME

    then we will show this file because of the fallback to GNOME.  If the
    file _also_ contains the line:

      NotShowIn=GNOME-Classic

    Then we will not show it, because GNOME-Classic comes before GNOME in
    XDG_CURRENT_DESKTOP.

    https://bugzilla.gnome.org/show_bug.cgi?id=729813

 gio/gdesktopappinfo.c | 99
 +++++++++++++++++++++++++--------------------------
 gio/gdesktopappinfo.h |  2 +-
 2 files changed, 50 insertions(+), 51 deletions(-)

commit 880e8e8cb254e8c0c8a4bb62ebb606404818b52b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 15 14:44:33 2013 -0500

    tests: add tests for GDesktopAppInfo Implements=

    https://bugzilla.gnome.org/show_bug.cgi?id=712391

 gio/tests/apps.c                                   |  7 ++++
 gio/tests/desktop-app-info.c                       | 39
 +++++++++++++++++++++-
 .../desktop-files/usr/applications/cheese.desktop  |  1 +
 .../desktop-files/usr/applications/eog.desktop     |  1 +
 .../usr/applications/gnome-contacts.desktop        |  1 +
 .../usr/applications/gnome-music.desktop           |  1 +
 6 files changed, 49 insertions(+), 1 deletion(-)

commit 0b277192932f7612906186620a369f7445cd5f41
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 15 14:44:11 2013 -0500

    docs: add two missing symbols on GDesktopAppInfo

    https://bugzilla.gnome.org/show_bug.cgi?id=712391

 docs/reference/gio/gio-sections.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 9aaf990960c5182602de01fe046379af7bd9627a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 15 14:40:37 2013 -0500

    Add g_desktop_app_info_get_implementations()

    This provides support for the draft addition of 'Implements=' to
    the Desktop
    Entry specification.

    https://bugzilla.gnome.org/show_bug.cgi?id=712391

 gio/gdesktopappinfo.c | 83
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gdesktopappinfo.h |  3 ++
 2 files changed, 86 insertions(+)

commit 49f5737f00640c60006159041f6e8c7976330ee4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 5 20:30:35 2014 -0400

    Add a testcase for the previous fix

    This testcase tests that short option arguments are
    not erroneously added to the remaining argument array
    when g_option_context_set_ignore_unknown_options is
    called.
    https://bugzilla.gnome.org/show_bug.cgi?id=729563

 glib/tests/option-context.c | 48
 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

commit 85606f609363092e8f47db57b05762a0728ec80e
Author: Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Date:   Mon May 5 14:40:31 2014 +0200

    goption: Don't include parsed option values in G_OPTION_REMAINING

    After a call to g_option_context_set_ignore_unknown_options(context,
    TRUE),
    the values of short options were included in the array returned by a
    G_OPTION_REMAINING option.

    https://bugzilla.gnome.org/show_bug.cgi?id=729563

 glib/goption.c | 1 +
 1 file changed, 1 insertion(+)

commit 1565a4914494e56275d6ff393b90b8fb1b712708
Author: Lionel Landwerlin <llandwerlin@gmail.com>
Date:   Tue Jan 21 19:12:08 2014 +0000

    gio: iostream: use GTask instead of internal pointer

    This fixes an infinite recursion loop when calling
    g_io_stream_close_async() on a SoupIOStream.

    https://bugzilla.gnome.org/show_bug.cgi?id=722723

 gio/giostream.c | 49 +++++++++++++++++++++++++------------------------
 1 file changed, 25 insertions(+), 24 deletions(-)

commit 24fdee7a78f9148fce173781128bd3287ca5ede1
Author: Mathieu Bridon <bochecha@fedoraproject.org>
Date:   Mon May 5 18:30:56 2014 +0800

    Fix some typos in documentation

 glib/genviron.c | 2 +-
 gobject/gtype.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 63737df0e82ca1c74e2a622948eb5c0eb209f9d1
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Fri May 2 09:42:06 2014 +0200

    docs: Add a README.rationale documenting major design decisions

    It will be useful to document the major decisions which affect
    the whole
    of GLib in one centralised, easily-greppable file, otherwise they will
    get lost forever in Bugzilla.

    This file should contain a brief explanation of the decision and its
    rationale, plus a link to further discussion (e.g. on a mailing
    list or
    bug report).

    This contains an initial discussion about use of compiler attributes
    in
    GLib.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 HACKING          |  3 ++-
 Makefile.am      |  1 +
 README.rationale | 10 ++++++++++
 3 files changed, 13 insertions(+), 1 deletion(-)

commit 11297fd183b460abfad861cb94f9371fde487ef2
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Nov 28 20:39:56 2013 +0000

    gstrfuncs: Add missing preconditions to g_str_match_string()

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 glib/gstrfuncs.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 81e0a2f362383b827ae8cd092cb909a0c3c6dc04
Author: Dan Winship <danw@gnome.org>
Date:   Sat May 3 17:24:48 2014 -0400

    gio: add a missing property to GDummyTlsConnection

    GDummyTlsConnection didn't implement the "interaction" property,
    meaning you'd get warnings if you tried to set it while creating a
    GTlsConnection when using the dummy backend. (Of course, trying to
    create the GTlsConnection will fail anyway, but it ought to fail
    without hitting any g_warnings.)

 gio/gdummytlsbackend.c | 2 ++
 1 file changed, 2 insertions(+)

commit b2825257449446313265842920c35262f35d9063
Author: Pau Iranzo <paugnu@gmail.com>
Date:   Fri May 2 12:41:30 2014 +0200

    [l10n] Update Catalan translation

 po/ca.po | 2058
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1128 insertions(+), 930 deletions(-)

commit 361a6eb8561649ce1df1eeb2a624fd473fb02dc5
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Apr 30 16:58:21 2014 +0200

    docs: Fix some minor typos in the GVariant documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=729269

 docs/reference/glib/gvariant-varargs.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fca1b83be74c9840037cfee84015fd8460cc33f9
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Apr 30 16:37:30 2014 +0200

    gvariant: Fix confusion between type and format strings in the docs

    ‘@’ and ‘&’ are only used in format strings, not type strings.

    https://bugzilla.gnome.org/show_bug.cgi?id=729269

 docs/reference/glib/gvariant-varargs.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 704852ff097f848dcb89ba553431b460938d8d91
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Apr 29 08:47:14 2014 +0100

    gobject: Document that classes/objects/interfaces are zero-filled

    On initialisation, GObject guarantees to zero-fill
    class/object/interface structures. Document this so people don’t
    spend
    forever writing:
        my_object->priv->some_member = NULL;
        my_object->priv->some_other_member = NULL;

    https://bugzilla.gnome.org/show_bug.cgi?id=729167

 docs/reference/gobject/tut_howto.xml |  9 ++++++---
 gobject/gtype.c                      | 11 +++++++++--
 gobject/gtype.h                      |  7 +++++++
 3 files changed, 22 insertions(+), 5 deletions(-)

commit cb3f6f95477a90e4ea828595401d593298dca1bd
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon Apr 28 21:47:39 2014 +0200

    Updated Slovenian translation

 po/sl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0d51f324a6fe131a8cee5fd51d20e7cfeb76e0db
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon Apr 28 21:45:20 2014 +0200

    Updated Slovenian translation

 po/sl.po | 2048
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1122 insertions(+), 926 deletions(-)

commit ca123834016de680827ce8175c39f8d85d0877e7
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon Apr 28 21:28:16 2014 +0200

    Updated Slovenian translation

 po/sl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4ba23522b1b49f62aaf8d68d230d4373e36e21f6
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Mon Apr 28 09:26:32 2014 +0200

    gmenuexporter: fix protocol documentation link

 gio/gmenuexporter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit da69439753da10874ac6f48a6fd92504adf12fa5
Author: Enrico Nicoletto <liverig@gmail.com>
Date:   Sun Apr 27 00:19:44 2014 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 437
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 220 insertions(+), 217 deletions(-)

commit 254b8dfcd0138dba835fe5caf535118c74685a3b
Author: Juan Pablo Ugarte <juanpablougarte@gmail.com>
Date:   Fri Apr 25 19:35:58 2014 -0300

    Added type check to GPermission public functions.

 gio/gpermission.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit 956921e51facfab7e7706257ba5a976d011f97a5
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Apr 24 09:26:12 2014 +0100

    gresolver: Ensure GThreadedResolver always sets an error if resolution
    fails

    It was previously possible for GThreadedResolver to return an
    empty list
    and no error in response to a g_resolver_lookup_by_name() call, if it
    happened that all the addresses returned by getaddrinfo() could not be
    converted from native addresses to GSocketAddresses.

    Fix that by setting a G_RESOLVER_ERROR_NOT_FOUND if the returned
    list is
    empty.

    https://bugzilla.gnome.org/show_bug.cgi?id=728776

 gio/gthreadedresolver.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

commit 14b0c15abb228c1e4c5400595cd7c0ff8d86bfbd
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Apr 24 09:24:48 2014 +0100

    gresolver: Document that GResolver lists are non-empty on success

    The documentation previously wasn’t clear about whether the
    GResolver
    methods could return an empty list and no error. On balance,
    this seems
    like a bad idea, and GResolver should commit to always return a
    non-empty list, or an error (which should be
    G_RESOLVER_ERROR_NOT_FOUND
    if the list would otherwise be empty).

    https://bugzilla.gnome.org/show_bug.cgi?id=728776

 gio/gresolver.c | 43 ++++++++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 19 deletions(-)

commit c565d645e9aab5065d4141bb7d5c290213fab924
Author: Dan Winship <danw@gnome.org>
Date:   Thu Apr 24 12:15:55 2014 -0400

    gio: remove an unneeded pragma

    ddf82a25 removed the use of non-literal format strings from
    gthreadedresolver.c, but left the "#pragma GCC diagnostic ignored
    -Wformat-nonliteral" behind.

 gio/gthreadedresolver.c | 5 -----
 1 file changed, 5 deletions(-)

commit 44415953783f5ea880ce90e21a7eaea280f99f1c
Author: Volker Sobek <reklov@live.com>
Date:   Wed Apr 16 23:56:02 2014 +0200

    docs: Remove <!-- --> comment before plural s

    These did show up in the html. Since symbol names are checked for a
    trailing plural s when generating the docs, the links stay functional
    after removing these comments.

    https://bugzilla.gnome.org/show_bug.cgi?id=728380

 gio/gappinfo.h            | 2 +-
 gio/gfile.h               | 6 +++---
 gio/gfileattribute.h      | 4 ++--
 gio/gfileenumerator.c     | 2 +-
 gio/gicon.h               | 2 +-
 gio/gioenums.h            | 2 +-
 gio/giotypes.h            | 4 ++--
 gio/gunixmounts.h         | 2 +-
 glib/gvariant-core.c      | 2 +-
 gobject/gclosure.h        | 2 +-
 gobject/gtype.h           | 2 +-
 gobject/gvaluecollector.h | 2 +-
 12 files changed, 16 insertions(+), 16 deletions(-)

commit 99b67614b796976253bbbdda1b4fd06acda01a90
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Nov 6 10:54:06 2013 +0000

    gaction: Minor clarifications in the GAction documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=728350

 gio/gaction.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 58abc1fc198a8579667ea2164c33964b250a0435
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Wed Apr 16 10:27:09 2014 +0200

    platform_get_argv0: drop unneeded headers for OpenBSD

    And properly set the size of len.
    There is also no need for realloc(), g_malloc0 will do just fine.

    https://bugzilla.gnome.org/show_bug.cgi?id=728280

 glib/goption.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 9352cdb5f4f7dffa983d411625e874110b81cb35
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Apr 19 18:22:24 2014 +0100

    gfile: More explicitly document the context for GFileProgressCallback

    Be more explicit in the documentation for g_file_copy_async() about
    which GMainContext its progress callback is executed in.

    https://bugzilla.gnome.org/show_bug.cgi?id=728565

 gio/gfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 157521a5c43fd78884b77b9216e2e5c30d2a944d
Author: marablack3 <marablack3@gmail.com>
Date:   Fri Apr 18 17:55:02 2014 +0000

    Updated Greek translation

 po/el.po | 1690
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 852 insertions(+), 838 deletions(-)

commit 2b247e158991c9698c7cb53731395de2b69cb086
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Apr 16 19:03:56 2014 +0100

    gio: Document that GSocket is not thread safe

    https://bugzilla.gnome.org/show_bug.cgi?id=726318

 gio/gsocket.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 7a86a6690a767b48379c9233049a6a9d2a21a86e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Feb 19 18:02:37 2014 +0000

    hmac: Add support for SHA-512 in GHmac

    The block size wasn’t configured before, so calling g_hmac_new()
    with
    G_CHECKSUM_SHA512 would hit a g_assert_not_reached() and explode.

    Implement G_CHECKSUM_SHA512 and add unit tests for HMACs with SHA-256
    and SHA-512 using the test vectors from RFC 4868.

    https://bugzilla.gnome.org/show_bug.cgi?id=724741

 glib/ghmac.c      |  10 ++-
 glib/tests/hmac.c | 177
 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 173 insertions(+), 14 deletions(-)

commit d93458d97d74ef12a08de20c1f27ea1cfa54447f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 16 07:53:58 2014 -0400

    Revert "Bug 724590 - GSlice slab_stack corruption"

    This reverts commit c49ec3c8d7a90589308ce1b87a92bc627335ffd2.

 glib/gslice.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit c49ec3c8d7a90589308ce1b87a92bc627335ffd2
Author: John Ralls <jralls@ceridwen.us>
Date:   Mon Feb 17 15:51:38 2014 -0800

    Bug 724590 - GSlice slab_stack corruption

    Dereference allocation->contention_counters before trying to take the
    address of an element.

 glib/gslice.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 9f0ad54c8082656c29e4b567bd4d5f4bd849375c
Author: Volker Sobek <reklov@live.com>
Date:   Tue Apr 15 16:18:59 2014 +0200

    docs: Use markdown links in all .c and .h files

    Commit e7fd3de86d60 already did most of this.

    https://bugzilla.gnome.org/show_bug.cgi?id=728285

 gio/gdesktopappinfo.h  | 2 +-
 gio/giotypes.h         | 2 +-
 gio/gnetworkmonitor.h  | 2 +-
 gio/gproxy.h           | 2 +-
 gio/gproxyresolver.h   | 2 +-
 gio/gtlsbackend.h      | 2 +-
 gio/gvfs.h             | 2 +-
 gio/gvolume.h          | 4 ++--
 gio/gvolumemonitor.h   | 2 +-
 glib/deprecated/grel.c | 2 +-
 glib/gqueue.h          | 2 +-
 gobject/gparam.h       | 2 +-
 gobject/gtype.h        | 2 +-
 13 files changed, 14 insertions(+), 14 deletions(-)

commit afaee8dc6ad72281dd1a51ebae58aaabf0efdb05
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 15 14:10:39 2014 -0400

    gdesktopappinfo: fix a crasher

    During the time that we are expanding the strv, it is not
    null-terminated.  Use the strv_len variable instead to bound the
    search
    for duplicates.

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7916f6d63614b74d81a5527cef2b0e9c7bbb45f2
Author: Alberto Ruiz <aruiz@gnome.org>
Date:   Tue Apr 15 18:56:26 2014 +0200

    gio: fix g-i annotations in g_settings_schema_source_list_schemas()

 gio/gsettingsschema.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 9a5e85c078d5f624d24b24f34cff287a0d6354c5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 10 12:00:40 2014 -0400

    tests: use mimeapps.list over defaults.list

    defaults.list is deprecated, so use mimeapps.list as a filename
    instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=728040

 gio/tests/mimeapps.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 6fd5a8cdaa0dee2217ebe7411adf3ddb37f1827e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 9 08:44:18 2014 -0400

    GDesktopAppInfo: rewrite content type code

    Redo the code for type-based selection of applications (all,
    recommended, default, fallback) based on the new DesktopFileDir
    structures that we introduced last cycle.

    At the same time, we expand the functionality to add support for
    the new
    features of the specification:

     - moving ~/.local/share/applications/mimeapps.list to ~/.config/

     - per-desktop default applications (via XDG_CURRENT_DESKTOP)

     - sysadmin customisation of defaults (via /etc/xdg/mimeapps.list)

     - deprecation of the old defaults.list, favouring the use of
       /usr/share/applications/mimeapps.list (or gnome-mimeapps.list) to
       accomplish the same

    We modify the mimeapps testcase to check for mimeapps.list having been
    created in XDG_CONFIG_HOME instead of XDG_DATA_HOME.

    The modification is a net reduction of code (due to less duplication
    in
    bookkeeping).  It is also an increase in performance and reduction in
    memory consumption (due to simplified data structures).  Finally, it
    removes the stat-based timestamp checking in favour of the
    GFileMonitor-based approach that was already being used in the
    implementation of DesktopFileDir (in order to know if we had to rescan
    the desktop files themselves).

    https://bugzilla.gnome.org/show_bug.cgi?id=728040

 gio/gdesktopappinfo.c | 1479
 +++++++++++++++++++++----------------------------
 gio/tests/mimeapps.c  |    7 +-
 2 files changed, 632 insertions(+), 854 deletions(-)

commit caf0f1df1c59b0b7e5f68327e3852817d74609a5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 10 22:32:28 2014 -0400

    mimetype tests: don't depend on specific behaviour

    We currently assume that setting an application as the default
    will take
    it to the front of the list of supported applications for a given
    type,
    but this is not necessarily true.

    Check instead that the application is actually set as default.

    https://bugzilla.gnome.org/show_bug.cgi?id=728040

 gio/tests/desktop-app-info.c | 51
 +++++++++++---------------------------------
 1 file changed, 13 insertions(+), 38 deletions(-)

commit 54047080e963b2d6c3f966340dcd9d788b73ac9c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 10 11:49:21 2014 -0400

    appmonitor test: avoid /usr/share

    Set XDG_DATA_DIRS to make sure we don't use /usr/share from the
    appmonitor test.  We will soon throw a warning if we find
    defaults.list,
    so make sure we don't open ourselves up to that if there is one on the
    system.

    https://bugzilla.gnome.org/show_bug.cgi?id=728040

 gio/tests/appmonitor.c | 1 +
 1 file changed, 1 insertion(+)

commit a366b6f2d5cabcf04bad84ef40589eada2d7d4f6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 9 18:59:20 2014 -0400

    tests: expand 'apps' tool

    Add modes to output the applications found for get_default_,
    get_recommended_, get_fallback_ and get_all_for_type().

    https://bugzilla.gnome.org/show_bug.cgi?id=728040

 gio/tests/apps.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

commit 41761a134df118f64ee0316ad83cb7b7e6035145
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 9 19:14:37 2014 -0400

    mimeapps test: fix defaults vs. recommended

    The desktop file for myapp3 didn't declare support for image/png, but
    the testcase expects it to be recommended on the basis of it being the
    default app according to defaults.list.

    This will not work in the future -- we will only list apps that
    actually
    support the filetype in question, unless they've been explicitly added
    as associations.

    https://bugzilla.gnome.org/show_bug.cgi?id=728040

 gio/tests/mimeapps.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 84e9829feea8f455357fb875e77d579b2437de4a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 9 19:23:27 2014 -0400

    desktop-app-info test: use g_assert_strcmp()

    Replace some assert(strcmp()) with g_assert_strcmp() so that we get
    better output in case of failures.

    https://bugzilla.gnome.org/show_bug.cgi?id=728040

 gio/tests/desktop-app-info.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 6c7972a05c2901d67d793be2db64817fec94e8e7
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Thu Apr 10 11:16:44 2014 +0200

    build: also unset LIBS when LDFLAGS is unset

    On OpenBSD, libintl is installed under /usr/local/lib. When configure
    checks unset LDFLAGS, LIBS should also be unset otherwise we end
    up with
    -lintl which cannot be found resulting to the compile check to fail.

    https://bugzilla.gnome.org/show_bug.cgi?id=727939

 configure.ac | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 2d96503898745dbf88bec9ff57649b2d3853a851
Author: Colin Walters <walters@verbum.org>
Date:   Sat Apr 12 13:26:29 2014 -0400

    gdesktopappinfo: Don't double free sn_id

    Not sure why mclasen added a g_free() in that path, it was just wrong.
    We free it correctly later.

 gio/gdesktopappinfo.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit af1772b6422967820d27dbb952f3ef42f2287a8f
Author: Colin Walters <walters@verbum.org>
Date:   Sat Apr 12 13:21:20 2014 -0400

    gdesktopappinfo: Initialize sn_id to NULL

    Otherwise we'll be freeing a random stack pointer.

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 74ec947079e9159c71b28b98439b8a7ad9c415ee
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Thu Apr 10 10:40:16 2014 +0200

    openbsd: remove -pthread

    This is not needed any longer; libpthread is properly included in
    shared libs on OpenBSD where -pthread -lpthread mean the same.

 configure.ac | 3 ---
 1 file changed, 3 deletions(-)

commit 94e5dafbc9ae823590aa3a3f3989b8f5978f1a9d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 11 15:46:38 2014 -0700

    Deal with startup notify id being NULL

    The app launch context may just not support startup notification,
    in which case, g_app_launch_context_get_startup_notify_id() will
    return NULL.

    Failure to take this into account leads to criticals like this:
    gnome-session[8489]: GLib-CRITICAL: g_variant_new_take_string:
    assertion 'string != NULL' failed
    gnome-session[8489]: GLib-CRITICAL: g_variant_new_variant: assertion
    'value != NULL' failed
    gnome-session[8489]: GLib-CRITICAL: g_variant_get_type: assertion
    'value != NULL' failed
    gnome-session[8489]: GLib-CRITICAL: g_variant_type_is_subtype_of:
    assertion 'g_variant_type_check (type)' failed

    https://bugzilla.gnome.org/show_bug.cgi?id=728066

 gio/gdesktopappinfo.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 6c395244a5db7ac96d0c6279c6e846e99c1dc967
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Mar 10 15:16:44 2014 +0000

    gparam: Add G_PARAM_READWRITE to GParamFlags

    Using a #define for an enumeration value buys us nothing, and it's
    mostly historical baggage that makes binding GObject needlessly
    complicated.

    https://bugzilla.gnome.org/show_bug.cgi?id=726037

 gobject/gparam.h | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit 9fe9a676a452a73daccdb46246575c4a4c97ee16
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Apr 9 18:07:38 2014 -0700

    gapplication-tool: ensure object paths are valid

    Hyphens are not valid characters for DBus object paths; see the
    similar
    code in gapplicationimpl-dbus.c

    https://bugzilla.gnome.org/show_bug.cgi?id=727928

 gio/gapplication-tool.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 59d11879efb2a9a847f614faaa85f67644258f70
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Apr 9 18:07:22 2014 -0700

    gapplication-tool: fix a typo

    This must have never worked.

    https://bugzilla.gnome.org/show_bug.cgi?id=727928

 gio/gapplication-tool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eec507c15987388ae624eada236032e700bf8c50
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 9 09:57:46 2014 -0400

    g_str_has_prefix: don't call strlen(str)

    There's no reason to check the length of @str in g_str_has_prefix(),
    since if it's shorter than @prefix, the strncmp() will fail anyway.
    And besides making the function less efficient, it also breaks code
    like:

        if (buf->len >=3 && g_str_has_prefix (buf->data, "foo"))
          ...

    which really looks like it ought to work whether buf->data is
    nul-terminated or not.

    https://bugzilla.gnome.org/show_bug.cgi?id=727890

 glib/gstrfuncs.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

commit 0e44b29340a1e3db140064d7c34070904e3fd8be
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Thu Apr 10 15:26:45 2014 +0200

    giomodule: Add a NULL guard to extension_point_get_extension_by_name

    ... otherwise a NULL input will lead to a crash in strcmp.

    https://bugzilla.gnome.org/show_bug.cgi?id=727964

 gio/giomodule.c | 2 ++
 1 file changed, 2 insertions(+)

commit 2b178c762fbc0706031e9890ba190233e243a602
Author: Alexandre Rostovtsev <tetromino@gentoo.org>
Date:   Mon Sep 2 13:59:18 2013 -0400

    gobject: try to link with -Wl,-z,nodelete

    Since the type system does not support reloading its data and assumes
    that libgobject remains loaded for the lifetime of the process, we
    should link libgobject with a flag indicating that it can't be
    unloaded.

    https://bugzilla.gnome.org/show_bug.cgi?id=707298

 configure.ac        | 34 ++++++++++++++++++++++++++++++++++
 gobject/Makefile.am |  1 +
 2 files changed, 35 insertions(+)

commit 7089cf89672b70711b0ebe10fdd24cd73f6060d5
Author: Colin Walters <walters@verbum.org>
Date:   Thu Apr 3 14:05:45 2014 -0400

    g_file_copy: Don't set GError when we intend to ignore errors

    For better or worse, the current g_file_copy intention was to ignore
    errors copying metadata, but we still set the GError, while returning
    TRUE.

    https://bugzilla.gnome.org/show_bug.cgi?id=727559

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 76d6fd01dec6fd3ae4cb21f4bdf1ad7ee521a2c2
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Apr 9 16:14:11 2014 +0200

    gio: Add newer dbus UnknownXxxx and PropertyReadOnly errors

    Add G_DBUS_ERROR codes for:

     * org.freedesktop.DBus.Error.UnknownObject
     * org.freedesktop.DBus.Error.UnknownInterface
     * org.freedesktop.DBus.Error.UnknownProperty
     * org.freedesktop.DBus.Error.PropertyReadOnly

    These were discussed on the dbus mailing list
    and introduced in the following libdbus commit:

    2c34514620c4b79ea4ec71d1db583379138d01ac

    https://bugzilla.gnome.org/show_bug.cgi?id=727900

 gio/gdbuserror.c        |  6 +++++-
 gio/gioenums.h          | 14 +++++++++++++-
 gio/tests/gdbus-error.c |  3 +++
 3 files changed, 21 insertions(+), 2 deletions(-)

commit 65f26691733a8c8b48476d899b52cf17c0cfae88
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 9 10:39:45 2014 -0400

    gtlscertificate: fix certificate list parsing with trailing comments

    g_tls_certificate_list_new_from_file() was supposed to ignore non-PEM
    content, but it accidentally required that there not be anything after
    the last certificate. Fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=727692

 gio/gtlscertificate.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

commit 6c31eeb6bfc56e31f3f62de46c0a694d18dc503e
Author: Daniel Korostil <ted.korostiled@gmail.com>
Date:   Sun Apr 6 16:28:40 2014 +0300

    Updated Ukrainian translation

 po/uk.po | 6440
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 3650 insertions(+), 2790 deletions(-)

commit b81c12fcabd0895a861cfd88aa43ac65d8cbea91
Author: Marek Kasik <mkasik@redhat.com>
Date:   Thu Apr 3 17:35:22 2014 +0200

    GApplication: Don't decrease use_count below 0

    Place an assert for use_count to be at least 1
    in g_application_release() so we don't decrease
    it below 0.

    https://bugzilla.gnome.org/show_bug.cgi?id=727551

 gio/gapplication.c | 1 +
 1 file changed, 1 insertion(+)

commit 3cfa44da5a6f07b6416935c0f66d4d49e9398524
Author: David King <amigadave@amigadave.com>
Date:   Fri Apr 4 10:42:56 2014 +0100

    docs: Fix typo in g_unichar_iswide_cjk() comment

 glib/guniprop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4a4b0443212c27c5386b1f2ebf35883734915464
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Thu Apr 3 11:33:33 2014 +0200

    Add a small note to g_cclosure_marshal_generic docs

    reviewed-by: Emmanuele Bassi

 gobject/gclosure.c | 3 +++
 1 file changed, 3 insertions(+)

commit 20feb23569e61b061b507e995b5438a35676ae51
Author: Wim Taymans <wtaymans@redhat.com>
Date:   Mon Mar 10 16:27:48 2014 +0100

    networkaddress: fix parsing of uri with @ after authority

    Make sure that the @ sign is inside the authority part before
    attempting
    to parse the userinfo. We do this by checking if the @ sign comes
    before
    any of the possible authority delimiters.
    Add unit test to verify parsing of
    ftp://ftp.gnome.org/start?foo=bar@baz

    https://bugzilla.gnome.org/show_bug.cgi?id=726040

 gio/gnetworkaddress.c       | 11 +++++++++--
 gio/tests/network-address.c |  3 ++-
 2 files changed, 11 insertions(+), 3 deletions(-)

commit 8d037c678d8d3d0c0e4e1ddb22e47306567ed88a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Mar 20 12:32:36 2014 +0000

    build: Include Cocoa/Carbon in Libs.private if targetting Mac OS X

    This allows static linking against GIO on OS X, which would previously
    fail due to unresolved symbols from the above two frameworks.

    https://bugzilla.gnome.org/show_bug.cgi?id=668152

 configure.ac   | 14 +++++++++-----
 gio-2.0.pc.in  |  2 +-
 glib-2.0.pc.in |  2 +-
 3 files changed, 11 insertions(+), 7 deletions(-)

commit 638993f5ac9be841c4fc932ca768d26840dd6be6
Author: Olivier Crête <olivier.crete@collabora.com>
Date:   Wed Mar 26 19:45:52 2014 -0400

    networkmonitornetlink: IN6_IS_ADDR_MC_LINKLOCAL is only guaranteed
    to work on struct in6_addr*

    https://bugzilla.gnome.org/show_bug.cgi?id=727119

 gio/gnetworkmonitornetlink.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 3da5d59078b135ee224dae223b7ebb3e873e980a
Author: Dan Winship <danw@gnome.org>
Date:   Tue Mar 25 13:52:45 2014 -0400

    gio: move Winsock error mapping to g_io_error_from_win32_error()

    Rather than having special code in gsocket.c, handle Winsock errors
    along with other Win32 errors in gioerror.c

    Also, reference g_win32_error_message() from the
    g_io_error_from_win32_error() docs, and update the
    g_win32_error_message() docs to clarify that it works with Winsock
    error codes too.

 gio/gioerror.c | 45 ++++++++++++++++++++++++++++++++++++++++++---
 gio/gsocket.c  | 30 +++---------------------------
 glib/gwin32.c  | 12 ++++++------
 3 files changed, 51 insertions(+), 36 deletions(-)

commit befc111c435be63bdc6a2d59204f697d26688369
Author: Dan Winship <danw@gnome.org>
Date:   Fri Mar 21 16:57:56 2014 -0400

    gio/tests/socket: Update to check the error code

    Only treat IPv6 as unsupported if the attempt to create a socket
    returns G_IO_ERROR_NOT_SUPPORTED: any other error is a bug.

 gio/tests/socket.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 9fc35dbfb6b804c0ead5dd3dba1bbf14773a2f8f
Author: Dan Winship <danw@gnome.org>
Date:   Fri Mar 21 16:54:04 2014 -0400

    gioerror: map some more values to G_IO_ERROR_NOT_SUPPORTED

    Map EPROTONOSUPPORT, ESOCKTNOSUPPORT, EPFNOSUPPORT and EAFNOSUPPORT to
    G_IO_ERROR_NOT_SUPPORTED in g_io_error_from_errno(). (GSocket's
    socket_io_error_from_errno() already did this with the corresponding
    Winsock errors.)

    Also map EOPNOTSUPP, which on Linux is the same as ENOTSUP, but may
    not be on other platforms.

    Also, rewrite the EAGAIN/EWOULDBLOCK section to use the simpler idiom
    used by EEXIST/ENOTEMPTY and (now) ENOTSUP/EOPNOTSUPP.

 gio/gioenums.h |  2 +-
 gio/gioerror.c | 59
 ++++++++++++++++++++++++++++++++++++++--------------------
 2 files changed, 40 insertions(+), 21 deletions(-)

commit 0afd6d22ebb9ecb5e2b426904a91cac7a445cfe6
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Sun Mar 30 15:09:59 2014 +0200

    Updated Basque language

 po/eu.po | 2183
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1202 insertions(+), 981 deletions(-)

commit a0b932ac8bc8a0ee40c32a8f87247baeab78f6ef
Author: Volker Sobek <reklov@live.com>
Date:   Sun Mar 30 01:01:17 2014 +0100

    docs: Remove escaping '\' from literals

    commit 35066ed6c6b51317f49069f2564c547aa309f9f1 replaced entities, but
    escaped the replacement text also inside literals, which resulted
    in the
    escaping '\' to also appear in the documentation.

    https://bugzilla.gnome.org/show_bug.cgi?id=727320

 gio/gappinfo.c   | 2 +-
 gio/gicon.c      | 2 +-
 glib/gdatetime.c | 2 +-
 glib/gkeyfile.c  | 2 +-
 glib/grand.c     | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit 31694f9ccbb8a142998252288cd04d9738451a7f
Author: Dan Winship <danw@gnome.org>
Date:   Tue Mar 25 13:20:13 2014 -0400

    Bump version to 2.41.0, add GLIB_VERSION_2_42, etc

 configure.ac                          |  4 ++--
 docs/reference/glib/glib-sections.txt |  3 +++
 glib/gversionmacros.h                 | 24 ++++++++++++++++++++++++
 3 files changed, 29 insertions(+), 2 deletions(-)

commit 8792609e15394967cab526838b83f90acb401663
Author: Bastien Nocera <hadess@hadess.net>
Date:   Sat Mar 22 13:15:45 2014 +0100

    gio: Add names to idles and timeouts

    This isn't too useful for some of the "return result in idle"
    functions, but it's better than nothing.

    https://bugzilla.gnome.org/show_bug.cgi?id=726872

 gio/gactiongroupexporter.c       |  1 +
 gio/gappinfo.c                   |  1 +
 gio/gdbus-2.0/codegen/codegen.py |  3 ++-
 gio/gdbusconnection.c            | 11 +++++++++++
 gio/gdbusnameowning.c            |  1 +
 gio/gdbusnamewatching.c          |  1 +
 gio/gdbusprivate.c               |  3 +++
 gio/gdbusserver.c                |  1 +
 gio/gfilemonitor.c               |  1 +
 gio/gioscheduler.c               |  2 ++
 gio/gnetworkmonitorbase.c        |  1 +
 gio/gsimpleasyncresult.c         |  2 ++
 gio/gtask.c                      |  1 +
 13 files changed, 28 insertions(+), 1 deletion(-)

commit e1dee398bf6610f4822b5d2491bf545fdc502f91
Author: Volker Sobek <reklov@live.com>
Date:   Wed Mar 26 23:10:00 2014 +0100

    GNotification: Some small documentation fixes

    Use #GVariant instead of GVariant.

    g_notification_add_button_with_target,
    g_notification_set_default_action_and_target:
    Replace 'format_string' with 'target_format'.

    g_notification_set_default_action_and_target_value:
    Remove paragraph that apparently had been accidentally copied from
    g_notification_set_default_action_and_target.

    https://bugzilla.gnome.org/show_bug.cgi?id=727123

 gio/gnotification.c | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

commit 0c65f7e45a29fa93b0e24488ef881d374d621541
Author: Olivier Crête <olivier.crete@collabora.com>
Date:   Fri Mar 14 17:46:38 2014 -0400

    GSocket: ignore timed out state when not relevant

    Do this by separating the timeout check from the other socket checks.

    https://bugzilla.gnome.org/show_bug.cgi?id=726375

 gio/gsocket.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 1e8c4d2a6e302dde5d8441d5873f4def4f4eb629
Author: Dan Winship <danw@gnome.org>
Date:   Tue Mar 18 09:56:23 2014 -0400

    gio: fix two more g_task_return_error_if_cancelled() leaks

    https://bugzilla.gnome.org/show_bug.cgi?id=726611

 gio/gunixmount.c  | 5 ++++-
 gio/gunixvolume.c | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

commit 14872d29298b841260a2b5a481e07b0213d506f8
Author: Olivier Crête <olivier.crete@collabora.com>
Date:   Mon Mar 17 23:50:30 2014 -0400

    socketclient: Fix leak

    https://bugzilla.gnome.org/show_bug.cgi?id=726611

 gio/gsocketclient.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit cef7d9aeb8be347a5a46b752abfeb6770b241e13
Author: Petr Kovar <pkovar@redhat.com>
Date:   Sun Mar 23 16:12:50 2014 +0100

    Update Czech translation

 po/cs.po | 2109
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1174 insertions(+), 935 deletions(-)

commit 8af00dc1b2c1a090c0f2130e29aff659f19aee09
Author: Gábor Kelemen <kelemeng@gnome.hu>
Date:   Fri Mar 21 21:34:26 2014 +0000

    Updated Hungarian translation

 po/hu.po | 2105
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1175 insertions(+), 930 deletions(-)

commit 98aa80b262ec92b5709bc016e5778bf6bc99ca33
Author: Dan Winship <danw@gnome.org>
Date:   Sat Feb 1 18:13:50 2014 +0100

    gio/tests/socket: skip IPv6 tests on IPv6-less machines

    https://bugzilla.gnome.org/show_bug.cgi?id=667468

 gio/tests/socket.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit c67d23aa2f788b2a49801c2ee26a11d56871ef7a
Author: Dan Winship <danw@gnome.org>
Date:   Thu Mar 20 09:25:19 2014 -0400

    Clarify expectations with error codes like G_IO_ERROR_FAILED

    If an error code enumeration is expected to be extended in the future,
    people shouldn't compare explicitly against its generic "FAILED"
    value.

    https://bugzilla.gnome.org/show_bug.cgi?id=726775

 gio/gioenums.h | 16 +++++++++++++++-
 gio/gioerror.c | 12 ++++++++----
 glib/gerror.c  | 13 ++++++++++++-
 3 files changed, 35 insertions(+), 6 deletions(-)

commit 9c19f6dfa18c6ad6155d93413610e83822ca5210
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Wed Mar 19 21:47:30 2014 +0100

    Updated Danish translation

 po/da.po | 2039
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1121 insertions(+), 918 deletions(-)

commit b643dcfcede4db2fe067d3d248baf97d12e38ba9
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Tue Mar 18 21:13:19 2014 +0100

    Updated Serbian translation

 po/sr.po       | 2116
 +++++++++++++++++++++++++++++++-------------------------
 po/sr@latin.po | 2116
 +++++++++++++++++++++++++++++++-------------------------
 2 files changed, 2356 insertions(+), 1876 deletions(-)

commit d8c14f1378b9b5362e84220cf52415c316534a9a
Author: Dan Winship <danw@gnome.org>
Date:   Mon Mar 17 15:11:31 2014 -0400

    gbinding: warn on failed value transformation

    GBinding warned if g_value_transform() returned FALSE, but it didn't
    warn if there was no transformation available at all. Fix that and
    test it.

    https://bugzilla.gnome.org/show_bug.cgi?id=726574

 gobject/gbinding.c      | 14 +++++++-------
 gobject/tests/binding.c | 24 ++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 7 deletions(-)

commit 1a8e3074af0382d2d44ce5cfdddfca52be44aaa2
Author: A S Alam <apreet.alam@gmail.com>
Date:   Mon Mar 17 16:39:21 2014 -0500

    update Punjabi Translation 17March2014: Alam

 po/pa.po | 2099
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1166 insertions(+), 933 deletions(-)

commit 599c669b23a56d605fc69d96a93a198d27b08b28
Author: Ryan Lortie <desrt@desrt.ca>
Date:   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>
Date:   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>
Date:   Tue Mar 11 21:41:36 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>
Date:   Wed Feb 26 17:09:59 2014 -0500

    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>
Date:   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>
Date:   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>
Date:   Tue Mar 11 12:19:19 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>
Date:   Sun Mar 2 21:24:14 2014 -0500

    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>
Date:   Sun Mar 2 17:39:11 2014 -0500

    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>
Date:   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>
Date:   Mon Mar 10 19:46:23 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>
Date:   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>
Date:   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>
Date:   Sun Feb 9 23:08:21 2014 +0100

    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>
Date:   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>
Date:   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>
Date:   Fri Mar 7 07:41:50 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>
Date:   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>
Date:   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>
Date:   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>
Date:   Tue Mar 4 15:30:12 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>
Date:   Wed Mar 5 09:04:00 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>
Date:   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>
Date:   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>
Date:   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>
Date:   Mon Mar 3 21:25:16 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>
Date:   Sun Mar 2 21:01:12 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(-)

commit de142c0c5ad9a35e704f1fc9eeeaed3684a30adb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 2 22:18:14 2014 -0500

    GLib 2.39.91

 NEWS | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit 5d5ea495b5dca3965d60556300151c75a44c5653
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 2 09:38:51 2014 -0500

    desktopappinfo: add Exec to searchable keys

    Add the basename from the first component of the Exec line to the
    list of
    strings to search for via g_desktop_app_info_search().

    We treat Exec as a fairly strong match -- just below the visible name.

    Add a testcase to make sure everything is working OK.

    https://bugzilla.gnome.org/show_bug.cgi?id=725023

 gio/gdesktopappinfo.c                              | 35
 +++++++++++++++++-----
 gio/tests/desktop-app-info.c                       |  9 ++++++
 .../desktop-files/usr/applications/eog.desktop     |  2 +-
 3 files changed, 38 insertions(+), 8 deletions(-)

commit 9ecc859f95d3a2f3faf918c96ca21a447dd33b6a
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Mon Mar 3 17:27:09 2014 +0700

    Updated Thai translation

 po/th.po | 552
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 282 insertions(+), 270 deletions(-)

commit 79caa3a7e151897b062f82251eec207bc1514ff3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 2 19:10:00 2014 -0500

    Add a few tests for G_MARKUP_TREAT_CDATA_AS_TEXT

    Related to
    https://bugzilla.gnome.org/show_bug.cgi?id=725433

 glib/tests/Makefile.am                    |  9 ++++++-
 glib/tests/markups/valid-16.cdata-as-text | 42
 +++++++++++++++++++++++++++++++
 glib/tests/markups/valid-16.expected      | 42
 +++++++++++++++++++++++++++++++
 glib/tests/markups/valid-16.gmarkup       | 10 ++++++++
 glib/tests/markups/valid-8.cdata-as-text  |  5 ++++
 5 files changed, 107 insertions(+), 1 deletion(-)

commit b93a13bb796eeb30a45bcdca9a760a9ef4c47a2e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 2 19:02:23 2014 -0500

    Add a way to test different markup parser flags

    For now, we are mainly interested in G_MARKUP_TREAT_CDATA_AS_TEXT.
    This commit makes markup-parse look for expected output files with
    the extension .cdata-as-text in addition to .expected, and compares
    the output of parsing with G_MARKUP_TREAT_CDATA_AS_TEXT against
    them. markup-parse --cdata-as-text foo.gmarkup can be used to produce
    such expected output.

 glib/tests/markup-parse.c | 81
 +++++++++++++++++++++++++++++++++--------------
 1 file changed, 57 insertions(+), 24 deletions(-)

commit 49cc207e35ef6b6ce7f4954a4c067ab43145f6bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 2 18:20:37 2014 -0500

    docs: Ditch more markup

    Some markup was hiding in docs in headers. Drop it there, too.

 gio/gdbusconnection.h |  56 +++++++++---------
 gio/gioenums.h        |  15 +++--
 gio/gsettings.h       |   2 +-
 gio/gvolume.h         |  13 ++---
 glib/gbacktrace.h     |   2 +-
 glib/gmarkup.h        |   4 +-
 glib/goption.h        | 157
 +++++++++++++++++++++-----------------------------
 glib/gspawn.h         |  91 ++++++++++++++---------------
 gobject/gsignal.h     |   5 +-
 gobject/gtype.h       |   6 +-
 gobject/gtypeplugin.h |   8 +--
 gobject/gvalue.h      |   7 +--
 12 files changed, 164 insertions(+), 202 deletions(-)

commit ad4d81418ecdaf53950de117710be127d53169da
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Mar 2 19:24:01 2014 +0100

    Updated Polish translation

 po/pl.po | 2052
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1123 insertions(+), 929 deletions(-)

commit fdf14e9e6cbd2e373988d7b9e913788a58c63388
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Feb 19 18:03:37 2014 +0000

    hmac: Make unit test const-correct

    https://bugzilla.gnome.org/show_bug.cgi?id=724741

 glib/tests/hmac.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 393503ba5bdc7c09cd46b716aaf3d2c63a6c7f9c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Feb 8 12:23:46 2014 +0000

    gmain: simplify g_main_context_find_source_by_id()

    Since we now keep a hashtable of sources, we can implement this
    function
    without iteration.

    https://bugzilla.gnome.org/show_bug.cgi?id=724839

 glib/gmain.c | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

commit 9e81709012f27eebe336f40f948e9493c87fc75b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Feb 8 12:17:10 2014 +0000

    gmain: Simplify source id tracking

    Simplify our tracking of issued source id integers and fix some bugs.

    Previously the source's id was remove from the 'used' table from
    source_remove_from_context() which was also called if the source
    priority was changed (in which case it would never be added back
    to the
    table).  The source id could be reissued in that case.

    In the new approach, we just always keep a hash table of sources, by
    source id.  This simplifies the logic and will also allow us to
    improve
    performance of g_main_context_find_source_by_id() which is called
    in some
    fairly common cases, such as g_source_remove().  These improvements
    will be in
    the following commits.

    https://bugzilla.gnome.org/show_bug.cgi?id=724839

 glib/gmain.c | 77
 ++++++++++++++----------------------------------------------
 1 file changed, 18 insertions(+), 59 deletions(-)

commit e7bde4acf4499d353780b696435e1a43dee66c54
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 23 12:03:13 2014 -0500

    Test content type icons more thoroughly

    Check we actually get the right icon names, and check
    that symbolic icons fall back to non-symbolic ones.

 gio/tests/contenttype.c | 71
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

commit e6af432b39ac9e0123387e5a993737073dce9153
Author: John Lindgren <john.lindgren@aol.com>
Date:   Sun Feb 23 00:52:31 2014 -0500

    Add non-symbolic fallback icons in g_content_type_get_symbolic_icon().

    This makes the behavior consistent with
    e.g. g_volume_get_symbolic_icon().

    https://bugzilla.gnome.org/show_bug.cgi?id=724994

 gio/gcontenttype.c | 44 +++++++++++++++++++-------------------------
 1 file changed, 19 insertions(+), 25 deletions(-)

commit 356fe2cec65ad5b531ff08c78e5c24f37017bb83
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Feb 23 01:11:50 2014 -0500

    asyncqueue: fix timeout math on 32bit systems

    88182d375e13ae6519a288d5295220c83ca27e73 caught this issue in
    g_async_queue_timed_pop() but failed to fix the same bug in the
    _unlocked()
    variant.

    This is only a problem on 32bit systems.  On 64bit systems, the tv_sec
    in a timeval is already 64 bits, so no overflow occurs.

    https://bugzilla.gnome.org/show_bug.cgi?id=722604

 glib/gasyncqueue.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 4af9b8e9cb43cbcb1f889b74b85111325aab57ba
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Feb 23 00:47:29 2014 -0500

    mappedfile test: permit ENODEV on /dev/null

    mmap() on /dev/null returns ENODEV on old Linux versions and also on
    Hurd, so accept that in the testcase.

    https://bugzilla.gnome.org/show_bug.cgi?id=722360

 glib/tests/mappedfile.c | 1 +
 1 file changed, 1 insertion(+)

commit 4825e819b2ca59409b93f4d6f0f742d630626887
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Feb 20 08:47:54 2014 +0800

    Fix build of gio/gapplication.c on Visual C++

    Visual C++ is quite zealous about checking against the types used
    in the
    initializing of array of structures, even up to Visual C++ 2013.
    Fix this
    by splitting up the initializing steps.

    https://bugzilla.gnome.org/show_bug.cgi?id=724609

 gio/gapplication.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 8da795de4f04dad35029a36c155d0b299d739840
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 17:07:07 2014 -0500

    gsocket: use check/prepare only on win32

    There is no longer any code left in the check/prepare functions
    on UNIX,
    so put %NULL in the GSourceFuncs vtable.

    This also allows us to simplify some logic.

    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 gio/gsocket.c | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

commit e8f26efe0d0ddf64b4be45e61917039b98de83bf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 16:37:49 2014 -0500

    gsocket: use _add_unix_fd() instead of _add_poll()

    Use g_source_add_unix_fd() on UNIX instead of using a GPollFD.

    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 gio/gsocket.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit 04aee2d9201551810c2f9345b5b64ed7bf4e910e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 16:59:28 2014 -0500

    gsocket: make use of g_source_set_ready_time()

    Drop our own hand-rolled version of the same functionality.

    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 gio/gsocket.c | 39 ++++++++++++---------------------------
 1 file changed, 12 insertions(+), 27 deletions(-)

commit 12d65f250987f6bea25ad38acd7c26b3f47d0ab6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 20 19:05:30 2014 -0500

    GSource: mark some API as "implementation only"

    Clarify that _add_poll() _remove_poll() _add_unix_fd(),
    _modify_unix_fd(), _remove_unix_fd(), _query_unix_fd(),
    _set_ready_time(), _add_child_source() and _remove_child_source()
    are only
    intended to be used by the implementation of a particular GSource --
    not its
    consumers.

    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 glib/gmain.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit 1f7100506a51584e66930851c5243fd2eaee5c35
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 16:58:34 2014 -0500

    gsocket: don't abuse GPollFD.revents field

    We are reusing the GPollFD.revents field of the source to store a
    temporary value.  Use a local variable for that instead.

    This is a refactor to make the next commit easier to understand.

    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 gio/gsocket.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit ff96f88e172d504b5aef2a852880e21341809e1f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 16:34:29 2014 -0500

    gsocket: use cancellable child source

    Now that GCancellable's GSource is based on _set_ready_time()
    instead of
    an fd, we should use it as a child source, instead of forcing the
    creation of the fd and adding it as a poll.

    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 gio/gsocket.c | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

commit d8263dd7930fddddc4b8158e720ce0387d445af7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 16:16:27 2014 -0500

    gsocket: trivial typo fix

    https://bugzilla.gnome.org/show_bug.cgi?id=724707

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6147d15ea256ff0aabf11fb854ef07cf0e0e3a62
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Feb 22 09:22:27 2014 -0500

    gmain: repeat preconditions for emphasis

    g_main_context_acquire() mentions that you must have called it before
    you make any calls to _prepare(), _query(), _check() or _dispatch().

    For emphasis, add a note on each of those functions pointing back
    to the
    fact that you must have called _acquire() before using them.

 glib/gmain.c | 26 +++++++++++++++++++-------
 1 file changed, 19 insertions(+), 7 deletions(-)

commit c0aa150cb0d362224480240b2db8ff214717bdd1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 21 16:25:09 2014 -0500

    g_main_context_wait: add a critical to detect use

    Due to its unusual interface, I suspect that nobody is using
    g_main_context_wait() but there is no way to know.

    Add a critical notice that will be displayed if anyone calls the
    function, asking them to file a bug with us.

    We'll let this go out with the 2.40 release and see if we get
    a response
    before we proceed with actually breaking the functionality.

 glib/gmain.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 5103c5d643f7e7de7983619204a25c3c774478e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 21 16:40:16 2014 -0500

    GCond: check result of pthread_condattr_setclock()

    Make sure this call succeeds, aborting if it doesn't

    This will prevent people from having to waste time chasing down
    the problems
    that would otherwise be caused by this silent failure.

 glib/gthread-posix.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 03a43c290e470c67015d01237c5d81ea81a7b129
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 21 10:20:11 2014 -0500

    gmain: abort if monotonic time is unsupported

    We now depend on CLOCK_MONOTONIC, but it's possible that people may
    attempt to run GLib on systems where it isn't supported at runtime.

    Check the return value of clock_gettime() and abort() if it fails in
    order to save these people from wasting time on debugging a tricky
    issue.

    https://bugzilla.gnome.org/show_bug.cgi?id=670144

 glib/gmain.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 6fcaa7aa96fc4b274a4358f2cec3a4075568d343
Author: Xavier Claessens <xavier.claessens@collabora.com>
Date:   Fri Feb 21 15:35:36 2014 -0500

    GHashTable: Explicitly document that _iter_remove() is safe while
    iterating

    https://bugzilla.gnome.org/show_bug.cgi?id=723316

 glib/ghash.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 59a8ae34c01a9f5e311cb3fb6bb12fbe3e0096b0
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Fri Feb 21 22:16:16 2014 +0200

    Updated Lithuanian translation

 po/lt.po | 1750
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 864 insertions(+), 886 deletions(-)

commit 450363321db007d1c9a6c654b245e701ccc2998a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Feb 21 17:06:56 2014 +0800

    glib/Makefile.am: Dist gtranslit-data.h

    This header needs to be distributed as well, which was
    inadvertently missed.

    https://bugzilla.gnome.org/show_bug.cgi?id=724858

 glib/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 73060f5e78ea5f208275f4a7cb6183636aeef1da
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 21 07:56:06 2014 -0500

    slow-motion post-release version bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 061793a726df038fb8c790984c81020e14feb0bb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 20 18:49:37 2014 -0500

    gconvert: add note to avoid transliteration

    Add a note to the documentation of g_convert() advising to avoid using
    it for transliteration.  Link to g_str_to_ascii().

 glib/gconvert.c | 3 +++
 1 file changed, 3 insertions(+)

commit 0415930b499fa951f1e82d38fc60461a8bd42c4b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 10:18:03 2014 -0500

    gsource: document priority of child sources

    Add a note to the documentation that child sources cannot have
    their priority
    changed independently from their parent.  Add a g_return_if_fail()
    to the
    public API in order to enforce this.

    This was already a reality due to the check in
    g_source_set_priority_unlocked(), but it was never explicitly
    documented.

    https://bugzilla.gnome.org/show_bug.cgi?id=724706

 glib/gmain.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 8491f03581b6ada1d82f29064c99b604e98c7e09
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 20 18:32:04 2014 -0500

    g_str_to_ascii(): a couple of minor tweaks

    Add a precondition guard and use g_string_sized_new() to avoid some
    reallocations.

 glib/gtranslit.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit a8ea3dc03b203e18825aa4c8473c9ab832fbeddf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 17 13:15:55 2014 -0500

    g_str_tokenize_and_fold: do proper transliteration

    g_str_tokenize_and_fold() can now do proper locale-sensitive
    transliteration for ascii alternatives.

    https://bugzilla.gnome.org/show_bug.cgi?id=710142

 glib/gstrfuncs.c | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

commit d7291760df7de8cc878cb418749cb0f6afa6c69d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 17 11:55:22 2014 -0500

    tests: test transliteration API

    Add some tests for the new transliteration API.

    https://bugzilla.gnome.org/show_bug.cgi?id=710142

 glib/tests/strfuncs.c | 107
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)

commit 941b8979d07a7d9bd1a8f581ee744c0c914e12ee
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 17 11:54:18 2014 -0500

    Add locale-sensitive ASCII transliteration API

    Add a new function, g_str_to_ascii() that does locale-dependent ASCII
    transliteration of UTF-8 strings.

    This function works off of an internal database.  We get the data
    out of
    the localedata shipped with glibc, which seems to be just about
    the best
    source of locale-sensitive transliteration information available
    anywhere.

    We include a update script with this commit that's not used by
    anything
    at all -- it will just sit in git.  It is intended to be run manually
    from time to time.

    https://bugzilla.gnome.org/show_bug.cgi?id=710142

 docs/reference/glib/glib-sections.txt |   1 +
 glib/Makefile.am                      |   1 +
 glib/gstrfuncs.h                      |   4 +
 glib/gtranslit-data.h                 |  12 +
 glib/gtranslit.c                      | 409
 +++++++++++++++++++++++++++++++++
 glib/update-gtranslit.py              | 410
 ++++++++++++++++++++++++++++++++++
 6 files changed, 837 insertions(+)

commit 436d77f70ac9aed56d1b5f223e05a29e34378444
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 18 19:04:24 2014 -0500

    tests: add a test for g_cond_wait_until()

    https://bugzilla.gnome.org/show_bug.cgi?id=673607

 glib/tests/cond.c | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit 1de36e775599e77f2fe47b381f0e5b1b62e93f66
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 18 18:50:18 2014 -0500

    Fix g_cond_wait_until() vs. monotonic time

    We've had a relatively rocky path with g_cond_wait_until() on systems
    that either don't support pthread_condattr_setclock() or where
    g_get_monotonic_time() is not based on CLOCK_MONOTONIC (ie:
    Android and
    Mac OS).

    Fortunately, both of these platforms seem to share
    pthread_cond_timedwait_relative_np() which allows us to implement
    g_cond_wait_until() without races.

    With this patch, we now require that one of
    pthread_condattr_setclock()
    or pthread_cond_timedwait_relative_np() exists.  A quick look around
    suggests that this is true for all platforms that we care about.

    This patch removes our use of pthread_cond_timedwait_monotonic() and
    pthread_cond_timedwait_monotonic_np() which were Android-only APIs.

    https://bugzilla.gnome.org/show_bug.cgi?id=673607

 configure.ac         | 17 ++++-------------
 glib/gthread-posix.c | 45 ++++++++++++++++++++++++++++++++++-----------
 2 files changed, 38 insertions(+), 24 deletions(-)

commit d61431254636b9ecc250884eb34757c2504e5685
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 18 14:09:49 2014 -0500

    gmain: rework g_get_monotonic_time() a bit

    We now assume the existence of clock_gettime() and CLOCK_MONOTONIC as
    specified by POSIX.1-2001.  This means that we always return truly
    monotonic time, which will prevent problems in the case that the user
    changes the time.

    Mac OS doesn't have clock_gettime() but it does have
    mach_absolute_time(), so we can use that there.

    We keep our Windows case as well (although we should simplify it
    once XP
    hits EOL later this year).

    This patch removes the fallback to gettimeofday() in case of missing
    clock_gettime().  We no longer have any way to test this codepath and
    therefore it must go.

    This patch also restructures the #ifdef a bit so that we repeat the
    entire function definition inside of #ifdef instead of just the entire
    body of one function.

    https://bugzilla.gnome.org/show_bug.cgi?id=724687

 configure.ac |   3 +-
 glib/gmain.c | 164
 +++++++++++++++++++++++++++++++----------------------------
 2 files changed, 88 insertions(+), 79 deletions(-)

commit 20f4d1820b8d4d0fc4447188e33efffd6d4a88d8
Author: William Jon McCann <william.jon.mccann@gmail.com>
Date:   Wed Feb 19 19:35:23 2014 -0500

    docs: use "Returns:" consistently

    Instead of "Return value:".

 gio/gactiongroup.c             |  8 ++--
 gio/gappinfo.c                 |  2 +-
 gio/gcancellable.c             |  2 +-
 gio/gdesktopappinfo.c          |  2 +-
 gio/gfileenumerator.c          |  4 +-
 gio/gfilterinputstream.c       |  2 +-
 gio/gfilteroutputstream.c      |  2 +-
 gio/ginetaddressmask.c         | 12 +++---
 gio/ginetsocketaddress.c       |  4 +-
 gio/ginitable.c                |  6 +--
 gio/ginputstream.c             | 12 +++---
 gio/gioerror.c                 |  2 +-
 gio/giomodule.c                |  4 +-
 gio/giostream.c                |  4 +-
 gio/gmemoryoutputstream.c      |  2 +-
 gio/gnetworkaddress.c          | 12 +++---
 gio/gnetworkmonitor.c          |  6 +--
 gio/gnetworkservice.c          | 10 ++---
 gio/goutputstream.c            | 16 ++++----
 gio/gpollableinputstream.c     |  2 +-
 gio/gpollableoutputstream.c    |  2 +-
 gio/gpollableutils.c           |  6 +--
 gio/gproxy.c                   |  8 ++--
 gio/gproxyresolver.c           |  8 ++--
 gio/gresolver.c                | 20 +++++-----
 gio/gresource.c                |  8 ++--
 gio/gsocketaddressenumerator.c |  4 +-
 gio/gsocketconnectable.c       |  4 +-
 gio/gsrvtarget.c               | 14 +++----
 gio/gtask.c                    |  6 +--
 gio/gtcpwrapperconnection.c    |  4 +-
 gio/gtlsbackend.c              | 12 +++---
 gio/gtlscertificate.c          | 14 +++----
 gio/gtlsclientconnection.c     | 10 ++---
 gio/gtlsconnection.c           | 24 ++++++------
 gio/gtlsdatabase.c             | 16 ++++----
 gio/gtlsfiledatabase.c         |  2 +-
 gio/gtlspassword.c             |  6 +--
 gio/gtlsserverconnection.c     |  2 +-
 gio/gunixinputstream.c         |  4 +-
 gio/gunixoutputstream.c        |  4 +-
 gio/gwin32inputstream.c        |  4 +-
 gio/gwin32outputstream.c       |  4 +-
 gio/gwin32volumemonitor.c      |  2 +-
 gio/inotify/inotify-helper.c   |  2 +-
 glib/deprecated/gcompletion.c  |  2 +-
 glib/gasyncqueue.c             | 24 ++++++------
 glib/gbase64.c                 | 12 +++---
 glib/gbookmarkfile.c           | 54 +++++++++++++-------------
 glib/gcharset.c                |  6 +--
 glib/gchecksum.c               | 14 +++----
 glib/gconvert.c                | 30 +++++++-------
 glib/gdataset.c                |  2 +-
 glib/gdatetime.c               | 46 +++++++++++-----------
 glib/gdir.c                    |  4 +-
 glib/genviron.c                |  8 ++--
 glib/gerror.c                  |  8 ++--
 glib/gfileutils.c              | 32 +++++++--------
 glib/ggettext.c                |  2 +-
 glib/ghash.c                   | 28 +++++++-------
 glib/ghmac.c                   | 12 +++---
 glib/ghostutils.c              | 10 ++---
 glib/giochannel.c              | 46 +++++++++++-----------
 glib/gkeyfile.c                | 44 ++++++++++-----------
 glib/gmain.c                   | 88
 +++++++++++++++++++++---------------------
 glib/gmappedfile.c             |  6 +--
 glib/gmarkup.c                 | 16 ++++----
 glib/gmem.c                    |  2 +-
 glib/gnode.c                   |  2 +-
 glib/goption.c                 |  6 +--
 glib/gpoll.c                   |  2 +-
 glib/gqueue.c                  | 28 +++++++-------
 glib/grand.c                   | 24 ++++++------
 glib/gsequence.c               | 48 +++++++++++------------
 glib/gshell.c                  |  6 +--
 glib/gspawn.c                  | 10 ++---
 glib/gstrfuncs.c               | 56 +++++++++++++--------------
 glib/gstring.c                 | 18 ++++-----
 glib/gstringchunk.c            |  2 +-
 glib/gtestutils.h              |  2 +-
 glib/gthreadpool.c             | 18 ++++-----
 glib/gtimer.c                  |  4 +-
 glib/gtree.c                   | 18 ++++-----
 glib/gunibreak.c               |  2 +-
 glib/gunicollate.c             |  6 +--
 glib/gunidecomp.c              |  8 ++--
 glib/guniprop.c                | 60 ++++++++++++++--------------
 glib/gutf8.c                   | 42 ++++++++++----------
 glib/gutils.c                  | 16 ++++----
 glib/gversion.c                |  2 +-
 glib/gwin32.c                  |  2 +-
 gobject/gbinding.c             | 16 ++++----
 gobject/gbinding.h             |  2 +-
 93 files changed, 600 insertions(+), 600 deletions(-)

commit 9cb53851be2d90c804e6f31da26a11c51329f33c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 19 13:57:18 2014 +0800

    gio/gresolver.c: Fix build on Windows

    Windows does not come with inet_aton(), and this check on IPv4
    addresses
    is actually not needed on Windows as the getaddrinfo() implementation
    on
    Windows already rejects non-standard and non-real IPv4
    numbers-and-dots
    addresses.

    https://bugzilla.gnome.org/show_bug.cgi?id=724609

 gio/gresolver.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit a5ae016359ffb8634d6a12e5853e89f743eca0b9
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Feb 19 23:57:40 2014 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 60
 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 33 insertions(+), 27 deletions(-)

commit 0ffa1ea8ddb9a3c17ab0ad13a0f6685657fb41e2
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Wed Feb 19 15:51:27 2014 -0500

    Add G_ÂTYPE_VARIANT_DCT into the doc

 docs/reference/gobject/gobject-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit ec17605d4f62fa6b460846f30a5ea409425bee00
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 17 18:33:34 2014 -0500

    GLib 2.39.90

 NEWS         | 36 ++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 37 insertions(+), 1 deletion(-)

commit c37cd19feee3a609fec8909f01df8755052c59ab
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 17 18:13:01 2014 -0500

    Work around test failure in gdbus-names

    This is caused by g_test_dbus_down() returning too soon.

    Add a sleep for now.

    https://bugzilla.gnome.org/show_bug.cgi?id=711807

 gio/tests/gdbus-names.c | 3 +++
 1 file changed, 3 insertions(+)

commit 53d5b17f629a593dc3862f39fdcef9339ca4816d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 17 17:43:48 2014 -0500

    GApplication: disable some more tests

    Disable some racy GApplication testcases.  We need some better
    non-hacky
    GApplication tests...

    https://bugzilla.gnome.org/show_bug.cgi?id=724126

 gio/tests/gapplication.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit c81834c0895766f104bc6fb1579704066df90597
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 17 16:57:13 2014 -0500

    Bump gtk-doc dep to 1.20

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4139b26f3e2f869191b3d96d912f699470db6cea
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 14 15:35:11 2014 -0500

    gsocket: fix g_socket_condition_timed_wait() recovery after EINTR

    After getting an EINTR, g_socket_condition_timed_wait() has to adjust
    its timeout, but it was trying to convert from nanoseconds to
    microseconds by multiplying by 1000 rather than dividing... Oops.

    https://bugzilla.gnome.org/show_bug.cgi?id=724239

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5a4478664be8bc6523f6452bfd63340718be2aa5
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 14 16:12:50 2014 -0500

    gtestutils: make the new assert messages more detailed

    g_assert_true(), g_assert_false(), g_assert_null(), and
    g_assert_nonnull() simply printed out the expression they were
    checking, without any further explanation of what went wrong. (In
    particular, "g_assert_true(x)" and "g_assert_false(x)" would both
    print the same thing on failure.) Add a little bit more context.

    https://bugzilla.gnome.org/show_bug.cgi?id=724385

 glib/gtestutils.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 299ca6dc1e54797e6fc5264c7b19b08bd726ca83
Author: Ross Burton <ross.burton@intel.com>
Date:   Tue Feb 4 13:15:08 2014 +0000

    gio/tests: fix race when generating code

    There is a race condition in the makefile that can result in build
    failures like this in parallel builds:

    | ./gdbus-test-codegen-generated.h:7:0: error: unterminated #ifndef
    |  #ifndef __GDBUS_TEST_CODEGEN_GENERATED_H__

    This is because a rule like this:

    x.c x.h: prerequisites
            @commands

    doesn't consider x.c and x.h together. Instead, it expands to two
    rules, one to
    generate x.c and one to generate x.h, which happen to run the same
    commands.  In
    the worst case they execute in parallel, overwriting each other's
    output.

    Signed-off-by: Ross Burton <ross.burton@intel.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=723616

 gio/tests/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit ed017994c9396f10c87646b5fa3639e1ca1925b8
Author: Olivier Crête <olivier.crete@collabora.com>
Date:   Sat Feb 15 02:23:29 2014 -0500

    subprocess: Init and clear the mutex

    Fixes the leak of the GMutexImpl allocated inside the first call
    to g_mutex_lock()
    on an uninitialized GMutex.

    https://bugzilla.gnome.org/show_bug.cgi?id=724401

 gio/gsubprocess.c | 3 +++
 1 file changed, 3 insertions(+)

commit a732f2966d114a040a2958084252b697b1f29f29
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Feb 16 22:06:11 2014 +0100

    Annotate g_application_add_main_option_entries

 gio/gapplication.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 89022761018fd87a19b0c4cf5a9c9fe8575a743a
Author: Dan Winship <danw@gnome.org>
Date:   Sun Feb 16 09:24:04 2014 -0500

    g_simple_async_result_is_valid: fix for NULL source tag

    If a GSimpleAsyncResult has a NULL source tag, allow it to compare
    valid to a non-NULL source tag in g_simple_async_result_is_valid(), to
    simplify cases where, eg, g_simple_async_result_new() and
    g_simple_async_result_report_error_in_idle() are both used.

    https://bugzilla.gnome.org/show_bug.cgi?id=721458

 gio/gsimpleasyncresult.c        | 22 +++++++-------
 gio/tests/simple-async-result.c | 65
 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 10 deletions(-)

commit 9c135707cb0653cc0f7d66ee67921428fa912611
Author: Koop Mast <kwm@rainbow-runner.nl>
Date:   Sat Feb 15 19:54:21 2014 +0100

    Fix the build on FreeBSD by replacing EAI_NODATA with EAI_NONAME.

    https://bugzilla.gnome.org/show_bug.cgi?id=724434

 gio/gresolver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7cbff954b926d97ce2f3ce08487866b668e7eafb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 12 03:14:04 2014 -0500

    win32: fixup lib.exe invocation

    We have a configure.ac check for lib.exe that attempts to enable
    creation of .lib files for our 5 public libraries.  That has been
    broken
    for a long time for two reasons:

     1) the Makefiles hardcode 'lib' instead of 'lib.exe'

     2) we dropped generation of .def files quite some time ago
     (except for
        in gthread where we have the two-symbol file under version
        control)

    Add new rules for creating .def files from dumpbin.exe (which
    you should
    have if you have lib.exe) and fix the .lib rules to use lib.exe.

    Add a bit of $(AM_V_GEN) all around, as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=722033

 gio/Makefile.am     | 5 ++++-
 glib/Makefile.am    | 5 ++++-
 gmodule/Makefile.am | 5 ++++-
 gobject/Makefile.am | 5 ++++-
 gthread/Makefile.am | 2 +-
 5 files changed, 17 insertions(+), 5 deletions(-)

commit 08533cae05dfe6d3af5e02c95af9de65680cdae0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Feb 15 08:44:05 2014 -0500

    only '#pragma GCC' outside of functions

    Don't use #pragma GCC inside of function scope.

    https://bugzilla.gnome.org/show_bug.cgi?id=724417

 glib/tests/test-printf.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

commit 5575a3e9cb8ec3d0f0f373cb64e6fedc4c72c0f5
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 20 21:36:25 2013 -0400

    gio: don't accept nonstandard IPv4 "numbers-and-dots" addresses

    In addition to the standard "192.168.1.1" format, there are numerous
    legacy IPv4 address formats (such as "192.168.257",
    "0xc0.0xa8.0x01.0x01", "0300.0250.0001.0001", "3232235777", and
    "0xc0a80101"). However, none of these forms are ever used any more
    except in phishing attempts. GLib wasn't supposed to be accepting
    these addresses (neither g_hostname_is_ip_address() nor
    g_inet_address_new_from_string() recognizes them), but getaddrinfo()
    accepts them, and so the parts of gio that use getaddrinfo()
    accidentally did accept those formats.

    Fix GNetworkAddress and GResolver to reject these address formats.

    https://bugzilla.gnome.org/show_bug.cgi?id=679957

 docs/reference/gio/gio-sections.txt |   1 +
 gio/ginetsocketaddress.c            |  74 +++++++++++++++++++++++
 gio/ginetsocketaddress.h            |  17 +++---
 gio/gnetworkaddress.c               |  28 +++------
 gio/gresolver.c                     |  55 ++++++++++++++---
 gio/gthreadedresolver.c             |   2 +-
 gio/tests/network-address.c         | 116
 ++++++++++++++++++++++++++++++++++++
 7 files changed, 256 insertions(+), 37 deletions(-)

commit 5cab3fcec13f9b9b13ebb483498e3e50bc1a4b45
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 2 11:59:30 2013 -0500

    gobject: re-allow finalization from constructor()

    Although returning NULL from constructor is strongly discouraged, some
    old libraries need to keep doing it for ABI-compatibility reasons.
    Given this, it's rude to forbid finalization from within
    constructor(), since it would otherwise work correctly now anyway (and
    the critical when returning NULL should discourage any new uses of
    returning NULL from constructor()).

    https://bugzilla.gnome.org/show_bug.cgi?id=661576

 gobject/gobject.c      |  4 ++--
 gobject/tests/object.c | 20 +++++++++++---------
 2 files changed, 13 insertions(+), 11 deletions(-)

commit 074df396813692c7680c5406224131eda554d474
Author: Dan Winship <danw@gnome.org>
Date:   Sat Feb 1 14:21:10 2014 +0100

    Fix g_socket_get_available() with TCP on Windows

    Windows needs a special inefficient hack to implement
    g_socket_get_available() correctly for UDP sockets, but that hack
    isn't needed for TCP, and in fact, might give the wrong answer in that
    case. Fix it to only use the hack with UDP.

    Also, fix that case to handle non-blocking sockets as well.

    And add a test case for g_socket_get_available() with TCP.

    https://bugzilla.gnome.org/show_bug.cgi?id=723422

 gio/gsocket.c      |  20 ++++++++--
 gio/tests/socket.c | 107
 +++++++++++++++++++++++++++++++++++++++++------------
 2 files changed, 100 insertions(+), 27 deletions(-)

commit d690b3dcd083cfeb004db0c65c7196f558cba1ff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 14 21:49:42 2014 -0500

    docs: Remove a few trailing <literal>s

 glib/glib-unix.h | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

commit bcab7ba002f052481329f2b70b4c7ea31b544b86
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 14 21:39:11 2014 -0500

    docs: Remove some unneeded decorations

    @var is not expanded inside literal `` blocks.
    Just remove those @ characters.

 glib/gatomic.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit bc6ee788b4ff6590513da6ab657448885e92b20b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 14 21:33:36 2014 -0500

    docs: let go of &ast;

    Since we are no longer using sgml mode, using /&ast; &ast;/ to
    escape block comments inside examples does not work anymore.
    Switch to using line comments with //

 gio/gappinfo.c                |  2 +-
 gio/gapplicationcommandline.c |  6 +++---
 gio/gcancellable.c            | 14 ++++++-------
 gio/gdbuserror.c              |  8 ++++----
 gio/giomodule.c               |  4 ++--
 gio/gmemoryoutputstream.c     |  6 +++---
 gio/gsimpleaction.c           |  2 +-
 gio/gsimpleasyncresult.c      | 21 ++++++++-----------
 gio/gsocketconnectable.c      | 16 ++++++---------
 gio/gtask.c                   | 48
 +++++++++++++++++++++----------------------
 gio/gvolume.c                 |  4 ++--
 glib/garray.c                 | 10 ++++-----
 glib/gerror.c                 | 31 ++++++++++++++--------------
 glib/gfileutils.c             |  4 ++--
 glib/ghash.c                  |  2 +-
 glib/glist.c                  | 12 +++++------
 glib/gmain.c                  |  4 ++--
 glib/gmarkup.c                |  4 ++--
 glib/gmessages.c              |  5 ++---
 glib/goption.c                | 10 ++++-----
 glib/gregex.c                 |  8 ++++----
 glib/gslice.c                 | 12 +++++------
 glib/gslist.c                 |  8 ++++----
 glib/gtestutils.c             |  4 ++--
 glib/gthread-posix.c          |  8 ++++----
 glib/gthread.c                | 29 +++++++++++++-------------
 glib/gvariant.c               | 13 ++++++------
 gmodule/gmodule.c             |  4 ++--
 gobject/gclosure.c            |  8 ++++----
 gobject/gobject.c             | 14 +++++++------
 gobject/gvalue.c              | 16 +++++++--------
 31 files changed, 162 insertions(+), 175 deletions(-)

commit 450e7b1036fc95d41d6cb72d48824cd8b438037c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 13 18:26:07 2014 -0500

    configure.ac: tweak inotify check

    Our check for inotify_init1() being defined is broken.  We happily
    declare that inotify is supported, even if the check fails.

    This was originally intended to check for inotify_init1 in the libc so
    that we could fall back to inotify_init if it was not yet defined.

    FreeBSD has a libinotify that emulates the inotify API via kqueue.  It
    installs a <sys/inotify.h> header and requires linking to -linotify.
    We
    don't want to falsely detect working inotify in this case.

    Treat the lack of inotify_init1() in the libc as a lack of inotify
    support.  This requires only a new libc -- we still support old
    kernels:
    in the case that inotify1_init() fails, we fall back to
    inotify_init().

    https://bugzilla.gnome.org/show_bug.cgi?id=724330

 configure.ac                 | 3 +--
 gio/giomodule.c              | 2 +-
 gio/inotify/inotify-kernel.c | 5 +----
 3 files changed, 3 insertions(+), 7 deletions(-)

commit db83b8ac4ce70c31398121f0bde9ac87d4f42c58
Author: Dan Winship <danw@gnome.org>
Date:   Thu Feb 13 12:59:20 2014 -0500

    gtask: fix trivial doc typo

 gio/gtask.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0f5577de57b83841280dbd925c1b64b77bf4a828
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Feb 11 15:24:34 2014 +0000

    g_test_run: return 0 if all tests are skipped in TAP mode

    Exit status 77 is special to Automake's default test driver, but is
    treated as an error by TAP.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=724124
    Reviewed-by: Dan Winship <danw>

 glib/gtestutils.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit ffa5fab09a504cc6d2ff862b4cff123e27e118e1
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Feb 11 15:14:33 2014 +0000

    glib/tests/collate.c: run to completion when skipping all tests

    Otherwise, we don't produce valid TAP output, and fail with:

        ERROR: collate - missing test plan

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=724124
    Reviewed-by: Dan Winship <danw>

 glib/tests/collate.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 169846c5ab19abaa5474f5b5f30c3deef645ee03
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Feb 13 10:58:21 2014 +0000

    gsocketconnection: Document closing connections with
    g_io_stream_close()

    It’s not enough to close a connection by calling
    g_input_stream_close()
    and g_output_stream_close() on its two substreams: to close the
    underlying socket, one must use g_io_stream_close(). Document that.

    https://bugzilla.gnome.org/show_bug.cgi?id=724278

 gio/giostream.c         | 6 +++---
 gio/gsocketconnection.c | 4 ++++
 2 files changed, 7 insertions(+), 3 deletions(-)

commit 0017728c8c19ac0e64eee7740e43138d85885ee2
Author: Dan Winship <danw@gnome.org>
Date:   Thu Feb 13 08:30:24 2014 -0500

    gsocketservice: Clarify g_socket_service_stop() documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=724233

 gio/gsocketservice.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 125913e9fe27da29699987d406fe6290ff288ccd
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Feb 6 17:48:44 2014 +0000

    g_child_watch_source_new: POSIX pid must be positive

    If we used a non-positive pid, we'd call waitpid(that_pid, ...)
    which is exactly the situation this function can't deal with.

    On Windows, GPid is a HANDLE (pointer), so I don't think the same
    thing
    applies.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=723743
    Reviewed-by: Ryan Lortie

 glib/gmain.c | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

commit a3cb5ce33b636dd31ac009d5396997dfbb0b032c
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Feb 6 10:19:47 2014 +0000

    Be more clear that g_return_if_fail is undefined behaviour

    In particular, it is not incorrect to g_return_if_fail (..., FALSE)
    in a function returning a "success" gboolean and a GError: "failure to
    meet the preconditions is an error" takes precedence over the
    GError documentation's guarantee that the error will be set on
    failure.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660809
    Reviewed-by: Emmanuele Bassi

 glib/gerror.c    | 18 ++++++++++++++++--
 glib/gmessages.h | 29 +++++++++++++++++++++++------
 2 files changed, 39 insertions(+), 8 deletions(-)

commit f5e60984af7ae056c9795d4820834707520866ed
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Feb 10 15:48:17 2014 +0000

    po/nb.po: Fix mismatched translation

    Missing '\n' at the end of the string broke building under CI.

 po/nb.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bf25c451f5f96ef428b0dbb15881de4699b554f8
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Feb 10 16:16:41 2014 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 62
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 29 insertions(+), 33 deletions(-)

commit 87a7b7763bae1bb8faa5e8244ee12cf05a2180b8
Author: Andika Triwidada <andika@gmail.com>
Date:   Mon Feb 10 14:55:59 2014 +0000

    Updated Indonesian translation

 po/id.po | 2055
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1120 insertions(+), 935 deletions(-)

commit d173d97c9ba27ac009f756a727a23a3359c5c5fc
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Feb 10 08:49:52 2014 +0000

    gsubprocess: Fix ‘Since’ lines in documentation to read 2.40

    GSubprocess was introduced in GLib 2.40, not 2.36.

    https://bugzilla.gnome.org/show_bug.cgi?id=724001

 gio/gioenums.h | 2 +-
 gio/giotypes.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 24536dd030796dc57ca5148b031062da3e0b793e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Feb 10 08:21:49 2014 +0000

    gsubprocess: Fix a broken link in the documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=724001

 gio/gsubprocess.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 28b1d39058d7b45a1bada07ba875263219eb04f8
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Feb 10 08:15:00 2014 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 2015
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1101 insertions(+), 914 deletions(-)

commit ada09a7b625a9c705de4ff5b9d9f11bb1ed42e06
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Sun Feb 9 12:21:34 2014 +0100

    [l10n] Updated Italian translation.

 po/it.po | 1712
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 864 insertions(+), 848 deletions(-)

commit c158a9cdcbef04a51f64a4cac2db2f5e509b8794
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 9 02:12:53 2014 -0500

    Fix a misformatting in GVariant docs

    The + at the beginning of the line was misinterpreted
    as markdown for a list.

 glib/gvariant.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 35066ed6c6b51317f49069f2564c547aa309f9f1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 9 02:07:26 2014 -0500

    Docs: Drop entities, switch away from sgml mode

    Since all element markup is now gone from the doc comments,
    we can turn off the gtk-doc sgml mode, which means that from
    now on, docbook markup is no longer allowed in doc comments.

    To make this possible, we have to replace all remaining
    entities in doc comments by their replacement text, &amp; -> &
    and so on.

 docs/reference/gio/Makefile.am     |  2 +-
 docs/reference/glib/Makefile.am    |  2 +-
 docs/reference/gobject/Makefile.am |  2 +-
 gio/gappinfo.c                     |  2 +-
 gio/gdbusaddress.c                 |  2 +-
 gio/gdbusintrospection.c           |  2 +-
 gio/gdesktopappinfo.c              |  2 +-
 gio/gfileattribute.c               |  2 +-
 gio/gfiledescriptorbased.c         |  2 +-
 gio/gicon.c                        |  2 +-
 gio/gmenumodel.c                   |  2 +-
 gio/gnetworking.c                  |  2 +-
 gio/gproxyresolver.c               |  4 ++--
 gio/gsettings.c                    | 12 ++++++------
 gio/gsocket.c                      |  6 +++---
 gio/gunixconnection.c              |  2 +-
 gio/gunixfdlist.c                  |  2 +-
 gio/gunixfdmessage.c               |  2 +-
 gio/gunixinputstream.c             |  2 +-
 gio/gunixmounts.c                  |  2 +-
 gio/gunixoutputstream.c            |  2 +-
 gio/gunixsocketaddress.c           |  2 +-
 gio/gwin32inputstream.c            |  2 +-
 gio/gwin32outputstream.c           |  2 +-
 glib/docs.c                        |  4 ++--
 glib/gbookmarkfile.c               |  6 +++---
 glib/gerror.c                      | 12 ++++++------
 glib/ggettext.c                    |  4 ++--
 glib/ghook.c                       |  6 +++---
 glib/glist.c                       |  4 ++--
 glib/gmarkup.c                     | 10 +++++-----
 glib/grand.c                       |  2 +-
 glib/gregex.c                      | 25 +++++++++++++------------
 glib/gstrfuncs.c                   | 30 +++++++++++++++---------------
 glib/gtestutils.c                  | 14 +++++++-------
 glib/gunicollate.c                 |  4 ++--
 glib/gvariant.c                    | 16 ++++++++--------
 glib/gwin32.c                      |  4 ++--
 gobject/gvaluearray.c              |  2 +-
 39 files changed, 104 insertions(+), 103 deletions(-)

commit a03cee3b27b9c1abfbef4972e67adec6286cc968
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 17:52:21 2014 -0500

    Convert remaining examples to links

 gio/gdbusauthobserver.c |  7 +++++--
 gio/gdbusconnection.c   | 20 ++++++++++++++++----
 gio/gdbusnameowning.c   |  3 ++-
 gio/gdbusnamewatching.c |  3 ++-
 gio/gdbusproxy.c        |  3 ++-
 gio/gdbusserver.c       |  3 ++-
 6 files changed, 29 insertions(+), 10 deletions(-)

commit 623b58eeac2e6f46fc12a63f948794c4e3d889d1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 15:59:24 2014 -0500

    REmove another table

 gio/gfileinfo.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

commit 5acd7b01de2f9a1b22d0a06f62e7bb6b8f5e1849
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 15:50:17 2014 -0500

    Remove some informalexamples

 glib/gnode.c | 53 +++++++++++++++--------------------------------------
 1 file changed, 15 insertions(+), 38 deletions(-)

commit a59e3d69b49b82706b24f31a08d5be4b2c211aac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 15:34:04 2014 -0500

    Another stray <programlisting>

 glib/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d5e5244c304b1d33105fe94a7edd7ad5140facaa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 15:28:34 2014 -0500

    Another stray litreal

 gio/gapplication.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit c4991d24ee58b5f116fc9cbe87c6fbb7ee7a731a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 15:19:13 2014 -0500

    Strip out a remaining programlisting

 glib/gconvert.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit cd5cd874f0ae52d21accad24d27b0283352049a3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 15:18:37 2014 -0500

    Convert another table to a list

 gio/gdbusutils.c | 103
 ++++++++++---------------------------------------------
 1 file changed, 19 insertions(+), 84 deletions(-)

commit 3d0e55dfd5bc96bee16befb24883abfdbc6bd634
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 15:18:06 2014 -0500

    Convert more xincluded examples to external links

 gio/gapplication.c | 31 ++++++++-----------------------
 1 file changed, 8 insertions(+), 23 deletions(-)

commit ebc4347b2c5adebd656c0977ba3242f1d7850569
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 13:55:27 2014 -0500

    Docs: Remove an example tag that has snuck back in

 glib/gvariant.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

commit 03b21a19ec94da5c48fdfb798067d037f381e8b1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 13:47:02 2014 -0500

    Docs: convert another table to a list

 glib/gvariant.c | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

commit 38b1d63b24d5fd44cb921b4c9af17892c9779e49
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 13:43:16 2014 -0500

    Convert GVariantType table to a list

 glib/gvarianttype.c | 352
 +++++++---------------------------------------------
 1 file changed, 47 insertions(+), 305 deletions(-)

commit f04dbac47d1c6cb60f2e78ce46c0b3fef91e49ec
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 13:28:11 2014 -0500

    Remove a new literal tag that has crept in

 gio/gapplication.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit c43e0c34b0e1197fc20ee091082cae4701d0bb58
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 13:25:04 2014 -0500

    Remove a few leftover <simplelist>s

 gio/gfile.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

commit 3ad5aadb40bd117457c30a7680bc7ef73a7dc6b3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 13:22:58 2014 -0500

    Remove a stray <em> tag

 gio/gpropertyaction.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit e16f053aa7571669a76b13fba8b51ae842cffc42
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 13:22:38 2014 -0500

    Remove tables from GFileAttribute docs

 gio/gfileattribute.c | 196
 ++++++++++++++++-----------------------------------
 1 file changed, 60 insertions(+), 136 deletions(-)

commit e7fd3de86d6004d8dba5f8448eb063c6731546e9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 8 12:26:56 2014 -0500

    Eradicate links and xrefs

    These are all replaced by markdown ref links.

 gio/gapplication.c             |   3 +-
 gio/gapplicationcommandline.c  |   3 +-
 gio/gasyncinitable.c           |  12 ++---
 gio/gbufferedinputstream.c     |   3 +-
 gio/gdatainputstream.c         |   9 ++--
 gio/gdbusactiongroup.c         |   2 +-
 gio/gdbusaddress.c             |   2 +-
 gio/gdbusconnection.c          |  79 ++++++++++++++--------------
 gio/gdbusinterfaceskeleton.c   |   4 +-
 gio/gdbusintrospection.c       |   2 +-
 gio/gdbusmenumodel.c           |   2 +-
 gio/gdbusmethodinvocation.c    |   6 +--
 gio/gdbusnameowning.c          |   8 +--
 gio/gdbusnamewatching.c        |  16 +++---
 gio/gdbusobjectmanagerclient.c |  10 ++--
 gio/gdbusproxy.c               |  23 ++++-----
 gio/gdbusserver.c              |   9 ++--
 gio/gdbusutils.c               |  49 +++++++++++++-----
 gio/gfile.c                    |  87 ++++++++++++-------------------
 gio/gfileattribute.c           |   6 +--
 gio/gfileenumerator.c          |   6 +--
 gio/gfileinfo.c                |  12 ++---
 gio/gfileinputstream.c         |   3 +-
 gio/gfileiostream.c            |   3 +-
 gio/gfilemonitor.c             |  11 ++--
 gio/gfileoutputstream.c        |   3 +-
 gio/ginitable.c                |   3 +-
 gio/ginputstream.c             |  11 ++--
 gio/giomodule.c                |   4 +-
 gio/gioscheduler.c             |   2 +-
 gio/gmenumodel.c               |  19 +++----
 gio/gresource.c                |  12 ++---
 gio/gsettings.c                |  27 +++++-----
 gio/gsettingsschema.c          |   3 +-
 gio/gsimpleasyncresult.c       |  12 ++---
 gio/gsocket.c                  |   6 +--
 gio/gsocketservice.c           |   6 +--
 gio/gtask.c                    |  36 ++++++-------
 gio/gtlsconnection.c           |   3 +-
 gio/gvolume.c                  |   9 ++--
 gio/gvolumemonitor.c           |   8 +--
 glib/gcharset.c                |   9 ++--
 glib/gconvert.c                |  40 +++++++-------
 glib/gdataset.c                |   6 +--
 glib/gdate.c                   |  10 ++--
 glib/ghash.c                   |   4 +-
 glib/giochannel.c              |  11 ++--
 glib/glist.c                   |  21 ++++----
 glib/gmain.c                   |   2 +-
 glib/gmessages.c               |   3 +-
 glib/gnode.c                   |  10 ++--
 glib/goption.c                 |   3 +-
 glib/gprintf.c                 |  18 +++----
 glib/gquark.c                  |   5 +-
 glib/gqueue.c                  |   4 +-
 glib/gregex.c                  |   2 +-
 glib/gsequence.c               |  11 ++--
 glib/gslice.c                  |  33 +++++-------
 glib/gslist.c                  | 115
 ++++++++++++++++++++---------------------
 glib/gstrfuncs.c               |   4 +-
 glib/gtestutils.c              |  15 ++----
 glib/gtree.c                   |   9 ++--
 glib/gunicollate.c             |   8 ++-
 glib/gvariant-parser.c         |   8 +--
 glib/gvariant.c                |  51 +++++++++---------
 gmodule/gmodule.c              |   4 +-
 gobject/gclosure.c             |  10 ++--
 gobject/genums.c               |  19 +++----
 gobject/gobject.c              |  20 +++----
 gobject/gvalue.c               |   6 +--
 70 files changed, 467 insertions(+), 528 deletions(-)

commit 1448e619b5aa68d3daade2bedfa86518cb99dd06
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Feb 7 14:47:16 2014 +0100

    Updated Spanish translation

 po/es.po | 1818
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 921 insertions(+), 897 deletions(-)

commit 6129f2b9e3ea750df51651519592f6321d4d232a
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Feb 7 01:27:18 2014 +0100

    Updated Galician translations

 po/gl.po | 1699
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 857 insertions(+), 842 deletions(-)

commit 63777d0c63d23c201affc8e2ea8a046a7d4390f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Feb 6 16:59:49 2014 -0500

    Remove a few overlooked literals

 gio/gdbusproxy.c         | 23 +++++++++++------------
 gio/ginetsocketaddress.c |  6 +++---
 2 files changed, 14 insertions(+), 15 deletions(-)

commit df990914cf28a4b8417597d5b2208aa2bf34e694
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Feb 6 16:49:29 2014 -0500

    Stop using replaceable tags

 gio/gfileattribute.c |  6 +++---
 gio/gsettings.c      |  8 ++++----
 glib/goption.c       | 22 +++++++++-------------
 glib/gtestutils.c    | 14 ++++++--------
 4 files changed, 22 insertions(+), 28 deletions(-)

commit 5baa0f2af590d3febbcd7eba0f38dee7d1621fdc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Feb 6 16:48:49 2014 -0500

    Stop using <para> for ids

    Instead, use the id support in markdown headings.

 gio/gasyncresult.c |  5 +++--
 gio/gfile.c        |  6 +++---
 gio/gvolume.c      |  5 +++--
 glib/gstrfuncs.c   |  4 ++--
 gobject/gobject.c  |  4 ++--
 gobject/gparam.c   | 12 ++++++------
 6 files changed, 19 insertions(+), 17 deletions(-)

commit 4ec314812e3357d061f902f70eb464784590a6c3
Author: Enrico Nicoletto <liverig@gmail.com>
Date:   Thu Feb 6 18:32:02 2014 +0000

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 1672
 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 844 insertions(+), 828 deletions(-)

commit 323242578524a1b6355d8451015b14ca75aa0afa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Feb 6 08:04:52 2014 -0500

    Docs: replace <literal> by `

 gio/gappinfo.c                 | 43 +++++++++++++++++------------------
 gio/gapplicationcommandline.c  |  6 ++---
 gio/gasyncresult.c             | 13 +++++------
 gio/gdbusauthobserver.c        |  4 ++--
 gio/gdbusconnection.c          | 14 ++++++------
 gio/gdbuserror.c               |  2 +-
 gio/gdbusinterfaceskeleton.c   |  2 +-
 gio/gdbusintrospection.c       |  4 ++--
 gio/gdbusmethodinvocation.c    |  5 ++---
 gio/gdbusobjectmanagerclient.c |  2 +-
 gio/gdbusproxy.c               |  8 +++----
 gio/gdesktopappinfo.c          | 31 ++++++++++++-------------
 gio/gfile.c                    |  6 ++---
 gio/gicon.c                    |  6 ++---
 gio/ginetsocketaddress.c       |  2 +-
 gio/gmount.c                   |  6 ++---
 gio/gnetworking.c              |  2 +-
 gio/gproxyresolver.c           | 12 +++++-----
 gio/gremoteactiongroup.c       |  6 ++---
 gio/gresource.c                |  6 ++---
 gio/gsettingsschema.c          | 43 +++++++++++++++++------------------
 gio/gsocket.c                  | 44 +++++++++++++++++-------------------
 gio/gsubprocess.c              |  7 +++---
 gio/gtask.c                    | 21 +++++++++--------
 gio/gtlscertificate.c          | 10 ++++-----
 gio/gtlsconnection.c           | 16 ++++++-------
 gio/gunixsocketaddress.c       |  2 +-
 glib/docs.c                    |  4 ++--
 glib/gatomic.c                 | 28 +++++++++++------------
 glib/gbacktrace.c              |  2 +-
 glib/gbase64.c                 |  6 ++---
 glib/gbookmarkfile.c           | 32 +++++++++++++-------------
 glib/gconvert.c                |  4 ++--
 glib/gdatetime.c               | 11 +++++----
 glib/gdir.c                    |  3 +--
 glib/gerror.c                  | 23 +++++++++----------
 glib/gfileutils.c              | 30 ++++++++++++-------------
 glib/ghash.c                   | 36 ++++++++++++++---------------
 glib/ghook.c                   |  6 ++---
 glib/giochannel.c              |  4 ++--
 glib/gkeyfile.c                | 19 ++++++++--------
 glib/glib-init.c               |  2 +-
 glib/glib-unix.c               | 10 ++++-----
 glib/gmain.c                   | 15 ++++++-------
 glib/goption.c                 | 12 +++++-----
 glib/grand.c                   | 11 +++++----
 glib/gscanner.c                |  6 ++---
 glib/gslice.c                  | 20 ++++++++---------
 glib/gspawn.c                  | 11 +++++----
 glib/gstrfuncs.c               | 14 +++++-------
 glib/gtestutils.c              | 51
 +++++++++++++++++++++---------------------
 glib/gtimezone.c               | 16 ++++++-------
 glib/gtrashstack.c             |  2 +-
 glib/gutils.c                  |  2 +-
 glib/gvariant-core.c           |  2 +-
 glib/gwin32.c                  |  6 ++---
 gmodule/gmodule.c              |  4 ++--
 gobject/gclosure.c             | 48
 +++++++++++++++++++--------------------
 gobject/genums.c               |  2 +-
 gobject/gobject.c              |  2 +-
 gobject/gparam.c               |  6 ++---
 gobject/gsignal.c              |  4 ++--
 62 files changed, 371 insertions(+), 406 deletions(-)

commit a35d8a4c77fbb9a8dd143742c29c0807ec99412b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 22:57:27 2014 -0500

    Docs: use quotes instead of firstterm

 gio/gapplication.c | 43 +++++++++++++++++++++----------------------
 glib/gkeyfile.c    |  5 ++---
 glib/gmain.c       | 10 +++++-----
 glib/gsequence.c   | 13 ++++++-------
 glib/guniprop.c    |  8 ++++----
 gobject/gclosure.c | 14 +++++++-------
 gobject/gobject.c  | 22 +++++++++++-----------
 7 files changed, 56 insertions(+), 59 deletions(-)

commit b766db0878ae686032f73e0c96571dae58595d66
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 22:49:54 2014 -0500

    Docs: don't use option tags

 glib/docs.c       |  6 +++---
 glib/ggettext.c   |  8 ++++----
 glib/goption.c    | 59
 +++++++++++++++++++++++++------------------------------
 glib/gtestutils.c | 30 +++++++++++++---------------
 4 files changed, 48 insertions(+), 55 deletions(-)

commit 4569b8ac2d7305fd7e26fd8b6bd1ecedd1fcbb02
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 22:37:54 2014 -0500

    Stop using starttag elements

 gio/gdbusintrospection.c |  2 +-
 gio/gsettings.c          | 34 ++++++++++++++++------------------
 2 files changed, 17 insertions(+), 19 deletions(-)

commit 73c23d9143ec73fd83923c9a0e144e3683f97452
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 22:02:24 2014 -0500

    Use markdown for images

 gio/gmenumodel.c | 14 ++++++--------
 glib/gconvert.c  |  7 +++----
 glib/gmain.c     |  9 +++++----
 glib/gstrfuncs.c |  4 ++--
 4 files changed, 16 insertions(+), 18 deletions(-)

commit 49c2223ee610a14a0101958acb634e37f5521ca8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 22:01:54 2014 -0500

    Use a code block instead of <screen>

 glib/goption.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0e671286fc59b4a68e8640b955c07bd874486dd5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 12 18:14:30 2014 -0500

    GApplication: parse command line options

    Add support for parsing command line options with GApplication.

    You can add GOptionGroup and GOptionEntry using two new APIs:
    g_application_add_option_group() and
    g_application_add_main_option_entries().

    Also add a "handle-local-options" signal that allows handling of
    commandline arguments in the local process without having to override
    local_command_line.

    As a special feature, you can have a %NULL @arg_data in a GOptionEntry
    which will cause the argument to be stored in a GVariantDict.  This
    dictionary is available for inspection and modification by the
    "handle-local-options" signal and can be forwarded to the primary
    instance in cases of command line invocation (where it can be fetched
    using g_application_command_line_get_options()).

    https://bugzilla.gnome.org/show_bug.cgi?id=721977

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gapplication.c                  | 725
 ++++++++++++++++++++++++++++--------
 gio/gapplication.h                  |  11 +-
 gio/gapplicationcommandline.c       |  56 +++
 gio/gapplicationcommandline.h       |   3 +
 gio/gapplicationimpl-dbus.c         |   6 +-
 gio/gapplicationimpl.h              |   2 +-
 7 files changed, 655 insertions(+), 151 deletions(-)

commit 7f36233042691d942982c4e6c4ea16f7e27aeb6b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 5 17:11:50 2014 +0000

    GOption: fix bug in strv mode

    We are a bit too aggressive about freeing memory in strv mode.  Only
    free it in the case that we actually set the pointer to NULL.

    Uncovered by the GApplication tests.

 glib/goption.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 6939add283f948864e288390689fc12b9c61cbb1
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Thu Feb 6 10:24:49 2014 +0700

    Updated Thai translation

 po/th.po | 1842
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1018 insertions(+), 824 deletions(-)

commit cb588d45320c5a6b767d299ebd85306d45e1773c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 21:23:28 2014 -0500

    Convert external links to markdown syntax

 gio/gappinfo.c                 |  5 ++---
 gio/gapplication.c             |  2 +-
 gio/gapplicationcommandline.c  |  9 ++++++---
 gio/gcontenttype.c             | 10 +++++++---
 gio/gdbusinterfaceskeleton.c   | 10 +++++-----
 gio/gdbusintrospection.c       |  2 +-
 gio/gdbusobjectmanager.c       |  4 ++--
 gio/gdbusobjectmanagerclient.c |  4 ++--
 gio/gdbusobjectmanagerserver.c |  4 ++--
 gio/gdbusproxy.c               |  7 ++++---
 gio/gdesktopappinfo.c          | 15 ++++++++-------
 gio/gfile.c                    |  3 ++-
 gio/gfiledescriptorbased.c     |  2 +-
 gio/gmount.c                   |  6 ++++--
 gio/gsettings.c                |  3 ++-
 gio/gtestdbus.c                |  3 ++-
 gio/gunixconnection.c          |  2 +-
 gio/gunixfdlist.c              |  2 +-
 gio/gunixfdmessage.c           |  2 +-
 gio/gunixinputstream.c         |  2 +-
 gio/gunixmounts.c              |  2 +-
 gio/gunixoutputstream.c        |  2 +-
 gio/gunixsocketaddress.c       |  2 +-
 gio/gwin32inputstream.c        |  2 +-
 gio/gwin32outputstream.c       |  2 +-
 glib/docs.c                    |  2 +-
 glib/gbase64.c                 |  8 +++++---
 glib/gbookmarkfile.c           | 10 +++++-----
 glib/ghash.c                   |  3 ++-
 glib/ghmac.c                   |  3 ++-
 glib/ghostutils.c              |  6 +++---
 glib/gkeyfile.c                | 24 +++++++++++------------
 glib/gmarkup.c                 |  8 ++++----
 glib/gmessages.c               |  8 ++++----
 glib/grand.c                   |  5 ++---
 glib/gregex.c                  |  9 +++++----
 glib/gslice.c                  |  6 ++++--
 glib/gtimer.c                  | 10 +++++-----
 glib/gtimezone.c               | 19 +++++++++----------
 glib/gunidecomp.c              | 11 +++++++----
 glib/guniprop.c                | 16 +++++++++-------
 glib/gurifuncs.c               |  5 +++--
 glib/gutils.c                  | 43
 +++++++++++++++++++++---------------------
 glib/gvarianttype.c            | 10 +++++-----
 gobject/gclosure.c             |  4 ++--
 45 files changed, 170 insertions(+), 147 deletions(-)

commit 0cc20b7e0b8376a1b7c14a1a712d1f22a8c0eac0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 20:17:46 2014 -0500

    Don't use <filename> in docs

    Switch to simpler markdown, `foo`.

 gio/gdesktopappinfo.c      | 10 +++++-----
 gio/gfiledescriptorbased.c |  6 +++---
 gio/gresource.c            |  7 ++++---
 gio/gsettings.c            |  5 ++---
 gio/gsettingsbackend.c     |  2 +-
 gio/gsettingsschema.c      | 15 +++++++--------
 gio/gtestdbus.c            |  8 ++++----
 gio/gunixconnection.c      |  6 +++---
 gio/gunixfdlist.c          |  6 +++---
 gio/gunixfdmessage.c       |  8 ++++----
 gio/gunixinputstream.c     |  6 +++---
 gio/gunixmounts.c          |  9 ++++-----
 gio/gunixoutputstream.c    |  6 +++---
 gio/gunixsocketaddress.c   |  6 +++---
 gio/gvolume.c              |  9 ++++-----
 gio/gwin32inputstream.c    |  6 +++---
 gio/gwin32outputstream.c   |  6 +++---
 glib/docs.c                |  4 ++--
 glib/gconvert.c            |  3 +--
 glib/ggettext.c            |  6 +++---
 glib/grand.c               |  4 ++--
 glib/gstrfuncs.c           |  8 +++-----
 glib/gtestutils.c          | 16 ++++++++--------
 glib/gtimezone.c           | 11 +++++------
 glib/gunidecomp.c          | 12 ++++++------
 glib/gutils.c              | 26 ++++++++++++--------------
 gmodule/gmodule.c          | 11 +++++------
 27 files changed, 106 insertions(+), 116 deletions(-)

commit 111803030d54b192ca1edd25bbde90130eaff2a9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 5 19:32:41 2014 -0500

    Don't use <envar> in docs

    Switch to simpler markdown, `foo`.

 gio/gappinfo.c                | 22 +++++++++---------
 gio/gapplicationcommandline.c |  6 ++---
 gio/gdesktopappinfo.c         | 12 +++++-----
 gio/giomodule.c               |  6 ++---
 gio/gresource.c               | 11 ++++-----
 gio/gsettingsbackend.c        |  4 ++--
 gio/gsettingsschema.c         |  5 ++---
 gio/gtestdbus.c               | 14 +++++++-----
 glib/gcharset.c               |  6 ++---
 glib/gconvert.c               | 35 ++++++++++++++---------------
 glib/gfileutils.c             |  6 ++---
 glib/ggettext.c               |  2 +-
 glib/gkeyfile.c               |  5 +++--
 glib/glib-init.c              |  2 +-
 glib/gmessages.c              | 28 +++++++++++------------
 glib/grand.c                  |  7 +++---
 glib/gspawn.c                 | 38 +++++++++++++++----------------
 glib/gtestutils.c             |  4 ++--
 glib/gtimezone.c              | 39 ++++++++++++++++----------------
 glib/gutils.c                 | 52
 +++++++++++++++++++++----------------------
 20 files changed, 151 insertions(+), 153 deletions(-)

commit 2fda00af3585b9b589268299cf3b27abd891b80f
Author: Shankar Prasad <prasad.mvs@gmail.com>
Date:   Wed Feb 5 15:19:25 2014 +0530

    updated kn.po

 po/kn.po | 1408
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 778 insertions(+), 630 deletions(-)

commit 2b8edf234c9f1926ca2b24bf431fc1c8dc7c4ecf
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Nov 21 17:39:16 2013 +0000

    gvariant: Document the need to cast varargs when constructing
    GVariants

    Slightly expand on the documentation about casting varargs when
    constructing GVariants, and link to it from all the functions
    where it’s
    a necessary consideration.

    Add an example of passing flags to a ‘t’ type variable (guint64).
    Assuming the flags enum does not have many members, the flag variable
    will be 32 bits wide, and needs an explicit cast to be passed into
    g_variant_new() as a 64-bit value.

    https://bugzilla.gnome.org/show_bug.cgi?id=712837

 docs/reference/glib/gvariant-varargs.xml |  1 +
 glib/gvariant-parser.c                   | 12 ++++++++++++
 glib/gvariant.c                          | 23 +++++++++++++++++++++++
 3 files changed, 36 insertions(+)

commit 3f3d2976d1102eb202e58e42793a511d01d10604
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 4 14:22:55 2014 +0000

    return_if_fail vs. return_val_if_fail fix

 glib/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 78ec35f7abab5b65cbc8b71bb89441bf691b5fce
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 28 10:55:44 2014 +0000

    gobject: box GVariantDict

    We will want to use this in GApplication for a signal and a property.

    https://bugzilla.gnome.org/show_bug.cgi?id=625408

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gboxed.c                            |  1 +
 gobject/glib-types.h                        | 11 +++++++++++
 3 files changed, 13 insertions(+)

commit 14e62d1fa29442866f3230e47e736acc54394906
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 24 09:42:13 2014 -0500

    add GVariantDict

    ...the long-requested mutable dictionary helper for GVariant.

    https://bugzilla.gnome.org/show_bug.cgi?id=625408

 docs/reference/glib/glib-sections.txt |  15 +
 glib/gvariant.c                       | 511
 ++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |  47 ++++
 3 files changed, 573 insertions(+)

commit 7a76ab6f48da18faf5a9528a6612c8dbbe0d60a8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 3 19:34:15 2014 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e7db49b6e34edae3b02c34ea5acd9699df0c5ef8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 3 19:06:53 2014 -0500

    2.39.4

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f7a43ba87df15486386fe27727d99b1c9aeb7d34
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 3 17:37:42 2014 -0500

    Updates

 NEWS | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

commit c8476e9f8f1ca99f7d30a0505268abc4049fb0c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 3 17:10:45 2014 -0500

    Fix a typo

 glib/gthread.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d71376763744c26005e918d21f3bd26d884388e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Fri Jan 31 12:16:15 2014 +0000

    gmain: Note that g_source_destroy() can be called multiple times

    https://bugzilla.gnome.org/show_bug.cgi?id=723360

 glib/gmain.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit e1ea008fc836b5d358419029b2d7c664121ccaf6
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sun Feb 2 20:09:16 2014 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1465
 ++++++++++++++++++++++++++++++++++-------------------------
 po/zh_TW.po | 1465
 ++++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 1692 insertions(+), 1238 deletions(-)

commit ecadb5a92d8707e60cab9e5db19fb0705846415c
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sun Feb 2 09:32:09 2014 +0000

    tests: Remove a compiler warning

 glib/tests/slice.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a2c42b4a799283f5e811acbd99d58b68eaa7bd3e
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sun Feb 2 09:30:30 2014 +0000

    array: Remove a compiler warning

    The GRealPtrArray variable is not necessary: we're accessing only
    public
    fields of GPtrArray.

 glib/garray.c | 1 -
 1 file changed, 1 deletion(-)

commit 017349823c0304b1e10c24c832adfecc3d227107
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sun Feb 2 09:28:31 2014 +0000

    array: Fix compilation

 glib/garray.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7cf221aadb4f9bd6e7f015fb327ae551bb52b08f
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Tue Jan 21 17:25:35 2014 +0100

    gio: extend the system_internal lists with BSD paths

 gio/gunixmounts.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit d8bbc77cb39a9dee1af7f2e97b7b23bafa19fea3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 21:48:35 2014 -0500

    GVariant: Convert docs to markdown

    Specifically, convert the sections to markdown syntax.

 glib/gvariant.c | 357
 +++++++++++++++++++++++++-------------------------------
 1 file changed, 162 insertions(+), 195 deletions(-)

commit 9b6cc973a00bfa4bd9dccbfbe38518587e22a614
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 21:41:57 2014 -0500

    Don't use the varname tag

    This is just an environment variable, after all.

 glib/gtimezone.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit d282bd3929d4d7df9f9833ffc76ec5c1b1b8b89f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 21:40:10 2014 -0500

    gmain: Convert docs to markdown

    Specifically, convert sections to markdown syntax and
    drop all the para tags.

 glib/gmain.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

commit ce87d6420c9367b029c9d686cff04f913539b126
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 21:18:29 2014 -0500

    Don't use the quote tag

    It was only used in two places, and we can easily do without.

 gio/gdbusconnection.c |  7 +++----
 glib/gthread.c        | 10 +++++-----
 2 files changed, 8 insertions(+), 9 deletions(-)

commit 2f26bad026057efc7ea7e4433e3ff4635ba36e61
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:54:18 2014 -0500

    Remove an unnecessary paragraph

 glib/gvarianttype.c | 4 ----
 1 file changed, 4 deletions(-)

commit 8945da08ac71267d70c0d062b03070303e5b6286
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:53:50 2014 -0500

    Make gtk-doc find another symbol

 glib/gvariant-parser.c | 2 ++
 1 file changed, 2 insertions(+)

commit efae1126db66e74db84b6f054c689aabe32502a8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:53:17 2014 -0500

    GTree: formatting fixes

 glib/gtree.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 26b4f6b41c40a6989af2c7a2da1f78d3e497a652
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:51:53 2014 -0500

    gstrfuncs: Fix up gtk-doc warnings

 glib/gstrfuncs.c | 42 +++++++++++++++++++++---------------------
 glib/gstrfuncs.h |  3 +--
 2 files changed, 22 insertions(+), 23 deletions(-)

commit 71d842674faf2cd0a2d85808d64132e9aa206fd2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:50:57 2014 -0500

    grand: formatting cleanups

 glib/grand.c | 224
 ++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 121 insertions(+), 103 deletions(-)

commit 3bbd15383f72cd9b856a193d8fd083bcf6547e8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:50:33 2014 -0500

    Formatting cleanups

 glib/gpoll.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit ca462d1b5911f1858528e9149929d53123ddc6da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:49:59 2014 -0500

    Avoid another gtk-doc warning

 glib/gpattern.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit acdd7015fb779ad2484f31b01d463009a42ee1e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:49:21 2014 -0500

    Avoid a gtk-doc warning

 glib/gmessages.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7548dab9595845096d249ed203a51c61abf9d0d6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:48:52 2014 -0500

    GIOChannel: Move some docs where they are looked for

 glib/giochannel.c | 35 ++++++++++++++---------------------
 1 file changed, 14 insertions(+), 21 deletions(-)

commit 23dd2b01a180a6db08e494d9d9ed4927ff27ba0a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:47:23 2014 -0500

    Avoid some gtk-doc warnings

 glib/ghook.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a556afc97003815d95144901ad8833402b0839b4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:46:43 2014 -0500

    Drop another use of xinclude

 glib/gbookmarkfile.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit cbd585495c5e123490edf9804c5e2df26879668a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:45:25 2014 -0500

    GArray: Documentation cleanups

 glib/garray.c | 284
 +++++++++++++++++++++++++++++-----------------------------
 glib/garray.h |   2 +-
 2 files changed, 145 insertions(+), 141 deletions(-)

commit 8f57d6dd1dec74c17086696ca2223814a2dd1818
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:43:53 2014 -0500

    Docs: Avoid a 'returns' at the beginning of the line

    This confuses gtk-doc.

 glib/docs.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 1c33c14c044ec3c3c14cb847e2112872f56aed36
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:43:01 2014 -0500

    Add some more deprecation guards to shut up gtk-doc

 glib/deprecated/gcache.h  | 4 ++++
 glib/deprecated/gmain.h   | 3 +++
 glib/deprecated/gthread.h | 4 ++++
 3 files changed, 11 insertions(+)

commit 6566f746f615673b2a6eeaf44d3e9c4373900c5a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:41:47 2014 -0500

    Drop use of xinclude in GTestDBus docs

 gio/gtestdbus.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

commit 95aba90d090dea84209982999b81ada074733308
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:41:12 2014 -0500

    Docs: Remove another use of xinclude

 gio/gsettings.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit 0bfb09daf13c570ba863d40518f12390531aee47
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 20:40:41 2014 -0500

    Fix up missing symbols in glib-sections.txt

 docs/reference/glib/glib-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 306dfb32923ddde09fb72044aa8aa1349c969569
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 15:26:38 2014 -0500

    Drop use of the command tag

    It is more useful to link to the included man page, anyway.

 gio/gdbusproxy.c      |  3 +--
 gio/gresource.c       |  4 ++--
 gio/gsettingsschema.c |  4 ++--
 glib/gbacktrace.c     | 34 +++++++++++++++++-----------------
 gmodule/gmodule.c     |  3 +--
 5 files changed, 23 insertions(+), 25 deletions(-)

commit 8bdc089ca46f20d08487d5c1b41610459a9b4b51
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 15:25:43 2014 -0500

    Docs: Drop use of indexterm tags

    These have not been making it into the index, anyway.

 gio/gasyncresult.c | 18 +++++++++---------
 gio/gfile.c        |  8 ++++----
 2 files changed, 13 insertions(+), 13 deletions(-)

commit adf892e96af403b8950dff1a370e4270ffaebc62
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 15:11:49 2014 -0500

    Annotate all examples with their language

    The C ones, at least.

 gio/gactionmap.c          |  2 +-
 gio/gasyncinitable.c      |  2 +-
 gio/gasyncresult.c        |  2 +-
 gio/gcancellable.c        |  2 +-
 gio/gdbusconnection.c     |  4 ++--
 gio/gdbuserror.c          |  2 +-
 gio/gdbusproxy.c          |  6 +++---
 gio/gfileenumerator.c     |  2 +-
 gio/giomodule.c           |  4 ++--
 gio/gmemoryoutputstream.c |  2 +-
 gio/gsettingsschema.c     |  4 ++--
 gio/gsimpleaction.c       |  2 +-
 gio/gsimpleasyncresult.c  |  2 +-
 gio/gsocketconnectable.c  |  2 +-
 gio/gtask.c               |  8 ++++----
 gio/gthemedicon.c         |  4 ++--
 gio/gvolume.c             |  4 ++--
 glib/docs.c               | 32 ++++++++++++++++----------------
 glib/garray.c             |  8 ++++----
 glib/gasyncqueue.c        |  2 +-
 glib/gbacktrace.c         |  2 +-
 glib/gdate.c              |  4 ++--
 glib/gerror.c             | 18 +++++++++---------
 glib/gfileutils.c         |  2 +-
 glib/ggettext.c           |  8 ++++----
 glib/ghash.c              |  2 +-
 glib/glist.c              | 16 ++++++++--------
 glib/gmain.c              | 12 ++++++------
 glib/gmarkup.c            |  8 ++++----
 glib/gmessages.c          |  8 ++++----
 glib/goption.c            |  4 ++--
 glib/gregex.c             |  6 +++---
 glib/gslice.c             |  4 ++--
 glib/gslist.c             |  8 ++++----
 glib/gstrfuncs.c          |  6 +++---
 glib/gtestutils.c         |  8 ++++----
 glib/gthread-posix.c      | 10 +++++-----
 glib/gthread.c            | 16 ++++++++--------
 glib/gvariant-parser.c    |  6 +++---
 glib/gvariant.c           |  8 ++++----
 gmodule/gmodule.c         |  2 +-
 gobject/gbinding.c        |  6 +++---
 gobject/gclosure.c        |  8 ++++----
 gobject/genums.c          |  2 +-
 gobject/gobject.c         | 22 +++++++++++-----------
 gobject/gtype.c           |  2 +-
 gobject/gtypeplugin.c     |  2 +-
 gobject/gvalue.c          |  2 +-
 gobject/gvaluearray.c     |  4 ++--
 49 files changed, 151 insertions(+), 151 deletions(-)

commit 701f00f12515dfad2092842f34ccbf11679406e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 15:11:00 2014 -0500

    GApplicationCommandline: Shorten embedded examples

    Just show relevant fragments of the three examples inline,
    and link to the full sources. This lets us get rid of
    xinclude markup.

 gio/gapplicationcommandline.c | 173
 +++++++++++++++++++++++++++++-------------
 1 file changed, 121 insertions(+), 52 deletions(-)

commit 77c4ff80dcf487d0a0f8b82e9c3e721618724bd0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 12:19:04 2014 -0500

    docs: Stop using the function tag

 gio/gactiongroup.c                   |  2 +-
 glib/deprecated/gthread-deprecated.c | 10 +++++-----
 glib/gasyncqueue.c                   |  6 +++---
 glib/gmessages.c                     | 19 ++++++++++---------
 glib/gpattern.c                      |  6 +++---
 glib/grand.c                         | 32
 +++++++++++++++-----------------
 glib/gregex.c                        |  2 +-
 glib/gthread-posix.c                 |  2 +-
 glib/gthread.c                       |  5 ++---
 9 files changed, 41 insertions(+), 43 deletions(-)

commit faa007c8274d786d070884834b080e47a7951fa9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 12:09:14 2014 -0500

    Don't use computeroutput tag

    There was one occurrence of this.

 glib/gbacktrace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 42cf80780b4fbbe9063ed3d962bb13f341757b3f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 11:57:13 2014 -0500

    Docs: Big entity cleanup

    Strip lots of entity use from |[ ]| examples (which are now
    implicit CDATA). Also remove many redundant uses of <!-- -->.

 gio/gappinfo.c                 |  6 +++---
 gio/gasyncresult.c             |  6 +++---
 gio/gcancellable.c             | 14 ++++++++------
 gio/gdbusconnection.c          |  2 +-
 gio/gdbuserror.c               | 11 ++++++-----
 gio/gdbusmessage.c             | 26 +++++++++++++-------------
 gio/gdbusobjectmanagerserver.c |  7 +++----
 gio/gdbusobjectskeleton.c      |  6 +++---
 gio/gdbusproxy.c               |  4 ++--
 gio/gemblemedicon.c            |  4 ++--
 gio/gfileenumerator.c          |  4 ++--
 gio/gfileinfo.c                |  2 +-
 gio/giomodule.c                |  4 ++--
 gio/gsettings.c                |  2 +-
 gio/gsimpleasyncresult.c       |  4 ++--
 gio/gsocket.c                  |  4 ++--
 gio/gsocketconnectable.c       | 22 +++++++++++-----------
 gio/gsrvtarget.c               |  4 ++--
 gio/gtlscertificate.c          |  2 +-
 glib/docs.c                    |  2 +-
 glib/garray.c                  |  8 ++++----
 glib/gbacktrace.c              |  4 ++--
 glib/gbookmarkfile.c           |  4 +++-
 glib/gdate.c                   |  2 +-
 glib/gerror.c                  | 21 +++++++++++----------
 glib/ggettext.c                |  8 ++++----
 glib/gmain.c                   | 10 +++++-----
 glib/gmarkup.c                 | 12 ++++++------
 glib/goption.c                 |  8 ++++----
 glib/gpoll.c                   |  2 +-
 glib/gquark.c                  |  2 +-
 glib/gregex.c                  | 14 +++++++-------
 glib/gstrfuncs.c               |  2 +-
 glib/gthread.c                 | 16 ++++++++--------
 gobject/gclosure.c             | 16 ++++++++--------
 gobject/gobject.c              | 16 ++++++++--------
 gobject/gparam.c               | 12 ++++++------
 gobject/gvalue.c               | 28 ++++++++++++++--------------
 38 files changed, 163 insertions(+), 158 deletions(-)

commit 6972264c7daad6688f3a2908c84760892121917d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 11:08:23 2014 -0500

    GModule: Move docs away from markup

 gmodule/gmodule.c | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

commit 4ab94a268369481cb4992346ecdc1faae348c5c4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:48:36 2014 -0500

    gtestdbus: Use markdown for sections

 gio/gtestdbus.c | 125
 ++++++++++++++++++++++++++------------------------------
 1 file changed, 57 insertions(+), 68 deletions(-)

commit eb69bc6aa4cb1d9600337fd19a9109f938606c5a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:48:02 2014 -0500

    GSettings: use markdown for sections

 gio/gsettings.c | 78
 ++++++++++++++++++++++++++-------------------------------
 1 file changed, 36 insertions(+), 42 deletions(-)

commit b5fb6b4bbfe5903be06a515449a07cf1f1119c26
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:47:09 2014 -0500

    gconvert: Stop using footnotes

    These don't really work in the generated docs, so just copy
    the content in the few places.

 glib/gconvert.c | 73
 ++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 44 insertions(+), 29 deletions(-)

commit 60b623d3fb70c09cb08e6c088b76c59d4316e132
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:19:07 2014 -0500

    GObject: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 gobject/gclosure.c    | 27 ++++++++------------
 gobject/gobject.c     | 65 ++++++----------------------------------------
 gobject/gsignal.c     | 29 +++++++++------------
 gobject/gtypemodule.c | 30 ++++++++--------------
 gobject/gtypeplugin.c | 71
 ++++++++++++++++++++++-----------------------------
 5 files changed, 72 insertions(+), 150 deletions(-)

commit c93c05faa32aa030ff7aa604b5bb01871716cb2c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:18:07 2014 -0500

    gregex: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/gregex.c | 33 ++++++---------------------------
 1 file changed, 6 insertions(+), 27 deletions(-)

commit 8f486ceebb611bb7b2cffbf6b7a247f9b7dedb2e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:17:28 2014 -0500

    goption: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/goption.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit f7a604699815b8189d769e960e5469b67367e0e6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:17:04 2014 -0500

    gmessages: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/gmessages.c | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)

commit 99b53a0aaf5432057849fbf98b3666b688974030
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:15:52 2014 -0500

    gmarkup: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/gmarkup.c | 47 ++++++++++++++++++++++++-----------------------
 1 file changed, 24 insertions(+), 23 deletions(-)

commit 85d612a968c1d02a958f57c38d1ce90ceea4afc9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:15:20 2014 -0500

    gmain: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/gmain.c | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

commit c4da8f426a89f85fa752e262b58ba650d47d38cd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:14:59 2014 -0500

    GKeyFile: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/gkeyfile.c | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

commit 9f896667f8fc8b9596a50242116782567710c3a7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:14:41 2014 -0500

    GIOChannel: remove unneeded markup from the docs

 glib/giochannel.c | 56
 +++++++++++++++++++++----------------------------------
 1 file changed, 21 insertions(+), 35 deletions(-)

commit 22f8e8461cfc9bdc20015129ae221c6f1ed4a125
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:14:08 2014 -0500

    ggettext: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/ggettext.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

commit fab4f91907447635b648c908a685aeef0c8b0c21
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:13:41 2014 -0500

    fileutils: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/gfileutils.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

commit d76f4455f1248b88473d8acbb19a9152f800c269
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:13:17 2014 -0500

    GError: Convert docs to markdown

    In particular, convert lists to markdown syntax.

 glib/gerror.c | 108
 +++++++++++++++++++++++-----------------------------------
 1 file changed, 43 insertions(+), 65 deletions(-)

commit ef3796d3fd8bed9b4b6ccd0abf7d309634f6c83a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:11:38 2014 -0500

    GDateTime: Convert docs to markdown

    In particular convert sections and lists to markdown syntax.

 glib/gdatetime.c | 320
 ++++++++++++-------------------------------------------
 1 file changed, 68 insertions(+), 252 deletions(-)

commit 5cf14b0cc25b789be627573f7051f69b5d696a03
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 10:10:19 2014 -0500

    gconvert: Convert docs to markdown

    In particular, we convert sections and lists to markdown syntax
    here.

 glib/gconvert.c | 143
 +++++++++++++++++++++++++-------------------------------
 1 file changed, 63 insertions(+), 80 deletions(-)

commit 07506f6c579c309724abe20dd843eb60716c94cc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 09:50:23 2014 -0500

    kqueue: Don't use doc comments

    This is not public API, so no need to confuse gtk-doc by
    documentation that it needs to ignore. Also, no need for
    markup in here.

 gio/kqueue/kqueue-thread.c | 34 ++++++++++++++--------------------
 1 file changed, 14 insertions(+), 20 deletions(-)

commit 293fdc312c0eabd8407e2f60e1135fb08bfcfe03
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 00:27:22 2014 -0500

    GVariantType: convert docs to markdown

    Convert lists to markdown syntax, and remove lots of <literal>.

 glib/gvarianttype.c | 190
 +++++++++++++++++++++-------------------------------
 1 file changed, 76 insertions(+), 114 deletions(-)

commit fe9e812d7f606fd8df6809ab01e45addaffa1e66
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 00:26:58 2014 -0500

    GVariant: convert docs to markdown

    Convert lists to markdown syntax, and remove a lot of <literal>.

 glib/gvariant.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

commit bc982223eb439bec711050db44c20b6c51e3da93
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 00:26:38 2014 -0500

    gthread: Convert docs to markdown

    Convert lists to markdown syntax.

 glib/gthread.c | 75
 ++++++++++++++++++++++++++--------------------------------
 1 file changed, 34 insertions(+), 41 deletions(-)

commit 4308d2be9aa66071c0ccdcb9c5a0cafe722252a5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 1 00:26:05 2014 -0500

    testutils: Convert docs to markdown

    Convert lists to markdown.

 glib/gtestutils.c | 134
 ++++++++++++++++--------------------------------------
 1 file changed, 38 insertions(+), 96 deletions(-)

commit 77a60147538275710318778335205a796269fad0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 23:47:57 2014 -0500

    GApplication: Convert docs to markdown

 gio/gapplication.c | 38 ++++++++++++++++++++++++--------------
 1 file changed, 24 insertions(+), 14 deletions(-)

commit 01be2876893f70eed25f479545e8fb632470c0f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 23:47:42 2014 -0500

    gdbusnameowning: Convert docs to markdown

 gio/gdbusnameowning.c | 127
 +++++++++++++++++++++++++-------------------------
 1 file changed, 63 insertions(+), 64 deletions(-)

commit 3247d117042c834bc8d8e3737147d50e804f7f60
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 23:42:40 2014 -0500

    GDBusConnection: Convert docs to markdown

    And straighten out capitalization across the file.

 gio/gdbusconnection.c | 724
 +++++++++++++++++++++++++-------------------------
 1 file changed, 368 insertions(+), 356 deletions(-)

commit fee9194adeac05d843280c8726641e6004e7bc8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 23:01:30 2014 -0500

    GIcon: Convert docs to markdown

 gio/gicon.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

commit 192ddc0792b552ffb653e0ab43f04a25cfd678d9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 23:01:13 2014 -0500

    GDBusProxy: Convert docs to markdown

 gio/gdbusproxy.c | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

commit 54578e4c34f8ad7dc315afb18923cbac857ff43d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 23:00:58 2014 -0500

    GMenuModel: Convert docs to markdown

 gio/gmenumodel.c | 56
 ++++++++++++++++++++++----------------------------------
 1 file changed, 22 insertions(+), 34 deletions(-)

commit 4a1710862d6c18e4280c595f380f3b210145432c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 22:49:44 2014 -0500

    GSimpleProxyResolver: convert docs to markdown

 gio/gsimpleproxyresolver.c | 76
 ++++++++++++++++++----------------------------
 1 file changed, 29 insertions(+), 47 deletions(-)

commit d7b9f209904bcd5fdee9a902a1302c08a1ca9552
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 22:42:21 2014 -0500

    GSocketClient: convert docs to markdown

 gio/gsocketclient.c | 108
 +++++++++++++++++-----------------------------------
 1 file changed, 34 insertions(+), 74 deletions(-)

commit ba307a0c52599097c3d11c5a88eb28d9f0f48e96
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 22:29:13 2014 -0500

    GTask: convert long desc to markdown

    Use markdown sections and lists here.

 gio/gtask.c | 264
 +++++++++++++++++++++++++++---------------------------------
 1 file changed, 118 insertions(+), 146 deletions(-)

commit ed2bb953301b47bf34ff9c76b5931285d8434654
Author: Dan Winship <danw@gnome.org>
Date:   Sat Feb 1 13:37:07 2014 +0100

    gio/tests/network-address: fix for systems with large ifindexes

    In some virtualization setups, ifindexes can end up becoming very
    large, and so the existing code that assumes that *some* interface
    must have an index less than 255 fails.

    Fix this by explicitly looking for "lo" first. And then if that fails
    (on Windows, or other systems where the loopback interface is not
    called "lo"), try indexes up to 1024 rather than 255.

    https://bugzilla.gnome.org/show_bug.cgi?id=723048

 gio/tests/network-address.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 76330899a1b0f8f8dea1912e7f24d73eb3adc1c0
Author: Dan Winship <danw@gnome.org>
Date:   Sat Feb 1 13:27:19 2014 +0100

    Unbreak glib/tests/markup-parse after FSF address change patch

 glib/tests/markups/valid-14.gmarkup | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 243b264fca673d0a4e69cad3d0984474324f86a9
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jan 28 14:46:37 2014 -0500

    gnetworkmonitornetlink: filter out IPv6 LL MC changes

    For some reason, IPv6 link-local multicast routing changes all the
    time. GNetworkMonitorBase was already ignoring them for purposes of
    emitting network-changed, but GNetworkMonitorNetlink would still
    trigger a re-dump after getting one, so network-changed would end up
    getting emitted anyway.

 gio/gnetworkmonitornetlink.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit cade4d6f19b356eb7eaea9963263cbbe8d95e2de
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 22:14:01 2014 -0500

    Fix the docs build

 gio/gtask.c     | 9 ++++++---
 gio/gtestdbus.c | 4 ++--
 2 files changed, 8 insertions(+), 5 deletions(-)

commit a4c33c6f8b39c0517d0034d2298a952df4897535
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 22:05:04 2014 -0500

    Docs: Don't use the code tag

 gio/gdbusaddress.c     | 19 ++++++++++---------
 glib/glib-init.c       | 12 ++++++------
 glib/gvariant-parser.c |  5 ++++-
 glib/gvariant.c        | 10 +++++-----
 gobject/gsignal.c      |  5 ++---
 gobject/gvaluearray.c  |  3 +--
 6 files changed, 28 insertions(+), 26 deletions(-)

commit 17f51583a8733c312f5ac53478b36c5f3972ab45
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 21:56:33 2014 -0500

    Docs: Convert examples to |[ ]|

 gio/gactionmap.c                     |   7 +-
 gio/gapplication.c                   |  22 +++---
 gio/gcontenttype.c                   |   7 +-
 gio/gdbuserror.c                     |  16 ++---
 gio/gdbusmessage.c                   |   8 +--
 gio/gfile.c                          |   4 +-
 gio/gmenu.c                          |  10 ++-
 gio/gresource.c                      |  10 +--
 gio/gsettings.c                      |  16 ++---
 gio/gsimpleaction.c                  |  20 +++---
 gio/gtask.c                          |  31 ++++----
 gio/gtestdbus.c                      |  13 ++--
 gio/gvolume.c                        | 124
 ++++++++++++++++----------------
 glib/deprecated/gthread-deprecated.c | 134
 +++++++++++++++--------------------
 glib/garray.c                        |  54 +++++++-------
 glib/gconvert.c                      |   2 +-
 glib/gmessages.c                     |  26 +++----
 glib/goption.c                       |   5 +-
 glib/gslice.c                        |  25 +++----
 glib/gthread-posix.c                 |  10 +--
 glib/gthread.c                       | 102 +++++++++++---------------
 glib/gurifuncs.c                     |   4 +-
 glib/gvariant-parser.c               |   5 +-
 glib/gvariant.c                      |  67 ++++++++----------
 glib/gversion.c                      |  24 ++-----
 gobject/gobject.c                    |  34 ++++-----
 gobject/gtype.c                      |   8 +--
 27 files changed, 346 insertions(+), 442 deletions(-)

commit 4d12e0d66f1641a6eb2ba9c65579935136f6ef46
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 20:34:33 2014 -0500

    Docs: Don't use the emphasis tag

    Most of the time, the text read just as well without the extra
    boldness.

 gio/gasyncresult.c             |  11 +-
 gio/gcancellable.c             |  16 +-
 gio/gdatainputstream.c         |  14 +-
 gio/gdbusconnection.c          |   7 +-
 gio/gdbusmethodinvocation.c    |   2 +-
 gio/gdbusobjectmanagerclient.c |  13 +-
 gio/gdbusproxy.c               |   2 +-
 gio/gdbusutils.c               |   7 +-
 gio/gnetworking.c              |   9 +-
 gio/gnetworkmonitor.c          |   7 +-
 gio/goutputstream.c            |  26 ++-
 gio/gresolver.c                |   5 +-
 gio/gsettings.c                |   3 +-
 gio/gtask.c                    |   4 +-
 glib/docs.c                    |  34 ++--
 glib/gcharset.c                |   2 +-
 glib/gconvert.c                |  17 +-
 glib/gdate.c                   |  24 +--
 glib/gerror.c                  |  96 +++++------
 glib/ggettext.c                |   4 +-
 glib/giochannel.c              |   3 +-
 glib/gmain.c                   |   7 +-
 glib/gmem.c                    |  18 ++-
 glib/gmessages.c               |   3 +-
 glib/goption.c                 |   6 +-
 glib/gpattern.c                |  17 +-
 glib/gquark.c                  |  34 ++--
 glib/gqueue.c                  |  18 +--
 glib/gsequence.c               | 153 +++++++++---------
 glib/gstrfuncs.c               |  30 ++--
 glib/gthread.c                 |   7 +-
 glib/gutf8.c                   |   8 +-
 glib/gutils.c                  |  18 ++-
 gobject/gbinding.c             |  24 +--
 gobject/gsignal.c              |  43 ++---
 gobject/gtype.c                | 359
 +++++++++++++++++++++--------------------
 36 files changed, 515 insertions(+), 536 deletions(-)

commit 64eface479baf3db06f0f42b43f391db55b5ad4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 17:38:27 2014 -0500

    Docs: don't use the warning tag

    More markup removal

 gio/gdbusinterface.c | 11 +++++------
 gio/gfile.c          |  8 ++++----
 gio/goutputstream.c  | 10 +++++-----
 glib/docs.c          |  9 ++++-----
 glib/genviron.c      | 36 ++++++++++++++++--------------------
 glib/grand.c         | 10 +++++-----
 glib/gstrfuncs.c     | 11 +++++------
 glib/gvariant.c      |  4 ++--
 8 files changed, 46 insertions(+), 53 deletions(-)

commit c575d24dfb78d956e66a522524c7b1d82d0adde7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 14:56:10 2014 -0500

    Docs: Don't use the note tag

    More markup avoidance.

 gio/gioscheduler.c       |   8 +-
 gio/gsettingsbackend.c   |   6 +-
 gio/gsimpleasyncresult.c |   8 +-
 gio/gthemedicon.c        |   4 -
 glib/docs.c              | 271 +++++++++----------
 glib/garray.c            | 676
 ++++++++++++++++++++++++-----------------------
 glib/ggettext.c          |  24 +-
 glib/gkeyfile.c          |   7 +-
 glib/glib-unix.c         |  18 +-
 glib/glist.c             |  31 +--
 glib/gmacros.h           |  52 ++--
 glib/gmem.c              |  17 +-
 glib/gqueue.c            |   7 +-
 glib/gsequence.c         |   8 -
 glib/gslist.c            |  30 +--
 glib/gspawn.c            | 161 ++++++-----
 glib/gstrfuncs.c         | 219 ++++++++-------
 glib/gthread-posix.c     |   7 +-
 glib/gthread.c           |  10 +-
 glib/gutils.c            |  28 +-
 gobject/gbinding.c       |  48 ++--
 gobject/gobject.c        |   2 -
 22 files changed, 773 insertions(+), 869 deletions(-)

commit 4cbee6a35b4f75dc418cb9e0219dcd3104a5ba17
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 31 09:36:52 2014 -0500

    Restore executability for other files

 gio/gdbus-2.0/codegen/codegen_main.py | 0
 glib/gen-unicode-tables.pl            | 0
 glib/gtester-report                   | 0
 tests/gen-casefold-txt.pl             | 0
 tests/gen-casemap-txt.pl              | 0
 5 files changed, 0 insertions(+), 0 deletions(-)

commit a7435d2e69d4757c129e0e5cb36eb2c810f50bf1
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 31 09:23:45 2014 -0500

    Restore executability on data-to-c.pl

 gio/data-to-c.pl | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 078dbda148a81af1b3a76fbda72f089b963087f1
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Jan 23 12:58:29 2014 +0100

    Updated FSF's address

 gio/data-to-c.pl                          | 4 +---
 gio/fam/fam-helper.c                      | 4 +---
 gio/fam/fam-helper.h                      | 4 +---
 gio/fam/fam-module.c                      | 4 +---
 gio/fam/gfamdirectorymonitor.c            | 4 +---
 gio/fam/gfamdirectorymonitor.h            | 4 +---
 gio/fam/gfamfilemonitor.c                 | 4 +---
 gio/fam/gfamfilemonitor.h                 | 4 +---
 gio/fen/fen-dump.c                        | 4 +---
 gio/fen/fen-dump.h                        | 4 +---
 gio/fen/fen-helper.c                      | 4 +---
 gio/fen/fen-helper.h                      | 4 +---
 gio/fen/fen-kernel.c                      | 4 +---
 gio/fen/fen-kernel.h                      | 4 +---
 gio/fen/fen-node.c                        | 4 +---
 gio/fen/fen-node.h                        | 4 +---
 gio/fen/gfendirectorymonitor.c            | 4 +---
 gio/fen/gfendirectorymonitor.h            | 4 +---
 gio/fen/gfenfilemonitor.c                 | 4 +---
 gio/fen/gfenfilemonitor.h                 | 4 +---
 gio/gaction.c                             | 4 +---
 gio/gaction.h                             | 4 +---
 gio/gactiongroup.c                        | 4 +---
 gio/gactiongroup.h                        | 4 +---
 gio/gactiongroupexporter.c                | 4 +---
 gio/gactiongroupexporter.h                | 4 +---
 gio/gactionmap.c                          | 4 +---
 gio/gactionmap.h                          | 4 +---
 gio/gappinfo.c                            | 4 +---
 gio/gappinfo.h                            | 4 +---
 gio/gappinfoprivate.h                     | 4 +---
 gio/gapplication-tool.c                   | 4 +---
 gio/gapplication.c                        | 4 +---
 gio/gapplication.h                        | 4 +---
 gio/gapplicationcommandline.c             | 4 +---
 gio/gapplicationcommandline.h             | 4 +---
 gio/gapplicationimpl-dbus.c               | 4 +---
 gio/gasynchelper.c                        | 4 +---
 gio/gasynchelper.h                        | 4 +---
 gio/gasyncinitable.c                      | 4 +---
 gio/gasyncinitable.h                      | 4 +---
 gio/gasyncresult.c                        | 4 +---
 gio/gasyncresult.h                        | 4 +---
 gio/gbufferedinputstream.c                | 4 +---
 gio/gbufferedinputstream.h                | 4 +---
 gio/gbufferedoutputstream.c               | 4 +---
 gio/gbufferedoutputstream.h               | 4 +---
 gio/gbytesicon.c                          | 4 +---
 gio/gbytesicon.h                          | 4 +---
 gio/gcancellable.c                        | 4 +---
 gio/gcancellable.h                        | 4 +---
 gio/gcharsetconverter.c                   | 4 +---
 gio/gcharsetconverter.h                   | 4 +---
 gio/gcontenttype-win32.c                  | 4 +---
 gio/gcontenttype.c                        | 4 +---
 gio/gcontenttype.h                        | 4 +---
 gio/gcontenttypeprivate.h                 | 4 +---
 gio/gconverter.c                          | 4 +---
 gio/gconverter.h                          | 4 +---
 gio/gconverterinputstream.c               | 4 +---
 gio/gconverterinputstream.h               | 4 +---
 gio/gconverteroutputstream.c              | 4 +---
 gio/gconverteroutputstream.h              | 4 +---
 gio/gcredentials.c                        | 4 +---
 gio/gcredentials.h                        | 4 +---
 gio/gcredentialsprivate.h                 | 4 +---
 gio/gdatainputstream.c                    | 4 +---
 gio/gdatainputstream.h                    | 4 +---
 gio/gdataoutputstream.c                   | 4 +---
 gio/gdataoutputstream.h                   | 4 +---
 gio/gdbus-2.0/codegen/__init__.py         | 4 +---
 gio/gdbus-2.0/codegen/codegen.py          | 4 +---
 gio/gdbus-2.0/codegen/codegen_docbook.py  | 4 +---
 gio/gdbus-2.0/codegen/codegen_main.py     | 4 +---
 gio/gdbus-2.0/codegen/config.py.in        | 4 +---
 gio/gdbus-2.0/codegen/dbustypes.py        | 4 +---
 gio/gdbus-2.0/codegen/gdbus-codegen.in    | 4 +---
 gio/gdbus-2.0/codegen/parser.py           | 4 +---
 gio/gdbus-2.0/codegen/utils.py            | 4 +---
 gio/gdbus-tool.c                          | 4 +---
 gio/gdbusactiongroup-private.h            | 4 +---
 gio/gdbusactiongroup.c                    | 4 +---
 gio/gdbusactiongroup.h                    | 4 +---
 gio/gdbusaddress.c                        | 4 +---
 gio/gdbusaddress.h                        | 4 +---
 gio/gdbusauth.c                           | 4 +---
 gio/gdbusauth.h                           | 4 +---
 gio/gdbusauthmechanism.c                  | 4 +---
 gio/gdbusauthmechanism.h                  | 4 +---
 gio/gdbusauthmechanismanon.c              | 4 +---
 gio/gdbusauthmechanismanon.h              | 4 +---
 gio/gdbusauthmechanismexternal.c          | 4 +---
 gio/gdbusauthmechanismexternal.h          | 4 +---
 gio/gdbusauthmechanismsha1.c              | 4 +---
 gio/gdbusauthmechanismsha1.h              | 4 +---
 gio/gdbusauthobserver.c                   | 4 +---
 gio/gdbusauthobserver.h                   | 4 +---
 gio/gdbusconnection.c                     | 4 +---
 gio/gdbusconnection.h                     | 4 +---
 gio/gdbuserror.c                          | 4 +---
 gio/gdbuserror.h                          | 4 +---
 gio/gdbusinterface.c                      | 4 +---
 gio/gdbusinterface.h                      | 4 +---
 gio/gdbusinterfaceskeleton.c              | 4 +---
 gio/gdbusinterfaceskeleton.h              | 4 +---
 gio/gdbusintrospection.c                  | 4 +---
 gio/gdbusintrospection.h                  | 4 +---
 gio/gdbusmenumodel.c                      | 4 +---
 gio/gdbusmenumodel.h                      | 4 +---
 gio/gdbusmessage.c                        | 4 +---
 gio/gdbusmessage.h                        | 4 +---
 gio/gdbusmethodinvocation.c               | 4 +---
 gio/gdbusmethodinvocation.h               | 4 +---
 gio/gdbusnameowning.c                     | 4 +---
 gio/gdbusnameowning.h                     | 4 +---
 gio/gdbusnamewatching.c                   | 4 +---
 gio/gdbusnamewatching.h                   | 4 +---
 gio/gdbusobject.c                         | 4 +---
 gio/gdbusobject.h                         | 4 +---
 gio/gdbusobjectmanager.c                  | 4 +---
 gio/gdbusobjectmanager.h                  | 4 +---
 gio/gdbusobjectmanagerclient.c            | 4 +---
 gio/gdbusobjectmanagerclient.h            | 4 +---
 gio/gdbusobjectmanagerserver.c            | 4 +---
 gio/gdbusobjectmanagerserver.h            | 4 +---
 gio/gdbusobjectproxy.c                    | 4 +---
 gio/gdbusobjectproxy.h                    | 4 +---
 gio/gdbusobjectskeleton.c                 | 4 +---
 gio/gdbusobjectskeleton.h                 | 4 +---
 gio/gdbusprivate.c                        | 4 +---
 gio/gdbusprivate.h                        | 4 +---
 gio/gdbusproxy.c                          | 4 +---
 gio/gdbusproxy.h                          | 4 +---
 gio/gdbusserver.c                         | 4 +---
 gio/gdbusserver.h                         | 4 +---
 gio/gdbusutils.c                          | 4 +---
 gio/gdbusutils.h                          | 4 +---
 gio/gdelayedsettingsbackend.c             | 4 +---
 gio/gdelayedsettingsbackend.h             | 4 +---
 gio/gdesktopappinfo.c                     | 4 +---
 gio/gdesktopappinfo.h                     | 4 +---
 gio/gdrive.c                              | 4 +---
 gio/gdrive.h                              | 4 +---
 gio/gdummyfile.c                          | 4 +---
 gio/gdummyfile.h                          | 4 +---
 gio/gdummyproxyresolver.c                 | 4 +---
 gio/gdummyproxyresolver.h                 | 4 +---
 gio/gdummytlsbackend.c                    | 4 +---
 gio/gdummytlsbackend.h                    | 4 +---
 gio/gemblem.c                             | 4 +---
 gio/gemblem.h                             | 4 +---
 gio/gemblemedicon.c                       | 4 +---
 gio/gemblemedicon.h                       | 4 +---
 gio/gfdonotificationbackend.c             | 4 +---
 gio/gfile.c                               | 4 +---
 gio/gfile.h                               | 4 +---
 gio/gfileattribute-priv.h                 | 4 +---
 gio/gfileattribute.c                      | 4 +---
 gio/gfileattribute.h                      | 4 +---
 gio/gfiledescriptorbased.c                | 4 +---
 gio/gfiledescriptorbased.h                | 4 +---
 gio/gfileenumerator.c                     | 4 +---
 gio/gfileenumerator.h                     | 4 +---
 gio/gfileicon.c                           | 4 +---
 gio/gfileicon.h                           | 4 +---
 gio/gfileinfo-priv.h                      | 4 +---
 gio/gfileinfo.c                           | 4 +---
 gio/gfileinfo.h                           | 4 +---
 gio/gfileinputstream.c                    | 4 +---
 gio/gfileinputstream.h                    | 4 +---
 gio/gfileiostream.c                       | 4 +---
 gio/gfileiostream.h                       | 4 +---
 gio/gfilemonitor.c                        | 4 +---
 gio/gfilemonitor.h                        | 4 +---
 gio/gfilenamecompleter.c                  | 4 +---
 gio/gfilenamecompleter.h                  | 4 +---
 gio/gfileoutputstream.c                   | 4 +---
 gio/gfileoutputstream.h                   | 4 +---
 gio/gfilterinputstream.c                  | 4 +---
 gio/gfilterinputstream.h                  | 4 +---
 gio/gfilteroutputstream.c                 | 4 +---
 gio/gfilteroutputstream.h                 | 4 +---
 gio/ggtknotificationbackend.c             | 4 +---
 gio/gicon.c                               | 4 +---
 gio/gicon.h                               | 4 +---
 gio/ginetaddress.c                        | 4 +---
 gio/ginetaddress.h                        | 4 +---
 gio/ginetaddressmask.c                    | 4 +---
 gio/ginetaddressmask.h                    | 4 +---
 gio/ginetsocketaddress.c                  | 4 +---
 gio/ginetsocketaddress.h                  | 4 +---
 gio/ginitable.c                           | 4 +---
 gio/ginitable.h                           | 4 +---
 gio/ginputstream.c                        | 4 +---
 gio/ginputstream.h                        | 4 +---
 gio/gio-querymodules.c                    | 4 +---
 gio/gio.h                                 | 4 +---
 gio/gioenums.h                            | 4 +---
 gio/gioerror.c                            | 4 +---
 gio/gioerror.h                            | 4 +---
 gio/giomodule-priv.h                      | 4 +---
 gio/giomodule.c                           | 4 +---
 gio/giomodule.h                           | 4 +---
 gio/gioprivate.h                          | 4 +---
 gio/gioscheduler.c                        | 4 +---
 gio/gioscheduler.h                        | 4 +---
 gio/giostream.c                           | 4 +---
 gio/giotypes.h                            | 4 +---
 gio/giowin32-priv.h                       | 4 +---
 gio/gkeyfilesettingsbackend.c             | 4 +---
 gio/glib-compile-resources.c              | 4 +---
 gio/glib-compile-schemas.c                | 4 +---
 gio/gloadableicon.c                       | 4 +---
 gio/gloadableicon.h                       | 4 +---
 gio/glocaldirectorymonitor.c              | 4 +---
 gio/glocaldirectorymonitor.h              | 4 +---
 gio/glocalfile.c                          | 4 +---
 gio/glocalfile.h                          | 4 +---
 gio/glocalfileenumerator.c                | 4 +---
 gio/glocalfileenumerator.h                | 4 +---
 gio/glocalfileinfo.c                      | 4 +---
 gio/glocalfileinfo.h                      | 4 +---
 gio/glocalfileinputstream.c               | 4 +---
 gio/glocalfileinputstream.h               | 4 +---
 gio/glocalfileiostream.c                  | 4 +---
 gio/glocalfileiostream.h                  | 4 +---
 gio/glocalfilemonitor.c                   | 4 +---
 gio/glocalfilemonitor.h                   | 4 +---
 gio/glocalfileoutputstream.c              | 4 +---
 gio/glocalfileoutputstream.h              | 4 +---
 gio/glocalvfs.c                           | 4 +---
 gio/glocalvfs.h                           | 4 +---
 gio/gmemoryinputstream.c                  | 4 +---
 gio/gmemoryinputstream.h                  | 4 +---
 gio/gmemoryoutputstream.c                 | 4 +---
 gio/gmemoryoutputstream.h                 | 4 +---
 gio/gmemorysettingsbackend.c              | 4 +---
 gio/gmenu.c                               | 4 +---
 gio/gmenu.h                               | 4 +---
 gio/gmenuexporter.c                       | 4 +---
 gio/gmenuexporter.h                       | 4 +---
 gio/gmenumodel.c                          | 4 +---
 gio/gmenumodel.h                          | 4 +---
 gio/gmount.c                              | 4 +---
 gio/gmount.h                              | 4 +---
 gio/gmountoperation.c                     | 4 +---
 gio/gmountoperation.h                     | 4 +---
 gio/gmountprivate.h                       | 4 +---
 gio/gnativevolumemonitor.c                | 4 +---
 gio/gnativevolumemonitor.h                | 4 +---
 gio/gnetworkaddress.c                     | 4 +---
 gio/gnetworkaddress.h                     | 4 +---
 gio/gnetworking.c                         | 4 +---
 gio/gnetworking.h.in                      | 4 +---
 gio/gnetworking.h.win32                   | 4 +---
 gio/gnetworkingprivate.h                  | 4 +---
 gio/gnetworkmonitor.c                     | 4 +---
 gio/gnetworkmonitor.h                     | 4 +---
 gio/gnetworkmonitorbase.c                 | 4 +---
 gio/gnetworkmonitorbase.h                 | 4 +---
 gio/gnetworkmonitornetlink.c              | 4 +---
 gio/gnetworkmonitornetlink.h              | 4 +---
 gio/gnetworkservice.c                     | 4 +---
 gio/gnetworkservice.h                     | 4 +---
 gio/gnextstepsettingsbackend.c            | 4 +---
 gio/gnotification-private.h               | 4 +---
 gio/gnotification.c                       | 4 +---
 gio/gnotification.h                       | 4 +---
 gio/gnotificationbackend.c                | 4 +---
 gio/gnotificationbackend.h                | 4 +---
 gio/gnullsettingsbackend.c                | 4 +---
 gio/goutputstream.c                       | 4 +---
 gio/goutputstream.h                       | 4 +---
 gio/gpermission.c                         | 4 +---
 gio/gpermission.h                         | 4 +---
 gio/gpollableinputstream.c                | 4 +---
 gio/gpollableinputstream.h                | 4 +---
 gio/gpollableoutputstream.c               | 4 +---
 gio/gpollableoutputstream.h               | 4 +---
 gio/gpollableutils.c                      | 4 +---
 gio/gpollableutils.h                      | 4 +---
 gio/gpollfilemonitor.c                    | 4 +---
 gio/gpollfilemonitor.h                    | 4 +---
 gio/gpropertyaction.c                     | 4 +---
 gio/gpropertyaction.h                     | 4 +---
 gio/gproxy.c                              | 4 +---
 gio/gproxy.h                              | 4 +---
 gio/gproxyaddress.c                       | 4 +---
 gio/gproxyaddress.h                       | 4 +---
 gio/gproxyaddressenumerator.c             | 4 +---
 gio/gproxyaddressenumerator.h             | 4 +---
 gio/gproxyresolver.c                      | 4 +---
 gio/gproxyresolver.h                      | 4 +---
 gio/gregistrysettingsbackend.c            | 4 +---
 gio/gregistrysettingsbackend.h            | 4 +---
 gio/gremoteactiongroup.c                  | 4 +---
 gio/gremoteactiongroup.h                  | 4 +---
 gio/gresolver.c                           | 4 +---
 gio/gresolver.h                           | 4 +---
 gio/gresource-tool.c                      | 4 +---
 gio/gresource.c                           | 4 +---
 gio/gresource.h                           | 4 +---
 gio/gresourcefile.c                       | 4 +---
 gio/gresourcefile.h                       | 4 +---
 gio/gseekable.c                           | 4 +---
 gio/gseekable.h                           | 4 +---
 gio/gsettings-mapping.c                   | 4 +---
 gio/gsettings-mapping.h                   | 4 +---
 gio/gsettings-tool.c                      | 4 +---
 gio/gsettings.c                           | 4 +---
 gio/gsettings.h                           | 4 +---
 gio/gsettingsbackend.c                    | 4 +---
 gio/gsettingsbackend.h                    | 4 +---
 gio/gsettingsbackendinternal.h            | 4 +---
 gio/gsettingsschema-internal.h            | 4 +---
 gio/gsettingsschema.c                     | 4 +---
 gio/gsettingsschema.h                     | 4 +---
 gio/gsimpleaction.c                       | 4 +---
 gio/gsimpleaction.h                       | 4 +---
 gio/gsimpleactiongroup.c                  | 4 +---
 gio/gsimpleactiongroup.h                  | 4 +---
 gio/gsimpleasyncresult.c                  | 4 +---
 gio/gsimpleasyncresult.h                  | 4 +---
 gio/gsimplepermission.c                   | 4 +---
 gio/gsimplepermission.h                   | 4 +---
 gio/gsimpleproxyresolver.h                | 4 +---
 gio/gsocket.c                             | 4 +---
 gio/gsocket.h                             | 4 +---
 gio/gsocketaddress.c                      | 4 +---
 gio/gsocketaddress.h                      | 4 +---
 gio/gsocketaddressenumerator.c            | 4 +---
 gio/gsocketaddressenumerator.h            | 4 +---
 gio/gsocketclient.c                       | 4 +---
 gio/gsocketclient.h                       | 4 +---
 gio/gsocketconnectable.c                  | 4 +---
 gio/gsocketconnectable.h                  | 4 +---
 gio/gsocketconnection.c                   | 4 +---
 gio/gsocketconnection.h                   | 4 +---
 gio/gsocketcontrolmessage.h               | 4 +---
 gio/gsocketinputstream.c                  | 4 +---
 gio/gsocketlistener.c                     | 4 +---
 gio/gsocketlistener.h                     | 4 +---
 gio/gsocketoutputstream.c                 | 4 +---
 gio/gsocketservice.c                      | 4 +---
 gio/gsocketservice.h                      | 4 +---
 gio/gsocks4aproxy.c                       | 4 +---
 gio/gsocks4aproxy.h                       | 4 +---
 gio/gsocks4proxy.c                        | 4 +---
 gio/gsocks4proxy.h                        | 4 +---
 gio/gsocks5proxy.c                        | 4 +---
 gio/gsocks5proxy.h                        | 4 +---
 gio/gsrvtarget.c                          | 4 +---
 gio/gsrvtarget.h                          | 4 +---
 gio/gsubprocess.h                         | 4 +---
 gio/gsubprocesslauncher-private.h         | 4 +---
 gio/gsubprocesslauncher.h                 | 4 +---
 gio/gtask.c                               | 4 +---
 gio/gtask.h                               | 4 +---
 gio/gtcpconnection.h                      | 4 +---
 gio/gtcpwrapperconnection.c               | 4 +---
 gio/gtcpwrapperconnection.h               | 4 +---
 gio/gtestdbus.c                           | 4 +---
 gio/gtestdbus.h                           | 4 +---
 gio/gthemedicon.c                         | 4 +---
 gio/gthemedicon.h                         | 4 +---
 gio/gthreadedresolver.c                   | 4 +---
 gio/gthreadedresolver.h                   | 4 +---
 gio/gthreadedsocketservice.c              | 4 +---
 gio/gthreadedsocketservice.h              | 4 +---
 gio/gtlsbackend.c                         | 4 +---
 gio/gtlsbackend.h                         | 4 +---
 gio/gtlscertificate.c                     | 4 +---
 gio/gtlscertificate.h                     | 4 +---
 gio/gtlsclientconnection.c                | 4 +---
 gio/gtlsclientconnection.h                | 4 +---
 gio/gtlsconnection.c                      | 4 +---
 gio/gtlsconnection.h                      | 4 +---
 gio/gtlsdatabase.c                        | 4 +---
 gio/gtlsdatabase.h                        | 4 +---
 gio/gtlsfiledatabase.c                    | 4 +---
 gio/gtlsinteraction.c                     | 4 +---
 gio/gtlsinteraction.h                     | 4 +---
 gio/gtlspassword.c                        | 4 +---
 gio/gtlspassword.h                        | 4 +---
 gio/gtlsserverconnection.c                | 4 +---
 gio/gtlsserverconnection.h                | 4 +---
 gio/gunionvolumemonitor.c                 | 4 +---
 gio/gunionvolumemonitor.h                 | 4 +---
 gio/gunixconnection.h                     | 4 +---
 gio/gunixcredentialsmessage.h             | 4 +---
 gio/gunixfdlist.h                         | 4 +---
 gio/gunixfdmessage.h                      | 4 +---
 gio/gunixinputstream.c                    | 4 +---
 gio/gunixinputstream.h                    | 4 +---
 gio/gunixmount.c                          | 4 +---
 gio/gunixmount.h                          | 4 +---
 gio/gunixmounts.c                         | 4 +---
 gio/gunixmounts.h                         | 4 +---
 gio/gunixoutputstream.c                   | 4 +---
 gio/gunixoutputstream.h                   | 4 +---
 gio/gunixsocketaddress.c                  | 4 +---
 gio/gunixsocketaddress.h                  | 4 +---
 gio/gunixvolume.c                         | 4 +---
 gio/gunixvolume.h                         | 4 +---
 gio/gunixvolumemonitor.c                  | 4 +---
 gio/gunixvolumemonitor.h                  | 4 +---
 gio/gvdb/gvdb-builder.c                   | 4 +---
 gio/gvdb/gvdb-builder.h                   | 4 +---
 gio/gvdb/gvdb-format.h                    | 4 +---
 gio/gvdb/gvdb-reader.c                    | 4 +---
 gio/gvdb/gvdb-reader.h                    | 4 +---
 gio/gvfs.c                                | 4 +---
 gio/gvfs.h                                | 4 +---
 gio/gvolume.c                             | 4 +---
 gio/gvolume.h                             | 4 +---
 gio/gvolumemonitor.c                      | 4 +---
 gio/gvolumemonitor.h                      | 4 +---
 gio/gwin32appinfo.c                       | 4 +---
 gio/gwin32appinfo.h                       | 4 +---
 gio/gwin32inputstream.c                   | 4 +---
 gio/gwin32inputstream.h                   | 4 +---
 gio/gwin32mount.c                         | 4 +---
 gio/gwin32mount.h                         | 4 +---
 gio/gwin32outputstream.c                  | 4 +---
 gio/gwin32outputstream.h                  | 4 +---
 gio/gwin32volumemonitor.c                 | 4 +---
 gio/gwin32volumemonitor.h                 | 4 +---
 gio/gzlibcompressor.c                     | 4 +---
 gio/gzlibcompressor.h                     | 4 +---
 gio/gzlibdecompressor.c                   | 4 +---
 gio/gzlibdecompressor.h                   | 4 +---
 gio/inotify/ginotifydirectorymonitor.c    | 4 +---
 gio/inotify/ginotifydirectorymonitor.h    | 4 +---
 gio/inotify/ginotifyfilemonitor.c         | 4 +---
 gio/inotify/ginotifyfilemonitor.h         | 4 +---
 gio/inotify/inotify-helper.c              | 3 +--
 gio/inotify/inotify-helper.h              | 3 +--
 gio/inotify/inotify-kernel.c              | 3 +--
 gio/inotify/inotify-kernel.h              | 3 +--
 gio/inotify/inotify-missing.c             | 3 +--
 gio/inotify/inotify-missing.h             | 3 +--
 gio/inotify/inotify-path.c                | 3 +--
 gio/inotify/inotify-path.h                | 3 +--
 gio/inotify/inotify-sub.c                 | 3 +--
 gio/inotify/inotify-sub.h                 | 3 +--
 gio/strinfo.c                             | 4 +---
 gio/tests/cancellable.c                   | 4 +---
 gio/tests/dbus-appinfo.c                  | 4 +---
 gio/tests/desktop-app-info.c              | 4 +---
 gio/tests/filter-cat.c                    | 4 +---
 gio/tests/gdbus-addresses.c               | 4 +---
 gio/tests/gdbus-auth.c                    | 4 +---
 gio/tests/gdbus-bz627724.c                | 4 +---
 gio/tests/gdbus-close-pending.c           | 4 +---
 gio/tests/gdbus-connection-flush-helper.c | 4 +---
 gio/tests/gdbus-connection-flush.c        | 4 +---
 gio/tests/gdbus-connection-loss.c         | 4 +---
 gio/tests/gdbus-connection-slow.c         | 4 +---
 gio/tests/gdbus-connection.c              | 4 +---
 gio/tests/gdbus-error.c                   | 4 +---
 gio/tests/gdbus-exit-on-close.c           | 4 +---
 gio/tests/gdbus-export.c                  | 4 +---
 gio/tests/gdbus-introspection.c           | 4 +---
 gio/tests/gdbus-message.c                 | 4 +---
 gio/tests/gdbus-names.c                   | 4 +---
 gio/tests/gdbus-non-socket.c              | 4 +---
 gio/tests/gdbus-overflow.c                | 4 +---
 gio/tests/gdbus-peer-object-manager.c     | 4 +---
 gio/tests/gdbus-peer.c                    | 4 +---
 gio/tests/gdbus-proxy-threads.c           | 4 +---
 gio/tests/gdbus-proxy-well-known-name.c   | 4 +---
 gio/tests/gdbus-proxy.c                   | 4 +---
 gio/tests/gdbus-serialization.c           | 4 +---
 gio/tests/gdbus-sessionbus.c              | 4 +---
 gio/tests/gdbus-sessionbus.h              | 4 +---
 gio/tests/gdbus-test-codegen.c            | 4 +---
 gio/tests/gdbus-tests.c                   | 4 +---
 gio/tests/gdbus-tests.h                   | 4 +---
 gio/tests/gdbus-threading.c               | 4 +---
 gio/tests/gnotification-server.c          | 4 +---
 gio/tests/gnotification-server.h          | 4 +---
 gio/tests/gnotification.c                 | 4 +---
 gio/tests/gtesttlsbackend.c               | 4 +---
 gio/tests/gtesttlsbackend.h               | 4 +---
 gio/tests/gtlsconsoleinteraction.c        | 4 +---
 gio/tests/gtlsconsoleinteraction.h        | 4 +---
 gio/tests/network-monitor.c               | 4 +---
 gio/tests/pollable.c                      | 4 +---
 gio/tests/proxy-test.c                    | 4 +---
 gio/tests/proxy.c                         | 4 +---
 gio/tests/resolver.c                      | 4 +---
 gio/tests/resources.c                     | 4 +---
 gio/tests/socket.c                        | 4 +---
 gio/tests/test-io-stream.c                | 4 +---
 gio/tests/test-io-stream.h                | 4 +---
 gio/tests/test-pipe-unix.c                | 4 +---
 gio/tests/test-pipe-unix.h                | 4 +---
 gio/tests/tls-certificate.c               | 4 +---
 gio/tests/tls-interaction.c               | 4 +---
 gio/thumbnail-verify.c                    | 4 +---
 gio/thumbnail-verify.h                    | 4 +---
 gio/win32/gwin32directorymonitor.c        | 4 +---
 gio/win32/gwin32directorymonitor.h        | 4 +---
 gio/win32/gwinhttpfile.c                  | 4 +---
 gio/win32/gwinhttpfile.h                  | 4 +---
 gio/win32/gwinhttpfileinputstream.c       | 4 +---
 gio/win32/gwinhttpfileinputstream.h       | 4 +---
 gio/win32/gwinhttpfileoutputstream.c      | 4 +---
 gio/win32/gwinhttpfileoutputstream.h      | 4 +---
 gio/win32/gwinhttpvfs.c                   | 4 +---
 gio/win32/gwinhttpvfs.h                   | 4 +---
 gio/xdgmime/xdgmime.c                     | 4 +---
 gio/xdgmime/xdgmime.h                     | 4 +---
 gio/xdgmime/xdgmimealias.c                | 4 +---
 gio/xdgmime/xdgmimealias.h                | 4 +---
 gio/xdgmime/xdgmimecache.c                | 4 +---
 gio/xdgmime/xdgmimecache.h                | 4 +---
 gio/xdgmime/xdgmimeglob.c                 | 4 +---
 gio/xdgmime/xdgmimeglob.h                 | 4 +---
 gio/xdgmime/xdgmimeicon.c                 | 4 +---
 gio/xdgmime/xdgmimeicon.h                 | 4 +---
 gio/xdgmime/xdgmimeint.c                  | 4 +---
 gio/xdgmime/xdgmimeint.h                  | 4 +---
 gio/xdgmime/xdgmimemagic.c                | 4 +---
 gio/xdgmime/xdgmimemagic.h                | 4 +---
 gio/xdgmime/xdgmimeparent.c               | 4 +---
 gio/xdgmime/xdgmimeparent.h               | 4 +---
 glib-gettextize.in                        | 3 +--
 glib/deprecated/gallocator.c              | 4 +---
 glib/deprecated/gallocator.h              | 4 +---
 glib/deprecated/gcache.c                  | 4 +---
 glib/deprecated/gcache.h                  | 4 +---
 glib/deprecated/gcompletion.c             | 4 +---
 glib/deprecated/gcompletion.h             | 4 +---
 glib/deprecated/gmain.h                   | 4 +---
 glib/deprecated/grel.h                    | 4 +---
 glib/deprecated/gthread-deprecated.c      | 4 +---
 glib/deprecated/gthread.h                 | 4 +---
 glib/docs.c                               | 4 +---
 glib/galloca.h                            | 4 +---
 glib/garray.c                             | 4 +---
 glib/garray.h                             | 4 +---
 glib/gasyncqueue.c                        | 4 +---
 glib/gasyncqueue.h                        | 4 +---
 glib/gasyncqueueprivate.h                 | 4 +---
 glib/gatomic.c                            | 4 +---
 glib/gatomic.h                            | 4 +---
 glib/gbacktrace.c                         | 4 +---
 glib/gbacktrace.h                         | 4 +---
 glib/gbase64.c                            | 4 +---
 glib/gbase64.h                            | 4 +---
 glib/gbitlock.c                           | 4 +---
 glib/gbitlock.h                           | 4 +---
 glib/gbytes.c                             | 4 +---
 glib/gbytes.h                             | 4 +---
 glib/gcharset.c                           | 4 +---
 glib/gcharset.h                           | 3 +--
 glib/gcharsetprivate.h                    | 4 +---
 glib/gchecksum.c                          | 4 +---
 glib/gchecksum.h                          | 4 +---
 glib/gconvert.c                           | 4 +---
 glib/gconvert.h                           | 4 +---
 glib/gdataset.c                           | 3 +--
 glib/gdataset.h                           | 4 +---
 glib/gdatasetprivate.h                    | 4 +---
 glib/gdate.c                              | 4 +---
 glib/gdate.h                              | 4 +---
 glib/gdir.c                               | 4 +---
 glib/gdir.h                               | 4 +---
 glib/gen-unicode-tables.pl                | 4 +---
 glib/genviron.c                           | 4 +---
 glib/genviron.h                           | 4 +---
 glib/gerror.c                             | 4 +---
 glib/gerror.h                             | 3 +--
 glib/gfileutils.c                         | 3 +--
 glib/gfileutils.h                         | 3 +--
 glib/ggettext.c                           | 4 +---
 glib/ggettext.h                           | 4 +---
 glib/ghash.c                              | 4 +---
 glib/ghash.h                              | 4 +---
 glib/ghmac.c                              | 4 +---
 glib/ghmac.h                              | 4 +---
 glib/ghook.c                              | 4 +---
 glib/ghook.h                              | 4 +---
 glib/ghostutils.c                         | 4 +---
 glib/ghostutils.h                         | 4 +---
 glib/gi18n-lib.h                          | 4 +---
 glib/gi18n.h                              | 4 +---
 glib/giochannel.c                         | 4 +---
 glib/giochannel.h                         | 4 +---
 glib/giounix.c                            | 4 +---
 glib/giowin32.c                           | 4 +---
 glib/gkeyfile.c                           | 3 +--
 glib/gkeyfile.h                           | 3 +--
 glib/glib-init.c                          | 4 +---
 glib/glib-init.h                          | 4 +---
 glib/glib-object.h                        | 4 +---
 glib/glib-private.c                       | 4 +---
 glib/glib-private.h                       | 4 +---
 glib/glib-unix.c                          | 4 +---
 glib/glib-unix.h                          | 4 +---
 glib/glib.h                               | 4 +---
 glib/glib_trace.h                         | 4 +---
 glib/glist.c                              | 4 +---
 glib/glist.h                              | 4 +---
 glib/gmacros.h                            | 4 +---
 glib/gmain-internal.h                     | 4 +---
 glib/gmain.c                              | 4 +---
 glib/gmain.h                              | 4 +---
 glib/gmappedfile.c                        | 4 +---
 glib/gmappedfile.h                        | 4 +---
 glib/gmarkup.c                            | 3 +--
 glib/gmarkup.h                            | 3 +--
 glib/gmem.c                               | 4 +---
 glib/gmem.h                               | 4 +---
 glib/gmessages.c                          | 4 +---
 glib/gmessages.h                          | 4 +---
 glib/gnode.c                              | 4 +---
 glib/gnode.h                              | 4 +---
 glib/gnulib/asnprintf.c                   | 4 +---
 glib/gnulib/g-gnulib.h                    | 4 +---
 glib/gnulib/printf-args.c                 | 4 +---
 glib/gnulib/printf-args.h                 | 4 +---
 glib/gnulib/printf-parse.c                | 4 +---
 glib/gnulib/printf-parse.h                | 4 +---
 glib/gnulib/printf.c                      | 4 +---
 glib/gnulib/printf.h                      | 4 +---
 glib/gnulib/vasnprintf.c                  | 4 +---
 glib/gnulib/vasnprintf.h                  | 4 +---
 glib/goption.c                            | 4 +---
 glib/goption.h                            | 4 +---
 glib/gpattern.c                           | 4 +---
 glib/gpattern.h                           | 4 +---
 glib/gpoll.c                              | 4 +---
 glib/gpoll.h                              | 4 +---
 glib/gprimes.c                            | 4 +---
 glib/gprimes.h                            | 4 +---
 glib/gprintf.c                            | 4 +---
 glib/gprintf.h                            | 4 +---
 glib/gprintfint.h                         | 4 +---
 glib/gqsort.c                             | 4 +---
 glib/gqsort.h                             | 4 +---
 glib/gquark.c                             | 3 +--
 glib/gquark.h                             | 4 +---
 glib/gqueue.c                             | 4 +---
 glib/gqueue.h                             | 4 +---
 glib/grand.c                              | 4 +---
 glib/grand.h                              | 4 +---
 glib/gscanner.c                           | 4 +---
 glib/gscanner.h                           | 4 +---
 glib/gsequence.c                          | 4 +---
 glib/gsequence.h                          | 4 +---
 glib/gslice.c                             | 4 +---
 glib/gslice.h                             | 4 +---
 glib/gslist.c                             | 4 +---
 glib/gslist.h                             | 4 +---
 glib/gstdio.c                             | 3 +--
 glib/gstdio.h                             | 3 +--
 glib/gstrfuncs.c                          | 4 +---
 glib/gstrfuncs.h                          | 4 +---
 glib/gstring.c                            | 4 +---
 glib/gstring.h                            | 4 +---
 glib/gstringchunk.c                       | 4 +---
 glib/gstringchunk.h                       | 4 +---
 glib/gtester-report                       | 4 +---
 glib/gtester.c                            | 4 +---
 glib/gtestutils.c                         | 4 +---
 glib/gtestutils.h                         | 4 +---
 glib/gthread-posix.c                      | 4 +---
 glib/gthread-win32.c                      | 4 +---
 glib/gthread.c                            | 4 +---
 glib/gthread.h                            | 4 +---
 glib/gthreadpool.c                        | 4 +---
 glib/gthreadpool.h                        | 4 +---
 glib/gthreadprivate.h                     | 3 +--
 glib/gtimer.c                             | 4 +---
 glib/gtimer.h                             | 4 +---
 glib/gtimezone.c                          | 4 +---
 glib/gtimezone.h                          | 4 +---
 glib/gtrashstack.c                        | 4 +---
 glib/gtrashstack.h                        | 4 +---
 glib/gtree.c                              | 4 +---
 glib/gtree.h                              | 4 +---
 glib/gtypes.h                             | 4 +---
 glib/gunibreak.c                          | 3 +--
 glib/gunicode.h                           | 3 +--
 glib/gunicodeprivate.h                    | 4 +---
 glib/gunicollate.c                        | 3 +--
 glib/gunidecomp.c                         | 3 +--
 glib/guniprop.c                           | 4 +---
 glib/gurifuncs.c                          | 4 +---
 glib/gurifuncs.h                          | 4 +---
 glib/gutf8.c                              | 4 +---
 glib/gutils.c                             | 4 +---
 glib/gutils.h                             | 4 +---
 glib/gvariant-core.c                      | 4 +---
 glib/gvariant-core.h                      | 4 +---
 glib/gvariant-internal.h                  | 4 +---
 glib/gvariant-parser.c                    | 4 +---
 glib/gvariant-serialiser.c                | 4 +---
 glib/gvariant-serialiser.h                | 4 +---
 glib/gvariant.c                           | 4 +---
 glib/gvariant.h                           | 4 +---
 glib/gvarianttype.c                       | 4 +---
 glib/gvarianttype.h                       | 4 +---
 glib/gvarianttypeinfo.c                   | 4 +---
 glib/gvarianttypeinfo.h                   | 4 +---
 glib/gversion.c                           | 4 +---
 glib/gversion.h                           | 4 +---
 glib/gversionmacros.h                     | 4 +---
 glib/gwakeup.c                            | 4 +---
 glib/gwakeup.h                            | 4 +---
 glib/gwin32.c                             | 4 +---
 glib/gwin32.h                             | 4 +---
 glib/libcharset/README                    | 4 +---
 glib/tests/array-test.c                   | 4 +---
 glib/tests/cache.c                        | 4 +---
 glib/tests/convert.c                      | 4 +---
 glib/tests/hash.c                         | 4 +---
 glib/tests/hostutils.c                    | 4 +---
 glib/tests/markups/valid-14.expected      | 3 +--
 glib/tests/markups/valid-14.gmarkup       | 3 +--
 glib/tests/node.c                         | 4 +---
 glib/tests/pattern.c                      | 4 +---
 glib/tests/regex.c                        | 4 +---
 glib/tests/scannerapi.c                   | 4 +---
 glib/tests/shell.c                        | 4 +---
 glib/tests/sort.c                         | 4 +---
 glib/tests/tree.c                         | 4 +---
 glib/tests/uri.c                          | 4 +---
 glib/tests/utf8-performance.c             | 4 +---
 glib/tests/utf8-pointer.c                 | 4 +---
 glib/tests/utf8-validate.c                | 4 +---
 gmodule/gmodule-ar.c                      | 4 +---
 gmodule/gmodule-dl.c                      | 4 +---
 gmodule/gmodule-dyld.c                    | 4 +---
 gmodule/gmodule-win32.c                   | 4 +---
 gmodule/gmodule.c                         | 4 +---
 gmodule/gmodule.h                         | 4 +---
 gmodule/gmoduleconf.h.in                  | 4 +---
 gmodule/gmoduleconf.h.win32               | 4 +---
 gobject/gatomicarray.c                    | 4 +---
 gobject/gatomicarray.h                    | 4 +---
 gobject/gbinding.c                        | 4 +---
 gobject/gbinding.h                        | 4 +---
 gobject/gboxed.c                          | 4 +---
 gobject/gboxed.h                          | 4 +---
 gobject/gclosure.c                        | 4 +---
 gobject/gclosure.h                        | 4 +---
 gobject/genums.c                          | 4 +---
 gobject/genums.h                          | 4 +---
 gobject/glib-genmarshal.c                 | 4 +---
 gobject/glib-types.h                      | 4 +---
 gobject/gobject-query.c                   | 4 +---
 gobject/gobject.c                         | 4 +---
 gobject/gobject.h                         | 4 +---
 gobject/gobject_trace.h                   | 4 +---
 gobject/gobjectnotifyqueue.c              | 4 +---
 gobject/gparam.c                          | 4 +---
 gobject/gparam.h                          | 4 +---
 gobject/gparamspecs.c                     | 4 +---
 gobject/gparamspecs.h                     | 4 +---
 gobject/gsignal.c                         | 4 +---
 gobject/gsignal.h                         | 4 +---
 gobject/gsourceclosure.c                  | 4 +---
 gobject/gsourceclosure.h                  | 4 +---
 gobject/gtype-private.h                   | 4 +---
 gobject/gtype.c                           | 4 +---
 gobject/gtype.h                           | 4 +---
 gobject/gtypemodule.c                     | 4 +---
 gobject/gtypemodule.h                     | 4 +---
 gobject/gtypeplugin.c                     | 4 +---
 gobject/gtypeplugin.h                     | 4 +---
 gobject/gvalue.c                          | 4 +---
 gobject/gvalue.h                          | 4 +---
 gobject/gvaluearray.c                     | 4 +---
 gobject/gvaluearray.h                     | 4 +---
 gobject/gvaluecollector.h                 | 4 +---
 gobject/gvaluetransform.c                 | 4 +---
 gobject/gvaluetypes.c                     | 4 +---
 gobject/gvaluetypes.h                     | 4 +---
 gobject/tests/ifaceproperties.c           | 4 +---
 gobject/tests/testcommon.h                | 4 +---
 gthread/gthread-impl.c                    | 4 +---
 po/po2tbl.sed.in                          | 3 +--
 tests/child-test.c                        | 4 +---
 tests/completion-test.c                   | 4 +---
 tests/dirname-test.c                      | 4 +---
 tests/env-test.c                          | 4 +---
 tests/file-test.c                         | 4 +---
 tests/gen-casefold-txt.pl                 | 4 +---
 tests/gen-casemap-txt.pl                  | 4 +---
 tests/gio-test.c                          | 4 +---
 tests/gobject/accumulator.c               | 4 +---
 tests/gobject/defaultiface.c              | 4 +---
 tests/gobject/deftype.c                   | 4 +---
 tests/gobject/dynamictype.c               | 4 +---
 tests/gobject/gvalue-test.c               | 4 +---
 tests/gobject/ifacecheck.c                | 4 +---
 tests/gobject/ifaceinherit.c              | 4 +---
 tests/gobject/ifaceinit.c                 | 4 +---
 tests/gobject/override.c                  | 4 +---
 tests/gobject/paramspec-test.c            | 4 +---
 tests/gobject/performance-threaded.c      | 4 +---
 tests/gobject/performance.c               | 4 +---
 tests/gobject/references.c                | 4 +---
 tests/gobject/signals.c                   | 4 +---
 tests/gobject/singleton.c                 | 4 +---
 tests/gobject/testcommon.h                | 4 +---
 tests/gobject/testgobject.c               | 4 +---
 tests/gobject/testmodule.c                | 4 +---
 tests/gobject/testmodule.h                | 4 +---
 tests/libmoduletestplugin_a.c             | 4 +---
 tests/libmoduletestplugin_b.c             | 4 +---
 tests/mapping-test.c                      | 4 +---
 tests/memchunks.c                         | 4 +---
 tests/module-test.c                       | 4 +---
 tests/relation-test.c                     | 4 +---
 tests/slice-color.c                       | 4 +---
 tests/slice-concurrent.c                  | 4 +---
 tests/slice-test.c                        | 4 +---
 tests/sources.c                           | 4 +---
 tests/spawn-test.c                        | 4 +---
 tests/testglib.c                          | 4 +---
 tests/type-test.c                         | 4 +---
 825 files changed, 825 insertions(+), 2444 deletions(-)

commit fc04275a007ff2b450d78cfa002a303ba5e2d9d0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 05:58:17 2014 -0500

    Docs: don't use the type tag

    Just avoid explicit docbook markup.

 gio/gcredentials.c       |  12 +--
 gio/ginetsocketaddress.c |   4 +-
 gio/gsocketaddress.c     |  38 ++++---
 gio/gunixsocketaddress.c |   2 +-
 glib/docs.c              |  46 ++++-----
 glib/gdate.c             |   2 +-
 glib/gstrfuncs.c         |  66 ++++++------
 glib/gutf8.c             | 259
 ++++++++++++++++++++++-------------------------
 8 files changed, 203 insertions(+), 226 deletions(-)

commit 3d42934b71f9e3e8ac82b00982a6e0b00ba1b92a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 31 00:29:14 2014 -0500

    Docs: don't use the structname tag

    Just avoid explicit docbook markup.

 gio/gapplicationcommandline.c |  4 +--
 glib/garray.c                 |  6 ++--
 glib/gdate.c                  | 50 +++++++++++++-------------
 glib/ghook.c                  |  6 ++--
 glib/gpattern.c               |  7 ++--
 glib/grand.c                  |  5 ++-
 glib/gstdio.c                 | 83
 +++++++++++++++++++++----------------------
 glib/gtrashstack.c            |  2 +-
 glib/gtree.c                  |  7 ++--
 gmodule/gmodule.c             |  2 +-
 gobject/gtype.c               |  7 ++--
 11 files changed, 86 insertions(+), 93 deletions(-)

commit 6f3c465535311a028c12cc04d4188ce79eb03560
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 30 23:59:06 2014 -0500

    Docs: don't use structfield tags

    They don't add anything over @foo, and we want to avoid explicit
    docbook markup as far as possible.

 glib/docs.c     | 4 ++--
 gobject/gtype.c | 6 ++----
 2 files changed, 4 insertions(+), 6 deletions(-)

commit acfb76afe2c7dab67f87878c2a3f5f3aa2d8dbfd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 30 23:52:58 2014 -0500

    Docs: don't use <footnote>

    It basically does not work in the HTML output.

 gio/gdbusconnection.c | 12 ++++--------
 glib/gdate.c          | 10 +++++-----
 glib/gslice.c         |  7 +++----
 gobject/gsignal.c     | 10 ++++------
 4 files changed, 16 insertions(+), 23 deletions(-)

commit 67b0afd5fd21aae4041e897ff3151b84f3c85a65
Author: Shantha kumar <shkumar@redhat.com>
Date:   Thu Jan 30 15:03:08 2014 +0530

    Tamil Translations Updated

 po/ta.po | 1236
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 650 insertions(+), 586 deletions(-)

commit 8548d16add2ed4b208aca062c230aeeca9103d0a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 25 18:18:42 2014 -0500

    Drop a no-longer-existing example from the docs

    gapplication-example-menu.c was dropped in
    0c094d660769a00564ef33a775a387f62cf2ff41, two years ago.
    Time to remove its inclusion in the docs too.

    https://bugzilla.gnome.org/show_bug.cgi?id=722973

 gio/gapplication.c | 8 --------
 1 file changed, 8 deletions(-)

commit ee38a1af8020a83174277d83f5b10efe0e498fc1
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Thu Jan 23 17:22:19 2014 +0100

    gobject: Add missing transfer annotation to g_boxed_copy

 gobject/gboxed.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 46e13e5d49fa1f64920d088e1e6bbd9fee4c1886
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Thu Jan 23 17:21:32 2014 +0100

    gio: Add missing transfer annotation to g_simple_proxy_resolver_new

 gio/gsimpleproxyresolver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c5e989c6d8d13542fcdd47905e98c980d7d7603d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Jan 23 17:32:50 2014 +0800

    glib/goption.c: Fix build on MSVC

    Use #ifdef rather than #if, as MSVC does not like #if <macro> without
    parens, and this is the normal usage in other cases like this.

 glib/goption.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1c8035066ea2ce92f5c7c7d8f8715896012fdb02
Author: William Jon McCann <william.jon.mccann@gmail.com>
Date:   Wed Jan 22 17:51:12 2014 -0500

    glib: annotate some memory functions with allow-none

 glib/gmem.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f37439c1b11230a01460291818eccb6bfec23da6
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Wed Jan 22 22:25:26 2014 +0530

    Assamese translation updated

 po/as.po | 993
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 489 insertions(+), 504 deletions(-)

commit 5ca9bee52456b91ab4c0c477db3faf430f7fb72f
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Wed Jan 22 14:21:41 2014 +0100

    gio: Fix some header/source parameter-naming mismatches

 gio/gaction.h         | 2 +-
 gio/gfile.h           | 2 +-
 gio/gsettingsschema.h | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

commit cd86c0243c6ca24e3968e8a3ea1d0c8af8c1a690
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Wed Jan 22 14:06:10 2014 +0100

    gsubprocess: Add missing transfer annotations to get_*_pipe()

 gio/gsubprocess.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 829464a3c7b3054ba4d73a9b217a6db466dabc88
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 18 14:29:16 2014 -0500

    test default GSimpleAction activation

    Test the default handling of the "activate" signal on GSimpleAction.

    https://bugzilla.gnome.org/show_bug.cgi?id=722503

 gio/tests/actions.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit a497ad889e98d261ad5f4bf31c0bfb728e12270d
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Jan 21 12:08:03 2014 -0500

    strfuncs: Make g_str_tokenize_and_fold introspectable

 glib/gstrfuncs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ea22300620a10affaa3192d8f56c777a81fcd2c6
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Jan 21 12:00:35 2014 -0500

    gsettings: Fix annotations

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 460e3e9d01db5ad272b8b67e1e3e15907d5d7932
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Jan 20 20:03:40 2014 +0000

    docs: Add missing GTest functions

    The GTest message API is missing from the reference.

 docs/reference/glib/glib-sections.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 2cb9b8f99491959e53783d127daa8c99b81e159e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jan 7 13:34:09 2014 +0800

    glib/gtimezone.c: Check the size of tzi.DaylightName

    We need to re-get the size of tzi.DaylightName before we call
    RegQueryValue() because the buffer might not have enough room to
    hold the
    value for tzi.DaylightName that would be acquired by
    RegQueryValueExA(),
    even though the size of tzi.DaylightName and tzi.StandardName is
    the same.

    This is a pitfall of RegQueryValue()[1] as not doing this can result
    in an
    ERROR_MORE_DATA (234) failure, causing the acquisition of
    tzi.DaylightName
    to fail.

    This will fix the gdatetime/equal test, amongst some other tests in
    gdatetime, at least on certain non-English version of Windows.

    [1]:
    http://social.msdn.microsoft.com/Forums/vstudio/en-US/84f90854-e90c-4b63-8fc1-655a0b4645fd/regqueryvalueex-returns-errormoredata

    https://bugzilla.gnome.org/show_bug.cgi?id=719344

 glib/gtimezone.c | 3 +++
 1 file changed, 3 insertions(+)

commit 2330f7e65ee22e42016d28c26f554fcfe9518ed5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 20 08:43:02 2014 -0500

    Use __asm__ instead of asm

    This is a little more robust as various compiler flags make
    gcc forget about asm.

    https://bugzilla.gnome.org/show_bug.cgi?id=693299

 glib/gbitlock.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit ff9a61eed93ec342c00360e83abb4411647f64a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 20 08:16:09 2014 -0500

    Fix CFLAGS manipulation

    The code for ensuring that CFLAGS contain -g if
    --enable-debug has been specified did not work right.

    https://bugzilla.gnome.org/show_bug.cgi?id=685204

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fc6d6b6e109af2d7c3339b3c64963c6679db1a6e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 20 07:37:42 2014 -0500

    GAction: remove a lie

    Not only was the link to GtkAction broken, it is not true.

    https://bugzilla.gnome.org/show_bug.cgi?id=722591

 gio/gaction.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 93cda800f1dab6ecbecb4ac247b8c079ff7fca14
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 20 07:33:27 2014 -0500

    Try again to fix the freebsd build

    https://bugzilla.gnome.org/show_bug.cgi?id=722526

 glib/deprecated/gthread.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2efc2ef77526fb902f1d603875eaca833b47f0b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 20 00:34:29 2014 -0500

    Clarify g_strchomp and g_strchug docs

    https://bugzilla.gnome.org/show_bug.cgi?id=583036

 glib/gstrfuncs.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit deb8a9325b2f3c82f92746583baa7bd2a6552bd1
Author: A. Walton <awalton@gnome.org>
Date:   Thu Aug 29 23:33:58 2013 -0700

    Clarify type transformability and comparability

    If two GValues are transformable, it implies they are compatible,
    so you do not need to check for compatibility yourself. Bump the
    documentation to reflect this fact.

    https://bugzilla.gnome.org/show_bug.cgi?id=707111

 gobject/gvalue.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 647412603a6f888bf9ed6b56a6827fa36d421584
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 19 23:49:12 2014 -0500

    More GTree and GNode formatting and documentation fixes

    Among other things, add images for tree traversal types,
    taken from Wikimedia Commons.

 docs/reference/glib/Makefile.am                    |  14 +-
 .../Sorted_binary_tree_breadth-first_traversal.svg | 134 ++++
 docs/reference/glib/Sorted_binary_tree_inorder.svg | 753
 +++++++++++++++++++++
 .../glib/Sorted_binary_tree_postorder.svg          | 750
 ++++++++++++++++++++
 .../reference/glib/Sorted_binary_tree_preorder.svg | 750
 ++++++++++++++++++++
 glib/gnode.c                                       |  53 ++
 glib/gtree.c                                       | 593 ++++++++--------
 7 files changed, 2741 insertions(+), 306 deletions(-)

commit 5459d148d17a82632ad3317f8d4a9977b31cd09c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 19 22:23:51 2014 -0500

    Move GTraverseType to gnode docs

 docs/reference/glib/glib-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 44db9f2a0fc008b38da78e7197fd3f40b8fa0872
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 19 22:03:40 2014 -0500

    GQueue: documentation and formatting fixes

 glib/gqueue.c | 315
 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 158 insertions(+), 157 deletions(-)

commit a918519328df2e79c101a884ec94fe6aca574882
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 19 21:10:25 2014 -0500

    GList: Some further documentation and formatting tweaks

 glib/glist.c | 459
 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 235 insertions(+), 224 deletions(-)

commit 86de6f0ebce777f64f60f27565fdd4b91c6fe8b4
Author: Olivier Sessink <olivier@bluefish.openoffice.nl>
Date:   Wed Sep 5 09:52:23 2012 +0200

    tag: documentation enhancement for novice application developers

    Adds some code examples how functions can be used. Adds a hint
    to look at GQueue if access to the start and the end of the list
    is required.

    applying comments from Emmanuele Bassi and adds some more
    improvements to clarify how functions should be used.

    https://bugzilla.gnome.org/show_bug.cgi?id=683388

 glib/glist.c | 164
 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 113 insertions(+), 51 deletions(-)

commit 84f3147f434eab1124276ea2fdbee9a1e9a02c45
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 16 12:53:39 2012 +0000

    glib-init: make static assertions about platform assumptions

    GLib has a pervasive assumption that function and data pointers are
    basically interchangeable, which is true in all modern ABIs,
    but not actually guaranteed by ISO C. If someone tries to use GLib
    on a
    platform where function and data pointers are different sizes,
    fail early.

    https://bugzilla.gnome.org/show_bug.cgi?id=688406

 glib/glib-init.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit a4480d5f715a7631b1e98daa08a447f7c6b4bcd1
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 16 12:51:31 2012 +0000

    GHashTable: statically assert that GHashTableIter works as intended

    https://bugzilla.gnome.org/show_bug.cgi?id=688406

 glib/ghash.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 476aa9ae46098f1090fc52ab2c10859fa8bb5495
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 16 12:49:15 2012 +0000

    glib-private.h: add _glib_alignof

 glib/glib-private.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 8f6be404cbfbda7e188bd164bb72465eeaba6980
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 25 01:47:37 2013 -0400

    GMainContext: unref pending sources on destroy

    It is possible (but unlikely) that there will be a non-empty list of
    pending dispatches when we remove the last ref from a GMainContext.
    Make sure we drop the refs on the sources appropriately.

    Add a (now-working) testcase that demonstrates how to trigger
    the issue.

    https://bugzilla.gnome.org/show_bug.cgi?id=139699

 glib/gmain.c          |  5 +++++
 glib/tests/mainloop.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

commit 2a3ee7ceafad19ecc2bfe435a95226f74d64952f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 19 17:13:51 2014 -0500

    Work around broken FreeBSD headers

    It seems that including just pthread.h does not define
    clockid_t on these systems.

    https://bugzilla.gnome.org/show_bug.cgi?id=722526

 glib/deprecated/gthread.h | 1 +
 1 file changed, 1 insertion(+)

commit d102cf2b0fbab27d5787c536311745c4431d05e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 19 08:57:43 2014 -0500

    Fix the build

    The thumbnail-verification test (indirectly) includes individual
    headers, so define GIO_COMPILATION to make it work.

 gio/tests/thumbnail-verification.c | 1 +
 1 file changed, 1 insertion(+)

commit 38a6ab3e0ef0c842f9134309e033a1019e498448
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Nov 6 14:02:26 2013 +0100

    win32: silence build warning

    glocalfile.c: In function 'g_local_file_measure_size_of_file':
    glocalfile.c:2654:3: warning: passing argument 2 of 'g_lstat' from
    incompatible pointer type [enabled by default]
       if (g_lstat (name->data, &buf) != 0)
       ^
    In file included from glocalfile.c:68:0:
    ../glib/gstdio.h:135:5: note: expected 'struct GStatBuf *' but
    argument
    is of type 'struct _stati64 *'

    https://bugzilla.gnome.org/show_bug.cgi?id=711547

 gio/glocalfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a8f58fcfec121241be7890f5b340e139f39fd125
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Nov 6 13:57:07 2013 +0100

    win32: silence build warning

    gdbusauthmechanismexternal.c: In function 'mechanism_client_initiate':
    gdbusauthmechanismexternal.c:355:3: warning: 'initial_response' may be
    used uninitialized in this function [-Wmaybe-uninitialized]
       return initial_response;
       ^
    gdbusauthmechanismexternal.c:332:10: note: 'initial_response' was
    declared here

    https://bugzilla.gnome.org/show_bug.cgi?id=711547

 gio/gdbusauthmechanismexternal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2873b3c20cf6b6ebde5bcaaf395675ba7bc3b696
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Nov 6 13:54:34 2013 +0100

    win32: silence build warning

    glocalfileinfo.c: In function '_g_local_file_info_get':
    glocalfileinfo.c:1955:11: warning: passing argument 3 of
    'get_thumbnail_attributes' from incompatible pointer type [enabled by
    default]
               get_thumbnail_attributes (path, info, &statbuf);
               ^
    glocalfileinfo.c:1285:1: note: expected 'const struct GStatBuf *' but
    argument is of type 'struct _stati64 *'
     get_thumbnail_attributes (const char     *path,

    https://bugzilla.gnome.org/show_bug.cgi?id=711547

 gio/glocalfileinfo.c   | 2 +-
 gio/thumbnail-verify.c | 2 +-
 gio/thumbnail-verify.h | 3 ++-
 3 files changed, 4 insertions(+), 3 deletions(-)

commit b4474c0b6bd8aee7140259c9753162b66c954a03
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 19 08:21:50 2014 -0500

    Avoid a deprecation warning

    https://bugzilla.gnome.org/show_bug.cgi?id=711547

 glib/gwin32.c | 2 ++
 1 file changed, 2 insertions(+)

commit 7463bc1727cf805b84738902be0d3e51688aeead
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Fri Jan 17 18:42:36 2014 +0100

    Adjust doc to Makefile.decl renaming

    g_test_build_filename() API documentation still mentions
    Makefile.decl, but
    it has been renamed to glib.mk in f9eb9eed

    https://bugzilla.gnome.org/show_bug.cgi?id=722436

 glib/gtestutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9e81c07ad6b02c073c9cc7bf0a1288b884ec8741
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 18 14:27:26 2014 -0500

    GSimpleAction: fix mistake in last commit

    Some bad copy-paste happening here...

 gio/gsimpleaction.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1ec71144fb8064ffdbdcb56a213cf90a77726f68
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 18 13:02:47 2014 -0500

    GSimpleAction: add default activate handler

    If the action is stateful and the user doesn't have their own
    activate handler
    then do some reasonable things for ourselves.

    After a lot of experience using stateful GSimpleAction it turns
    out that
    people almost always end up using it in the same ways:

    A boolean-typed stateful action with no parameter is most likely going
    to want to be toggled.  Any other type of action that has the
    parameter
    type equal to the state type probably intends for activation to
    represent a request to change the state.

    This patch implements those two cases.  This will let people stop
    writing their own trivial handlers over and over.

    https://bugzilla.gnome.org/show_bug.cgi?id=722503

 gio/gsimpleaction.c | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

commit 258ac3b25398547c9ae0434c7c049a88d1e309ed
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 12 12:47:43 2014 -0500

    GOptionContext: add some notes about encodings

    Add a note to the overview documentation for GOptionContext about why
    you need to be careful about argv encoding on UNIX and about why you
    should avoid argv entirely on Windows.  Mention some possible
    alternative approaches, including a code example.

    https://bugzilla.gnome.org/show_bug.cgi?id=722025

 glib/goption.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

commit e5f91951a132b4a7daa848887a87ba22f96568bc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 12 12:31:38 2014 -0500

    GApplication: change commandline encoding policy

    Clarify in the documentation that the commandline arguments passed
    around by GApplication (to local_command_line and returned via
    g_application_command_line_get_arguments()) are in the GLib filename
    encoding (ie: UTF-8) on Windows, not the system code page.

    Fix the mismatch that would result from having argv passed to
    g_application_run() in main() on Windows (where it is in the system
    code page) by ignoring argc/argv on Windows and calling
    g_win32_get_command_line() for ourselves.  Document this.

    This might be a slight API break on Windows: we documented that it was
    possible to call g_application_run() with arguments other than
    argc/argv
    and now doing that will result in those arguments being ignored.
    It has
    always been recommended practice to only call g_application_run() from
    main() directly, however, and all of our code examples have shown only
    this.  We will see if this causes any issues and consider reevaluating
    the situation if so.

    https://bugzilla.gnome.org/show_bug.cgi?id=722025

 gio/gapplication.c            | 32 +++++++++++++++++++++-----------
 gio/gapplicationcommandline.c |  7 ++++++-
 2 files changed, 27 insertions(+), 12 deletions(-)

commit 643f2b348dea7486ef2eaa4f8e4eb858bce5f3e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 16 22:11:18 2014 -0500

    g_file_new_for_commandline_arg: clarify encoding

    Add a note to the documentation for g_file_new_for_commandline_arg()
    that this function is intended to operate on strings already in
    the GLib
    filename encoding on Windows.

    This has been the case for a long time, but this documents the
    requirement.

    https://bugzilla.gnome.org/show_bug.cgi?id=722025

 gio/gfile.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 673ee54cddab81cf4456b1c2ecf7a668e97e5a0f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 12 12:13:42 2014 -0500

    win32: add g_win32_get_command_line()

    This returns the command line in GLib filename encoding format (ie:
    UTF-8) for use with g_option_context_parse_strv().

    This will allow parsing of Unicode commandline arguments on Windows,
    even if the characters in those arguments fall outside of the range of
    the system codepage.

    https://bugzilla.gnome.org/show_bug.cgi?id=722025

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gwin32.c                         | 55
 +++++++++++++++++++++++++++++++++++
 glib/gwin32.h                         |  3 ++
 3 files changed, 59 insertions(+)

commit 3352293ab5b93d8607dc61a99195ea09aa7bf423
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 12 12:10:19 2014 -0500

    g_option_context_parse_strv: use UTF-8 on Windows

    Add another difference to the freshly-added
    g_option_context_parse_strv:
    now, on Windows, its arguments on to be in UTF-8 instead of the argv[]
    encoding (from the system codepage).

    The documentation teases g_win32_get_command_line() which is a new
    GLib-filename-encoding-based function that will be added in a
    following
    commit.

    https://bugzilla.gnome.org/show_bug.cgi?id=722025

 glib/goption.c | 37 +++++++++++++++++++++++++++++++++----
 1 file changed, 33 insertions(+), 4 deletions(-)

commit 9592d40613ad02085fb7643cac96df655081dd3b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 16 21:47:09 2014 -0500

    GOption: don't use "rand" in code example

    rand() is a function defined in the libc, so our code example gives
    warnings if you try to compile it.  Fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=722025

 glib/goption.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d3c729bf0e3320046f309ce64b4ff0189563fe89
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Thu Jan 16 18:02:18 2014 +0100

    gio: fix small memory leak on local xattr

    g_strconcat() allocates memory, it needs to be freed.

    ==10653== 1,400 bytes in 50 blocks are definitely lost in loss record
    1,838 of 1,851
    ==10653==    at 0x4A0645D: malloc (in
    /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==10653==    by 0x54ACB22: g_malloc (gmem.c:102)
    ==10653==    by 0x54ACE4D: g_malloc_n (gmem.c:343)
    ==10653==    by 0x54C8463: g_strconcat (gstrfuncs.c:589)
    ==10653==    by 0x4D6ED38: get_xattrs_from_fd (glocalfileinfo.c:660)
    ==10653==    by 0x4D71622:
    _g_local_file_info_get_from_fd (glocalfileinfo.c:2028)
    ==10653==    by 0x4D731A0:
    g_local_file_input_stream_query_info (glocalfileinputstream.c:356)
    ==10653==    by 0x4C996D8:
    g_file_input_stream_query_info (gfileinputstream.c:148)
    ==10653==    by 0x4C863F6: file_copy_fallback (gfile.c:3120)
    ==10653==    by 0x4C86DD2: g_file_copy (gfile.c:3398)

    https://bugzilla.gnome.org/show_bug.cgi?id=722357

 gio/glocalfileinfo.c | 1 +
 1 file changed, 1 insertion(+)

commit fabdf80c7de57e531fba70052a89ed19d3c24e91
Author: Christian Schramm <christian.h.m.schramm@gmail.com>
Date:   Thu Jan 16 12:36:09 2014 +0100

    gstringchunk: Use g_slist_free_full() where possible

    We have that function, let's use it - instead of manually
    freeing the elements of the slist in a loop (and reduce
    the line count a bit).

    https://bugzilla.gnome.org/show_bug.cgi?id=722326

 glib/gstringchunk.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

commit 5c5982709f3814c16a6a4d60030b65955926367b
Author: Christian Schramm <christian.h.m.schramm@gmail.com>
Date:   Thu Jan 16 12:14:32 2014 +0100

    gbookmarkfile: removed unused include 'gslist.h'

    https://bugzilla.gnome.org/show_bug.cgi?id=722323

 glib/gbookmarkfile.c | 1 -
 1 file changed, 1 deletion(-)

commit c4934c93589420b6c024f893ddb7cafc75279d40
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Jan 15 10:37:55 2014 -0500

    Update .gitignore

 gio/tests/.gitignore  | 8 +++++++-
 glib/tests/.gitignore | 3 +++
 2 files changed, 10 insertions(+), 1 deletion(-)

commit e41dab438cb9b0b9dcc815158da12dd391aa35ed
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 13 16:12:41 2014 -0500

    GLib 2.39.3

 NEWS | 85
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

commit bcd276c2b453517c43c8413ed877f82a9ead1884
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 13 17:23:14 2014 -0500

    more distcheck fixes

 gio/tests/Makefile.am  | 4 +++-
 glib/tests/Makefile.am | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 028856a99fd8ce7dc6a1318a6b57cdbbefbc6bdc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 13 16:41:31 2014 -0500

    build: fix 'make distclean'

    Don't run a non-existent lcov command to clean up during 'make
    distclean'

 glib.mk | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4130118a72c1389efe7c646b620932bb33a06530
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 13 16:12:31 2014 -0500

    giomodule test: fix again

    The compiled modules will be in the G_TEST_BUILT directory, not _DIST.

 gio/tests/giomodule.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 186965fc9b9105fbaaffec2300a36175f160b1db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 13 15:31:38 2014 -0500

    giomodule test: force shared library build

    http://lists.gnu.org/archive/html/bug-libtool/2013-05/msg00009.html
    hit
    us again.  libtool only builds .so files if we install the library, so
    force it to build for our testcase, even if we don't install it.

 gio/tests/modules/Makefile.am | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 60cca82c9da99c9dc6b0622d5b0779fd0bdc2ad2
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Mon Jan 13 12:33:35 2014 +0100

    gdesktopinfo: Fix typo in "Since" annotation of has_key

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fb087feb4ddb643b8ade424cdbe5e301a3899ba8
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Mon Jan 13 10:25:01 2014 +0200

    Updated Greek translation

 po/el.po | 1034
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 498 insertions(+), 536 deletions(-)

commit 3d8ec7a7db9d897b01b32d6ff0cb1fbc313643b1
Author: Yosef Or Boczko <yoseforb@gmail.com>
Date:   Mon Jan 13 08:59:04 2014 +0200

    Updated Hebrew translation

 po/he.po | 1458
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 827 insertions(+), 631 deletions(-)

commit d751e65aff6df64318ab2d95b3098dd155a1e0aa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 10 12:28:14 2014 -0500

    tests: fix leaks in option-context test

    Use the new g_option_context_parse_strv() to patch up some leaks
    in some
    insufficiently-argv-emulating testcases in option-context.c.

    This gives some test coverage of the new function while also making
    option-context now leak-free.

    https://bugzilla.gnome.org/show_bug.cgi?id=721947

 glib/tests/option-context.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f062fae4d6d705736c2b1b899c4413b99d4cfc96
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 10 12:16:24 2014 -0500

    GOptionContext: add memory-friendly parse mode

    Add g_option_context_parse_strv() that obeys the normal memory
    conventions for
    dealing with a strv instead of assuming that we're dealing with the
    'argv'
    parameter to main().

    This will help for using GOptionContext with GApplication.

    https://bugzilla.gnome.org/show_bug.cgi?id=721947

 docs/reference/glib/glib-sections.txt |  1 +
 glib/goption.c                        | 43
 +++++++++++++++++++++++++++++++++++
 glib/goption.h                        |  4 ++++
 3 files changed, 48 insertions(+)

commit d3017967d8123e800fd593e22fda1c0d7f40071f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 10 11:17:44 2014 -0500

    GApplication: allow handles_commandline and service

    The default local_command_line handler has a fast return path for the
    case that we handle the commandline by forwarding it to the primary
    instance, but this doesn't account for the fact that we may want to
    become a service.

    Allow for this by making sure we don't take the fast path of the
    service
    flag is set.

 gio/gapplication.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit e8b7dd32fcfb4be82d3d78561fc36fbc560f3394
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 12:27:20 2013 -0400

    GApplication: add --gapplication-service switch

    Add a --gapplication-service switch to the default implementation of
    local_command_line.  This name is unlikely to clash with any
    option used
    by an existing application.

    When a normal application (neither service nor launcher) is launched
    with
    exactly this one argument, G_APPLICATION_IS_SERVICE will be set.

    The idea is that people will write their D-Bus service file with
    --gapplication-service on the Exec line.  This provides a nice
    compromise for people who want the benefits of DBusActivatable
    applications but without losing the ability to easily run them
    directly
    (under the debugger or inside jhbuild, etc.)

    https://bugzilla.gnome.org/show_bug.cgi?id=710965

 gio/gapplication.c | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

commit 8bc63b0ef03ee431eeaaf12191cb2cf983ee7de2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 8 11:01:55 2014 -0500

    gdbus-introspection test: test escaping attributes

    Make sure attribute values are properly escaped in generated XML.

    https://bugzilla.gnome.org/show_bug.cgi?id=721796

 gio/tests/gdbus-introspection.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 04ee78248631e4ae2dc9b7088fee60c57515d3d1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 8 10:56:57 2014 -0500

    gdbus: properly escape introspection annotations

    Make sure we escape any special characters that are found in
    annotation
    names or values to avoid emitting a malformed XML document in response
    to an Introspect call.

    https://bugzilla.gnome.org/show_bug.cgi?id=721796

 gio/gdbusintrospection.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 38720494452aa336eb2f168ac4bd2add138c400e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 7 22:55:43 2014 -0500

    Add includes to all gio docs

 gio/gaction.c                 | 1 +
 gio/gactiongroup.c            | 1 +
 gio/gactiongroupexporter.c    | 1 +
 gio/gactionmap.c              | 1 +
 gio/gapplication.c            | 1 +
 gio/gapplicationcommandline.c | 1 +
 gio/gdbusactiongroup.c        | 1 +
 gio/gdbusmenumodel.c          | 1 +
 gio/ginetaddress.c            | 1 +
 gio/ginetaddressmask.c        | 1 +
 gio/ginetsocketaddress.c      | 1 +
 gio/gmenu.c                   | 1 +
 gio/gmenuexporter.c           | 1 +
 gio/gmenumodel.c              | 1 +
 gio/gnotification.c           | 1 +
 gio/gpermission.c             | 5 +++--
 gio/gpropertyaction.c         | 1 +
 gio/gproxy.c                  | 1 +
 gio/gproxyaddress.c           | 1 +
 gio/gremoteactiongroup.c      | 1 +
 gio/gsettings.c               | 1 +
 gio/gsettingsschema.c         | 5 +++--
 gio/gsimpleaction.c           | 1 +
 gio/gsimpleactiongroup.c      | 1 +
 gio/gsimplepermission.c       | 1 +
 gio/gsocketaddress.c          | 5 +++--
 gio/gsocketconnectable.c      | 1 +
 gio/gsocketcontrolmessage.c   | 1 +
 gio/gsocketlistener.c         | 1 +
 gio/gsocketservice.c          | 1 +
 gio/gsubprocess.c             | 1 +
 gio/gsubprocesslauncher.c     | 1 +
 gio/gtask.c                   | 3 ++-
 gio/gtcpconnection.c          | 1 +
 gio/gtcpwrapperconnection.c   | 4 +++-
 gio/gthreadedsocketservice.c  | 1 +
 gio/gtlscertificate.c         | 1 +
 37 files changed, 46 insertions(+), 8 deletions(-)

commit 86497649bbe2c39c61ec34810017af6dc45eaa0c
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jan 7 11:18:54 2014 -0500

    Document g_test_run() order better, and how it changed

    But also note that the ordering is strictly an aesthetic/convenience
    thing, and that tests should not be written to depend on it.

    https://bugzilla.gnome.org/show_bug.cgi?id=721624

 README.in         | 18 ++++++++++++++++++
 glib/gtestutils.c | 26 +++++++++++++++++++++++++-
 2 files changed, 43 insertions(+), 1 deletion(-)

commit 0e109fceab05f094baabc10d795c4f489584840c
Author: Claudio Saavedra <csaavedra@igalia.com>
Date:   Tue Jan 7 11:33:14 2014 +0200

    glib/tests: fix build

 glib/tests/keyfile.c | 1 +
 1 file changed, 1 insertion(+)

commit 6bd30a4cb90c406edfd141016e08b36804b98103
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 6 10:05:48 2014 +0800

    glib/tests/keyfile.c: Use g_close()

    Use g_close() instead, as close() is really found in io.h on
    Windows, not
    unistd.h as on Unix, and hence unistd.h is not universally available.

    https://bugzilla.gnome.org/show_bug.cgi?id=719344

 glib/tests/keyfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 8bb81e7024db1f3e88cde20459ed62981cf372af
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Jan 4 10:52:15 2014 +0800

    glib/tests/date.c: Fix the tests on non-English Windows

    The names of the month (and abbreviations) are specific to the Windows
    system locale, so we need to use SetThreadLocale() to set the
    locale of
    the running program to en-US so that it will parse "March" and
    "Sept" etc.
    correctly.

    https://bugzilla.gnome.org/show_bug.cgi?id=719344

 glib/tests/date.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 210f96dfcfec94946ce28e910a5ca2db78335885
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 6 13:58:41 2014 -0500

    Fix one-character typo in old NEWS entry

    Change a very confusing typo "will not" -> "will now" about the
    g_critical() on removing non-existent sources.

    https://bugzilla.gnome.org/show_bug.cgi?id=721625

 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eb7ef594defc1b70acb4750a9d785cb42d1057be
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 6 12:31:18 2014 +0800

    Fix GLib MSVC Project

    The glib/gthread-win32.c was accidently removed from the last
    commit, sorry

 build/win32/vs10/glib.vcxprojin | 1 +
 build/win32/vs9/glib.vcprojin   | 1 +
 2 files changed, 2 insertions(+)

commit 940b3c225030494913b2801b05885ae32bb957ac
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 6 12:21:46 2014 +0800

    Tidy Up the glib MSVC Project

    Move the per-source define/undefine cflags into the property sheets,
    and
    apply the cflags for the bundled PCRE sources to the PCRE sources only

 build/win32/vs10/glib-build-defines.props  |  10 +-
 build/win32/vs10/glib.vcxprojin            | 231
 +++++++++++++++++++----------
 build/win32/vs9/glib-build-defines.vsprops |  10 +-
 build/win32/vs9/glib.vcprojin              | 161 ++++++++++----------
 4 files changed, 247 insertions(+), 165 deletions(-)

commit 16c41f0c36e20d63db28bc0938d28bd9e40bf1e4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jan 6 11:22:39 2014 +0800

    Drop the testglib MSVC Projects

    There are many test programs that are shipped with GLib, and this
    project
    is a one-to-one project, which does not make sense to keep as
    various test
    programs may have different CFLAGS, etc, which will require different
    build
    options.

 build/win32/vs10/Makefile.am              |   2 -
 build/win32/vs10/glib.sln                 |  18 ----
 build/win32/vs10/testglib.vcxproj         | 173
 ------------------------------
 build/win32/vs10/testglib.vcxproj.filters |  22 ----
 build/win32/vs11/.gitignore               |   2 -
 build/win32/vs11/Makefile.am              |   2 -
 build/win32/vs9/Makefile.am               |   1 -
 build/win32/vs9/glib.sln                  |  21 ----
 build/win32/vs9/testglib.vcproj           | 158
 ---------------------------
 9 files changed, 399 deletions(-)

commit 71c9ea42f81efef48e58bcd9223fe11b63ab8489
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 4 21:09:18 2014 -0500

    Use tap mode for installed tests too, when using tap

 glib-tap.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b3253fe02521969d4f4299136ae34a7e147adc2a
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Sat Jan 4 22:04:20 2014 +0100

    glib/tests: Fix non-debug build of slice test

    In addition to e013cf9cad56e919af2f057eb52d58371483a6f8

 glib/tests/slice.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 33f81cc509198e65f76a506340eb9863ca7120ce
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Sat Jan 4 01:40:24 2014 -0500

    tests/keyfile: Fix build

 glib/tests/keyfile.c | 2 ++
 1 file changed, 2 insertions(+)

commit 589aed9383c6008d71ae5fe12356ffdd944802f0
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Jan 3 23:48:04 2014 +0800

    gio/tests/giomodule.c: Use G_MODULE_SUFFIX

    The file extension of the GIO module could be something other
    than .so,
    depending on platform.  Use G_MODULE_SUFFIX so that the test will run
    correctly on non-*nix platforms, such as Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=719344

 gio/tests/giomodule.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3fd6edab66244b100c32dc0a8b0720fe61431dcc
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Dec 17 10:58:15 2013 +0800

    Fix the Keyfile Test on Windows

    Windows will not allow one to write to a temp file opened by
    g_mkstemp()
    by opening another fd associated with it before one closes the fd that
    is returned by g_mkstemp(), which will cause the test_save test
    to fail.

    Fix this by using a variable to store the fd from g_mkstemp()
    and checking
    it, and call close() on that variable before attempting to call
    g_key_file_save_to_file() on the temp file as that will attempt
    to open
    another fd (which would not work) associated with that temp file.

    https://bugzilla.gnome.org/show_bug.cgi?id=719344

 glib/tests/keyfile.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 6448f875529bb6c79f64550b62c3e294c3a6efa5
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Jan 2 19:40:47 2014 -0600

    docs: fix two typos

 docs/reference/gobject/tut_tools.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1867fc210fa14d68d1b139a04c5d79a0e344c6bc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 2 16:43:13 2014 -0500

    unix signals: stop using atomics

    They are not required here.  See the discussion in the bug report.

    https://bugzilla.gnome.org/show_bug.cgi?id=711090

 glib/gmain.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit 23ec1b9aca13d862e30be69e642d7022f7760fcb
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Thu Jan 2 22:08:14 2014 -0200

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 1022
 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 522 insertions(+), 500 deletions(-)

commit 2b289cc5659276f570e9862ab8fd9d3733b88c22
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 2 13:25:41 2014 -0500

    Fix make install with --disable-installed-tests

    If installed tests are not enabled, installed_testdir is not
    defined, so we end up trying to create /modules and to chmod
    things in /x-content/, which is not right.

 gio/tests/Makefile.am         |  2 ++
 gio/tests/modules/Makefile.am | 21 ++++++++++++++++-----
 2 files changed, 18 insertions(+), 5 deletions(-)

commit c09cfc1c8a218a320faa7f624e6ac3194fcd8049
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 2 12:54:12 2014 -0500

    GFile: fix uninitialised variable

    clang cause the fact that some of our 'goto out;' cases cause use
    to try
    and free an uninitialised GString.  Fix that up.

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 51b3dd73329ddabfd4fd72c23fa220ee948a854f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 2 01:38:07 2014 -0500

    GDBusConnection: don't write to stdout

    When losing the D-Bus connection, we would write to stdout about
    it just
    before killing ourselves with SIGTERM.  We're a library, so we should
    probably use stderr instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=721324

 gio/gdbusconnection.c           | 10 +++++-----
 gio/tests/gdbus-exit-on-close.c |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 8976175ba9913219d5469f022ceac03a106b4c54
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 2 01:55:07 2014 -0500

    gsettings: tweak test for last commit

    The last commit changed the behaviour of child objects of delayed
    GSettings.  Adjust the testcase accordingly.

 gio/tests/gsettings.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c7636ce64b8c4bf89fe75e9431d7d583a1573424
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 21 23:13:57 2013 -0500

    g_settings_get_child(): inherit backend

    Part of the purpose of g_settings_get_child() was that it could
    be used
    after you delay() a GSettings object, and then apply() all of the
    settings together.  In order for that to work, we need to share the
    backend.

    https://bugzilla.gnome.org/show_bug.cgi?id=720891

 gio/gsettings.c | 1 +
 1 file changed, 1 insertion(+)

commit d25b655bf579ccc7e2e56a9b2185177fde04e058
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 1 23:28:23 2014 -0500

    Make symlink test work installed

    We can't assume that the location used for G_TEST_DIST paths
    is writable, so just create the symlink in the current directory
    instead.

 glib/tests/fileutils.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit d91023fb4c9ac329aa5eed97e37a3f1b661a2203
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 1 22:39:32 2014 -0500

    Drop locale-dependent timeval tests

 glib/tests/timer.c | 2 --
 1 file changed, 2 deletions(-)

commit 11ddb843b9a0f7b56cb0c4b166eacd321e3e6dd3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 1 22:30:24 2014 -0500

    Make /contenttype/tree test work installed

    The x-content/win32-software type is only recognized if
    the autorun.exe file is executable. Since the file is installed
    as data, we need to fix up its permissions in an
    install-data-hook.

 gio/tests/Makefile.am | 3 +++
 1 file changed, 3 insertions(+)

commit dba1ae12a89e2acc8229db0e2f678109b836c6d0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 1 22:01:15 2014 -0500

    Avoid a compiler warning

 gio/tests/basic-application.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6106e38c8e7cbf523fd3a9c638ffc32133d2a7a4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 1 21:39:51 2014 -0500

    Make timeval tests independent of the environment

    Some of the tested formats are locale-dependent, so unset
    the TZ environment variable before testing them.

 glib/tests/timer.c | 4 ++++
 1 file changed, 4 insertions(+)

commit cda4080af079b733d8e8ad50fae3527cbdf11e15
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Jan 2 09:54:18 2014 +0800

    MSVC 2012 Projects: Rename a Property Sheet

    Forgot to update the property sheet file name from the Visual
    Studio 2010
    update... Sorry!

 build/win32/vs11/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 76584e7ae3c3676e6445637f1ad026e5af857938
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 29 11:11:28 2013 -0700

    Fix races in unix signal dispatch

    Fix some races introduced in be2c7b83c4a9c9d3aa76b1499c27ab19e0f4e470
    while keeping the property that multiple handlers for the same unix
    signal all get dispatched.

    Also fix the behaviour of the source checking for pending signals when
    it's created.  No matter what we do here (clear the pending flag
    or not)
    there is something that can go wrong.

    If we clear the flag, we may prevent other sources from being
    dispatched.  If we don't clear it, we may end up dispatching the same
    source twice (if we manage to dispatch it from its own thread
    before the
    GLib worker has a chance to run).

    Instead, run the full dispatch procedure when a new source is added.
    It
    actually doesn't matter what thread this runs in since the lock
    is held.

    https://bugzilla.gnome.org/show_bug.cgi?id=711090

 glib/gmain.c | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

commit 97d9138f6c4367bdfe76e3e46871a683c4a2d051
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jan 1 19:05:34 2014 -0500

    gio/tests: Fix usage of BUILT_SOURCES

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 52cefa239dd5b83b084107a4994d67f719812338
Author: Yosef Or Boczko <yoseforb@gmail.com>
Date:   Thu Jan 2 01:40:26 2014 +0200

    Fix doc build

 docs/reference/glib/running.xml | 2 --
 1 file changed, 2 deletions(-)

commit f9f7ad2557bac58452f827b7890d8ef246e53ede
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 1 17:42:33 2014 -0500

    Improve gutils.c test coverage

 glib/tests/utils.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 3de604d438feb851c7517ab04a823d25bd1997ba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 1 17:41:59 2014 -0500

    Improve GDate test coverage

 glib/tests/date.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 5e6d86877ddf9961b6dbe37d02a2ce2d31b9d6cf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 31 09:19:50 2013 -0500

    Improve GIOChannel test coverage

 glib/tests/protocol.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 5ec36cd02ae2efacf2dd11c218afa2b3ab1dee40
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 31 09:19:22 2013 -0500

    Improve hostutils test coverage

 glib/tests/hostutils.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit baceea958207bc6a010bae6bc87805f97611cccf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 31 09:18:50 2013 -0500

    Improve GVariant test coverage

 glib/tests/gvariant.c | 204
 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 201 insertions(+), 3 deletions(-)

commit ec0d6d7812a655355afeb14d76647fc00c047102
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 31 09:18:30 2013 -0500

    Test stdio wrappers

 glib/tests/fileutils.c | 78
 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 76 insertions(+), 2 deletions(-)

commit 93dad4808e6ea74a3688db7942a630ff857dd0e5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 20:18:15 2013 -0500

    Trivial typo fix

 glib/gvariant-parser.c     | 2 +-
 glib/gvariant-serialiser.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 90aa4ed0a061ac7dfcf9d92b7cd1acf3ad70e8aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 10:55:07 2013 -0500

    Improve charset test coverage

 glib/tests/utils.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 4f0a13effca82febccb0e84d0017bf378359fb69
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 10:54:46 2013 -0500

    Add tests for g_malloc

 glib/tests/Makefile.am |   1 +
 glib/tests/malloc.c    | 117
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 118 insertions(+)

commit 58cdf0b474ddcc94ba0bedc39c778cfa93c518ce
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 10:53:32 2013 -0500

    Drop memory-related trap variables

    These are just more lo-tech conditional breakpoint wannabes.
    Debuggers can be trusted to support conditional breakpoints
    nowadays.

 docs/reference/glib/running.xml | 42
 -----------------------------------------
 glib/gmem.c                     | 25 ------------------------
 2 files changed, 67 deletions(-)

commit 6d3b83a8c131e190da5db10d81c0d3cc0e3c6768
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 09:49:30 2013 -0500

    Improve GAsyncQueue test coverage

 glib/tests/asyncqueue.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 9a2c8d89c7b5039475bbe17c043cd9d7c884fc9f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 09:48:56 2013 -0500

    Improve test coverage of g_utf8_collate_key_for_filename

    The existing tests were accidentally using the same test data
    twice. Fix that, and add another set of tests that exercise
    the filename collation special cases.

 glib/tests/collate.c | 60
 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 57 insertions(+), 3 deletions(-)

commit 32e0499c5623a69575c408944cd56a7e5b755d9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 09:48:29 2013 -0500

    Add tests for g_spaced_primes_closest

 glib/tests/hash.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

commit 4989cb4ddefe9daca94b20ec4e4912e38c7b237e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 09:48:10 2013 -0500

    Improve GOptionContext test coverage

 glib/tests/option-context.c | 60
 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

commit d6bd36c6992c9b2b4b47391b47d954c8b64e44c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 09:47:49 2013 -0500

    Improve GBookmarkFile test coverage

 glib/tests/bookmarkfile.c          | 259
 +++++++++++++++++++++++++++++++++++++
 glib/tests/bookmarks/valid-01.xbel |   4 +
 glib/tests/bookmarks/valid-02.xbel |   2 +
 glib/tests/bookmarks/valid-03.xbel |   1 +
 4 files changed, 266 insertions(+)

commit 14359e17c99fdcd9f7492aad0b4795e18795e540
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 31 12:45:09 2013 -0500

    GBookmarkFile: Streamline error handling a bit

 glib/gbookmarkfile.c | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

commit 228a2c82f6c51bda71c36952cba72bafa7344e9f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 31 12:48:05 2013 -0500

    GBookmarkFile: Remove dead code

    The icon element is actually parsed further up, and this
    case is never hit, so remove it.

 glib/gbookmarkfile.c | 20 --------------------
 1 file changed, 20 deletions(-)

commit 0f746070d813aa3d7e181a3b29828d7a9ad66953
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 09:45:53 2013 -0500

    Make a bookmark testfile roundtrippable

    This will be used in new tests in the following commit.

 glib/tests/bookmarks/valid-01.xbel | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

commit 95f13ded9243c7ea9e7ded8e013f683a6c1bb2b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 30 08:57:04 2013 -0500

    Trivial formatting fixes

 glib/gunicollate.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit d264d32d3b0a5080bc41186d3ef11dd4373af2b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 29 13:47:43 2013 -0500

    Improve glib-unix test coverage

 glib/tests/unix.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit 6814f7ebd9013a2df439bd81346960421e726a3c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 29 13:46:00 2013 -0500

    Improve GHashTable test coverage

 glib/tests/hash.c | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

commit 95d4856760d0e5c81c14f60c88a986eaed12cbe2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 29 13:45:38 2013 -0500

    Add a test for g_markup_parse_context_get_element_stack

 glib/tests/Makefile.am |  1 +
 glib/tests/markup.c    | 98
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)

commit 27e352985bf0734e9209e8052dc966a05e6bfae1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 29 13:43:28 2013 -0500

    Remove broken attempt at parsing date-only

    g_time_val_from_iso8601 was attempting to parse strings
    having only a date, but failed to actually set the timeval
    despite returning TRUE. Since the docs state that the function
    only parses strings containing a date and a time, just return
    FALSE in this case.

    Also remove an incomplete testcase for this behaviour that was
    just checking the boolean return value, but not timeval.

 glib/gtimer.c    | 17 ++++++-----------
 tests/testglib.c |  2 +-
 2 files changed, 7 insertions(+), 12 deletions(-)

commit 680c348bb4f7b815ff58a48df915f67e175dea4f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 29 07:55:14 2013 -0500

    Add missing includes

    config.h needs to be included in every source file, first.

 gio/gfdonotificationbackend.c | 2 ++
 gio/ggtknotificationbackend.c | 1 +
 2 files changed, 3 insertions(+)

commit cc8c1541c9ed420ca8a3a8c21605341e5c6f5939
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 29 07:23:19 2013 -0500

    Improve mainloop test coverage

 glib/tests/mainloop.c | 69
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

commit 24d992f8a16347e13a4351db63b9e3a0c97b9577
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 29 07:23:01 2013 -0500

    Add tests for GTimer and GTimeVal

 glib/tests/Makefile.am |   1 +
 glib/tests/timer.c     | 213
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 214 insertions(+)

commit 2ded47e9558c49e5ad281b693a9c1a7f1180355d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 25 23:52:15 2013 -0500

    Improve GTree test coverage

 glib/tests/tree.c | 144
 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 129 insertions(+), 15 deletions(-)

commit 6e23e6c641022f15dfa4fa6da6fddc1f37cd92c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 25 23:51:58 2013 -0500

    Improve logging test coverage

 glib/tests/logging.c | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

commit cdb14a194e08eac5e34ac22f0183a478cfc413d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 25 23:51:26 2013 -0500

    Improve testing test coverage

    In particular, test the just-fixed g_test_trap_reached_timeout.

 glib/tests/testing.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

commit 3343bc3385c54f9098869103a7817a71a7e05ca7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 25 23:50:37 2013 -0500

    Fix g_test_trap_reached_timeout

    The function was returning the opposite of what the
    documentation says.

 glib/gtestutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e013cf9cad56e919af2f057eb52d58371483a6f8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 23:35:31 2013 -0500

    Improve GSlice test coverage

 glib/tests/slice.c | 150
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 150 insertions(+)

commit 19ad8dbfa6dd83c015b1d2a74e61417605c53e7d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 23:33:28 2013 -0500

    Improve GNode test coverage

 glib/tests/node.c | 228
 +++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 165 insertions(+), 63 deletions(-)

commit 6fe85aee8ded23719faff64599299fd6c2ea480b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 23:26:25 2013 -0500

    Improve fileutils test coverage

    Add some tests for g_file_read_link.

 glib/tests/fileutils.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

commit f16753cfe04006144bdfbd1fb7d3dab20024915b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 23:24:40 2013 -0500

    Unify error reporting in gfileutils.c

    Use the set_file_error helper function in more places,
    saving some 50 lines.

 glib/gfileutils.c | 218
 ++++++++++++++++++++++--------------------------------
 1 file changed, 88 insertions(+), 130 deletions(-)

commit 2299bcd88d7bc99e787b4ee878355e6eddb778ca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 00:06:00 2013 -0500

    Improve GResourceFile test coverage

 gio/tests/resources.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3eeeb7aaa7d601eb6f46005a03638744a890e9f8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 00:05:36 2013 -0500

    Improve gsettings test coverage

 gio/tests/gsettings.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 1041fc21905767fc15cf1ec9a4ff3ecb0fdcd6d9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 00:05:01 2013 -0500

    Improve gdbus test coverage

 gio/tests/gdbus-peer.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit df3ac947ac5c9ecb55789f81e8770a44af92a31c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 00:04:44 2013 -0500

    Improve converter test coverage

 gio/tests/converter-stream.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 354ae1d61c0a03c245ab1c191780e470c2608679
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 00:04:14 2013 -0500

    Add tests for remote actions

    This improves the GApplication test coverage.

 gio/tests/basic-application.c | 111
 ++++++++++++++++++++++++++++++++++++++++++
 gio/tests/gapplication.c      |  42 +++++++++++++++-
 2 files changed, 151 insertions(+), 2 deletions(-)

commit 8aeb391a771302fa6818a37a76e1240c955ce8f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 00:03:20 2013 -0500

    Improve GIOModule test coverage

    Add a dedicated test for GIOModule.

 configure.ac                      |   1 +
 gio/tests/Makefile.am             |   5 +-
 gio/tests/giomodule.c             | 136
 ++++++++++++++++++++++++++++++++++++++
 gio/tests/modules/Makefile.am     |  27 ++++++++
 gio/tests/modules/test-module-a.c |  57 ++++++++++++++++
 gio/tests/modules/test-module-b.c |  57 ++++++++++++++++
 6 files changed, 281 insertions(+), 2 deletions(-)

commit 7bea4bd89ae252b2d69daea362f9ba5c0508d2e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 24 00:01:22 2013 -0500

    Correct a doc comment

 gio/gsettingsbackend.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5bcbb98f45710ffae796ac4b2b73f68d573a1c75
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 23:59:56 2013 -0500

    GIOModule: Add some more details to the docs

 gio/giomodule.h | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

commit 0356d7f4c34745a0ebce88e08d1cdd6563218c3e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 23:59:37 2013 -0500

    Fix a typo in a comment

    The D-Bus interface is org.freedesktop.DBus.Peer, not
    org.freedesktop.DBus.

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b5ba22f163f884f14724b54d001bd044308f9f63
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 15:47:45 2013 -0500

    Add a generic property test

    This test is inspired by its namesake in GTK+. We instantiate
    all types, and check the default values of their properties,
    with some exceptions for types that are known not to work.

 gio/tests/Makefile.am    |  15 +++-
 gio/tests/defaultvalue.c | 228
 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 242 insertions(+), 1 deletion(-)

commit 290b46cd24d35d6bce7b86e05ce5948b42c45233
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 15:01:20 2013 -0500

    GTlsPassword: Make declared defaults match

    String properties typically start out with a value of NULL.
    No reason to deviate from that convention here.

 gio/gtlspassword.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3a37e403e6813305fe0b3dd57b0db1a1eb30a627
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 15:00:55 2013 -0500

    Make GFileIcon more robust

    No reason not to survive g_object_unref (g_object_new (...))

 gio/gfileicon.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 34de9189f6f29dccbad8224a9605e4eb6d40b94e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 15:00:18 2013 -0500

    Make GEmblem more robust

    No reason not to survive g_object_unref (g_object_new (...)).

 gio/gemblem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 62b28546afc01deae13f155f7a283d45c2fd7395
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 15:00:02 2013 -0500

    Trivial formatting fixes

 gio/gcharsetconverter.c | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

commit 6c75ba2b902602c90fe239346e557aa1284eb667
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 12:11:03 2013 -0500

    Add tests for x-content type sniffing

    This test exercises the tree matching parts of gcontenttype.c

 gio/tests/Makefile.am                              |  4 +++
 gio/tests/contenttype.c                            | 31
 ++++++++++++++++++++++
 .../image-dcf/DCIM/Camera/20130831_203925.jpg      |  0
 .../image-dcf/DCIM/Camera/20130831_203928.jpg      |  0
 gio/tests/x-content/unix-software/autorun.sh       |  3 +++
 gio/tests/x-content/win32-software/autorun.exe     |  0
 6 files changed, 38 insertions(+)

commit 159459bc2d44de2ed3abc50d64d42a5a9ae0dc91
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 12:09:46 2013 -0500

    Simplify fileattributematcher tests a bit

    Just use assertions instead of pretty-printed error messages.

 gio/tests/fileattributematcher.c | 20 +++-----------------
 1 file changed, 3 insertions(+), 17 deletions(-)

commit 3bbfd908802a44fb871a0498c088ac61b7ca50e7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 12:08:47 2013 -0500

    Improve GApplicationCommandline test coverage

    Add tests for many GApplicationCommandline apis to the
    existing application tests.

 gio/tests/basic-application.c | 115 ++++++++++++++++++++++++++--
 gio/tests/gapplication.c      | 170
 +++++++++++++++++++++++++++++++++++-------
 2 files changed, 252 insertions(+), 33 deletions(-)

commit 7846d6154a0c7de3ecd51b484d56396b11ca1ff2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 12:08:08 2013 -0500

    Improve GSubprocess test coverage

    Test the synchronous communicate functions.

 gio/tests/gsubprocess.c | 139
 +++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 133 insertions(+), 6 deletions(-)

commit e021bb910176413f18904fce5e677916116bc9bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 23 12:07:11 2013 -0500

    Improve GInitable test coverage

    This just adds a bit more variety to the uses of GInitiable
    in other tests.

 gio/tests/network-monitor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 243bec9d0d52293ed6d6b2b6990f23ecb5309f9b
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Thu Sep 19 15:41:09 2013 -0400

    gobject.py: Simplify or_join_array

 gobject/gobject.py | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

commit bfbe7127d539176ca625fbf052cca9cf4cfc42d8
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Thu Sep 19 15:24:16 2013 -0400

    gobject.py: Simplify and reduce code a bit

 gobject/gobject.py | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

commit 4e512a1af8ecba7c2fa23945a524f91926026103
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Thu Sep 19 14:59:44 2013 -0400

    gobject.py: Remove old hack for stripping IA__ symbols

    We don't use IA__ symbols anymore; they've been replaced with
    -Bsymbolic

 gobject/gobject.py | 23 -----------------------
 1 file changed, 23 deletions(-)

commit b4af2d685ec02b575b48d23d2bf51678dbc023c2
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Thu Sep 19 11:55:47 2013 -0400

    gobject.py: Fix indentation

 gobject/gobject.py | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 0c87f71521802a323e1fd2136788ad8942ea85eb
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Dec 31 15:13:06 2013 -0500

    codegen: direction defaults to "in"

 gio/gdbus-2.0/codegen/parser.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e9c19583dea2f2dc654df992ea0b952adfa93d81
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Sun Dec 29 14:20:13 2013 -0600

    docs: fix a typo

 docs/reference/gio/overview.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ddc29a903644dfcb737c5a17a35081fc76d348e9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Dec 27 12:25:18 2013 +0800

    Visual Studio Projects: Cleanup Property Sheets

    Make the projects include a single property sheet as necessary,
    which will
    in turn include the other property sheet(s) as needed, so that we
    can avoid
    warnings where we include the same property sheets twice in a single
    project.

    Also make the copying of pre-configured headers into custom build
    rules so
    that they can be removed upon the clean command from the IDE and
    that they
    can be re-copied if their counterpart *.h.win32 are updated.

 build/win32/vs10/Makefile.am              |   2 +-
 build/win32/vs10/gio.vcxproj.filtersin    |   3 +
 build/win32/vs10/gio.vcxprojin            |  24 ++-
 build/win32/vs10/glib-build-defines.props |   2 +-
 build/win32/vs10/glib-gen-srcs.props      |  29 ++++
 build/win32/vs10/glib-install.props       | 249
 +++++++++++++++---------------
 build/win32/vs10/glib-version-paths.props |   2 +-
 build/win32/vs10/glib.vcxproj.filtersin   |   4 +
 build/win32/vs10/glib.vcxprojin           |  78 ++++++++--
 build/win32/vs10/glibprepbuild.props      |  39 -----
 build/win32/vs10/gmodule.vcxproj          |  24 ++-
 build/win32/vs10/gmodule.vcxproj.filters  |   3 +
 build/win32/vs10/install.vcxproj          |   4 -
 build/win32/vs9/Makefile.am               |   2 +-
 build/win32/vs9/gio.vcprojin              |  42 ++++-
 build/win32/vs9/glib-gen-srcs.vsprops     |  32 ++++
 build/win32/vs9/glib-install.vsprops      | 138 ++++++++---------
 build/win32/vs9/glib.vcprojin             | 148 +++++++++++++++++-
 build/win32/vs9/glibprepbuild.vsprops     |  27 ----
 build/win32/vs9/gmodule.vcproj            |  42 ++++-
 build/win32/vs9/install.vcproj            |   8 +-
 21 files changed, 593 insertions(+), 309 deletions(-)

commit d01a075632150fcc63f4d9f41046a450a3f4915a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Dec 27 10:50:35 2013 +0800

    Visual Studio Projects: Use Unix Line Endings

    ...where possible, to make application of patches easier in the
    future.
    The README.txt's and the .sln files are still in Windows/DOS line
    endings
    as they need to be so.

 build/win32/vs10/gdbus.vcxproj                     | 358
 ++++++++++----------
 build/win32/vs10/gdbus.vcxproj.filters             |  26 +-
 build/win32/vs10/gio-querymodules.vcxproj          | 366
 ++++++++++-----------
 build/win32/vs10/gio-querymodules.vcxproj.filters  |  26 +-
 build/win32/vs10/glib-compile-resources.vcxproj    | 360
 ++++++++++----------
 .../vs10/glib-compile-resources.vcxproj.filters    |  32 +-
 build/win32/vs10/glib-compile-schemas.vcxproj      | 360
 ++++++++++----------
 build/win32/vs10/glib-genmarshal.vcxproj           | 344
 +++++++++----------
 build/win32/vs10/gmodule.vcxproj                   | 366
 ++++++++++-----------
 build/win32/vs10/gresource.vcxproj                 | 358
 ++++++++++----------
 build/win32/vs10/gresource.vcxproj.filters         |  26 +-
 build/win32/vs10/gsettings.vcxproj                 | 360
 ++++++++++----------
 .../win32/vs10/gspawn-win32-helper-console.vcxproj | 348
 ++++++++++----------
 build/win32/vs10/gspawn-win32-helper.vcxproj       | 348
 ++++++++++----------
 build/win32/vs10/gthread.vcxproj                   | 366
 ++++++++++-----------
 build/win32/vs10/install.vcxproj                   | 326
 +++++++++---------
 build/win32/vs10/testglib.vcxproj                  | 344
 +++++++++----------
 build/win32/vs9/gdbus.vcproj                       | 310
 ++++++++---------
 build/win32/vs9/gio-querymodules.vcproj            | 310
 ++++++++---------
 build/win32/vs9/glib-compile-resources.vcproj      | 312
 +++++++++---------
 build/win32/vs9/glib-genmarshal.vcproj             | 322
 +++++++++---------
 build/win32/vs9/gresource.vcproj                   | 310
 ++++++++---------
 build/win32/vs9/gspawn-win32-helper-console.vcproj | 326
 +++++++++---------
 build/win32/vs9/gspawn-win32-helper.vcproj         | 320
 +++++++++---------
 build/win32/vs9/gthread.vcproj                     | 334
 +++++++++----------
 build/win32/vs9/install.vcproj                     | 154 ++++-----
 build/win32/vs9/testglib.vcproj                    | 316
 +++++++++---------
 27 files changed, 3864 insertions(+), 3864 deletions(-)

commit c488aa6785c0865dcaf1748418f05798bab68835
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Dec 27 10:32:01 2013 +0800

    Visual Studio Property Sheets: Use Unix Line Endings

    This makes it easier to apply patches in the future.

 build/win32/vs10/glib-build-defines.props  |  140 ++--
 build/win32/vs10/glib-install.props        | 1106
 ++++++++++++++--------------
 build/win32/vs10/glib-version-paths.props  |  100 +--
 build/win32/vs10/glibprepbuild.props       |   78 +-
 build/win32/vs9/glib-build-defines.vsprops |  130 ++--
 build/win32/vs9/glib-install.vsprops       |  572 +++++++-------
 build/win32/vs9/glib-version-paths.vsprops |   98 +--
 build/win32/vs9/glibprepbuild.vsprops      |   54 +-
 8 files changed, 1139 insertions(+), 1139 deletions(-)

commit fb21c8eaab64301591a0e179a42ef25cbd793a6e
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Thu Dec 26 11:03:45 2013 +0100

    kqueue: fix a potential deadlock

    In case an object is already monitored, we lock then return without
    unlocking it which can then result in a self deadlock. So properly
    unlock before returning.

    https://bugzilla.gnome.org/show_bug.cgi?id=721074

 gio/kqueue/kqueue-missing.c | 1 +
 1 file changed, 1 insertion(+)

commit f3c9b17d3c8984fa7281bd6c849aa6a0170b54de
Author: Mikhail Gusarov <dottedmag@dottedmag.net>
Date:   Thu Dec 26 11:22:05 2013 -0500

    gio-2.0.pc: Add -lselinux when linking statically if so configured

    https://bugzilla.gnome.org/show_bug.cgi?id=721087

 gio-2.0.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c26c557908fe3083e9470b2a191cd53dc907138d
Author: Morten Welinder <terra@gnome.org>
Date:   Thu Dec 26 07:37:17 2013 -0500

    gsubprocesslauncher: Use "env" instead of "environ"

    The latter may come from system headers.

    https://bugzilla.gnome.org/show_bug.cgi?id=721059

 gio/gsubprocesslauncher.c | 6 +++---
 gio/gsubprocesslauncher.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 091e466095c47f60ef5b2b0c81459615169216cf
Author: Matthias Scheler <tron@zhadum.de>
Date:   Wed Dec 25 13:57:56 2013 -0500

    gio: Fix return of value from void function

    https://bugzilla.gnome.org/show_bug.cgi?id=721034

 gio/gfile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d7f885b1f3fcd863dd2e48a12932a609d783ac10
Author: Colin Walters <walters@verbum.org>
Date:   Mon Nov 18 14:28:15 2013 -0500

    Revert "gsettings m4: check for .xml in src/builddir"

    This reverts commit b3593693d918f0ae97094f6712d817180b8eea6a.

    See: https://bugzilla.gnome.org/show_bug.cgi?id=712171#c3
    See: https://bugzilla.gnome.org/show_bug.cgi?id=712171#c4

    Tested using both srcdir == builddir and srcdir != builddir in hotssh.

    Conflicts:
            m4macros/gsettings.m4

    https://bugzilla.gnome.org/show_bug.cgi?id=712630

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ee5dab6bb5b84408d88fa7d3bb333311ab3fa263
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 22 13:06:54 2013 -0500

    gdbus tool: print GVariant errors in context

    Use g_variant_parse_error_print_context() to format the error message
    from the GVariant parser.

    There is a slightly dubious interaction with the "parse me harder"
    functionality here.  We're probably going to have to deal with that
    separately.

    https://bugzilla.gnome.org/show_bug.cgi?id=715028

 gio/gdbus-tool.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit 94a89f6c2fdbffe562a0ec34a979c01fefc5a9ac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 22 12:57:21 2013 -0500

    gapplication(1): print GVariant errors in context

    Use g_variant_parse_error_print_context() to format the error message
    from the GVariant parser.

    https://bugzilla.gnome.org/show_bug.cgi?id=715028

 gio/gapplication-tool.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 420f90d849c7670f716b7d9dede81655f794a6da
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 22 12:55:10 2013 -0500

    gsettings tool: print GVariant errors in context

    Use g_variant_parse_error_print_context() to format the error message
    from the GVariant parser.

    https://bugzilla.gnome.org/show_bug.cgi?id=715028

 gio/gsettings-tool.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 56fb675d865d4331037bd95f57ce6f381564fe27
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Dec 22 11:41:19 2013 -0500

    GVariant: add way to print context of parse errors

    This was a feature intended from the very beginning that somehow never
    got written.  It's a way to replace these sort of error messages
    out of
    the GVariant parser:

      1-2,10-15:unable to find a common type

    with something in the style of the Vala compiler:

      unable to find a common type:
        [1, 2, 3, 'str']
         ^        ^^^^^

    https://bugzilla.gnome.org/show_bug.cgi?id=715028

 docs/reference/glib/glib-sections.txt |   1 +
 glib/gvariant-parser.c                | 222
 ++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |   4 +
 3 files changed, 227 insertions(+)

commit 3f41e492851b3e69ceb050986766fe3137cbb1fe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Dec 22 11:33:07 2013 -0500

    Use POSIX-specified <poll.h> over <sys/poll.h>

    POSIX specifies that <poll.h> is the correct header to include for
    poll(), so let's do that instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=141251

 config.h.win32.in                     |  3 ---
 configure.ac                          | 16 +++-------------
 docs/reference/glib/glib-sections.txt |  1 -
 gio/gunixmounts.c                     |  5 +----
 glib/gpoll.c                          |  4 ++--
 tests/timeloop-basic.c                |  2 +-
 6 files changed, 7 insertions(+), 24 deletions(-)

commit eeac91f866939fd033303f34c7eb9d2b57c769fb
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Tue Sep 17 11:10:28 2013 +0200

    GVariant: Add g_variant_parse_error_quark()

    Most GErrors, such as GSomethingError, have a function to get
    their quark that looks like g_something_error_quark(),
    so bindings (such as gtkmm) would expect GVariantParseError
    to have g_variant_parse_error_quark(). Instead this had
    g_variant_parser_get_error_quark().
    This deprecates the old function and adds the correct one,
    making life easier for gtkmm (and maybe others).

    https://bugzilla.gnome.org/show_bug.cgi?id=708212

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gvariant-parser.c                | 11 ++++++++++-
 glib/gvariant.h                       |  7 +++++--
 3 files changed, 16 insertions(+), 3 deletions(-)

commit 864d960d756e3be0a857875337b7e6b520298b78
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 22 00:44:56 2013 -0500

    More settings backend tests

    This adds some more test coverage around writability changes
    in the keyfile and delayed settings backends.

 gio/tests/gsettings.c | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

commit 41a8296e111595c5902f607cda47c1d5d14ac405
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 22 00:43:44 2013 -0500

    GKeyfileSettingsBackend: Use a directory monitor

    GKeyfileSettingsBackend was using a file monitor to monitor
    the parent directory of its keyfile.

 gio/gkeyfilesettingsbackend.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 3c873e7617695e8517deb1cfd1ee886af772135c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 16:49:52 2013 -0500

    More test coverage for settings backends

 gio/tests/gsettings.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 8669f2c915083625f7503b96d1779f7f3773f890
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 16:16:16 2013 -0500

    Simplify coverage rules

    This works just fine, no need for the manual removal of the
    info file.

 glib.mk | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit a5d8209d75bbae578ab3052173fbe55baac20e7f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 15:44:51 2013 -0500

    Fix a typo

 glib-tap.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d6e95cc5f5e777c0f4908beafa74173de139478e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 13:20:44 2013 -0500

    Fix a !srcdir problem with installed tests

    When installing scripts which are not generated in a
    srcdir != builddir build, $< will have ../.. goo in it.
    So we need to strip the directory parts before using
    the filename to construct a new path.

 glib-tap.mk | 2 +-
 glib.mk     | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit dac1ad66ebe3df38b129d78915db1c29e4d7a30d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 12:51:22 2013 -0500

    Improve gsettings test coverage

    Deal with corner cases around delay.

 gio/tests/gsettings.c | 52
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

commit fc828c4de8b8de0e8c8469877f9c148616bb5b96
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 11:56:24 2013 -0500

    contenttype tests: better assertions

    I recently had to track down why these tests failed. Turned
    out that some rogue package on my system had installed mime
    types that declared all files with 3 letter names to be
    'chemical/x-turbomole-vibrational'.
    This change will make it more obvious what is going on by
    mentioning the mime types in the assertion message.

 gio/tests/contenttype.c | 35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

commit 6d8ac1125e326a09dd324543ad3150f5e9159c13
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 10:48:40 2013 -0500

    Slightly improve coverate for notification tests

 gio/tests/gnotification.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 5ab9e21d7a595ccc00bef861e57740f0ec2bc14e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 01:10:59 2013 -0500

    Improve test coverage for GPropertyAction

 gio/tests/actions.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit f9747d07c89e94f920051db0a7ade37ce236a1d2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 01:00:10 2013 -0500

    Test some gsettings corner case

    Setting a strv to NULL was not tested before.

 gio/tests/gsettings.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 2f01b0975e7f774f2536a3cd2b33d486a484da9f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 21 00:04:14 2013 -0500

    Some tweaks to coverage support

    Rename the configure option to --enable-coverage, and make
    it quiet by default.

 configure.ac |  8 ++++----
 glib.mk      | 12 ++++++------
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 65a7e56328b7a169c1eb977cfce545ceb4d29676
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu Dec 19 01:17:25 2013 +0100

    Updated Galician translations

 po/gl.po | 794
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 399 insertions(+), 395 deletions(-)

commit fab0805b81a74dfb76e2bde9373d6439ed2eb64b
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 18 09:59:54 2013 -0500

    Make g_test_run() return 77 if all tests are skipped

    Change g_test_run() to return 1 on failure (rather than the number of
    failed tests), and 77 if all tests are skipped (since automake and
    some other test harnesses recognize that status code).

    Previously g_test_run() returned the number of failed tests, but this
    behavior was not documented, and at any rate, prior to 2.39,
    g_test_run() would normally not return at all if an error occurred.

    https://bugzilla.gnome.org/show_bug.cgi?id=720263

 glib/gtestutils.c    | 14 +++++++--
 glib/tests/testing.c | 81
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 93 insertions(+), 2 deletions(-)

commit 10d82f9775a91c2c4c1eddb17c2e0d08d79310ec
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 18 09:29:29 2013 -0500

    gtestutils: rename test_skip_count to test_startup_skip_count

    https://bugzilla.gnome.org/show_bug.cgi?id=720263

 glib/gtestutils.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 8c188fc9e55cc9e24000271f6ad8a47ffdcb62d7
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 11 16:32:11 2013 +0100

    gtestutils: skipping a test should count as success, not failure

    In particular, the test program as a whole should exit with status 0
    if you skipped some tests but did not fail any.

    https://bugzilla.gnome.org/show_bug.cgi?id=720263

 glib/gtestutils.c    | 3 ++-
 glib/tests/testing.c | 8 ++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

commit c300079f1320b8522a4885987fd2443c171ec629
Author: Bastien Nocera <hadess@hadess.net>
Date:   Mon Dec 16 17:21:41 2013 +0100

    gdbus-codegen: Fix crasher in goa-using apps

    When replacing a version of goa-daemon (from gnome-online-accounts)
    by a newer version with some added interfaces, evolution-data-server
    and the gvfs-goa volume monitor might crash as there's no interface
    definition for this new interface.

    Work-around this by returning earlier from the _notify()
    implementation,
    rather than accessing invalid memory.

    https://bugzilla.gnome.org/show_bug.cgi?id=720539

 gio/gdbus-2.0/codegen/codegen.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit d33f72097fa21aade43e273d049e2a7105e99ad5
Author: Tim Lunn <tim@feathertop.org>
Date:   Wed Dec 18 07:14:38 2013 +1100

    Make gdb pretty-printers compatible with Python3

    On some systems gdb is linked against python3 where "long" no longer
    exists. In this case should be using int.

    https://bugzilla.gnome.org/show_bug.cgi?id=720635

 glib/glib.py       | 4 ++++
 gobject/gobject.py | 5 +++++
 2 files changed, 9 insertions(+)

commit 91d4659bbf8cf88d8be905c7e0abbedce931b688
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Mar 23 15:18:12 2010 +0000

    gobject.py: Don't install frame filters when GDB does not support them

    Stock GDB (both versions 7.0 and 7.1) does not come with the new
    backtrace code and python API. To prevent an ugly python backtrace
    when
    auto-loading gobject.py, let's catch the exception and not register
    the
    FrameWrapper and the FrameFilter.

    https://bugzilla.gnome.org/show_bug.cgi?id=613732

 gobject/gobject.py | 30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

commit 4846fd923d52108de4243429ada9c3dcab5f83e9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 17 00:45:41 2013 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0cfffd597e204b687577ff2a43015916ee313f4e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 17 00:30:08 2013 -0500

    2.39.2

 NEWS | 78
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

commit 6c8600b2b86fe42edd6d6e9648a92f32e404457c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 20 16:57:26 2013 -0500

    valgrind.h: add "r0" to the clobber list on PPC

    Looks like the magic sequences trash this register, so make sure GCC
    knows that.

    https://bugzilla.gnome.org/show_bug.cgi?id=710983

 glib/valgrind.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 2731b01c73ecc7ca692fefba1ce14c1aa4f5f5a0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 10 19:21:33 2013 -0500

    tests: change test timezone to America/Toronto

    America/Toronto is the canonical name for Canada/Eastern in the
    zoneinfo
    database.

 glib/tests/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5ccdf2b86a7ecb2def51cbf7fcd7318ad20a6cc9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 15 21:06:35 2013 -0500

    Expand the truncate tests

    Check that the data is expanded with zeros.

 gio/tests/memory-output-stream.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

commit 453a69534c1407ccee6b66c1edd71c1e23a0cdae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 15 20:06:25 2013 -0500

    Update tests for new truncate behavior

 gio/tests/buffered-output-stream.c | 2 +-
 gio/tests/data-output-stream.c     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit baed90af43add09e1667da6adfb4801936d8bd24
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:23:01 2013 +0100

    gdbus-export: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gdbus-export.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit db6a297d9eaf8eec21556689944d792085eed095
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:20:50 2013 +0100

    gdbus-auth: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gdbus-auth.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 2ad121ab16992ec5841dd0891710bb2cd37cdbe3
Author: Colin Walters <walters@verbum.org>
Date:   Sun Dec 15 20:44:20 2013 -0500

    gsubprocesslauncher: Annotate g_subprocess_launcher_spawnv()

    Needs to be an array.

 gio/gsubprocesslauncher.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3f8888d348458a09040a8bdc6c09b4c080a78241
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:27:57 2013 +0100

    sources: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/sources.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 0b486a49e48e309c98fe151650f9903e3c61ff46
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 15 18:50:49 2013 -0500

    Fix up gsettings test

 gio/tests/gsettings.c | 6 ------
 1 file changed, 6 deletions(-)

commit 3b9ad6e6ef030cd8487f165e8d81174bd82e4fb9
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Sun Dec 8 22:41:15 2013 +0200

    gio: Update GMemoryOutputStream length after truncate

    For GMemoryOutputStream, update valid_len when truncating so that
    g_memory_output_stream_get_data_size () returns the correct result.

    https://bugzilla.gnome.org/show_bug.cgi?id=720080

 gio/gmemoryoutputstream.c        | 2 ++
 gio/tests/memory-output-stream.c | 5 +++++
 2 files changed, 7 insertions(+)

commit c34cc2348cfd3c461974dea4419001dbd9610202
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 15 11:20:19 2013 -0500

    Simplify subprocesses in tests

    Use the new way of running tests in a subprocess without
    registering extra 'subprocess' test cases where appropriate.

 gio/tests/gsettings.c    | 117
 +++++++++++++++++++++++------------------------
 glib/tests/array-test.c  |  26 +++++------
 glib/tests/dataset.c     |  23 +++++-----
 glib/tests/scannerapi.c  |  21 ++++-----
 glib/tests/slice.c       |  14 +++---
 glib/tests/test-printf.c |  48 +++++++++----------
 glib/tests/testing.c     |  93 ++++++++++++++++---------------------
 glib/tests/utils.c       |  37 ++++++---------
 gobject/tests/object.c   |  16 +++----
 9 files changed, 176 insertions(+), 219 deletions(-)

commit cd2204bb65114e5ac62b014e6167a659aa254361
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Dec 11 09:31:35 2013 +0100

    gtestutils: Allow clean simple use of g_test_trap_subprocess()

    Allow g_test_trap_subprocess() to be used in a simple cases by
    rerunning the same test case itself. This is accomplished by
    passing %NULL as the test case name.

    https://bugzilla.gnome.org/show_bug.cgi?id=720236

 glib/gtestutils.c | 40 ++++++++++++++++++++++++----------------
 glib/tests/list.c | 35 +++++++++++++++++------------------
 2 files changed, 41 insertions(+), 34 deletions(-)

commit 162852d1b5512873c04e9ccf616e1fa13470e4eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 14 23:54:18 2013 -0500

    Add a testcase for g_ptr_array_insert

 glib/tests/array-test.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 12fbc5ec4a02246a2ad3dc11225f51feb7ed7bdd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 14 23:45:36 2013 -0500

    Add g_ptr_array_insert to the docs

 docs/reference/glib/glib-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 9ed0d0c5096ad1434dfff70503ff6375646d6c8a
Author: Tristan Van Berkom <tristan.van.berkom@gmail.com>
Date:   Wed Nov 27 14:34:20 2013 +0900

    GPtrArray: Added g_ptr_array_insert()

    Speaks for itself, I've found myself on numerous occasions
    writing my own version of this, or using a GArray of pointers.

    https://bugzilla.gnome.org/show_bug.cgi?id=719395

 glib/garray.c | 36 ++++++++++++++++++++++++++++++++++++
 glib/garray.h |  4 ++++
 2 files changed, 40 insertions(+)

commit 6011d0a4ae9a8e70e20df3b7ad37f940ddf2f9f8
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Dec 13 16:21:00 2013 +0800

    glib/gwin32.c: Silence a Deprecation Warning

    Since we are already building a deprecated function for compatibility
    reasons, we don't really need to see a warning when it uses another
    deprecated GLib function.

 glib/gwin32.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3af58d2e9fefe14dc55fd41222a5c92947a08270
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Dec 12 18:00:52 2013 +0800

    gio/gdbusaddress: Clean up Win32 code a bit

    Combine duplicate parts into one, as the symbol used by RunDLL
    under x64
    is the same for either Visual C++ or MinGW-64

 gio/gdbusaddress.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit c7c1ad4d0265a2c393adef265c7f2cbe23421361
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Thu Dec 12 09:50:46 2013 +0100

    [l10n] Updated Italian translation.

 po/it.po | 1321
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 749 insertions(+), 572 deletions(-)

commit d721d41d380ab1494e8d4e08b38fd884b1660fe7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 11 10:35:45 2013 -0500

    Remove an unused define

    https://bugzilla.gnome.org/show_bug.cgi?id=720210

 glib/gdataset.c | 3 ---
 1 file changed, 3 deletions(-)

commit e6c86d58f274b8a1a365627ffb1fa14daacd4335
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Wed Dec 11 13:17:10 2013 +0100

    gdesktopappinfo: Add missing annotations

    Add missing (allow-none) annotations to
    g_desktop_app_info_launch_uris_as_manager(). Tested with

      python -c "from gi.repository import GLib, Gio;
      Gio.DesktopAppInfo.new('gcalctool.desktop').launch_uris_as_manager([],
      None,
      GLib.SpawnFlags.SEARCH_PATH|GLib.SpawnFlags.STDOUT_TO_DEV_NULL,
      None, None, None, None)"

    which is necessary to do a launch_uris() without leaking stdout.

    https://launchpad.net/bugs/1259721

 gio/gdesktopappinfo.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit aa7f1ba21a8536a147e90bb29e972fcea41e8e3d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Dec 11 20:09:59 2013 +0800

    Update Visual C++ "Installation" Phase

    Install the Python scripts that is used by gdbus-codegen in
    share\glib-2.0\codegen, to be consistent with the other platforms.

    Please see https://bugzilla.gnome.org/show_bug.cgi?id=702862 for
    details
    on this.

 build/win32/vs10/glib-install.props  | 4 ++--
 build/win32/vs9/glib-install.vsprops | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 36ef409591bf3c0f368c39d083c42ed029cea5e6
Author: Manuel Bachmann <tarnyko@tarnyko.net>
Date:   Wed Dec 11 10:59:28 2013 +0100

    gdbus-codegen: look for deps in correct path under win32

    codegen.py and friends get installed in "share/glib-2.0",
    so look for them there.

    https://bugzilla.gnome.org/show_bug.cgi?id=702862

 gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e6456bcfb682113b2b623e9ccd9bcec46626e4ed
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Dec 4 12:48:53 2013 +0100

    gdbus-connection: Work around race in connection tests

    GDBusConnection cleanup is inherently racy due to its use of worker
    threads. Put tests that expect a NULL G_BUS_TYPE_SESSION singleton
    as the first tests to work around cleanup races.

    https://bugzilla.gnome.org/show_bug.cgi?id=719837

 gio/tests/gdbus-connection.c | 30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

commit a22f77739dd4ec911d7bdc0f0fc61314e5f9f1cf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Dec 8 18:18:16 2013 -0500

    g_get_current_dir(): consult PWD first

    Check if the current directory is the same as $PWD.  This matches the
    behaviour of the get_current_dir_name() function in glibc.

    https://bugzilla.gnome.org/show_bug.cgi?id=705902

 glib/gfileutils.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit 0f1579e62cded436c3fbfbeaf3130c8d8ffcb01c
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Sun Dec 8 17:30:33 2013 +0100

    g_settings_get: only check for non-copying format string

    396d40af introduced a redundant call to
    g_variant_check_format_string().
    Checking whether the format string copies all values is enough.

    https://bugzilla.gnome.org/show_bug.cgi?id=719979

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 05f36e7ffcac0e58c1bf578bc37e1dc129f4b8e3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Dec 8 16:38:47 2013 -0500

    clang fixes: tweak last commit

    We need to actually ignore "-Wformat-nonliteral" to make clang happy

 glib/tests/test-printf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ddf82a25761ed6aae17e478ab5d3096275b32b35
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Dec 8 14:22:51 2013 -0500

    [PATCH] Fix trivial non literal format uses

    Based on a patch from Henrique Dante de Almeida <hdante@gmail.com>.

    https://bugzilla.gnome.org/show_bug.cgi?id=691608

 gio/gcontenttype.c       | 16 ++++++----------
 gio/gthreadedresolver.c  | 32 ++++++++++++--------------------
 glib/tests/test-printf.c |  3 +++
 3 files changed, 21 insertions(+), 30 deletions(-)

commit 904474454146877180f33930a5843545035fdecb
Author: keyring <keyring@163.com>
Date:   Sat Dec 7 15:05:26 2013 +0800

    Update Chinese simplified translation

 po/zh_CN.po | 1609
 +++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 907 insertions(+), 702 deletions(-)

commit 396d40af237db00e1014520cf6858cfed30bbc51
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Fri Dec 6 16:01:48 2013 +0100

    g_settings_get: check validity of format string

    Allow only format strings that copy all values (i.e, don't contain
    '&'),
    as the returned pointers might become invalid in some rare cases.

    Since this is technically an API break, this patch only prints a
    critical when a faulty format string is detected, but still fetches
    the
    values.

    https://bugzilla.gnome.org/show_bug.cgi?id=719979

 gio/gsettings.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit c07eccd9c212e1e1642ee8cd359f5066ee8e5295
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Dec 3 08:27:05 2013 +0000

    gtestdbus: Add a note about thread safety to the documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=712148

 gio/gtestdbus.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 7e9e7a66a1820478c87d3fadd47869eed88ef6f3
Author: Daiki Ueno <ueno@unixuser.org>
Date:   Thu Dec 5 18:16:36 2013 +0900

    Fix documentation typos in GTask and GCancellable examples

    https://bugzilla.gnome.org/show_bug.cgi?id=719884

 gio/gcancellable.c | 2 +-
 gio/gtask.c        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 8f4dc7012ef832b038777e88e8e37b051f524194
Author: Colin Walters <walters@verbum.org>
Date:   Tue Dec 3 17:15:14 2013 -0500

    gsignal: Signal connection ids are always > 0 if successful

    Note this explicitly so that people can rely on doing:

    if (mystruct->sigid > 0)
      g_signal_disconnect (mystruct->object, mystruct->sigid);

    https://bugzilla.gnome.org/show_bug.cgi?id=719809

 gobject/gsignal.c | 6 +++---
 gobject/gsignal.h | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

commit b2bf13ccdd08cba7ad33e6ac588120d0cbed54fa
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Tue Nov 26 17:45:37 2013 +0100

    gutf8: use g_try_malloc_n

    As recommended by Christian Persch.

    https://bugzilla.gnome.org/show_bug.cgi?id=711546

 glib/gutf8.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit bff76bc36ff2b158bb702f9d579e2ff039a252b0
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Tue Dec 3 15:35:50 2013 +0100

    gmessages: make _g_log_abort() do only breakpoints again

    Commit e53caad4 makes _g_log_abort() noreturn by calling abort()
    unconditionally.

    However, it is useful to be able to skip some log_abort() with a
    debugger, to reach a point of interest. Revert back to previous
    behaviour. Make g_assert_warning() noreturn by calling abort().

    https://bugzilla.gnome.org/show_bug.cgi?id=711800

 glib/gmessages.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 2baa50ee4fde91f89692e00b1fc4fa39713be799
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 2 22:26:48 2013 -0500

    Remove g_trap_instance_signals as well

    This is another crude conditional breakpoint mechanism and can
    be done better with actual conditional breakpoints or with systemtap
    tracepoints.

    https://bugzilla.gnome.org/show_bug.cgi?id=719687

 gobject/gsignal.c | 34 ++--------------------------------
 1 file changed, 2 insertions(+), 32 deletions(-)

commit 28c2706da73d7dddb12d336b26a08218e761817c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 2 21:48:03 2013 -0500

    Drop g_trap_object_ref debugging mechanism

    This is really just a very crude and limited conditional breakpoint.
    Update the documentation to explain conditional breakpoints in
    gdb instead. Also, remove the link to refdbg, which appears dead.

    https://bugzilla.gnome.org/show_bug.cgi?id=719687

 docs/reference/gobject/tut_tools.xml | 21 +++++++--------------
 gobject/gobject.c                    | 12 ------------
 2 files changed, 7 insertions(+), 26 deletions(-)

commit 0f800cd1a863bc0c3e51c03592e2fb1ffbda8982
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Dec 2 14:37:23 2013 -0500

    Document clearly async functions not copying its args

    Usually async methods copy/ref its arguments so caller can
    forget about them. g_file_replace_contents_async() and
    g_output_stream_write_async() are exceptions.

    https://bugzilla.gnome.org/show_bug.cgi?id=690525

 gio/gfile.c         | 5 +++++
 gio/goutputstream.c | 5 +++++
 2 files changed, 10 insertions(+)

commit c4e9135352c9dc5cef4f6c51432cd4763f849bc4
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Dec 2 14:40:35 2013 -0500

    GFile: add GBytes version of _replace_contents_async()

    https://bugzilla.gnome.org/show_bug.cgi?id=690525

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfile.c                         | 65
 ++++++++++++++++++++++++++++++++-----
 gio/gfile.h                         |  9 +++++
 3 files changed, 66 insertions(+), 9 deletions(-)

commit 10d2a01c9a47098e91c6782121a820e4b16717ab
Author: Colin Walters <walters@verbum.org>
Date:   Sun Dec 1 18:52:37 2013 -0500

    gsubprocess: Annotate g_subprocess_newv()

    So that it can actually be invoked by bindings.

 gio/gsubprocess.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4aa6894e82b86246d8343feda0dcca79e7e36d1b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Dec 2 09:51:18 2013 +0800

    build/win32/vs9/gio.vcprojin: Use UNIX Line endings

    Be more consistent with the other project file templates, which will
    simplify future application of patches.

 build/win32/vs9/gio.vcprojin | 348
 +++++++++++++++++++++----------------------
 1 file changed, 174 insertions(+), 174 deletions(-)

commit a812e110bf990e890ad15697e369c295520d0f98
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 1 11:45:41 2013 -0500

    Install all test data

    The desktop-files directory contains a mimeapps.cache file
    that was not installed as data for installed tests, causing
    the file measure test to fail only in when installed.

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit d22e577a030d33d9e79f508f1e296ac1cccd21e5
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Dec 1 18:30:19 2013 +0200

    Updated Lithuanian translation

 po/lt.po | 1314
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 761 insertions(+), 553 deletions(-)

commit 72eae6edddf0d2200a64c1a0a68079ced5ff48a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 30 22:51:03 2013 -0500

    Improve file measure testcase

    Make the testcase compare the byte size to what is reported
    by du. Also add a test for the async api, and mak eit test
    the progress reporting callback.

 gio/tests/file.c | 166
 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 162 insertions(+), 4 deletions(-)

commit 9d4cd9c5ae307d40c96d8bc00f419f65795b8090
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 12 13:14:19 2013 +0000

    gtestdbus: Minor documentation fixes

    https://bugzilla.gnome.org/show_bug.cgi?id=712148

 gio/gtestdbus.c | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

commit 46c1aea0e7d77581ced8ebd064b5a886417f7371
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 12 13:10:33 2013 +0000

    gtestdbus: Fix non-const use of const variables

    The argv array should be declared as const.

    https://bugzilla.gnome.org/show_bug.cgi?id=712148

 gio/gtestdbus.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 598a9c5028eef0f84b8f3830524058f3ab5eb257
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 12 13:09:56 2013 +0000

    gtestdbus: Fix variable shadowing

    Shut up, GCC.

    https://bugzilla.gnome.org/show_bug.cgi?id=712148

 gio/gtestdbus.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b328cae6a975055ad83d99b248f366fe0973ff0e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 29 00:11:47 2013 -0500

    Add a test for g_file_measure_disk_usage

 gio/tests/file.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 7a90c201f7212a410ed871d7decab23e8b63d0e9
Author: Colin Walters <walters@verbum.org>
Date:   Fri Nov 29 04:12:26 2013 +0000

    tests/gsubprocess: Only compare basename of /tmp

    Otherwise, we break in Continuous where /tmp == /sysroot/tmp,
    and something in the execve() or the kernel will do realpath()
    for us.

 gio/tests/gsubprocess.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 4c3b009992f585ce00cafc8cd38941eb646df8e5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 21:58:48 2013 -0500

    Improve GType test coverage

    Add a test for g_type_class_get_instance_private_offset

 gobject/tests/private.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit d6af3c63c9a95aa86aebf422f14935059a769159
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 21:58:25 2013 -0500

    Add a test for g_atexit

 glib/tests/utils.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 2cafe37e19561ee1c10960d191dc776d70c19c7f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 21:57:47 2013 -0500

    Improve GApplication test coverage

    Exercise more of the GActionMap implementation.

 gio/tests/gapplication.c | 3 +++
 1 file changed, 3 insertions(+)

commit 5528a0f408c5fa29e174a9612da9b0dd136be81f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 21:56:48 2013 -0500

    Improve GNotification test coverage

 gio/tests/gnotification.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit 97a06b42527b3df1724c0bc61f654f651f3055e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 21:53:53 2013 -0500

    Improve GSimpleActionGroup test coverage

    Add a case that overwrites an existing action.

 gio/tests/actions.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 38afb17598c509f2960891b16deb3625ec64b1dc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 14:50:59 2013 -0500

    Generate overview images for coverage

    lcov has the options to generate overview images for each source
    file with the --frames option. Lets try this.

 glib.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dbe560ac0106571261b8e8d1ed0335df47c97e97
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 14:33:03 2013 -0500

    Improve GSettings test coverage

    This covers some more GSettingsSchemaKey api.

 gio/tests/gsettings.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

commit 555d40eeed7309d11717c872b2115f4d6a519a86
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 13:54:50 2013 -0500

    Improve search utils test coverage

    This adds test cases for the Turkish i.

 glib/tests/search-utils.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 00ab7790ce6057390c9c5eb25380051c15610637
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 13:54:17 2013 -0500

    Improve GNotification test coverage

 gio/tests/gnotification.c | 63
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

commit ec393a3009f89439373486c480a8592595b7c06c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 13:00:03 2013 -0500

    Improve GKeyFile test coverage

 glib/tests/keyfile.c | 65
 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 64 insertions(+), 1 deletion(-)

commit 804c4fe1d37fa9c1c32e858052f56012d73163ef
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 12:59:32 2013 -0500

    Improve test coverage for GHashTable

 glib/tests/hash.c | 79
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 78 insertions(+), 1 deletion(-)

commit a688b2a9c0192a8373407fb53636d0e2c6d3ecbd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 12:59:11 2013 -0500

    Improve test coverage for GSubprocess

 gio/tests/gsubprocess-testprog.c | 14 ++++++++++++++
 gio/tests/gsubprocess.c          | 30 ++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

commit f18138a9cf4b43c527636688ac87d03385c9664a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 12:58:44 2013 -0500

    Improve test coverage for gsettings

 gio/tests/gsettings.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

commit 9a02cfd9142b9692116f828c402b115592e2256b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 02:01:48 2013 -0500

    Test new gsettings api

    g_settings_get_user_value and g_settings_get_default_value
    are now covered.

 gio/tests/gsettings.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 49ea52e6a69d96bd3eb29ed26c6cb1de592d336f
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Nov 28 20:41:49 2013 +0000

    gio: Replace g_clear_object() with if()…g_object_unref()

    As per https://bugzilla.gnome.org/show_bug.cgi?id=113075#c39.

 gio/gcontenttype.c | 3 ++-
 gio/gdbusserver.c  | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 49fc6d5b7e0714e783565f083aaca1de598256c0
Author: djcb <djcb@djcbsoftware.nl>
Date:   Thu Nov 28 08:25:20 2013 -0500

    gdbus-codegen: Fix leak in property setter

    Comparing the code generated for the setter and other methods without
    (real) return value, I noticed that the setter does not unref the
    gvariant it gets.

    https://bugzilla.gnome.org/show_bug.cgi?id=719472

 gio/gdbus-2.0/codegen/codegen.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 7d82d6dc5b7de75672d4875b2a897b9a29836f32
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 01:36:29 2013 -0500

    Test g_subprocess_launcher_spawn

    The spawnv variant of this function already had a test, but
    spawn was not tested.

 gio/tests/gsubprocess.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7ef1eccd7e97baee34e3ff76f1e19cdefc1b9eb8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 01:34:52 2013 -0500

    Fix g_subprocess_launcher_spawn

    This function turns a varargs argument list into a string array,
    but forgets to NULL-terminate it. This function was not covered
    by unit tests...so it was broken.

 gio/gsubprocesslauncher.c | 2 ++
 1 file changed, 2 insertions(+)

commit 4a687ed7237143be0e6c38c970aef0603793fc71
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 01:12:26 2013 -0500

    Test some more GSubProcess api

    This covers g_subprocess_set_environ, g_subprocess_setenv,
    g_subprocess_getenv, and g_subprocess_set_flags.

 gio/tests/gsubprocess-testprog.c | 18 +++++++++++++++++
 gio/tests/gsubprocess.c          | 42
 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+)

commit bd932aa9f8605a3823bc32428cccb334dc1f5ee0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 28 00:19:19 2013 -0500

    Add a GAppInfoMonitor test

    The test reveals that there's something fishy with this monitor.
    One has to call g_app_info_get_all() for it to start working,
    and then it only works once.

 gio/tests/Makefile.am  |   1 +
 gio/tests/appmonitor.c | 114
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 115 insertions(+)

commit 36a42ab0a50c2825a8111007ff59ff2da14ecff9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 27 22:48:06 2013 -0500

    Add tests for new GAction api

    g_action_name_is_valid and g_action_parse_detailed_name are
    now covered.

 gio/tests/actions.c | 59
 +++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 41 insertions(+), 18 deletions(-)

commit 1e3fe29fc3707e7844fce8e3761c3f12090d9158
Author: Manuel Bachmann <tarnyko@tarnyko.net>
Date:   Wed Nov 27 23:18:54 2013 +0100

    Fix g_win32_run_session_bus hook for MinGW-w64

    On win64, g_win32_run_session_bus gets exported with this
    precise name, with MinGW as well as MSVC.

    Fixes annoying "Entry not found" UI warning.

 gio/gdbusaddress.c | 2 ++
 1 file changed, 2 insertions(+)

commit 43d19dae11c5d7a62ab11d64feaa43129a24351b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 27 12:41:33 2013 -0500

    gsettings tool: stop using GMainLoop

    Just iterate directly.

 gio/gsettings-tool.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f33a7f9ef2a14ddc8397477920e013f0987df0a4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 27 12:40:27 2013 -0500

    gsettings tool: fix some sed damage

    The previous patch to simplify the GSettings commandline tool
    by making
    more use of global variables went a bit too far and broke 'gsettings
    monitor' when used without a specific key.

    Fix that up again.

 gio/gsettings-tool.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit e53caad4f139e2df0b34dae5864576796dda514e
Author: Dan Winship <danw@gnome.org>
Date:   Wed Nov 27 10:57:43 2013 -0500

    Fix a warning about _g_log_abort()

    G_BREAKPOINT is not noreturn, so make it so that we abort() if it
    returns, to make _g_log_abort() be properly noreturn again.

 glib/gmessages.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 695070b52e1c5b849993b0a1bb24e23d59434059
Author: Dan Winship <danw@gnome.org>
Date:   Wed Nov 27 10:15:44 2013 -0500

    Fix the gtestutils core dump prevention again

    The previous patch was preventing core dumps on failed assertions, but
    not on g_error()s.

 glib/gmessages.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

commit 1300108e0c50e70d5414c195649ad41419074e1a
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Wed Nov 27 14:32:05 2013 +0100

    GDBusObjectManagerClient: keep the manager alive while firing signals

    Handlers for the signals we emit might unref the object manager. Make
    sure we keep it alive until we are done with it.

    https://bugzilla.gnome.org/show_bug.cgi?id=719402

 gio/gdbusobjectmanagerclient.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 30e1ab326296088fd83c046e83b0f0a0b89b9489
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 27 10:13:10 2013 -0500

    tests: move /param/implement to -m slow

    Take this test out of 'make check'.  It's causing problems for a
    lot of people
    due to fact that it's essentially a forkbomb.  It's causing failures
    for Debian
    on ARM and it's DoSing coredumps to system crash collectors.

    The conditional only covers registration of the master, not the
    subprocess parts.  This is because g_test_slow() always return
    FALSE in
    the subprocesses, so they would fail to run if we didn't register them
    unconditionally.

 gobject/tests/param.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit aa337d36741b17e53470fd8b08e672fa56ca59b1
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Nov 25 13:26:45 2013 +0000

    gbytes: Clarify the nullability of GBytes->data

    Clarify that it is permitted for a GBytes to contain a NULL data
    pointer, as long as its size is 0.

    https://bugzilla.gnome.org/show_bug.cgi?id=715164

 glib/gbytes.c | 38 ++++++++++++++++++++++++++------------
 1 file changed, 26 insertions(+), 12 deletions(-)

commit 33dd6d12d7478df22b7759f0ed26f81187ad2a54
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Nov 25 14:06:01 2013 +0000

    gfileutils: Fix a potential integer overflow

    When calculating the array sizes in get_contents_stdio(), there is a
    possibility of overflow for very large files. Rearrange the overflow
    checks to avoid this.

    The code already handled some possibilities of files being too
    large, so
    no new GError has been added to handle this; the existing
    G_FILE_ERROR_FAILED is re-used.

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=715164

 glib/gfileutils.c | 37 ++++++++++++++++++++++---------------
 1 file changed, 22 insertions(+), 15 deletions(-)

commit c1d5db618688a78aa897d269859a1bc6413a9e55
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Nov 25 13:50:20 2013 +0000

    gvariant: Fix a potential memcpy(NULL) call

    This probably won’t crash, as it can only happen if (size == 0), but
    add a check to be safe, and to shut up the static analyser.

    This case can be reached with the following call:
        gvs_read_unaligned_le(NULL, 0)
    which can be called from:
        gvs_tuple_get_child(value, index_)
    with (value.data == NULL) and (value.size == 0).

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=715164

 glib/gvariant-serialiser.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit c9344fd5135474471dc34e29141a186454e7473e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:21:37 2013 +0000

    gio/tests: Add a dynamic type check assertion

    This shuts up a static analysis false positive, and adds some extra
    checking.

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/tests/task.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 32118951ea827811d3885568916de89a0e5d1f4e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:20:01 2013 +0000

    gio/tests: Add a non-NULL assertion to help static analysis

    The static analyser (correctly) considers a type check to fail if the
    variable is NULL. In this case, the address must be non-NULL as
    no error
    was thrown by g_socket_connection_get_remote_address(), but the static
    analyser doesn’t know this.

    Add a non-NULL assertion anyway, both to shut the analyser up, and
    because it’s good extra testing.

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/tests/proxy-test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c9ccc2af9157b99651507eb078e6cdd8d31d3bd6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:18:35 2013 +0000

    gio/tests: Add non-NULL assertions to help static analysis

    These prevent some false positives from the static analyser which are
    caused by it not inspecting the invariants of
    g_subprocess_communicate[_utf8]_finish() (i.e. that stdout and
    stdout_str will always be set unless an error was returned).

    They’re also good testing anyway.

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/tests/gsubprocess.c | 2 ++
 1 file changed, 2 insertions(+)

commit fe004445a41d69075fcb542219026d4b8fc343a9
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:18:01 2013 +0000

    gio/tests: Fix a g_return_val_if_fail() in a void function

    Should be g_return_if_fail() instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/tests/gnotification-server.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 73e6b900d431f8ef948aa134e45107bd326e8004
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:16:57 2013 +0000

    gunixmounts: Fix a potential strcmp(NULL) call

    mntent->mnt_fsname may be NULL at this point; if so, fall to the
    second
    branch and set mount_entry->device_path = NULL.

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/gunixmounts.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8b9e8dc53b1efba01d760cde9d2cb01fdee51cf7
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:12:48 2013 +0000

    gcontenttype: Fix a potential NULL pointer dereference

    If the initial part of the header (‘MIME-TreeMagic’) is valid,
    but the
    following line does not start with ‘[’ (i.e. is not a valid
    section
    line), insert_matchlet() will be called with a NULL match pointer, and
    will crash with a NULL pointer dereference.

    Fix this by bailing out if a valid section line isn’t encountered
    before
    the first insert_matchlet() call (i.e. between the header line and the
    first data line).

    Note that this has not been tested against a real treemagic file; the
    fix is purely theoretical.

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/gcontenttype.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit aa28ced44e0460fb01406aa17996d863ffe3cbf6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:11:21 2013 +0000

    gunixfdlist: Fix a potential NULL pointer dereference

    In the case that (n_fds == 0 && fds == NULL), memcpy() would be called
    against a NULL src pointer. Even though the number of bytes to copy is
    0, avoid the possibility of a crash by only calling if fds is
    non-NULL.

    Found by scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/gunixfdlist.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 956c58c7f202009d769aefc9bc8adaedccec074d
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:09:58 2013 +0000

    gsocketaddress: Add an assertion to help static analysis

    The static analyser will check dynamic type assertions and assume that
    if they fail, the variable can either have the wrong type, or be NULL
    (which is correct). The analyser doesn’t know that other
    constraints in
    the API ensure the variable is non-NULL.

    Add a non-null assertion to help the static analyser and shut it up in
    this case.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/gsocketaddress.c | 2 ++
 1 file changed, 2 insertions(+)

commit c729f416fb07e723a8404e28241a8096ac438838
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:08:50 2013 +0000

    gdbusserver: Fix a potential g_object_unref(NULL) call

    This can happen if the hash table lookup for ‘noncefile’ fails,
    and
    hence the first ‘goto out’ is hit, at which point resolver
    is still
    NULL.

    Found with scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/gdbusserver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 44af12aba114c82e04fa78eb2ad9aaf8aa5137b2
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 26 11:07:45 2013 +0000

    gcontenttype: Fix a potential g_object_unref(NULL) call

    This can happen if the g_file_query_info() call fails, returning NULL.

    Found with scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=113075

 gio/gcontenttype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9322bf9abe2e61718b2b1c57aa09b18946a2d35
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Nov 15 13:00:55 2013 +0800

    gio/tests/memory-output-stream.c: Avoid an uninitialized variable

    Be a little bit more careful in regards to initializing a primitive
    type
    variable before passing it by reference, as it could have random stuff
    in the variable's address depending on the CRT, such as MSVCR110.DLL,
    causing random, invalid stuff being written in that address.

    This will fix this test when built with Visual Studio 2012.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 gio/tests/memory-output-stream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 29b66e1458113e1786209f5784f919082d22c618
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 26 18:57:04 2013 +0800

    glib/tests/enviroment.c: Fix running on Windows

    Don't attempt to insert environmental variables in the hash table
    during
    the test listenv that is an empty string, as GetEnvironmentStringsW()
    also
    returns special enviroment variables which have empty strings as their
    variable names, at least on Windows 7 and 8.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 glib/tests/environment.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 32cfcc87400af61261ecdac29b38962c1de876f1
Author: Michael Natterer <mitch@gimp.org>
Date:   Tue Nov 26 23:00:52 2013 +0100

    gio: remove precondition checks from g_output_stream_printf()

    because we call g_output_stream_vprintf() which does exactly the same
    checks.

 gio/goutputstream.c | 5 -----
 1 file changed, 5 deletions(-)

commit c9cfa7d1d55291503c8adb8a1cca24781e4a8da4
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Oct 31 23:03:58 2013 +0100

    gthread-posix: Don't use gslice allocated GRecMutex

    This leads to problems during cleanup, and seems strange
    to have locks defined in terms of things that need locking.

    https://bugzilla.gnome.org/show_bug.cgi?id=711753

 glib/gthread-posix.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit d86396f21fa164bd3cb5efc111ef50bd7065beec
Author: Michael Natterer <mitch@gimp.org>
Date:   Mon Nov 25 23:26:21 2013 +0100

    gio: add g_output_string_[v]printf()

    which are useful for porting FILE* based output code.

 gio/goutputstream.c | 104
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/goutputstream.h |  14 +++++++
 2 files changed, 118 insertions(+)

commit a997cfe90fae92d13bd1bf7e7f45f2a2381c9f11
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 26 13:16:15 2013 +0800

    gio/gdbusauthmechanismsha1.c: Move G_OS_* checks down

    The G_OS_* checks are only valid if the GLib headers have been
    previously
    included, so that io.h can be included properly on Windows

 gio/gdbusauthmechanismsha1.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 03bf43e14aa3d5c22f9365a6c6137e3bb1f67b02
Author: Colin Walters <walters@verbum.org>
Date:   Mon Nov 25 18:39:46 2013 -0500

    gsubprocess: Document g_subprocess_get_identifier()

 gio/gsubprocess.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit ed1df0ea59fcb316827d709642d023caeebc5078
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Nov 25 17:27:43 2013 +0100

    Updated Spanish translation

 po/es.po | 789
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 379 insertions(+), 410 deletions(-)

commit 299bcbfa41db0093bc876c1095f0aab248e3b771
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Nov 25 13:35:53 2013 +0000

    gsubprocess: Fix potential strlen(NULL) calls

    Also clarify the nullability of stdin_buf arguments in GSubprocess
    communication calls.

    Found with scan-build.

    https://bugzilla.gnome.org/show_bug.cgi?id=715164

 gio/gsubprocess.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

commit d6a19d2e76654570c056ef328c6fb4fdda939272
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Nov 6 12:21:58 2013 +0100

    utf8: report allocation error

    Make some of the conversion functions a bit more friendly to
    allocation
    failure.

    Even though the glib policy is to abort() on allocation failure by
    default, it can be quite helpful to return an allocation error for
    functions already providing a GError.

    I needed a safer g_utf16_to_utf8() to solve crash on big clipboard
    operations with win32, related to rhbz#1017250 (and coming gdk
    handling
    bug).

    https://bugzilla.gnome.org/show_bug.cgi?id=711546

 glib/gconvert.h |  4 +++-
 glib/gutf8.c    | 47 +++++++++++++++++++++++++++++++++++------------
 2 files changed, 38 insertions(+), 13 deletions(-)

commit 0dbe5c43df6d3eb32abe766ed08da525a8c8bfa4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 25 15:26:25 2013 +0800

    msvc_recommended_pragmas.h: Treat C4819 warnings as errors

    Warning C4819 in Visual Studio builds indicates an issue of Visual
    Studio
    2005 and later running on East Asian locales of Windows, which likely
    results in broken builds of GLib, Pango, GTK+, and possibly other
    GNOME
    projects such as Cogl and Clutter (and is also an issue when
    building other
    projects like QT and Firefox).

    Treat this warning as an error as a result when building GLib-based
    items
    on Visual Studio, and tell people how to remedy this issue correctly.

 README.win32               | 15 +++++++++++++++
 msvc_recommended_pragmas.h |  2 ++
 2 files changed, 17 insertions(+)

commit 3d70db075005a94d7fd18ac8a8dbd0abb82bff9e
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 23 12:06:05 2013 -0500

    Reorganize the "don't dump core from test subprocesses" code.

    g_test_init() was calling _g_messages_set_exit_on_fatal() from
    subprocesses, to make fatal log messages call _exit() rather than
    abort(), but the function name is sort of confusing, and we don't
    really need it anyway, since g_log() can just call g_test_subprocess()
    instead and decide for itself.

    Likewise, update g_assertion_message() to do the check itself, rather
    than calling into gmessages to do it, and fix
    g_assertion_message_expr() to also check whether it should exit or
    abort. (Previously it always called abort(), although this didn't
    actually matter since that was dead code until
    test_nonfatal_assertions was added.)

    https://bugzilla.gnome.org/show_bug.cgi?id=711800

 glib/Makefile.am         |  1 -
 glib/gmessages-private.h | 35 -----------------------------------
 glib/gmessages.c         | 34 +++++++++++++++-------------------
 glib/gtestutils.c        | 25 ++++++++++++++++++++-----
 4 files changed, 35 insertions(+), 60 deletions(-)

commit 97fac936708863a52d46cfb0ec3259e1b2c03d29
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 10 15:27:26 2013 -0500

    gtestutils: add g_assert_nonnull() to go with g_assert_null()

    https://bugzilla.gnome.org/show_bug.cgi?id=711800

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gtestutils.c                     | 15 +++++++++++++++
 glib/gtestutils.h                     |  6 +++++-
 3 files changed, 21 insertions(+), 1 deletion(-)

commit f4c30feb9598e09d1d32805bad96e216c1a21786
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 10 15:44:06 2013 -0500

    gtestutils: fix g_test_set_nonfatal_assertions()

    g_test_set_nonfatal_assertions() was a no-op, because
    g_assertion_message() wasn't actually checking the
    test_nonfatal_assertions flag. Fix that and add a test.

    Also, g_test_set_nonfatal_assertions() has to set test_mode_fatal to
    FALSE as well, or else a failed assertion will cause the test program
    to abort at the end of the failed test.

    Also, belatedly add this and the new g_assert_* methods to the docs.

    https://bugzilla.gnome.org/show_bug.cgi?id=711800

 docs/reference/glib/glib-sections.txt |  5 +++++
 glib/gtestutils.c                     | 19 +++++++++++++++----
 glib/tests/testing.c                  | 22 ++++++++++++++++++++++
 3 files changed, 42 insertions(+), 4 deletions(-)

commit 910191597a6c2e5d5d460e9ce9efb4f47d9cc63c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 24 01:22:44 2013 -0500

    Add boolean returns to some hash functions

    The functions g_hash_table_insert, g_hash_table_replace
    and g_hash_table_add now return TRUE if they inserted a
    new key/value pair.

    https://bugzilla.gnome.org/show_bug.cgi?id=697828

 glib/ghash.c      | 34 +++++++++++++++++++++++-----------
 glib/ghash.h      |  6 +++---
 glib/tests/hash.c | 10 ++++++++--
 3 files changed, 34 insertions(+), 16 deletions(-)

commit 616af3b80e62e283a1d8edba6b5da03f07a6ef0e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 24 00:56:26 2013 -0500

    Avoid a compiler warning

 glib/garray.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1fb4b3b2bf30b6a74c1b161a0884a424f7211e33
Author: Manuel Bachmann <tarnyko@tarnyko.net>
Date:   Sun Nov 24 04:51:21 2013 +0100

    Fix G_OS #ifdefs in gbusserver.c

    G_OS #ifdefs are only available once glibconfig.h has been
    evaluated ; that is, after including glib headers.
    Move this block down so it gets correctly evaluated.

 gio/gdbusserver.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit 5efc038e0dc77459ee5258b76640da423ded458e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 22:24:00 2013 -0500

    Fix up appinfo test

    Make it possible to skip the terminal-launching test simply
    by setting DISPLAY= . Previously, you had to unset DISPLAY,
    which is a little more cumbersome.

    https://bugzilla.gnome.org/show_bug.cgi?id=711178

 gio/tests/appinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0fc0754e655a0628c4b25da4fe2ddf261208deb3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 22:21:29 2013 -0500

    Fix up the appinfo test

    One testcase was launching appinfo-test from a GAppInfo that
    does not have a filename. In this case, the G_LAUNCHED_DESKTOP_FILE
    envvar is not exported. Make appinfo-test deal with that, without
    spewing warnings.

    https://bugzilla.gnome.org/show_bug.cgi?id=711178

 gio/tests/appinfo-test.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

commit 0250d185b1780691c02d746d0732ab94aeabd1ed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 21:28:40 2013 -0500

    Fix warnings in a the actions test

    The actions test tests the GSimpleActionGroup API. Maybe this
    should be moved to use GActionMap, but for now, just disable
    the deprecations.

    There was also one test that wasn't actually hooked up, so
    do that as well.

 gio/tests/actions.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit dedc990e28c0755b33ccbaee0c19d22f430563e6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 21:10:06 2013 -0500

    Fix array API inconsistency

    g_array_remove_range and g_byte_array_remove_range return
    a pointer to the array, g_ptr_array_remove_range returns
    void. Since it is pretty harmless, make it return the array
    too.

    https://bugzilla.gnome.org/show_bug.cgi?id=159528

 glib/garray.c | 18 +++++++++++-------
 glib/garray.h |  2 +-
 2 files changed, 12 insertions(+), 8 deletions(-)

commit 698393f15d32c6386588cf37b3aea8342ae45bf7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 21:09:32 2013 -0500

    Fix the stack direction check again

    Turns out I got it wrong.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 341c0b1988542f88f6c506145fda2ebd694f3331
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 20:24:49 2013 -0500

    Improve stack direction detection

    When the function in the test program is inlined, all bets are
    off whether the detection will work correctly or not. Make it
    harder for the compiler to play games on us by making the
    function recursive.

    https://bugzilla.gnome.org/show_bug.cgi?id=307947

 configure.ac | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit df71ecfc2dcefdc05f18dda5e6108f75ecbfe491
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 20:12:13 2013 -0500

    Fix the configure check for growing stack

    The check was getting the direction wrong, as proven by the
    just committed signal invocation hint test.

    https://bugzilla.gnome.org/show_bug.cgi?id=711871

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e81e33b35d389f14858015d759c9a3f416420c2d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 20:06:07 2013 -0500

    Add a test for g_signal_get_invocation_hint

    This is the sole piece of code in GLib where we make use of the
    stack growing direction. And this test proves that we have been
    getting the direction wrong all these years...

 gobject/tests/signals.c | 47
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

commit bd8fb391aa71a7693302dfe4f27ca10bab82c68a
Author: Christian Persch <chpe@gnome.org>
Date:   Thu May 24 19:18:44 2012 +0200

    application: Use printerr for runtime errors

    g_critical can be fatal (with --g-fatal-warnings, or some env
    var set),
    so don't use it to print out runtime errors.

    Bug #676761.

 gio/gapplication.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e45372895dd31033726c0ddfa1f7ff55a52d907c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 18:15:04 2013 -0500

    Fix desktop-app-info test

    The recent change to the search scoring algorithm made
    nautilus and konqueror switch places in the search results.
    Update the test to reflect that.

 gio/tests/desktop-app-info.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit baf92d09d69de0d9f9b2d0f77fc62c21fdef4da8
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:18:34 2013 +0100

    gtestdbus: Properly close server connections

    Otherwise g_test_dbus_down() following a g_test_dbus_stop()
    will hang until it times out.

    https://bugzilla.gnome.org/show_bug.cgi?id=711807

 gio/gtestdbus.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit f16045c9cf221b800766fc0813d12f2a83636468
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 16:58:51 2013 -0500

    Add a test for notify emission ordering

    This tests the ordering that was just documented.
    See

    https://bugzilla.gnome.org/show_bug.cgi?id=607016

 gobject/tests/properties.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit 429010b15c0345d38b8dd711ccc1f45b2bbdbab4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 16:44:31 2013 -0500

    Document details of GObject::notify

    The signals queued while notify is frozen are emitted in
    reverse order, while omitting duplicates. The lack of documentation
    for this was pointed out in

    https://bugzilla.gnome.org/show_bug.cgi?id=607016

 gobject/gobject.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 5a5aaa203ac111add979abeb128ccc582b0cdc5c
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 09:25:02 2013 +0100

    gdbus-connection: Fix race condition in test

    The test was expecting that the spawned process wouldn't start
    up before the NameOwnerChanged signal was subscribed.

    https://bugzilla.gnome.org/show_bug.cgi?id=711805

 gio/tests/gdbus-connection.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 65da592249b3eff7fbb5edb31d94e028cc3c43d0
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Tue Oct 29 00:01:38 2013 -0700

    Add basic test for the GNotification gtk backend

    https://bugzilla.gnome.org/show_bug.cgi?id=711051

 gio/tests/.gitignore             |   1 +
 gio/tests/Makefile.am            |   2 +
 gio/tests/gnotification-server.c | 339
 +++++++++++++++++++++++++++++++++++++++
 gio/tests/gnotification-server.h |  46 ++++++
 gio/tests/gnotification.c        | 163 +++++++++++++++++++
 5 files changed, 551 insertions(+)

commit 797959f05a26409fe143e54cc7d706ec5fa3d713
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:17:49 2013 +0100

    gtestdbus: Don't destroy GSource twice

    https://bugzilla.gnome.org/show_bug.cgi?id=711806

 gio/gtestdbus.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 047d9ce6f2ae840bacb3e4cf42d128d9d247b96e
Author: Gergely POLONKAI <gergely@polonkai.eu>
Date:   Wed Sep 18 11:01:00 2013 +0000

    GObject: Introspection annotations for enums

    This commit adds a few missing annotations to g_enum and
    g_flags functions.

    https://bugzilla.gnome.org/show_bug.cgi?id=708274

 gobject/genums.c | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

commit aef0adc0dd6e53c28aa3243ee97a202257a4e195
Author: Bastien Nocera <hadess@hadess.net>
Date:   Thu Nov 14 17:39:06 2013 +0100

    GSettings: More docs for deprecated _list_schemas()

    Most _list_schemas() uses were to check for the availability
    of a particular schema. g_settings_schema_source_lookup() is
    a better way to do this.

    https://bugzilla.gnome.org/show_bug.cgi?id=712315

 gio/gsettingsschema.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 330905587860ee83a1931ad3b6794cdfde35f582
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 13:16:06 2013 -0500

    GVariantBuilder: small documentation fixes

    The examples for g_variant_builder_add and
    g_variant_builder_add_parsed were leaking a heap-allocated
    builder. Fix that by converting the examples to stack
    allocation.

    https://bugzilla.gnome.org/show_bug.cgi?id=697585
    https://bugzilla.gnome.org/show_bug.cgi?id=703522

 glib/gvariant-parser.c | 18 +++++++++---------
 glib/gvariant.c        | 16 ++++++++--------
 2 files changed, 17 insertions(+), 17 deletions(-)

commit 4382e8b876a3991e1be2827be76630e1b67b8e03
Author: Andrew Walton <awalton@vmware.com>
Date:   Tue Nov 12 13:04:49 2013 -0800

    CLOEXEC fix for older FreeBSDs and OS X.

    Some older POSIX-flavored operating systems may not have adopted
    O_CLOEXEC yet.

    See https://bugzilla.gnome.org/show_bug.cgi?id=712136.

 gio/gsubprocess.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit f969f1fc25248d4f53c78568481205b21ef1446b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 10:49:00 2013 -0500

    Small documentation clarification

    https://bugzilla.gnome.org/show_bug.cgi?id=671557

 glib/gkeyfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e3babb368742f6f8b69ba2c8a2b9a95d6142e8ff
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Nov 8 14:26:33 2013 +0100

    giomodule: Allow overriding source directory gio modules are
    loaded from

    When testing (and valgrinding) we need to have a known set of modules
    loaded.

    https://bugzilla.gnome.org/show_bug.cgi?id=711801

 docs/reference/gio/overview.xml | 12 +++++++++++-
 gio/giomodule.c                 |  7 ++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

commit be231c6be03586f9a428f9ae5c9ae166b2747b75
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 10 13:27:15 2013 -0500

    glib-tap.mk: fix to actually use the TAP driver

    The Makefile rules in glib-tap.mk were copied from an example that
    assumed that all the test programs had names ending in ".test", so
    they didn't actually have any effect for us and resulted in us still
    using the standard automake test driver. Fix this so we actually do
    use TAP now.

    https://bugzilla.gnome.org/show_bug.cgi?id=711796

 Makefile.am   |   1 +
 glib-tap.mk   |   2 +-
 tap-driver.sh | 652
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 654 insertions(+), 1 deletion(-)

commit 8f5b40c04672a150ed6df27d9f83aba8ec8ea29d
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 10 13:26:01 2013 -0500

    gio/tests: fix output of gdbus-proxy-threads and gdbus-threading

    Make gdbus-proxy-threads and gdbus-threading print a newline at the
    end of their progress strings, to avoid messing up their TAP-format
    output.

    https://bugzilla.gnome.org/show_bug.cgi?id=711796

 gio/tests/gdbus-proxy-threads.c |  5 ++++-
 gio/tests/gdbus-threading.c     | 12 +++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

commit c762a3a3f60a984edb721dd8879a52bffd134bd4
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 10 13:25:45 2013 -0500

    gio/tests: basic-application is a helper program, not a test

    https://bugzilla.gnome.org/show_bug.cgi?id=711796

 gio/tests/Makefile.am | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 41eacde63071d52bab52ee721efb12a279b14198
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 10 13:23:15 2013 -0500

    gtestutils: add "options" to g_test_init(), make option-argv0
    use gtester

    Declare that the previously-unused "..." argument to g_test_init() is
    actually a NULL-terminated list of strings indicating testing options,
    and add an option "no_g_set_prgname", which keeps g_test_init() from
    calling g_set_prgname(). Then we can port glib/tests/option-argv0 to
    use gtester, by passing that option.

    https://bugzilla.gnome.org/show_bug.cgi?id=711796

 glib/gtestutils.c         | 18 +++++++++++++-----
 glib/gtestutils.h         |  2 +-
 glib/tests/option-argv0.c | 11 ++++-------
 3 files changed, 18 insertions(+), 13 deletions(-)

commit f733075cd13504fa1977a433cbad463f8900828e
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 10 13:22:46 2013 -0500

    glib/tests/include: port to gtester

    https://bugzilla.gnome.org/show_bug.cgi?id=711796

 glib/tests/include.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit a9d93ca1dfbee4d4b6bb0880493be5ed6efac62c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 23 00:22:09 2013 -0500

    Add some mainloop instrumentation

    Add trace points around adding, removing and dispatching of
    sources.

    https://bugzilla.gnome.org/show_bug.cgi?id=710741

 glib/glib.stp.in   | 22 ++++++++++++++++++++++
 glib/glib_probes.d |  4 ++++
 glib/gmain.c       |  8 ++++++++
 3 files changed, 34 insertions(+)

commit 91dd70cf1715f64ff8dcd1ce2f641a905988f275
Author: Dan Winship <danw@gnome.org>
Date:   Wed Nov 20 09:41:13 2013 -0500

    building: Document C90 and POSIX requirements

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 INSTALL.in                       |  4 ++++
 docs/reference/glib/building.xml | 15 +++++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)

commit 9d7235dea7670a059cb4e653f6f9fee63560277f
Author: Dan Winship <danw@gnome.org>
Date:   Wed Nov 20 09:31:20 2013 -0500

    building: belated docs update: GNU make is required, not recommended

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 INSTALL.in                       |  2 +-
 docs/reference/glib/building.xml | 14 +++++++-------
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 158dde050702f83a058962d14156a02234fc9685
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 19 13:04:00 2013 -0400

    Replace #ifdef HAVE_UNISTD_H checks with #ifdef G_OS_UNIX

    In Windows development environments that have it, <unistd.h> is mostly
    just a wrapper around several other native headers (in particular,
    <io.h>, which contains read(), close(), etc, and <process.h>, which
    contains getpid()). But given that some Windows dev environments don't
    have <unistd.h>, everything that uses those functions on Windows
    already needed to include the correct Windows header as well, and so
    there is never any point to including <unistd.h> on Windows.

    Also, remove some <unistd.h> includes (and a few others) that were
    unnecessary even on unix.

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 config.h.win32.in                |  7 -------
 configure.ac                     | 10 +++-------
 gio/gdbusauthmechanismexternal.c |  4 ----
 gio/gdbusauthmechanismsha1.c     |  4 ++--
 gio/gdbusconnection.c            |  4 ----
 gio/gdbusmessage.c               |  3 ---
 gio/gdbusprivate.c               |  3 ---
 gio/gdbusserver.c                |  4 ++--
 gio/gdummyfile.c                 |  3 ---
 gio/glib-compile-resources.c     |  7 +++----
 gio/glib-compile-schemas.c       |  4 ----
 gio/glocalfile.c                 |  2 --
 gio/glocalfileinfo.c             |  8 +++-----
 gio/glocalfileinputstream.c      |  4 +---
 gio/glocalfileoutputstream.c     |  4 +---
 gio/gsimpleasyncresult.c         |  7 -------
 gio/gtestdbus.c                  |  2 +-
 glib/gbookmarkfile.c             |  5 -----
 glib/gdatetime.c                 |  4 ----
 glib/genviron.c                  |  3 ---
 glib/gfileutils.c                |  6 +++---
 glib/giochannel.c                |  4 ----
 glib/gkeyfile.c                  |  2 +-
 glib/gmain.c                     |  4 ++--
 glib/gmappedfile.c               |  7 ++++---
 glib/gmessages.c                 |  7 ++++---
 glib/gpoll.c                     |  4 ++--
 glib/grand.c                     |  8 ++++----
 glib/gscanner.c                  |  8 ++++----
 glib/gslice.c                    |  2 +-
 glib/gstdio.c                    |  2 +-
 glib/gstring.c                   |  3 ---
 glib/gtestutils.c                |  4 +---
 glib/gthread.c                   |  4 ++--
 glib/gtimer.c                    |  4 ++--
 glib/gutils.c                    |  4 +---
 glib/tests/base64.c              |  3 ---
 glib/tests/checksum.c            |  3 ---
 glib/tests/hmac.c                |  3 ---
 glib/tests/mappedfile.c          | 10 +++++++---
 glib/tests/node.c                |  4 ----
 glib/tests/thread.c              |  2 +-
 gmodule/gmodule.c                |  2 +-
 gobject/glib-genmarshal.c        |  6 +++---
 gobject/gobject-query.c          |  3 ---
 tests/env-test.c                 |  4 ----
 tests/file-test.c                |  5 ++---
 tests/gio-test.c                 |  8 ++++----
 48 files changed, 66 insertions(+), 152 deletions(-)

commit 3981cddbf8659458be9f863151314cd0fd1682bf
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 19 13:03:59 2013 -0400

    Require POSIX.1 (1990) compliance on unix

    Assume unix platforms support the original POSIX.1 standard.
    Specifically, assume that if G_OS_UNIX, then we have chown(),
    getcwd(), getgrgid(), getpwuid(), link(), <grp.h>, <pwd.h>,
    <sys/types.h>, <sys/uio.h>, <sys/wait.h>, and <unistd.h>.

    Additionally, since all versions of Windows that we care about also
    have <sys/types.h>, we can remove HAVE_SYS_TYPES_H checks everywhere.

    Also remove one include of <sys/times.h>, and the corresponding
    configure check, since the include is not currently needed (and may
    always have just been a typo for <sys/time.h>).

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 config.h.win32.in            | 33 ---------------------------------
 configure.ac                 | 34 ++++++++++++++--------------------
 gio/gfile.c                  |  3 ---
 gio/glocalfile.c             |  2 +-
 gio/glocalfileinfo.c         | 16 +++++++---------
 gio/glocalfileinfo.h         |  2 --
 gio/glocalfileoutputstream.c |  2 +-
 gio/glocalvfs.c              |  4 ++--
 gio/gsocket.c                |  2 +-
 glib/gbacktrace.c            | 15 +++++----------
 glib/gfileutils.c            |  6 ------
 glib/gthread-posix.c         |  9 +++------
 glib/gutils.c                |  9 ++++-----
 13 files changed, 38 insertions(+), 99 deletions(-)

commit 6e4a7fca431f53fdfd89afbe956212229cf52200
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 19 13:03:58 2013 -0400

    Require C90 compliance

    Assume all supported platforms implement C90, and therefore they
    (correctly) implement atexit(), memmove(), setlocale(), strerror(),
    and vprintf(), and have <float.h> and <limits.h>.

    (Also remove the configure check testing that "do ... while (0)" works
    correctly; the non-do/while-based version of G_STMT_START and
    G_STMT_END was removed years ago, but the check remained. Also, remove
    some checks that configure.ac claimed were needed for libcharset, but
    aren't actually used.)

    Note that removing the g_memmove() function is not an ABI break even
    on systems where g_memmove() was previously not a macro, because it
    was never marked GLIB_AVAILABLE_IN_ALL or listed in glib.symbols, so
    it would have been glib-internal since 2004.

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 config.h.win32.in           |  33 ----------
 configure.ac                | 154
 ++++++++------------------------------------
 gio/gbufferedinputstream.c  |   2 +-
 gio/gbufferedoutputstream.c |   2 +-
 glib/garray.c               |  32 ++++-----
 glib/gbsearcharray.h        |   4 +-
 glib/gfileutils.c           |   2 +-
 glib/gslice.c               |  14 ++--
 glib/gstrfuncs.c            |  15 +----
 glib/gstring.c              |  10 +--
 glib/gutils.c               |  56 ++--------------
 glib/gutils.h               |  13 +---
 glib/pcre/Makefile.am       |   1 +
 glib/tests/test-printf.c    |   2 -
 gobject/gtype.c             |  18 +++---
 gobject/gvaluearray.c       |   8 +--
 16 files changed, 80 insertions(+), 286 deletions(-)

commit 7f5b2901cf5bea290c11133dad16850176178dad
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 19 13:03:56 2013 -0400

    Remove alleged support for last-millennium Unixes

    Remove workarounds for NeXTStep (last released in 1995), SunOS (1994),
    HP-UX 9.x (1992) and 10.x (1995), OSF/1 / Digital UNIX / Tru64 UNIX
    4.x (1999), and AIX 4.x (1999).

    HP-UX 11 implements dlopen(), so dropping support for earlier versions
    also lets us remove the HP-UX-specific gmodule-dld.

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 configure.ac                |  66 ++----------------
 glib/gfileutils.c           |   5 +-
 glib/glibconfig.h.win32.in  |   6 +-
 glib/gpoll.c                |   6 --
 glib/gutils.c               |   9 +--
 gmodule/Makefile.am         |   1 -
 gmodule/gmodule-dld.c       | 163
 --------------------------------------------
 gmodule/gmodule.c           |  12 ++--
 gmodule/gmoduleconf.h.in    |   3 +-
 gmodule/gmoduleconf.h.win32 |   1 -
 m4macros/glib-2.0.m4        |   5 +-
 11 files changed, 15 insertions(+), 262 deletions(-)

commit 51a917bc1656368e8d94ea7ea3b33d3cc06daa82
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 19 13:03:55 2013 -0400

    Remove alleged support for BeOS

    Since the initial addition of BeOS support in 1999, there has only
    been one update to it (in 2005, and it wasn't even very big). GLib is
    known to not currently build on Haiku (or presumably actual BeOS)
    without additional patching, and the fact that there isn't a single
    G_OS_BEOS check in gio/ is suspicious.

    Additionally, other than the GModule implementation, all of the
    existing G_OS_BEOS checks are either (a) "G_OS_UNIX || G_OS_BEOS", or
    (b) random minor POSIXy tweaks (include this header file rather than
    that one, etc), suggesting that if we were going to support Haiku, it
    would probably be simpler to treat it as a special kind of G_OS_UNIX
    (as we do with Mac OS X) rather than as its own completely different
    thing.

    So, kill G_OS_BEOS.

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 configure.ac                          |  32 ------
 docs/reference/glib/glib-sections.txt |   1 -
 glib/docs.c                           |   7 --
 glib/gbacktrace.c                     |   2 +-
 glib/gmain.c                          |   5 -
 glib/gpoll.c                          |   4 -
 glib/gstdio.c                         |   2 +-
 glib/gutils.c                         |   2 +-
 gmodule/Makefile.am                   |   1 -
 gmodule/gmodule-beos.c                | 204
 ----------------------------------
 gmodule/gmoduleconf.h.in              |   1 -
 gmodule/gmoduleconf.h.win32           |   1 -
 12 files changed, 3 insertions(+), 259 deletions(-)

commit 57969f4b251d14eaa3d154842f208dde4cc525a7
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 19 13:03:46 2013 -0400

    Remove alleged support for OS/2

    In particular, remove the OS/2 GModule implementation (which AFAICT
    was never actually built even on OS/2).

    https://bugzilla.gnome.org/show_bug.cgi?id=710519

 glib/gutils.c               |   4 --
 gmodule/Makefile.am         |   1 -
 gmodule/gmodule-os2.c       | 144
 --------------------------------------------
 gmodule/gmoduleconf.h.in    |   1 -
 gmodule/gmoduleconf.h.win32 |   1 -
 5 files changed, 151 deletions(-)

commit 6f7d8f6294da1c08d918b14cb012e5fa854ff080
Author: Stef Walter <stefw@gnome.org>
Date:   Tue Oct 29 18:03:29 2013 +0100

    gbacktrace: Print out gdb exec errors correctly

    We want to see error messages related to starting and running
    gdb (such as if it's not installed).

    https://bugzilla.gnome.org/show_bug.cgi?id=711088

 glib/gbacktrace.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit b1af471a3f08c3afa4eb61f0791998aac5da80a8
Author: Michael Haubenwallner <michael.haubenwallner@salomon.at>
Date:   Thu Nov 14 16:22:10 2013 +0100

    build: Give internal libraries higher precedence

    Linking local libraries too late may cause preinstalled libraries to
    get found earlier, due to external library paths in .la files.

    https://bugzilla.gnome.org/show_bug.cgi?id=712314

 gio/Makefile.am           | 37 +++++++++++++++++++------------------
 gio/tests/Makefile.am     |  6 ++++--
 tests/Makefile.am         |  8 ++++----
 tests/gobject/Makefile.am |  2 +-
 4 files changed, 28 insertions(+), 25 deletions(-)

commit 36f1a4ce7ed6df6aa8d24169508cc33dfc34cd79
Author: Stef Walter <stefw@gnome.org>
Date:   Tue Oct 29 21:30:06 2013 +0100

    gmessages: Add g_info macro for G_LOG_LEVEL_INFO

    For completeness. Although less used than others, projects want
    to use this, and end up having to define it awkwardly themselves.

    https://bugzilla.gnome.org/show_bug.cgi?id=711103

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gmessages.c                      | 22 +++++++++++++++++++++-
 glib/gmessages.h                      | 15 +++++++++++++++
 glib/tests/protocol.c                 |  5 +----
 4 files changed, 38 insertions(+), 5 deletions(-)

commit a46459b0002af97c035133907706caeba76f7863
Author: Colin Walters <walters@verbum.org>
Date:   Mon Nov 18 16:15:34 2013 -0500

    GSocketClient: For _CONNECTING event, make remote address accessible

    My application (hotssh) would like to get the resolved address
    from DNS,
    before we start the connect().

    We could add a new event, but it's easy enough to just cache it on the
    GSocketConnection; this avoids any new API.

    https://bugzilla.gnome.org/show_bug.cgi?id=712547

 gio/gioprivate.h        |  6 ++++++
 gio/gsocketclient.c     |  8 +++++++-
 gio/gsocketconnection.c | 30 ++++++++++++++++++++++++++++++
 3 files changed, 43 insertions(+), 1 deletion(-)

commit 1f0573d2e6605d657cdf2884cc4dcd646f8a214f
Author: Michael Haubenwallner <michael.haubenwallner@salomon.at>
Date:   Thu Nov 14 16:16:59 2013 +0100

    AIX splice() is something different

    AIX does provide the splice() symbol, but this does have different
    signature and usecase than what Linux may provide.

    https://bugzilla.gnome.org/show_bug.cgi?id=712314

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit efb1701bf3baf6f5b05fd1a7a5a4ff990a7dc460
Author: Michael Haubenwallner <michael.haubenwallner@salomon.at>
Date:   Thu Nov 14 16:12:02 2013 +0100

    Use AC_HEADER_MAJOR

    Instead of checking for sys/mkdev.h headerfile, there is the
    AC_HEADER_MAJOR helper for how to get major(), minor(), makedev().

    https://bugzilla.gnome.org/show_bug.cgi?id=712314

 configure.ac       | 3 ++-
 gio/gdbusmessage.c | 9 ++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 3c2d52cc965ac6c4d44f3812cb3d52631873ff02
Author: Colin Walters <walters@verbum.org>
Date:   Tue Nov 12 13:41:47 2013 -0500

    gsettings.m4: @GSETTINGS_RULES@: Support srcdir != builddir with
    nonrecursive make

    In hotssh I use nonrecursive make.  gnome-continuous uses srcdir !=
    builddir by default.  @GSETTINGS_RULES@ will then attempt to touch a
    nonexistent path.

    This patch fixes that.

    https://bugzilla.gnome.org/show_bug.cgi?id=712171

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f79e39154d4028dac1366e813aba0cabdd48c9c2
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 17 09:45:20 2013 -0500

    GDummyTlsBackend: cache the GDummyTlsDatabase

    The default GTlsDatabase is supposed to be a singleton (and libsoup
    has tests that will fail if it's not).

 gio/gdummytlsbackend.c | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

commit cfc8215fc1dc09acbfd4bb2c2b5ae5d66a4146d4
Author: Ray Strode <rstrode@redhat.com>
Date:   Fri Nov 15 14:47:09 2013 -0500

    gobject: Box GMappedFile

    GMappedFile is current unintrospectable, because it's not a registered
    box type.  It already has reference counting functions, so there's
    little reason not to box it.

    This commit adds GMappedFile to the hoard of other boxes types handled
    by gboxed.c

    https://bugzilla.gnome.org/show_bug.cgi?id=712393

 gobject/gboxed.c     |  1 +
 gobject/glib-types.h | 11 +++++++++++
 2 files changed, 12 insertions(+)

commit ca830f273396322a29c439f760c06e9bad0399f1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 15 15:23:43 2013 -0500

    Fix GSettings testcase again

    Hopefully this one will work for both srcdir == builddir and not.

 gio/tests/Makefile.am                                              | 2 +-
 gio/tests/gsettings.c                                              |
 7 +++++--
 .../{org.gtk.test.gschema.xml => org.gtk.test.gschema.xml.orig}    | 0
 3 files changed, 6 insertions(+), 3 deletions(-)

commit cb889d95804144c86d9a64aeb6b21a18df035b7e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Nov 14 18:06:32 2013 +0000

    gstrfuncs: Mention nullability in g_ascii_strcasecmp() documentation

    Like strcmp(), g_ascii_strcasecmp() requires that both of its
    parameters
    be non-%NULL.

 glib/gstrfuncs.c | 2 ++
 1 file changed, 2 insertions(+)

commit 2fb8901b647f94f74a79f5017793d6c6ed2af981
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Thu Nov 7 23:41:21 2013 +0100

    gdesktopappinfo: Rank Keywords matches higher than GenericName

    It makes sense to match on GenericName in case an application does
    not provide any keywords, but the Keywords field has been added
    to explicitly support the search case, while GenericName was used
    to be displayed in menus, so it makes more sense to consider
    Keywords more (or equally) relevant for search.

    https://bugzilla.gnome.org/show_bug.cgi?id=711640

 gio/gdesktopappinfo.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d33f758313f32e123ec70f052216b028a50fc0a6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 12 00:19:50 2013 -0500

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 00d980f6f4e8bfbc5fb36a487890006da7d2f5b3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 11 23:09:11 2013 -0500

    GLib 2.39.1

 NEWS | 135
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 135 insertions(+)

commit ce35c08c5702b31676ff0db4412864ca55247913
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 11 23:11:55 2013 -0500

    Revert "gdbus-connection-loss: Fix leak in test"

    This reverts commit 670379b26f4a86c7b51b928eb0332b9a654e4c4c.

    This is causing distcheck to fail and will have to be revisited later.

 gio/tests/gdbus-connection-loss.c | 3 ---
 1 file changed, 3 deletions(-)

commit 5c4f3f4dab47059c81855c383176ab4d88be1a18
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 11 23:17:32 2013 -0500

    gsettings test: fix srcdir != builddir

    Just copy the schemas to the builddir and compile them in place
    instead
    of trying to mess around with creating the compiled file in a
    different
    dir.  This solves issues in the summary/description testcase when
    GSettings expects the usual situation of having the .xml files present
    in the same directory.

 gio/tests/Makefile.am |  1 +
 gio/tests/gsettings.c | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

commit 1e5e3b64a8f3caa4c42a49b17b89dbbede892a90
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 08:51:41 2013 +0100

    gsubprocess: Fix a number of leaks and a segfault

    Fixed a number of leaks in gsubprocess, as well as a segfault
    that was hidden by never calling
    g_subprocess_communicate_state_free().

    https://bugzilla.gnome.org/show_bug.cgi?id=711803

 gio/gsubprocess.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit d10f35310ffb50edca7efef25071c52f45683160
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:53:32 2013 +0100

    threadpool-test: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/threadpool-test.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3e041ce5adde83a44f6f5156c7463157539ddbc4
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:26:31 2013 +0100

    mainloop-test: Fix uninitialized memory access in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/mainloop-test.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a638be8a790a67688066229f239a612194cdff70
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Nov 7 22:56:11 2013 +0100

    Revert "giomodule: Fix leaks in module loading"

    This reverts commit dc72039c162e1ca6400f28f92dd8e090ce99bd3f.

    This depends on a patch that allows GTypeModule to be finalized.
    Lets put this back in bugzilla until that gets in.

 gio/giomodule.c | 28 ++++++++++------------------
 1 file changed, 10 insertions(+), 18 deletions(-)

commit aa7ec15091a29c37aa32c117dff94b6b72498b39
Author: Stef Walter <stefw@gnome.org>
Date:   Mon Nov 11 15:27:24 2013 +0100

    Revert "defaultiface: Fix leak in test"

    This reverts commit fd7b2faa64febab407ffde2506c995544583a9d5.

    This required another patch to be commited first. Will put this
    back in bugzilla.

 tests/gobject/defaultiface.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit f038c629a404c49cb8149add55dde286b7ddb079
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Nov 6 16:35:21 2013 +0800

    glib/tests/: Avoid GCCisms and fix tests for MSVC

    Skip the tests on inf/nan strings for the gvariant and strfuncs
    tests, and
    skip the hex strings for the strtod tests in strfuncs as they are C99
    features that are not yet supported by Visual C++ (even 2013).  Use a
    definition for NAN and INFINITY (that is also used in PyGObject) as
    atof("NaN") and atof("Infinity") simply returns 0.0 (which is not
    a NAN)
    in Visual C++ to fix the tests running there.

    Also adapt to the format of g_ascii_formatd() when dealing with 1e99.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 glib/tests/gvariant.c |  5 ++++-
 glib/tests/strfuncs.c | 31 +++++++++++++++++++++++++++++--
 2 files changed, 33 insertions(+), 3 deletions(-)

commit 0212ab61824c098ec0a213465e85e2bc2702b4ed
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Nov 6 16:58:00 2013 +0800

    Tests: Fix up the expected messages

    There was an expected messages that was not in the form that GLib on
    Windows actually produces, which causes some test to fail.
    Fix this up.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 gio/tests/credentials.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c58a7b8c7454aa82895c8d325e964ac94f79ae3b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Nov 6 16:45:12 2013 +0800

    tests: Fix for non-GCC

    Remove uses of using empty arrays in initialization and structs,
    and build
    tests that rely on GCCisms on GCC only.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 glib/tests/mem-overflow.c |  6 +++++
 gobject/tests/param.c     | 64
 +++++++++++++++++++++++------------------------
 2 files changed, 38 insertions(+), 32 deletions(-)

commit a7707ec60ba8155c345df58d414060e177f15804
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Nov 6 15:14:06 2013 +0800

    glib/tests/spawn-singlethread: Improve test for Windows

    Use a Windows-style .bat script for the test_spawn_script() test,
    at least
    when the code is built with Visual C++ (due to differences in
    how scripts
    are written for shells and Windows cmd.exe), and account for
    Windows-style
    line endings for that test too.

    Let the MinGW builds (which are normally done in an MSYS BASH-style
    shell) continue to use the
    *NIX-style script for that test.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 glib/tests/Makefile.am          |  1 +
 glib/tests/echo-script.bat      |  2 ++
 glib/tests/spawn-singlethread.c | 22 +++++++++++++++++++---
 3 files changed, 22 insertions(+), 3 deletions(-)

commit b27a2d436bad5fcda5fea52bb84a39fd42e66041
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 5 17:33:09 2013 +0800

    gio/tests/gsubprocess.c: Fix on Windows

    We need to check for the correct line endings on Windows (\r\n)
    for the
    echo tests and currently need to skip the test_echo_eof test there, as
    it depends on the cat utility that is not normally found on Windows,
    and
    using an external installation of cat via MSYS or Cygwin would
    render the
    test program to hang as cat waits for user input.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 gio/tests/gsubprocess.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit fd41363e0213adda7c274c7ac06b411a17d5619f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 5 16:08:45 2013 +0800

    tests/: Include unistd.h on *NIX only

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 tests/child-test.c           | 9 ++++-----
 tests/env-test.c             | 4 +---
 tests/mapping-test.c         | 9 ++++-----
 tests/refcount/closures.c    | 3 +++
 tests/refcount/objects.c     | 5 ++++-
 tests/refcount/objects2.c    | 5 ++++-
 tests/refcount/properties.c  | 5 ++++-
 tests/refcount/properties2.c | 5 ++++-
 tests/refcount/signals.c     | 5 ++++-
 tests/slice-concurrent.c     | 2 ++
 10 files changed, 34 insertions(+), 18 deletions(-)

commit 5fd3c63ae8ab3923fa7963832dadde1d065a1e48
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 5 15:51:08 2013 +0800

    glib/gspawn-win32-helper.c: Clean up a bit

    Remove the parts about storing up the fd's in a data structure,
    but call
    close() on the fd's.  However, retain the _get_osfhandle() check
    on the
    fd's when we iterate through the fd's as on fd values in the
    iteration may
    well be invalid fd's.  As a result, the invalid parameter handler
    is still
    needed for newer Microsoft CRTs (8.0/2005+) for _get_osfhandle() to
    make sure that the program does not abort when we check the
    validity of
    fd's to be closed in the loop[1].

    [1]:
    http://msdn.microsoft.com/en-us/library/ks2530z6%28v=vs.80%29.aspx

 glib/gspawn-win32-helper.c | 47
 ++++++++++++++++++----------------------------
 1 file changed, 18 insertions(+), 29 deletions(-)

commit ccba409d349211d0705a8ae1fcf0f88fbb370175
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 5 12:58:40 2013 +0800

    tests/: Avoid closing invalid fd's

    ...and only include unistd.h when we are on *NIX.

    Newer Visual C++ runtimes (8.0/2005 and later) will cause the
    program to
    crash with an internal abort() call when they detect instances
    of close()
    being called on an invalid fd, such as when the fd is -1, and
    these should
    be purged anyways.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 tests/file-test.c | 16 +++++++++-------
 tests/testglib.c  | 17 +++++++++--------
 2 files changed, 18 insertions(+), 15 deletions(-)

commit 172aaa3a0135fe14567b33389cfbf25103260967
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 5 12:45:38 2013 +0800

    glib/gmessages.h: Unify log messages

    ...Under various compilers when !G_DISABLE_CHECKS.  Previously, the
    messages that are logged differ depending whether GLib was built
    with GCC
    or not.  To simplify test cases, make all builds use a single
    output format
    for g_return_if_fail(), g_return_val_if_fail(), g_return_if_reached(),
    and
    g_return_val_if_reached(), by using the GCC-style format and
    replaceing
    __PRETTY_FUNCTION__ with G_STRFUNC, so that it will work across
    various
    compilers.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 glib/gmessages.h | 54
 ++++--------------------------------------------------
 1 file changed, 4 insertions(+), 50 deletions(-)

commit fff14a5b7cf62d176b20bb3bb2fa573f9f7bcd2d
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 2 09:33:26 2013 -0400

    gcancellable: don't use g_cancellable_connect() in GCancellableSource

    g_cancellable_connect() is documented as calling its callback only
    once, but GCancellableSource should trigger every time the cancellable
    is cancelled.

    https://bugzilla.gnome.org/show_bug.cgi?id=710691
    https://bugzilla.gnome.org/show_bug.cgi?id=711286

 gio/gcancellable.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit b4aee2a759898ce785675a158fc74963cc380317
Author: Shantha kumar <shkumar@redhat.com>
Date:   Mon Nov 11 14:20:40 2013 +0530

    Updated Tamil Translations

 po/ta.po | 978
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 601 insertions(+), 377 deletions(-)

commit 670379b26f4a86c7b51b928eb0332b9a654e4c4c
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:28:28 2013 +0100

    gdbus-connection-loss: Fix leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gdbus-connection-loss.c | 3 +++
 1 file changed, 3 insertions(+)

commit 14b27eaab88e8c8860461fb98ede7eb14a510d46
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:23:15 2013 +0100

    gdbus-introspection: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gdbus-introspection.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit e34d74bdb390fce029e7734e93b7ff8154b75e26
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Nov 7 22:40:40 2013 +0100

    private: Use threading primitives correctly in private test

    We shouldn't be clearing statically allocated mutexes, and also
    don't use deprecated heap-allocated GPrivate.

    https://bugzilla.gnome.org/show_bug.cgi?id=711755

 glib/tests/private.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

commit 177fe9f98ee7a017cff11f739c16c203b671a7e2
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:52:16 2013 +0100

    timeloop: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/timeloop.c | 3 +++
 1 file changed, 3 insertions(+)

commit 9e0ade0691b30baf07bab7d5b4b00467b82c21b9
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:29:56 2013 +0100

    file-test: Fix leaks in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/file-test.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit dce83add1800c7145d6375626e2129fc51a83267
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 00:15:30 2013 +0100

    gthreadpool: Don't pass bad data to GThreadPool sorter

    This causes sorters to crash.

    https://bugzilla.gnome.org/show_bug.cgi?id=711756

 glib/gthreadpool.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 81d0ebe29ccd852e969acda7394969e3f13eb136
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Oct 31 11:43:14 2013 +0100

    gmain: Fix use of uninitialized memory in sigaction structure

    https://bugzilla.gnome.org/show_bug.cgi?id=711754

 glib/gmain.c | 1 +
 1 file changed, 1 insertion(+)

commit fd7b2faa64febab407ffde2506c995544583a9d5
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 15:58:06 2013 +0100

    defaultiface: Fix leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 tests/gobject/defaultiface.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit bac4179476d0eee96f8bd73fef760b4289b79c17
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 15:57:12 2013 +0100

    timeloop-closure: Fix leaks in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 tests/gobject/timeloop-closure.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit d8722441d167694dd943aeeab4e8addd4ce41f6a
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 15:56:59 2013 +0100

    signals: Fix leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 tests/gobject/signals.c | 1 +
 1 file changed, 1 insertion(+)

commit 1b9662046f4c98b8aa8aff63a0bbbfde3b6bf3f7
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 15:56:32 2013 +0100

    paramspec-test: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 tests/gobject/paramspec-test.c | 3 +++
 1 file changed, 3 insertions(+)

commit 320f0b32de8458c05793733991e05497d1b5c782
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 15:56:17 2013 +0100

    override: Fix leaks in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 tests/gobject/override.c | 3 +++
 1 file changed, 3 insertions(+)

commit e6de9c6940cc123e9f843e3069f73a75a887487f
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 15:55:56 2013 +0100

    gvalue-test: Fix leaks in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 tests/gobject/gvalue-test.c | 2 ++
 1 file changed, 2 insertions(+)

commit 83301d8c1f678fbcd26129ba4bc4cc2332e15bdd
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 15:55:35 2013 +0100

    accumulator: Fix leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 tests/gobject/accumulator.c | 2 ++
 1 file changed, 2 insertions(+)

commit 5339950e2519933912fe5e3374caf721ad790220
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Nov 7 22:57:27 2013 +0100

    threadtests: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 gobject/tests/threadtests.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit ac6d35b4df8726f18926b5060f969a6229f96378
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Nov 7 22:57:13 2013 +0100

    enums: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711779

 gobject/tests/enums.c | 4 ++++
 1 file changed, 4 insertions(+)

commit dc72039c162e1ca6400f28f92dd8e090ce99bd3f
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Nov 7 23:00:28 2013 +0100

    giomodule: Fix leaks in module loading

    https://bugzilla.gnome.org/show_bug.cgi?id=711798

 gio/giomodule.c | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

commit b88f992c6ea3b082ac967b852ceb1618c0196783
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 14:48:36 2013 +0100

    boxed: Fix double free in boxed unit tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711782

 gobject/tests/boxed.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 91c8fb82feae5675f20ac0fcb21226a1b516e5df
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:21:44 2013 +0100

    gdbus-connection: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gdbus-connection.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit f80e2695e1c624484a149fbd5b1c795d6b0ab519
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:21:16 2013 +0100

    gdbus-connection-slow: Fix leak in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gdbus-connection-slow.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 0d51ff79edfb39d8b9e4d775a399404c1641784d
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:28:41 2013 +0100

    gdbus-connection: Fix use after free in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gdbus-connection.c | 3 ---
 1 file changed, 3 deletions(-)

commit 95526b5db5adad7f550de06b707f429eb9da0654
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 08:54:28 2013 +0100

    gsubprocess: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gsubprocess.c | 4 ++++
 1 file changed, 4 insertions(+)

commit fe3c878c53b2c8087c6c0605a36d55d61ddab3f4
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 08:53:13 2013 +0100

    gsubprocess: Fix error detection logic in tests

    Various tests were depending on local_error being set by a callback
    when it could never have been the case. Simplify async error detection
    logic in those cases, and fix leak of GError.

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/gsubprocess.c | 40 ++++++++++++++--------------------------
 1 file changed, 14 insertions(+), 26 deletions(-)

commit 78ad171da96e15b370867b69077fa3d149920c83
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Nov 8 14:28:55 2013 +0100

    g-icon: Fix memory leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/g-icon.c | 1 +
 1 file changed, 1 insertion(+)

commit faafd4c051febb545838be9b663eabe5f3df254f
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Nov 8 14:28:23 2013 +0100

    contexts: Fix memory leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/contexts.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 438f7110f92dd290bce205abb61249ed4d564c37
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 16:39:45 2013 +0100

    data-output-stream: Fix some access after free

    The memory pointed to by a GMemoryOutputStream can be realloc'd

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/data-output-stream.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 72171240cc1d3dfdee27ce460e88fca23308bdba
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 16:39:28 2013 +0100

    buffered-output-stream: Fix some access after free

    The memory pointed to by a GMemoryOutputStream can be realloc'd

    https://bugzilla.gnome.org/show_bug.cgi?id=711802

 gio/tests/buffered-output-stream.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 419b47e166fce8974e8bc31e966020c57e6fe19f
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:19:44 2013 +0100

    gtestdbus: Fix leak of GMainLoop

    https://bugzilla.gnome.org/show_bug.cgi?id=711808

 gio/gtestdbus.c | 1 +
 1 file changed, 1 insertion(+)

commit 6294d730235577b018b1b8df85691a96a5ce4d80
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 10:54:47 2013 +0100

    module-test: Fix leaks in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711768

 tests/module-test.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit fe8862dc1be42a65d0140b4f3d3ef345def638d9
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 14:32:17 2013 +0100

    utils: Don't free memory owned by glib in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711775

 glib/tests/utils.c | 1 -
 1 file changed, 1 deletion(-)

commit 0a02fd9c526f029808b38d1f7b9758e28675ec9d
Author: Stef Walter <stefw@gnome.org>
Date:   Sun Nov 10 10:54:26 2013 +0100

    iochannel-test: Fix leaks in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/iochannel-test.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 44bd2ab07e81016c961a59f0a66f4351ac5822cf
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:52:42 2013 +0100

    unicode-encoding: Fix leaks in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/unicode-encoding.c | 3 +++
 1 file changed, 3 insertions(+)

commit e8cc0966d4a2fb3cf059122b4a4b9479e25604e4
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:51:18 2013 +0100

    thread-test: Fix leaks in tests

    This is a test of deprecated functionality and its age is
    showing. Doesn't actually do what it says. But fix leaks anyway.

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/thread-test.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit ae1764b4e0dd33d55fac8a5329b0c5d45c4c66fd
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:30:11 2013 +0100

    mainloop-test: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/mainloop-test.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 83a14d13ec22fad898a5be9aaa66b50536d6be17
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:29:04 2013 +0100

    datetime: Fix leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/datetime.c | 1 +
 1 file changed, 1 insertion(+)

commit 5ae5d438a684118556cc8875277d524d6ce9088b
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:26:57 2013 +0100

    mapping-test: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/mapping-test.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit fc4630b7ac089fcd1aff1c8376433e971ab193dd
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:26:15 2013 +0100

    gio-test: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/gio-test.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit ee743674a16f251bb275d6ee59f6da8cbf2b2910
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:25:39 2013 +0100

    completion-test: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/completion-test.c | 2 ++
 1 file changed, 2 insertions(+)

commit ba56c7b720a88ba096a3325c03457dab9088b3b8
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:25:23 2013 +0100

    child-test: Fix leak in test

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/child-test.c | 2 ++
 1 file changed, 2 insertions(+)

commit 9a67fb903f394fc884fbacd2f54392632db2b898
Author: Stef Walter <stefw@gnome.org>
Date:   Sat Nov 9 20:25:07 2013 +0100

    asyncqueue-test: Fix leaks in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 tests/asyncqueue-test.c | 4 ++++
 1 file changed, 4 insertions(+)

commit e52558672610fa12c967448dcabb9a8cfd27179e
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Nov 7 22:40:59 2013 +0100

    unix: Fix memory leak in unix test

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 glib/tests/unix.c | 1 +
 1 file changed, 1 insertion(+)

commit ab3c55435af3cecaa4b7805e8f6ffe1719e13ba6
Author: Dan Winship <danw@gnome.org>
Date:   Thu Nov 7 22:38:52 2013 +0100

    gerror: Don't leak memory when overwrite warning

    Even though we can't always make no-leak guarantees when g_warning()
    in this case we're testing this behavior in tests, and it would be
    good to be able to valgrind this.

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 glib/gerror.c      | 10 ++++++++--
 glib/tests/error.c |  3 ---
 2 files changed, 8 insertions(+), 5 deletions(-)

commit e74b4351a33aa09ed053922cca907c956cbe61cd
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Oct 31 14:41:34 2013 +0100

    private: Fix memory leak in tests

    Don't use g_private_new(), it's deprecated, and leaks by definition.

    https://bugzilla.gnome.org/show_bug.cgi?id=711751

 glib/tests/private.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

commit ae6dbb35cbf11a363b28f1e86b1f6f2bc4036b4c
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Sat Nov 9 09:33:42 2013 -0600

    giomodule: small typo in documentation

 gio/giomodule.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0cb8454b5c0ba31aa1c8b4915503686bfe5cddeb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 8 20:57:04 2013 -0500

    Small documentation improvement

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ca22ac794428c70fb0e11be3358f18b68d755ae3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 8 20:45:54 2013 -0500

    Add an index for new api in glib docs

 docs/reference/glib/glib-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit 83d427819778315e4d8b2d6cbc6e758d92733174
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Fri Nov 8 08:15:43 2013 +0100

    Revert "gio/Makefile: make sure to dist gappinfoprivate.h"

    This reverts commit c45b26d61f6539dbf4e202aded08d9614b441f81.

 gio/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit 5627452048fb1925a7bfbabd7d7fba553e4458ca
Author: Michael Catanzaro <mcatanzaro@gnome.org>
Date:   Thu Nov 7 18:39:59 2013 -0600

    gstrfuncs: fix small typo in documentation

 glib/gstrfuncs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bda60c3e8b92575520495b8f283ee5ba595da074
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 7 13:56:56 2013 -0500

    GAppInfoMonitor: don't try to use NULL hash table

    Don't g_hash_table_iter_init() on a NULL table if we see the app info
    monitoring but no monitors have been created yet.

    https://bugzilla.gnome.org/show_bug.cgi?id=711632

 gio/gappinfo.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

commit ffbf866d3b3dfae234fbdeef8bab683c14d66e30
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 29 12:02:44 2013 -0700

    GApplication: fix bogus testcase

    We had a GApplication testcase that handled both open and commandline.
    This only way that this worked was by implementing the commandline
    handler without actually setting the HANDLES_COMMAND_LINE flag.

    This behaviour is now invalid, so just rip out the offending part
    of the
    test.

    https://bugzilla.gnome.org/show_bug.cgi?id=711099

 gio/gapplicationimpl-dbus.c   |  3 ++-
 gio/tests/basic-application.c | 23 -----------------------
 gio/tests/gapplication.c      |  5 -----
 3 files changed, 2 insertions(+), 29 deletions(-)

commit 6e0bbd8adb861b21de24c1701e0de21bae339e73
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 10 09:28:30 2013 -0400

    appinfo: Add some testcases for searching

    https://bugzilla.gnome.org/show_bug.cgi?id=711557

 gio/tests/.gitignore                               |   1 +
 gio/tests/Makefile.am                              |  38 ++++
 gio/tests/apps.c                                   |  58 +++++
 gio/tests/desktop-app-info.c                       | 242
 +++++++++++++++++++-
 .../desktop-files/home/applications/eog.desktop    |  11 +
 ...c6a4e022b17686306243dada811d550d25eb1fb.desktop |   7 +
 .../desktop-files/usr/applications/baobab.desktop  |  39 ++++
 .../desktop-files/usr/applications/cheese.desktop  |  46 ++++
 .../usr/applications/dconf-editor.desktop          |  33 +++
 .../desktop-files/usr/applications/eog.desktop     |  43 ++++
 .../usr/applications/evince-previewer.desktop      |  28 +++
 .../desktop-files/usr/applications/evince.desktop  |  42 ++++
 .../usr/applications/file-roller.desktop           |  43 ++++
 .../usr/applications/gcr-prompter.desktop          |  18 ++
 .../usr/applications/gcr-viewer.desktop            |  10 +
 .../desktop-files/usr/applications/gedit.desktop   |  83 +++++++
 .../desktop-files/usr/applications/glade.desktop   |  56 +++++
 .../usr/applications/gnome-clocks.desktop          |  41 ++++
 .../usr/applications/gnome-contacts.desktop        |  25 +++
 .../usr/applications/gnome-font-viewer.desktop     |  33 +++
 .../usr/applications/gnome-music.desktop           |  22 ++
 .../usr/applications/gnome-terminal.desktop        |  39 ++++
 .../usr/applications/gucharmap.desktop             |  38 ++++
 .../usr/applications/kde4/dolphin.desktop          |  27 +++
 .../usr/applications/kde4/kate.desktop             |  26 +++
 .../usr/applications/kde4/konqbrowser.desktop      |  26 +++
 .../usr/applications/kde4/okular.desktop           |  23 ++
 .../desktop-files/usr/applications/mimeinfo.cache  | 246
 +++++++++++++++++++++
 .../applications/nautilus-autorun-software.desktop |  19 ++
 .../usr/applications/nautilus-classic.desktop      |  15 ++
 .../applications/nautilus-connect-server.desktop   |  22 ++
 .../usr/applications/nautilus.desktop              |  39 ++++
 .../desktop-files/usr/applications/totem.desktop   |  36 +++
 .../desktop-files/usr/applications/yelp.desktop    |  39 ++++
 34 files changed, 1512 insertions(+), 2 deletions(-)

commit 3d32d5359aefc0c287265c85278a31c7e2ea9b3d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 5 22:51:48 2013 -0500

    Add g_desktop_app_info_search()

    The first time this function is called we load all of the keyfiles in
    the directory, ignoring the 'Hidden' ones and build an index out
    of the
    interesting fields using g_str_tokenize_and_fold().

    We do prefix matching on the tokens to find relevent desktop files.

    Right now this is implemented as a hashtable that we iterate over,
    checking prefixes on each token.  This could possibly be sped up by
    creating an array, but it's already pretty fast...

    https://bugzilla.gnome.org/show_bug.cgi?id=711557

 gio/gdesktopappinfo.c | 525
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gdesktopappinfo.h |   2 +
 2 files changed, 527 insertions(+)

commit c45b26d61f6539dbf4e202aded08d9614b441f81
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 7 12:11:55 2013 -0500

    gio/Makefile: make sure to dist gappinfoprivate.h

 gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit ffb39bff6fc76051901dddbb179afdf83baafc27
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Thu Nov 7 17:37:13 2013 +0100

    gio: Add gappinfoprivate.h to Makefile.am

    In addition to e55d33edc1336ddc6d5cdfa0e3003a69a5812d26

 gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit a004fc80598c2b14f2e3780fb0f94fc9f6faf263
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Thu Nov 7 17:19:09 2013 +0200

    Updated Greek translation

 po/el.po | 1320
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 784 insertions(+), 536 deletions(-)

commit 838b49ead77c35d94fa16d48a6d7271bab082a71
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Thu Nov 7 10:58:46 2013 +0000

    configure: test(1) uses = to test for string equality

    https://bugzilla.gnome.org/show_bug.cgi?id=711600

 m4macros/glibtests.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 87e6db8deb96565cf4336c187e0dcec8b014cae2
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 29 14:55:27 2013 +0800

    codegen.py: Rearrange GLib Version Check

    ...so that the generated code will build on all platforms, as
    compilers
    like Visual C++ does not like #ifdef checks during a definition/use of
    a macro.

    https://bugzilla.gnome.org/show_bug.cgi?id=711049

 gio/gdbus-2.0/codegen/codegen.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit e55d33edc1336ddc6d5cdfa0e3003a69a5812d26
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 25 09:19:43 2013 -0400

    Add GAppInfoMonitor

    This is a simple object that emits a "change" signal when the
    installed
    applications may have changed in some way.

    https://bugzilla.gnome.org/show_bug.cgi?id=711556

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  13 +++
 docs/reference/gio/gio.types        |   1 +
 gio/gappinfo.c                      | 225
 ++++++++++++++++++++++++++++++++++++
 gio/gappinfo.h                      |  14 +++
 gio/gappinfoprivate.h               |  28 +++++
 gio/gdesktopappinfo.c               |   4 +
 7 files changed, 286 insertions(+)

commit 86ce3bf48e40756a360b13e18493a15d8d1bf5ae
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 27 16:04:56 2013 -0400

    gdesktopappinfo: keep a list of files in the dirs

    In each DesktopFileDir, store a list of desktop files for that
    directory.  This speeds up opening desktop files by name because
    we can
    skip statting in directories that we know don't have the file and also
    speeds up _get_all() because we can avoid enumeration.

    This also improves our support for dealing with names like
    'kde4/kate.desktop' (equivalent to kde4-kate.desktop) since we
    find out
    about all of these files are the start and don't need to guess about
    which '-' to change to a '/'.  It also means that we can easily deal
    with more than one level of such prefixes.

    We use a file monitor to watch for changes, invalidating our
    lists when
    we notice them.

    https://bugzilla.gnome.org/show_bug.cgi?id=711520

 gio/gdesktopappinfo.c | 434
 ++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 328 insertions(+), 106 deletions(-)

commit 27da0799b8a2762e6ae44d0721014eeed8c36489
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Oct 31 23:07:10 2013 +0100

    signals: Fix memory leaks in signals unit tests

    https://bugzilla.gnome.org/show_bug.cgi?id=627423

 gobject/tests/signals.c | 5 +++++
 1 file changed, 5 insertions(+)

commit b49344c1d389035066aed0c4392c18990afe68a4
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Oct 31 23:06:27 2013 +0100

    qdata: Fix leak in qdata unit tests

    https://bugzilla.gnome.org/show_bug.cgi?id=627423

 gobject/tests/qdata.c | 2 ++
 1 file changed, 2 insertions(+)

commit 267222873399cadb0feef4009b26fb1109453fcd
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Oct 31 14:39:05 2013 +0100

    gerror: Don't leak when warning about overwriting an error

    While not strictly necessary, this fixes a false positive
    leak in the tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=627423

 glib/gerror.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 92b71825fd6b62e339b89159b2cfba8e5ca839c4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 24 21:55:08 2013 -0400

    tests: fix leak in mainloop test

    Properly unref a pair of GSources in the unix-fd mainloop test.

    valgrind was reporting these as 'still reachable' before (possibly due
    to some residual pointers somewhere in memory), but when running with
    G_DEBUG=cleanup they were properly reported as leaked.

 glib/tests/mainloop.c | 2 ++
 1 file changed, 2 insertions(+)

commit eef0d3c0b8ca541e48a8a9d7ec39ed40a717db6f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 24 21:25:26 2013 -0400

    grand: restructure a bit

    Instead of having lots of 'if NULL then allocate' code segments
    for the
    global GRand instance, move it to a single getter function that
    everyone
    calls.

 glib/grand.c | 38 +++++++++++++++++---------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

commit 70410b322c6a7cfa047d2a4049d0c810e9a52da8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 24 21:18:30 2013 -0400

    gslice: don't misuse g_mutex_init()

    We were using g_mutex_init() to initialise a pair of mutexes in static
    storage, but we should only do that for mutexes that are part of
    allocated structures.

 glib/gslice.c | 2 --
 1 file changed, 2 deletions(-)

commit 4af135ce49e5c8aa8231e0c9e24f04f5cd917468
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Tue Nov 5 16:43:26 2013 +0000

    garray: Note lack of bounds checking in g_ptr_array_index()
    documentation

 glib/garray.c | 4 ++++
 1 file changed, 4 insertions(+)

commit f4931142806556123ce75dcf8b84e60dc7cd4e3c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 4 16:32:01 2013 +0800

    gio/tests: Clean up inclusion of unistd.h

    Include unistd.h only on *NIX and define items as necessary on
    Windows,
    also replace instances of ssize_t with the GLib-equivilant gssize
    so to fix
    the build on platforms that do not have ssize_t, such as Visual C++.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 gio/tests/filter-cat.c           | 13 +++++++++++--
 gio/tests/gsubprocess-testprog.c |  4 ++--
 gio/tests/readwrite.c            |  5 ++++-
 gio/tests/resolver.c             |  2 ++
 gio/tests/win32-streams.c        |  1 -
 5 files changed, 19 insertions(+), 6 deletions(-)

commit d262b6fe0ca851a47fede2e624cec4aa041f2f14
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 4 13:07:52 2013 +0800

    glib/tests: Clean up inclusion of unistd.h

    Include unistd.h only when G_OS_UNIX is defined (or when G_OS_WIN32
    is not
    defined).  This will avoid including unistd.h unconditionally and/or
    unecessarily, which may cause problems in certain scenarios, such
    as when
    building the tests on Visual C++, which does not come with a
    unistd.h and
    MinGW, where unistd.h is essentially a wrapper for io.h and process.h.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 glib/tests/base64.c      |  4 +---
 glib/tests/checksum.c    |  4 +---
 glib/tests/gwakeuptest.c |  4 +++-
 glib/tests/hmac.c        |  4 +---
 glib/tests/mappedfile.c  |  3 +--
 glib/tests/node.c        | 10 +++-------
 glib/tests/protocol.c    |  5 +++--
 glib/tests/thread.c      |  5 +----
 glib/tests/timeout.c     |  2 ++
 9 files changed, 16 insertions(+), 25 deletions(-)

commit 1079d30e1b5b9002ca5d4e5bef398e855a7c115f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 4 12:23:30 2013 +0800

    glib/tests/fileutils.c: Include unistd.h on *NIX only

    ...and fix the test on non-English Windows, as gettext on Windows does
    not honor LC_ALL = "C" (the default CRT behavior) but requires using
    SetThreadLocale() to set the locale as it picks up the user's
    environment
    and the thread's locale.  Without doing so the
    g_format_size_for_display()
    et al will display the translated message if the gettext translations
    have
    been installed before, causing the test_format_size_for_display
    tests to
    fail.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 glib/tests/fileutils.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 20f873a0bcafe9d8d929be98ea72a0d0608d076a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 29 19:12:38 2013 +0800

    tests/libmoduletestplugins*.c: Update Prototypes

    Visual C++ does not like function declarations being different from
    their prototypes, so make the prototypes match the declarations by
    decorating them with G_MODULE_EXPORT.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 tests/libmoduletestplugin_a.c | 10 +++++-----
 tests/libmoduletestplugin_b.c | 12 ++++++------
 2 files changed, 11 insertions(+), 11 deletions(-)

commit 39a62a064b55eead4142c5585a25b86c57759ec5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 29 19:17:32 2013 +0800

    gio/test/resources.c: Fix for Windows

    We need to use g_content_type_get_mime_type() to look up the mime
    type of
    the file from the registry on the content type that was acquired on
    Windows, as g_file_info_get_content_type() does not acquire the
    file mime type (unlike on *NIX).

    g_content_type_get_mime_type() on *NIX is more or less an no-op as it
    simply returns the g_strdup()-ed version of the passed-in content
    type.

    This will enable the resources test to pass on Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=711047

 gio/tests/resources.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 64909ff7409968b83b0961e053eac98a03bd30cf
Author: Ognyan Tonchev <ognyan@axis.com>
Date:   Tue Oct 29 16:39:38 2013 +0100

    gmain: make g_source_add_child_source() thread safe

    g_source_add_child_source() releases the context lock before attaching
    child_source to context. And this causes trouble if parent source is
    blocked and g_main_dispatch() manages to lock the context mutex
    and call
    unblock_source() before child_source gets attached to context.
    To fix this we call g_source_attach_unlocked() before releasing the
    context mutex.

    https://bugzilla.gnome.org/show_bug.cgi?id=711064

 glib/gmain.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit 89f961583580b16b5b67b2138d609ffd52f59c75
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Tue Oct 29 06:02:59 2013 +0200

    gio: Don't allow skipping past the end of GLocalFileInputStream

    The overridden implementation of the skip method for
    GLocalFileInputStream allows skipping past the end of the file
    which is
    inconsistent with the documentation.  Prevent this by first seeking to
    the end of the file and then seeking backwards from there as much as
    is necessary.

    https://bugzilla.gnome.org/show_bug.cgi?id=711048

 gio/glocalfileinputstream.c | 23 +++++++++++++++++++----
 gio/tests/readwrite.c       | 12 ++++++++++++
 2 files changed, 31 insertions(+), 4 deletions(-)

commit dc172f06162398b51d230511756292154bace423
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 2 12:18:45 2013 -0400

    gmacros.h: fix C99 check

    G_STRFUNC was checking __STDC_VERSION__ against the wrong value
    (though it didn't actually matter, since __STDC_VERSION__ wasn't
    defined in C90, so the check still only matched C99 and above anyway).

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d0cd2e8ed036f4eff40c6de7a3b4a3361e48295e
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Nov 1 12:52:43 2013 +0100

    Updated Galician translations

 po/gl.po | 237
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 117 insertions(+), 120 deletions(-)

commit aff483616c950fce2c8b466b5d0e8fbe2374fb8c
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Oct 28 01:13:41 2013 +0100

    Updated Galician translations

 po/gl.po | 785
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 488 insertions(+), 297 deletions(-)

commit e6d19a27a3242ebf7ac23d3999e325f6a8d9ea39
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Oct 31 14:36:50 2013 +0100

    Updated Spanish translation

 po/es.po | 825
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 524 insertions(+), 301 deletions(-)

commit 6ed60a936cf4a220519195c456c3eaa5ddec66b4
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Oct 31 13:15:01 2013 +0100

    docs: GDataTime: *_add_*(): Mention that you can subtract.

    Because this was not obvious to at least one person on irc.

 glib/gdatetime.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit e2fcb77cb04b4b86768d56d8fccfb36f1a5d9451
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Wed Oct 30 20:34:14 2013 +0200

    gio: Clean up trashinfo file if trashing fails

    https://bugzilla.gnome.org/show_bug.cgi?id=687202

 gio/glocalfile.c | 2 ++
 1 file changed, 2 insertions(+)

commit e94df7cfc279f38563e80e5a2b48a1bbd8d2b71b
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Oct 28 17:02:44 2013 -0400

    Tests: It is useless to unset "DBUS_SESSION_BUS_ADDRESS" manually

    If the goal is to make sure we don't have a dbus connection, it has
    to call g_test_dbus_unset() instead which is much more complete.

    In this case, g_test_dbus_unset() is called already, so it should be
    fine.

    https://bugzilla.gnome.org/show_bug.cgi?id=697348

 gio/tests/gapplication.c | 4 ----
 1 file changed, 4 deletions(-)

commit 06fbdb04d5001eaf9abadb872185d7b3e1593e08
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Oct 28 14:54:22 2013 -0400

    GTestDBus: Make sure only DBUS_SESSION_BUS_ADDRESS is set by default

    g_test_dbus_unset() now also unset DBUS_STARTER_ADDRESS and
    DBUS_STARTER_BUS_TYPE.

    https://bugzilla.gnome.org/show_bug.cgi?id=697348

 gio/gtestdbus.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 940fa98290812789d095d93ff1c550cd86fb2428
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Oct 28 17:18:54 2013 -0400

    Tests: add session_bus_run() and use it where possible

    This is to avoid having again the subtil bug in dbus-appinfo.c:
    session_bus_down() was called before g_test_run() so the test was
    running on the user's dbus session.

    https://bugzilla.gnome.org/show_bug.cgi?id=697348

 gio/tests/dbus-appinfo.c        |  6 +-----
 gio/tests/gdbus-export.c        | 11 +----------
 gio/tests/gdbus-introspection.c | 10 +---------
 gio/tests/gdbus-proxy.c         |  5 +----
 gio/tests/gdbus-sessionbus.c    | 11 +++++++++++
 gio/tests/gdbus-sessionbus.h    |  1 +
 gio/tests/gdbus-test-codegen.c  | 11 +----------
 7 files changed, 17 insertions(+), 38 deletions(-)

commit 5280c03368299bbb4f721f3e47213aa01d9d0142
Author: Colin Walters <walters@verbum.org>
Date:   Tue Oct 29 09:47:34 2013 -0400

    tests/gdbus-introspection: Add a less trivial test case for
    _IGNORE_QUALIFIED

    This is distilled from PackageKit which currently aborts on startup.

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 gio/tests/gdbus-introspection.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

commit daff84e23c4870f674293a90f36d79f4587d20cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 29 09:01:32 2013 -0700

    GMarkup: clear attributes on ignorned tags

    Make sure that if we ignore a tag then we also clear the attributes
    that
    we already collected so that they don't end up on the next unignored
    tag
    opening.

    Also add some extra brackets for clarity (it doesn't make any
    difference
    -- I just think it reads nicer this way).

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 glib/gmarkup.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 425f307b01a41e6cd4922b037105a66293863cce
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Mon Oct 28 23:55:19 2013 -0700

    gtk-notification-backend: remove unused variable

    A reference to the session bus is now stored in GNotificationBackend.
    Remove the extraneous one in the gtk backend and stop using it in
    withdraw_notification.

    https://bugzilla.gnome.org/show_bug.cgi?id=711051

 gio/ggtknotificationbackend.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

commit 1a037b140893433757400267d00a3a4437c3cdb7
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Tue Oct 29 14:53:38 2013 +0200

    gio: Clear error properly to prevent crash

    https://bugzilla.gnome.org/show_bug.cgi?id=711070

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c8aba61713ec0f674fa0dc986db3b2db3cdd0c41
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 11:44:16 2013 -0700

    GCancellable: drop lock for callback during connect()

    Don't hold the lock when calling the user's callback during
    g_cancellable_connect() for the case that the cancellable has already
    fired.

    Taken from a patch by Alex Larsson.

    Doc updates from Colin Walters.

    https://bugzilla.gnome.org/show_bug.cgi?id=705395

 gio/gcancellable.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 61e8e1cd02cc9b9ae8917262ecc17633312b7683
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 29 14:49:13 2013 +0800

    gio/gsubprocess.c: Use g_snprintf()

    snprintf() is unfortunately still not universally available, so use
    g_snprintf() to ensure the build works on all platforms.

    https://bugzilla.gnome.org/show_bug.cgi?id=711049

 gio/gsubprocess.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e08ef9c367c4ad7c7d18b33b26465e8afbc895f3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 29 12:46:32 2013 +0800

    gobject/gvaluetransform.c: Cleanup #ifndef _MSC_VER

    The two casts that were unsupported with Visual Studio is now properly
    supported, so build this code like how the other compilers build
    the code.

 gobject/gvaluetransform.c | 3 ---
 1 file changed, 3 deletions(-)

commit b227528f3291c8c4cfdfea057917edec63597ff8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 20:48:53 2013 -0700

    GSettingsSchemaSource: fix parameter name in header

    list_schemas() had the parameters called 'recursive' and
    'non-recursive'
    in the header instead of 'relocatable'.  Fix that.

 gio/gsettingsschema.c | 17 ++++++++---------
 gio/gsettingsschema.h |  4 ++--
 2 files changed, 10 insertions(+), 11 deletions(-)

commit abb9a746f4cc2c67a1dd96fa35e8d20bebe81c4f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 14:49:14 2013 -0700

    exporter: give error on Describe of missing action

    If someone calls org.gtk.Actions.Describe on a non-existent action
    then
    return an exception instead of a trivial description (disabled, no
    state, etc.).

    https://bugzilla.gnome.org/show_bug.cgi?id=687185

 gio/gactiongroupexporter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e275b8bc6c48aa7c894cb4f53bd1ee95850eb801
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 14:49:14 2013 -0700

    exporter: give error on Describe of missing action

    If someone calls org.gtk.Actions.Describe on a non-existent action
    then
    return an exception instead of a trivial description (disabled, no
    state, etc.).

    https://bugzilla.gnome.org/show_bug.cgi?id=687185

 gio/gactiongroupexporter.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 83869120bba2aa745a1b23fb415ab0eddd6f9327
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 14:59:26 2013 -0700

    GSimpleAction: don't allow changing state type

    g_object_set() allowed us to bypass the usual checks that the state
    doesn't change type and also leaked.

    Fix that up by turning the state into a construct property (so that it
    always gets set once during construction, even if only to NULL) and
    then route the further sets through the C API so that they are subject
    to the same checks.

    https://bugzilla.gnome.org/show_bug.cgi?id=696424

 gio/gsimpleaction.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit 908d7d6d6abb53a00e20bab70df7099ecd66890b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 15:30:25 2013 -0700

    glib-compile-schemas: ignore qualified tags/attrs

    Ignore qualified (in the XML namespace sense) tags and attributes when
    compiling GSettings schemas.

    This will allow people to add custom tags and attributes to their
    schemas
    without tripping up the compiler.

    https://bugzilla.gnome.org/show_bug.cgi?id=635641

 gio/glib-compile-schemas.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 9933a9f90477bf960f7f9c357253d1e4c78e5db5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 15:27:29 2013 -0700

    GDBus: ignore qualified XML tags and attributes

    Ignore qualified (in the XML namespace sense) tags and attributes when
    parsing D-Bus introspection XML.

    This will allow people to add custom tags and attributes to their
    D-Bus
    interfaces without tripping up GDBus.

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 gio/gdbusintrospection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1bc98830c5a3ffe5a43e5e05730064cb149f25bd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 14:11:05 2013 -0700

    tests: add a ignore-qualified markup-collect case

    Add a case to markup-collect that exercises the new IGNORE_QUALIFIED
    flag.

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 glib/tests/markup-collect.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 474d91566a7db52ee1776933ea5c4b6276b1280a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 14:05:51 2013 -0700

    GMarkup: add G_MARKUP_IGNORE_QUALIFIED

    Add a flag to GMarkupParserFlags to ignore qualified tags (along with
    their contents) and attributes.

    This will provide a nice way for some of our parsers (GDBus
    introspection, GSettings schema, etc) to ignore additional tags that
    users have added to their files, under a different namespace.

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 glib/gmarkup.c | 36 +++++++++++++++++++++++++++++++-----
 glib/gmarkup.h |  7 ++++++-
 2 files changed, 37 insertions(+), 6 deletions(-)

commit cbccbaeacfbde66f4b611b37752b0d96e77ca91e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 13:56:26 2013 -0700

    GMarkup: share some common code for closing tags

    The code for dealing with </foo> and the second half of <foo/> was
    largely duplicated.  We can share a lot of it by using a common
    function.

    This slightly changes the behaviour of the parser under error
    circumstances: previously the parser would deal with '<foo/}' by first
    issuing the end_element callback and then flagging the error due
    to the
    unexpected character.  Now we will flag the unexpected character error
    first, skipping the callback.

    This behaviour change required modifying the testsuite.

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 glib/gmarkup.c                      | 113
 ++++++++++++++++--------------------
 glib/tests/markups/fail-44.expected |   1 -
 glib/tests/markups/fail-8.expected  |   1 -
 3 files changed, 50 insertions(+), 65 deletions(-)

commit 44f13124c9d6d66760bd800d7d1ce68dc53ad5f2
Author: Stef Walter <stefw@gnome.org>
Date:   Mon Oct 28 10:12:29 2013 +0100

    test: g_debug messages shouldn't affect g_assert_expected_messages

    Debug messages are meant to give insight into how a process is
    proceeding, and are unpredictable in nature. They also often have
    line numbers in them.

    This patch ignores debug messages in
    g_test_assert_expected_messages().

    https://bugzilla.gnome.org/show_bug.cgi?id=710991

 glib/gmessages.c     | 12 +++++++++---
 glib/tests/testing.c | 14 ++++++++++++++
 2 files changed, 23 insertions(+), 3 deletions(-)

commit 0d89d38cac5dddeade2c3bd21a27b6d8de997fa0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 12:10:13 2013 -0700

    GSettings: fix for loop in 'extends' functionality

    Obvious mistake :(

 gio/gsettingsschema.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b30486985bfceeed206fb285b8377596e374602e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 10:54:08 2013 -0700

    gsettings(1): stop using deprecated APIs

    Stop using the recently-deprecated GSettings APIs.

    Use the GSettingsSchema-based APIs instead.

    This fixes a number of bugs and also a net reduction of code. In
    particular, list-schemas will now work in context of a given
    --schemadir
    argument.

    https://bugzilla.gnome.org/show_bug.cgi?id=695558

 gio/gsettings-tool.c | 105
 ++++++++++++++++++++-------------------------------
 1 file changed, 41 insertions(+), 64 deletions(-)

commit a1a4dbf6ff94204dd61ec7944c854261f8a2dc3b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 10:23:29 2013 -0700

    gsettings(1): use global variables

    The number of arguments passed to each function is about to
    increase, so
    just use global variables instead.

    This is a commandline tool, after all...

    https://bugzilla.gnome.org/show_bug.cgi?id=695558

 gio/gsettings-tool.c | 174
 +++++++++++++++++++++++----------------------------
 1 file changed, 77 insertions(+), 97 deletions(-)

commit bcb030a4745d9d88a6150146a37e732a5c7c5d4f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 27 17:03:04 2013 -0700

    GSettingsSchemaKey: add introspection APIs

    Add g_settings_schema_has_key() and _get_range(), _range_check(),
    _get_value_type(), _get_default_value() methods on GSettingsSchemaKey.

    Deprecate the equivalent APIs on GSettings.

    https://bugzilla.gnome.org/show_bug.cgi?id=683017

 docs/reference/gio/gio-sections.txt |   7 ++
 gio/gsettings.c                     |  80 ++------------
 gio/gsettings.h                     |   4 +-
 gio/gsettingsschema-internal.h      |   4 -
 gio/gsettingsschema.c               | 212
 ++++++++++++++++++++++++++++++------
 gio/gsettingsschema.h               |  13 +++
 6 files changed, 208 insertions(+), 112 deletions(-)

commit c0865fbaf25b3666808b0c044c972c3dd76d397e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 10:23:29 2013 -0700

    bump version

    dconf needs the new version with read_user_value() on the backend API.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bebdfb8e6264f61ffefce3ce297f860909ee2ea3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 27 10:34:01 2013 -0700

    GSettings: add getters for user/default value

    Add two new APIs: g_settings_get_user_value() and
    g_settings_get_default_value().   Together, these should allow the
    inspection of all interesting cases of "is this key set?" and "what
    would happen if I reset this key?"

    https://bugzilla.gnome.org/show_bug.cgi?id=668233

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gsettings.c                     | 100
 ++++++++++++++++++++++++++++++++++++
 gio/gsettings.h                     |   7 +++
 3 files changed, 109 insertions(+)

commit 2d06dbeef185d25c8f4af2936d371c8ea717331b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 27 10:33:08 2013 -0700

    GSettings: small internal refactor

    Add two boolean parameters to our internal getter utility function in
    anticipation of the coming addition of g_settings_get_user_value() and
    g_settings_get_default_value() APIs.

    https://bugzilla.gnome.org/show_bug.cgi?id=668233

 gio/gsettings.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

commit 84a6e651c208971e810d04c1ab08bed6a5f58905
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 27 09:42:32 2013 -0700

    GSettingsBackend: add read_user_value() API

    This will get the 'user' value from the database (ie: the one that
    the user has
    control over).

    Provide a default implementation that chains to ->read().  That will
    work for
    all of our internal backends which don't have a concept of layering or
    lockdown.

    The delayed backend implments "user value" by returning anything
    that's
    in the changeset (incuding an explicit NULL) or chaining up otherwise.

    We will use this for g_settings_get_user_value().

    https://bugzilla.gnome.org/show_bug.cgi?id=668233

 gio/gdelayedsettingsbackend.c  | 27 ++++++++++++++++++++++++
 gio/gsettingsbackend.c         | 47
 ++++++++++++++++++++++++++++++++++++++++++
 gio/gsettingsbackend.h         |  6 +++++-
 gio/gsettingsbackendinternal.h |  3 +++
 4 files changed, 82 insertions(+), 1 deletion(-)

commit d567aa51149186e4675e01a5f11afb0360917da0
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Oct 28 17:07:49 2013 +0000

    gio: Remove an unused variable from Makefile.am

    RESOLVER_LIBADD was not defined anywhere (its functionality has
    migrated to NETWORK_LIBS instead).

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f2c4eb8cbb20424a5e715b7f423d96ba9a30ac7f
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Oct 14 19:41:54 2013 +0100

    docs: Mention that generated code should not be kept

    Code generated by gdbus-codegen should neither be checked in into
    revision control, nor should be distributed.

    https://bugzilla.gnome.org/show_bug.cgi?id=710133

 docs/reference/gio/gdbus-codegen.xml | 5 +++++
 1 file changed, 5 insertions(+)

commit e547d14b7043836c59166af1d5497cb8f73caff6
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Oct 14 19:40:53 2013 +0100

    gdbus-codegen maintains ABI for type structures

    Make it explicit, to avoid changes that could potentially lead to
    breakage in user code.

    https://bugzilla.gnome.org/show_bug.cgi?id=710133

 docs/reference/gio/gdbus-codegen.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 1b08980b48df4bcf973d3e308780dfdb3a62e9fa
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Oct 14 19:30:21 2013 +0100

    gdbus-codegen: Take into consideration MAX_ALLOWED for private data

    The G_ADD_PRIVATE() macro, and the auto-generated
    get_instance_private()
    internal function, should be used conditionally depending on the
    maximum
    allowed version of GLib, as defined by the GLIB_VERSION_MAX_ALLOWED
    pre-processor symbol.

    This allows generating code that can be compiled in projects that wish
    to use an older API version of GLib through the use of the
    GLIB_VERSION_MAX_ALLOWED symbol.

    https://bugzilla.gnome.org/show_bug.cgi?id=710133

 gio/gdbus-2.0/codegen/codegen.py | 29 ++++++++++++++++++++++++++---
 gio/tests/.gitignore             |  1 +
 gio/tests/Makefile.am            |  6 +++++-
 3 files changed, 32 insertions(+), 4 deletions(-)

commit 066df98849e890761a39361a4f5267ae3faa12b0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 28 09:29:15 2013 -0700

    g_settings_schema_list: some fixes

    Prevent a crash in the case that gvdb_table_list() returns NULL (ie:
    because a schema has no keys).

    Stop a memory leak caused by pointlessly stealing keys from a
    hashtable
    (after we quarked them already).

    Stop allocating an extra entry at the end of an array for a terminator
    (that we never wrote anyway) when all functions using this API
    refer to
    the out-parameter length array.

    https://bugzilla.gnome.org/show_bug.cgi?id=711016

 gio/gsettingsschema.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 5616e03f7a89a7dc83438b82e71d31e6456d2675
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 28 12:31:31 2013 -0400

    Fix handling of icons in GNotification

    The fdo backend was sending a uri where a file path
    was expected.

 gio/gfdonotificationbackend.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 65af7c47fff4ab04f26d6c8e33c6a01e19139613
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Nov 28 22:01:21 2012 +0100

    Add a request_certificate virtual method to GTlsInteraction

    This allows GTlsConnection implementations to request a certificate
    from the user.

    Fix ups by Dan Winship <danw@gnome.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=637257

 docs/reference/gio/gio-sections.txt |   7 +-
 gio/gioenums.h                      |  14 +
 gio/gtlsinteraction.c               | 390 ++++++++++++++++++++++++---
 gio/gtlsinteraction.h               |  47 +++-
 gio/tests/Makefile.am               |   2 +
 gio/tests/tls-interaction.c         | 508
 ++++++++++++++++++++++++++++++++----
 6 files changed, 867 insertions(+), 101 deletions(-)

commit 1fba61981a80c7a536113ba55f5a6acee8cd230c
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Sun Oct 27 17:26:33 2013 -0700

    GKeyFileSettingsBackend: ignore file deletions

    Ignore the keyfile being deleted (ie: by the user) instead of
    reporting
    it to the application as all values being reverted back to their
    originals.

    https://bugzilla.gnome.org/show_bug.cgi?id=637956

 gio/gkeyfilesettingsbackend.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit ef57996f44d57a3c6f7abda5a447ca8baf9dfbea
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Oct 27 17:22:38 2013 -0700

    Add test for extended schemas

    The test checks that the keys of the base schema are all present in
    the extended schema.

    https://bugzilla.gnome.org/show_bug.cgi?id=645453

 gio/tests/gsettings.c              | 16 ++++++++++++++++
 gio/tests/org.gtk.test.gschema.xml | 16 ++++++++++++++++
 2 files changed, 32 insertions(+)

commit cbf8cf8598e527a0d3b895cbfedef6b728ab8b82
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 27 17:18:10 2013 -0700

    GSettings: properly support 'extends'

    Support the 'extends' attribute that has been supported by the
    compiler
    for a long time by doing three things:

     - when creating a schema that extends another schema, lookup
     that other
       schema

     - when looking up keys and we can't find them in the schema, check
       (recursively) in the 'extends' schema

     - when listing all keys in a schema, also visit the extends schemas,
       but take care to avoid duplicates caused by overrides

    Extend the testsuite to verify that it works.

    https://bugzilla.gnome.org/show_bug.cgi?id=645453

 gio/gsettingsschema.c | 152
 +++++++++++++++++++++++++++++++-------------------
 1 file changed, 96 insertions(+), 56 deletions(-)

commit 3041d0a8dbc9b82d15291061814c4160a5d400ab
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Fri Oct 25 10:05:02 2013 +0200

    gio: Fix typo in documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=710859

 gio/gfileinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6f386341bd0b03012c3f379d75d78755ef8cc7b6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 19:12:46 2013 -0700

    Add g_settings_schema_source_list_schemas()

    g_settings_list_schemas() and g_settings_list_relocatable_schemas()
    are
    now deprecated.

    This will allow listing off schemas on non-default sources and is a
    better fit with the new direction the API is going.

    https://bugzilla.gnome.org/show_bug.cgi?id=680838

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gsettings.h                     |   4 +-
 gio/gsettingsschema.c               | 172
 ++++++++++++++++++++----------------
 gio/gsettingsschema.h               |   6 ++
 4 files changed, 103 insertions(+), 80 deletions(-)

commit 13067362d2539f47624e4fb38589bf5281dd3276
Author: Colin Walters <walters@verbum.org>
Date:   Sun Oct 27 10:34:08 2013 -0400

    gsubprocess: Add documentation about default input directions

 gio/gsubprocess.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 6bb9d17e40deb230ab14f369304b8feca02230c0
Author: Colin Walters <walters@verbum.org>
Date:   Sun Oct 27 10:21:13 2013 -0400

    gsubprocess: Fall back to plain F_DUPFD+fcntl for OS X <= Snow Lion

    Since it apparently doesn't have F_DUPFD_CLOEXEC.

    https://bugzilla.gnome.org/show_bug.cgi?id=710962

 gio/gsubprocess.c | 32 +++++++++++++++++++++++++++++---
 1 file changed, 29 insertions(+), 3 deletions(-)

commit 00b35c78f861b2413fdb0bcba7d12249e52b0374
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 18:58:06 2013 -0400

    Add a testcase for summary/description

    https://bugzilla.gnome.org/show_bug.cgi?id=668232

 gio/tests/gsettings.c              | 38
 ++++++++++++++++++++++++++++++++++++++
 gio/tests/org.gtk.test.gschema.xml | 18 ++++++++++++++++++
 2 files changed, 56 insertions(+)

commit 96a053e025f4b5a7286844df3d691ebb508953ab
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 18:57:55 2013 -0400

    Add g_settings_schema_key_get_summary/description

    Add an API to read the summary and description from the .xml schema
    files.

    This will be used by dconf-editor and gnome-tweak-tool.

    This API is a bit heavy -- it parses the XML and builds a table.  It
    also loads gettext domains for translation.  It only does these things
    if it is used, however, so it will not impact normal applications.

    We store the summary/description in a pair of hash tables on the
    schema
    source (which we have a backref to as of a few commits ago).  We can't
    use a global table because people might want to request summary and
    description from non-default sources.  We don't want to use per-schema
    tables because we'd have to reparse the directory every time (since we
    cannot guess which file a schema may have been in).

    https://bugzilla.gnome.org/show_bug.cgi?id=668232

 docs/reference/gio/gio-sections.txt |   4 +
 gio/gsettingsschema.c               | 355
 ++++++++++++++++++++++++++++++++++++
 gio/gsettingsschema.h               |   5 +
 3 files changed, 364 insertions(+)

commit 84fa07aeb1e3e41deac3508231712967366abfbd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 18:57:24 2013 -0400

    Make GSettingsSchemaKey public

    Take this private API and make it public along with a boxed type and
    ref/unref functions.

    Future commits will add accessors with new functionality and some that
    allow us to deprecate functions on GSettings itself (such as
    g_settings_get_range).

    https://bugzilla.gnome.org/show_bug.cgi?id=668232

 docs/reference/gio/gio-sections.txt |  7 ++++
 gio/gsettingsschema-internal.h      |  6 ++-
 gio/gsettingsschema.c               | 73
 +++++++++++++++++++++++++++++++++++++
 gio/gsettingsschema.h               | 13 +++++++
 4 files changed, 97 insertions(+), 2 deletions(-)

commit 0ef43ba743d0b3d1f8c13cd7fc8e3abab5609c49
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 18:50:39 2013 -0400

    GSettingsSchema: store a backref to the source

    Record in each GSettingsSchema object the source from which it came.

    This will be useful in future commits.

    https://bugzilla.gnome.org/show_bug.cgi?id=668232

 gio/gsettingsschema.c | 3 +++
 1 file changed, 3 insertions(+)

commit e462eda3d5c86349bd5daa7db687e582001390d7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 18:49:58 2013 -0400

    Clean up GSettingsSchema logic

    The way we created the global schema list predates
    g_settings_schema_source_new_from_directory() and therefore doesn't
    use
    it.

    Update it to use that function, removing some code.

    https://bugzilla.gnome.org/show_bug.cgi?id=668232

 gio/gsettingsschema.c | 55
 +++++++++++++++++++--------------------------------
 1 file changed, 20 insertions(+), 35 deletions(-)

commit ba3103763d1405c9dfd0f14c435aef307dfb92f6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 27 09:24:40 2013 -0700

    tests: test g_hash_table_get_keys_as_array()

    https://bugzilla.gnome.org/show_bug.cgi?id=710964

 glib/tests/hash.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 288076770264c7b34d57c985d827c3a3d2710209
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 26 18:48:42 2013 -0700

    Add g_hash_table_get_keys_as_array()

    Returns a %NULL-terminated array of the keys of a hashtable.

    In the case that the hash table has strings for keys, this is
    actually a
    gchar**.

    https://bugzilla.gnome.org/show_bug.cgi?id=710964

 docs/reference/glib/glib-sections.txt |  1 +
 glib/ghash.c                          | 46
 +++++++++++++++++++++++++++++++++++
 glib/ghash.h                          |  3 +++
 3 files changed, 50 insertions(+)

commit 415c6d2e2742946606c4db5b1157a946767afdb7
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Fri Oct 25 18:02:16 2013 +0200

    gapplication: don't emit warnings for DBus calls

    If a broken (or malicious) remote client calls Open or CommandLine
    on a GApplication that does not implement those, return a DBus
    error instead of going through and then emitting a warning.

    https://bugzilla.gnome.org/show_bug.cgi?id=710885

 gio/gapplicationimpl-dbus.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 3e48e3be40ffb38067dc8cce4e5830cdd9c08aa5
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Fri Oct 25 18:01:51 2013 +0200

    gapplication: fix memory leak

    g_variant_get_child_value() returns a new GVariant, which we must
    free.

    https://bugzilla.gnome.org/show_bug.cgi?id=710885

 gio/gapplicationimpl-dbus.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 0e1924a66c642d4aa4a30b97cff509903f972435
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 25 12:22:42 2013 -0400

    win32: use real random data for seed on win32

    We can get cryptographically secure data from rand_s().

    https://bugzilla.gnome.org/show_bug.cgi?id=710738

 glib/grand.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit 2bf492e97dd2f90c730ff5eecbde99c8f55265ee
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Fri Oct 25 12:44:48 2013 +0530

    Assamese translation updated

 po/as.po | 345
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 184 insertions(+), 161 deletions(-)

commit 8973a8bea710c085e6e357d5bf869000f91a1dc9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 23 15:09:07 2013 -0400

    GLib 2.39.0

 NEWS | 213
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 213 insertions(+)

commit e52ff015522db55d5ec71cd9afa55863247bb74f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 24 14:24:04 2013 -0400

    docs: dist manpage gapplication.xml

 docs/reference/gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit fcd2f7e63923853e113500e48005d269291cf391
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Thu Oct 24 12:09:27 2013 +0100

    tests: Add tests for the thumbnail verification code in GIO

    This code was added for use by the G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID
    file attribute, but may end up being used elsewhere (e.g. in GVfs)
    as well.
    As it’s dealing with untrusted external files, and the non-trivial
    PNG file
    format, this commit adds several test cases to cover valid and
    invalid PNG
    files.

    The security model for the thumbnail verification code is that
    the user’s
    cache directory is untrusted, and potentially any PNG file which
    is passed
    to the verifier has been manipulated arbitrarily by an attacker.

    This is a follow-up to commit
    fe7069749fe39a006985ec266260a3c02ee8c855.

    https://bugzilla.gnome.org/show_bug.cgi?id=709898

 gio/tests/.gitignore                           |   1 +
 gio/tests/Makefile.am                          |  17 ++++
 gio/tests/thumbnail-verification.c             | 121
 +++++++++++++++++++++++++
 gio/tests/thumbnails/bad-header.png            | Bin 0 -> 512 bytes
 gio/tests/thumbnails/empty-key.png             | Bin 0 -> 512 bytes
 gio/tests/thumbnails/header-and-chunk-size.png | Bin 0 -> 20 bytes
 gio/tests/thumbnails/header-only.png           |   2 +
 gio/tests/thumbnails/huge-chunk-size.png       | Bin 0 -> 512 bytes
 gio/tests/thumbnails/mtime-zero.png            | Bin 0 -> 512 bytes
 gio/tests/thumbnails/no-text-data.png          | Bin 0 -> 256 bytes
 gio/tests/thumbnails/overlong-value.png        | Bin 0 -> 512 bytes
 gio/tests/thumbnails/uri-mismatch.png          | Bin 0 -> 512 bytes
 gio/tests/thumbnails/valid-no-size.png         | Bin 0 -> 512 bytes
 gio/tests/thumbnails/valid.png                 | Bin 0 -> 512 bytes
 14 files changed, 141 insertions(+)

commit ed6ca39d3bb3e23c332a5de2b2efbde0d8db21f0
Author: Colin Walters <walters@verbum.org>
Date:   Thu Oct 17 16:57:10 2013 -0400

    Revert "Use g_return_val_if_fail() for developer-only messages"

    This reverts commit 00f0795a84d23f2e2654a86f8bd3a233c8af3771.

    https://bugzilla.gnome.org/show_bug.cgi?id=569017

 gio/gicon.c       | 70
 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 gio/gthemedicon.c | 13 ++++++++++-
 2 files changed, 74 insertions(+), 9 deletions(-)

commit d5e2a57741ec13196360b073a04f7929ebdb642e
Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
Date:   Thu Aug 29 01:05:29 2013 +0900

    gsettings-tool: Add --version into general usage

    https://bugzilla.gnome.org/show_bug.cgi?id=707002

 gio/gsettings-tool.c | 1 +
 1 file changed, 1 insertion(+)

commit 6568843624e9f46a3c51cd8c1a6670896a48f1fb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 23 16:42:12 2013 -0400

    GSettings: verify path validity on constructors

    Don't allow constructing GSettings objects with invalid paths.

    https://bugzilla.gnome.org/show_bug.cgi?id=704802

 gio/gsettings.c | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

commit 0a7d1084a5917815eef34cf9a0bc2d140fcaa190
Author: Olivier Brunel <jjk@jjacky.com>
Date:   Tue Oct 8 16:11:44 2013 +0200

    gthemedicon: Fallback to non-symbolic icons

    When doing fallback for symbolic icons, we first shorten the name
    at dashes
    while preserving the -symbolic suffix. But after exhausting that,
    we should also
    try stripping the suffix.

    See https://bugzilla.gnome.org/show_bug.cgi?id=708163

    Signed-off-by: Olivier Brunel <jjk@jjacky.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=710254

 gio/gthemedicon.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 1e1e2d1ff7debb3941a8841c4ec501dbd6edd1fd
Author: Colin Walters <walters@verbum.org>
Date:   Wed Oct 23 16:41:09 2013 -0400

    grand: Document this is not for cryptographic purposes

    While this is obvious to seasoned experts upon inspection, it is
    really worth documenting explicitly.

    https://bugzilla.gnome.org/show_bug.cgi?id=710736

 glib/grand.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit 856d90156942d340513942126c2536339e00d04a
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Oct 23 15:45:15 2013 +0100

    gdbus: Ensure message matching always succeeds against
    path_namespace='/'

    This copies the fix from upstream D-Bus bug
    https://bugs.freedesktop.org/show_bug.cgi?id=70799 to the GDBusDaemon
    implementation, ensuring that matching against path_namespace='/'
    succeeds
    for all keys (i.e. it’s a no-op).

    https://bugzilla.gnome.org/show_bug.cgi?id=710726

 gio/gdbusdaemon.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit a4bcd3e65aa580fb23bca6e1b09f62dff5837237
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 23 14:17:48 2013 -0400

    gtester: only remove source if not already dead

    Don't attempt to g_source_remove() a source for which we already
    returned FALSE
    from the handler.

    https://bugzilla.gnome.org/show_bug.cgi?id=710724

 glib/gtester.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f7beb90193236c1863fb62eaad607615f5695431
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 23 11:10:00 2013 -0400

    tests: expect critical on failure to remove source

    We've added a g_critical() on failure to remove sources, so make
    sure we
    expect to see that (instead of failing the test due to the unexpected
    message).

    https://bugzilla.gnome.org/show_bug.cgi?id=710724

 glib/tests/protocol.c | 4 ++++
 1 file changed, 4 insertions(+)

commit b9de6f04890eecb1dc9c3b70efbcde35008ba182
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 23 11:04:01 2013 -0400

    gmain: test g_source_remove() with invalid ID

    Make sure we get the proper critical displayed.

    https://bugzilla.gnome.org/show_bug.cgi?id=710724

 glib/tests/mainloop.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit a919be3d39150328874ff647fb2c2be7af3df996
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Oct 23 15:38:58 2013 +0200

    gmain: Warn when g_source_remove() fails

    Trying to remove a non-existent source should really be
    a programming error, as the programmer could be trying to
    use the wrong function to remove a callback, as seen when
    GtkScrolledWindow tried to remove ID from another function
    using g_source_remove().

    See https://bugzilla.gnome.org/show_bug.cgi?id=710666#c12

    https://bugzilla.gnome.org/show_bug.cgi?id=710724

 glib/gmain.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

commit fe7069749fe39a006985ec266260a3c02ee8c855
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 11 11:22:31 2013 +0100

    file-info: Add a G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID attribute

    This indicates whether the thumbnail (given by
    G_FILE_ATTRIBUTE_THUMBNAIL_PATH)
    is valid — i.e. to represent the file in its current state. If
    G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID is FALSE (for a normal _or_ failed
    thumbnail) it means the file has changed since the thumbnail was
    generated, and
    the thumbnail is out of date.

    Part of checking thumbnail validity (by the spec) involves parsing
    headers out of the thumbnail .png so we include some (small) code
    to do
    that in a separate file.  We will likely want to copy this code
    to gvfs
    to do the same for GVfsFile.

    Heavily based on a patch from Philip Withnall
    <philip.withnall@collabora.co.uk>
    who suggested the feature and designed the API.

    https://bugzilla.gnome.org/show_bug.cgi?id=709898

 docs/reference/gio/Makefile.am      |   3 +-
 docs/reference/gio/gio-sections.txt |   1 +
 gio/Makefile.am                     |   2 +
 gio/gfileattribute.c                |   6 +-
 gio/gfileinfo-priv.h                |   1 +
 gio/gfileinfo.c                     |   1 +
 gio/gfileinfo.h                     |  15 +++
 gio/glocalfileinfo.c                |  36 ++++--
 gio/thumbnail-verify.c              | 250
 ++++++++++++++++++++++++++++++++++++
 gio/thumbnail-verify.h              |  31 +++++
 10 files changed, 335 insertions(+), 11 deletions(-)

commit 38dc8d4cd302082c4e308d0b7032160c98736244
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 22 15:51:15 2013 -0400

    GMemoryOutputStream: docs and whitespace fixes

    Document the difference between resizable and fixed-sized streams,
    particularly with regards to sizing and seeking.

    https://bugzilla.gnome.org/show_bug.cgi?id=684842

 gio/gmemoryoutputstream.c | 98
 +++++++++++++++++++++++++++++++----------------
 1 file changed, 64 insertions(+), 34 deletions(-)

commit 1d1c17d9ee69ece6c28da0544d12a29b1c3e4dc9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 22 16:15:29 2013 -0400

    GMemoryOutputStream: improve seek tests

    Improve test coverage for testing seeking on fixed vs. resizable
    GMemoryOutputStream.

    https://bugzilla.gnome.org/show_bug.cgi?id=684842

 gio/tests/memory-output-stream.c | 97
 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 94 insertions(+), 3 deletions(-)

commit fdc5cd8d9fcf9ac8c0ebe27cf6cd3c8648690a8b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 23 11:25:56 2013 -0400

    Change semantics of seek on memory output stream

    It is our intention that memory output streams should operate in two
    distinct modes, depending on if a realloc function was provided
    or not.

    In the case that we have a realloc function (resizable mode), we want
    the stream to behave as if it were a file that started out empty.  In
    the case that we don't have a realloc function (fixed-sized mode), we
    want the stream to behave as a block device would.

    To this end, we introduce two changes in functionality:

     - seeking to SEEK_END on a resizable stream will now seek to the
     end of
       the valid data region, not to the end of the allocated memory
       (which
       is really just an implementation detail)

     - seeks past the end of the allocated memory size are now permitted,
       but only on resizable streams.  The next write will grow the buffer
       (inserting zeros between).

    Some tweaks to testcases were required in order not to break the
    build,
    which indicates that this is an API break, but it seems unlikely that
    anyone will be effected by these changes 'in the real world'.

    Updates to documentation and further testcases are in following
    commits.

    Based on a patch from Maciej Piechotka <uzytkownik2@gmail.com>.

    https://bugzilla.gnome.org/show_bug.cgi?id=684842

 gio/gmemoryoutputstream.c          | 17 +++++++++++++++--
 gio/tests/buffered-output-stream.c |  4 ++--
 gio/tests/memory-output-stream.c   |  2 +-
 3 files changed, 18 insertions(+), 5 deletions(-)

commit 38ef509cf3558bffb326f7c6d511bcd77e98981b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 22 15:01:16 2013 -0400

    GSeekable: document seek-past-end semantics

    Introduce the concept of "fixed" vs. "resizable" streams and document
    how g_seekable_seek() works for each case.

    We don't include g_seekable_is_fixed_size() at this point because we
    don't know if anyone would require it.  This may appear in the
    future if
    someone asks for it, however.

    https://bugzilla.gnome.org/show_bug.cgi?id=684842

 gio/gseekable.c | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

commit 3b28df1e008101341504f82c8e65f3109aca10cc
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Oct 23 15:07:46 2013 +0100

    gdbus: Work around a D-Bus bug with path_namespace='/' match rules

    D-Bus versions < 1.6.18 (i.e. all current versions) have a bug
    with the
    path_namespace='/' match rule key. It should conceptually match
    everything,
    but actually matches nothing. This results in no property change
    (or other)
    signals being forwarded to the D-Bus client.

    The work-around implemented in GDBusObjectManagerClient is to
    remove the
    path_namespace match key if its value is ‘/’.

    For the upstream D-Bus bug, see:
    https://bugs.freedesktop.org/show_bug.cgi?id=70799

    https://bugzilla.gnome.org/show_bug.cgi?id=710726

 gio/gdbusobjectmanagerclient.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

commit 5a3fd63246d2cf7d4d8e2e559320ea0e3658beee
Author: Bastien Nocera <hadess@hadess.net>
Date:   Fri Oct 18 14:37:31 2013 +0200

    g_file_error_from_errno: Remove unneeded breaks

    Just wasting space

    https://bugzilla.gnome.org/show_bug.cgi?id=710625

 glib/gfileutils.c | 25 -------------------------
 1 file changed, 25 deletions(-)

commit 1b592524ff461c8905b43f4fe04ae3bc47d61592
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 22 16:24:41 2013 -0400

    GKeyfile: don't leak on failed get_(u)int64

    In the case that g_key_file_get_(u)int64 fails to parse the integer,
    make sure we free the string before returning.

    Reported by Andrew Stone <astonecc@gmail.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=710313

 glib/gkeyfile.c | 2 ++
 1 file changed, 2 insertions(+)

commit efecfe0fac83fc305fd5e2c3f377ee70e1c987db
Author: Dan Winship <danw@gnome.org>
Date:   Sun Oct 20 09:27:11 2013 -0400

    gobject: simplify object-in-construction handling

    Rather than keeping a global list of objects that are being
    constructed, use qdata on the object itself like we do with several
    other properties now.

    https://bugzilla.gnome.org/show_bug.cgi?id=661576

 gobject/gobject.c | 68
 ++++++++++++++++---------------------------------------
 1 file changed, 19 insertions(+), 49 deletions(-)

commit 0d62eb467f8fbf7a59454bec3498bcdd3c7889e0
Author: Dan Winship <danw@gnome.org>
Date:   Mon Apr 29 13:04:11 2013 -0400

    gobject: forbid finalization-during-construction

    If a constructor() implementation created an object but then unreffed
    it rather than returning it, that object would get left on the
    construction_objects list, which would cause problems later when that
    memory location got reused by another object.

    "Fix" this by making it fail intentionally, and add a test for it (and
    for the normal, working singleton case).

    https://bugzilla.gnome.org/show_bug.cgi?id=661576

 gobject/gobject.c         |  26 +++++---
 gobject/tests/.gitignore  |   1 +
 gobject/tests/Makefile.am |   1 +
 gobject/tests/object.c    | 151
 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 169 insertions(+), 10 deletions(-)

commit a7bd6c47db8330fa0b88201ff4d9abf72fb10ef5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 21 18:46:48 2013 -0400

    Clarify the g_application_withdraw_notification docs

    Mention that notifications are dismissed when activated.

 gio/gapplication.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 1f0e69f73438fb4f6dfbd7676a0ef4d60e9b529c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 21 14:55:52 2013 -0400

    Don't build gapplication(1) on win32

    It's pretty closely tied to desktop files...

 gio/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 358588ed2ad70e68df3d4de2837b0f0e2073910f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 21 14:55:21 2013 -0400

    GSubprocess win32 fixups

    Note: we go out of our way not to pass a child setup function on win32
    (even if it does nothing) because we get a g_warning() from gspawn
    if we
    do so.

 gio/gsubprocess.c                | 41
 ++++++++++++++++++++++++++++++++++++++--
 gio/gsubprocesslauncher.c        | 31 +++++++++++++++++++++---------
 gio/gwin32inputstream.c          |  1 +
 gio/gwin32outputstream.c         |  1 +
 gio/tests/gsubprocess-testprog.c |  1 +
 5 files changed, 64 insertions(+), 11 deletions(-)

commit b21c86b6a01453b522c1a428fc5961d3a4204649
Author: Colin Walters <walters@verbum.org>
Date:   Mon Oct 21 15:05:45 2013 -0400

    GNotification: Don't install private headers, avoid duplicated
    prototype

    These both break gobject-introspection's build, and moreover are
    things we don't want to do anyways.

 gio/Makefile.am             | 4 ++--
 gio/gnotification-private.h | 2 --
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 8dfb0703298bf8f25f3440967fca348ec71e4253
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 18 20:40:57 2013 -0400

    Don't g_test_assert_expected_messages for g_error

    Don't allow the user to assert for expected g_error().  They need
    to use
    subprocess for this.

    https://bugzilla.gnome.org/show_bug.cgi?id=709615

 glib/gmessages.c     |  1 +
 glib/tests/testing.c | 10 ++++++++++
 2 files changed, 11 insertions(+)

commit 6957004007fb2a5faf0013e6ec44926d841404b5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 21 14:29:44 2013 -0400

    GNotification: finish documentation

    Add the missing documentation and add the section to the GIO reference
    docs.  Fix up a few small documentation issues.

    https://bugzilla.gnome.org/show_bug.cgi?id=688492

 docs/reference/gio/Makefile.am      |  2 ++
 docs/reference/gio/gio-docs.xml     |  1 +
 docs/reference/gio/gio-sections.txt | 29 ++++++++++++++++++++++
 gio/giotypes.h                      |  1 -
 gio/gnotification.c                 | 48
 +++++++++++++++++++++++++++++++++----
 5 files changed, 75 insertions(+), 6 deletions(-)

commit 51fac60a92278483892d007323b48dbc375d2645
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 21 12:54:19 2013 -0400

    GNotification: some final cleanups

    Move a method from GNotificationBackend into the fdo backend (since it
    was only used from here).  Remove the accessors for the already-public
    (in private header) ->dbus_connect and ->application on
    GNotificationBackend.

    https://bugzilla.gnome.org/show_bug.cgi?id=688492

 gio/gfdonotificationbackend.c | 35 +++++++++++++++++++++++++----------
 gio/ggtknotificationbackend.c | 12 +++---------
 gio/gnotificationbackend.c    | 34 ----------------------------------
 gio/gnotificationbackend.h    |  8 --------
 4 files changed, 28 insertions(+), 61 deletions(-)

commit 766f5584cea0f78921c9288ba7c1c489e6252dd4
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Tue Oct 15 12:19:09 2013 -0400

    Add gtk notification backend

    https://bugzilla.gnome.org/show_bug.cgi?id=688492

 gio/Makefile.am               |   1 +
 gio/gfdonotificationbackend.c |  15 ++---
 gio/ggtknotificationbackend.c | 144
 ++++++++++++++++++++++++++++++++++++++++++
 gio/giomodule.c               |   2 +
 gio/gnotification-private.h   |   4 +-
 gio/gnotification.c           | 108 ++++++++++++++++++++++++++-----
 gio/gnotification.h           |   4 +-
 gio/gnotificationbackend.c    |  12 +++-
 8 files changed, 261 insertions(+), 29 deletions(-)

commit 639bd3626b683a0be273462d47e6bc30351a77d1
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Tue Oct 15 11:21:10 2013 -0400

    Add GNotification

    https://bugzilla.gnome.org/show_bug.cgi?id=688492

 gio/Makefile.am               |   6 +
 gio/gapplication.c            |  99 +++++++
 gio/gapplication.h            |   8 +
 gio/gfdonotificationbackend.c | 405 ++++++++++++++++++++++++++
 gio/gio.h                     |   1 +
 gio/giomodule.c               |   9 +
 gio/giotypes.h                |   2 +
 gio/gnotification-private.h   |  54 ++++
 gio/gnotification.c           | 639
 ++++++++++++++++++++++++++++++++++++++++++
 gio/gnotification.h           |  94 +++++++
 gio/gnotificationbackend.c    | 112 ++++++++
 gio/gnotificationbackend.h    |  83 ++++++
 12 files changed, 1512 insertions(+)

commit 1b04954cd0712f6bb1e5f575d015a781fdc2135b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Oct 21 15:09:13 2013 +0100

    gmessages: Clarify new-line behaviour of message functions

    Mention that g_printerr() and friends don’t append a trailing
    new-line
    character to printed messages, but g_log() and friends do.

 glib/gmessages.c | 46 +++++++++++++++++++++++++++++++++++++++++++---
 glib/gprintf.c   |  4 ++++
 2 files changed, 47 insertions(+), 3 deletions(-)

commit 0e4d6664471cd3d6157595d868542708323a97f7
Author: Djalal Harouni <tixxdz@opendz.org>
Date:   Sun Oct 20 14:15:25 2013 +0100

    glib-init: fix redundant-decls of g_mem_gc_friendly

    Currently g_mem_gc_friendly is declared in both gmem.h and glib-init.h
    files, we will have reports on each unit that include these two files.

    This patch removes the redundant declaration from glib-init.h

    Since g_mem_gc_friendly is related to gmem.h and was first declared in
    this header which also exports it via glib.h, then declare it
    in gmem.h

    Other files already include gmem.h: garray.c and gslice.c, no need to
    change anything.

    Signed-off-by: Djalal Harouni <tixxdz@opendz.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=710345

 glib/glib-init.c | 1 +
 glib/glib-init.h | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

commit fef69bc65516ad23615aaa0272f4aa2cb5fe30bf
Author: Djalal Harouni <tixxdz@opendz.org>
Date:   Sun Oct 20 13:42:09 2013 +0100

    gmem: remove glib-init.h inclusion

    No need to include glib-init.h here. This was added by
    commit 47444dacc069be but that commit did not make use of any its
    exported symbols, so just remove it.

    Signed-off-by: Djalal Harouni <tixxdz@opendz.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=710345

 glib/gmem.c | 2 --
 1 file changed, 2 deletions(-)

commit 58c26d388307b52b6ef2f9e4ea621c7ea582c584
Author: Enrico Nicoletto <liverig@gmail.com>
Date:   Sat Oct 19 12:39:22 2013 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 724
 +++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 448 insertions(+), 276 deletions(-)

commit d308ede4912213ab64ca98f47a6710091f3ca27f
Author: Djalal Harouni <tixxdz@opendz.org>
Date:   Thu Oct 17 02:04:20 2013 +0100

    gio/gbufferedinputstream: fix redundant-decls of
    g_buffered_input_stream_finalize()

    g_buffered_input_stream_finalize() is already declared as static
    in this
    gbufferedinputstream.c file, so just remove the redundant declaration.

    Signed-off-by: Djalal Harouni <tixxdz@opendz.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=710345

 gio/gbufferedinputstream.c | 2 --
 1 file changed, 2 deletions(-)

commit fe4967f9f131554f4f7ed380b3868104711814f7
Author: Djalal Harouni <tixxdz@opendz.org>
Date:   Thu Oct 17 01:54:11 2013 +0100

    gutils: fix redundant-decls of g_init_user_config_dir()

    g_init_user_config_dir() is already declared as static in this
    gutils.c
    file, so just remove the redundant declaration.

    Signed-off-by: Djalal Harouni <tixxdz@opendz.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=710345

 glib/gutils.c | 1 -
 1 file changed, 1 deletion(-)

commit 97cbfd7901d6d354aa088c6c4a83f53d25780ef6
Author: Djalal Harouni <tixxdz@opendz.org>
Date:   Thu Oct 17 00:54:44 2013 +0100

    gconvert: fix redundant-decls of _g_charset_get_aliases()

    _g_charset_get_aliases() is already declared in gcharsetprivate.h
    which was added by commit 4c2a6595889eff44fa, and gconvert.c includes
    this gcharsetprivate header, so no need to declare it again.

    Signed-off-by: Djalal Harouni <tixxdz@opendz.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=710345

 glib/gconvert.c | 3 ---
 1 file changed, 3 deletions(-)

commit d94d6ecd3f4928d2ea0755841a9f1b381a1c7d99
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 19 11:31:06 2013 -0400

    genviron: fix g_setenv(var, NULL) and some other stuff

    Passing a NULL value to g_setenv() was never documented as working,
    and in fact it worked on some platforms and crashed on others. Make it
    g_return_if_fail() everywhere insted.

    Also, remove some incorrect docs in g_environ_getenv() and
    g_environ_setenv() that shouldn't have been copied from g_getenv() and
    g_setenv(). And belatedly simplify the checks in g_unsetenv().

    https://bugzilla.gnome.org/show_bug.cgi?id=704593

 glib/genviron.c | 26 ++++++++------------------
 1 file changed, 8 insertions(+), 18 deletions(-)

commit 2907d4cc718658556ff0cf56ffec35b419409abf
Author: Jehan <jehan@girinstud.io>
Date:   Sat Oct 19 20:59:41 2013 +1300

    gconvert: Clarify g_locale_to/from_utf8 docs

    It was not clear from the doc whether the return value was to be freed
    or belonging to glib.

    https://bugzilla.gnome.org/show_bug.cgi?id=710496

 glib/gconvert.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d55180c73bfaac3930f412ddc3d1a2fd31f678b1
Author: Ross Lagerwall <rosslagerwall@gmail.com>
Date:   Sat Oct 12 08:13:18 2013 +0200

    docs: Remove comment about calling g_type_init()

    https://bugzilla.gnome.org/show_bug.cgi?id=709966

 docs/reference/gio/overview.xml | 6 ------
 1 file changed, 6 deletions(-)

commit d157e7fdd7085838b3f690b5b20d98b643a3777a
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Fri Oct 18 19:14:51 2013 +0530

    Assamese translation updated

 po/as.po | 478
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 328 insertions(+), 150 deletions(-)

commit fd90101f4af4ca7d257d3c071f81a56bcb261c3b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 17 21:03:18 2013 -0400

    Include gapplication(1) in the tools section

 docs/reference/gio/gio-docs.xml | 1 +
 1 file changed, 1 insertion(+)

commit c848323948b01c69d76ea5e065a12b6e34df4b6b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 17 20:55:53 2013 -0400

    Fix up subprocess docs

    The GSubprocessLauncher docs had their own long description,
    but were not properly set up as their own section.

 docs/reference/gio/gio-docs.xml     |  1 +
 docs/reference/gio/gio-sections.txt | 19 ++++++++++++-------
 gio/gsubprocesslauncher.c           |  2 +-
 3 files changed, 14 insertions(+), 8 deletions(-)

commit 71534d9d629a416874dfe82cd64432db53eaf512
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 17 20:45:32 2013 -0400

    Fix up gio-sections.txt

 docs/reference/gio/gio-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit ea52ce07d8adf3b5bbb3e4f6cc8fe06571006c0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 17 20:38:15 2013 -0400

    Generate introspected docs for GSimpleProxyResolver

 docs/reference/gio/gio.types | 1 +
 1 file changed, 1 insertion(+)

commit 8520c9cdf4180cc7b33779b2d507301c8942b34e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 17 20:37:57 2013 -0400

    Add some missing argument docs

 gio/gsubprocess.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 4cae0703f7fb4cb7ed706c1955c6b8978580d34e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 17 20:16:13 2013 -0400

    Add index for 2.40 api additions

 docs/reference/gio/gio-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit ebd098155b45d87cbf5ca1d3abdac526a51cc1c2
Author: Colin Walters <walters@verbum.org>
Date:   Thu Oct 17 22:39:48 2013 +0100

    tests/gsubprocess: Locate test child binary for installed tests too

    Just use the new g_test_build_filename() rather than assuming
    it's in cwd.

 gio/tests/gsubprocess.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

commit f7e2190e74ea217c7cfb132b1c4dc01d13bda203
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Thu Oct 17 21:56:55 2013 +0200

    Updated POTFILES.in

 po/POTFILES.in | 2 ++
 1 file changed, 2 insertions(+)

commit 00f0795a84d23f2e2654a86f8bd3a233c8af3771
Author: Ihar Hrachyshka <Ihar_Hrachyshka@epam.com>
Date:   Fri Oct 11 23:54:56 2013 +0400

    Use g_return_val_if_fail() for developer-only messages

    Replaced several usages of GError with g_return_val_if_fail() for
    developer-only messages. As additional value, it also removes those
    messages from the list to translate, simplifying translator's work a
    bit.

    https://bugzilla.gnome.org/show_bug.cgi?id=569017

 gio/gicon.c       | 70
 +++++++------------------------------------------------
 gio/gthemedicon.c | 13 +----------
 2 files changed, 9 insertions(+), 74 deletions(-)

commit 542ad4db031273b2ce6416f8909fbff933113ec6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 17 15:01:42 2013 -0400

    Fixup GSubprocess documentation bits

 docs/reference/gio/Makefile.am      |   1 +
 docs/reference/gio/gio-sections.txt |  38 +++-
 gio/gsubprocess.c                   | 343
 +++++++++++++++++++++++-------------
 gio/gsubprocess.h                   |  36 ++--
 gio/gsubprocesslauncher.c           |   3 +-
 5 files changed, 277 insertions(+), 144 deletions(-)

commit 9318d5a4292544f2f7f8f9bc2d805974b3b52c7e
Author: Colin Walters <walters@verbum.org>
Date:   Tue Oct 15 15:04:54 2013 +0100

    gsubprocess: Add UTF-8 variants of communicate()

    Over many years of writing code interacting with subprocesses,
    a pattern
    that comes up a lot is to run a child and get its output as UTF-8, to
    put inside a JSON document or render in a GtkTextBuffer, etc.

    It's very important to validate at the boundaries, and not say deep
    inside Pango.

    We could do this a bit more efficiently if done in a streaming
    fashion,
    but realistically this should be OK for now.

 gio/gsubprocess.c       | 181
 ++++++++++++++++++++++++++++++++++++++++++++++--
 gio/gsubprocess.h       |  21 ++++++
 gio/tests/gsubprocess.c | 105 ++++++++++++++++++++++++++--
 3 files changed, 296 insertions(+), 11 deletions(-)

commit 0e1a3ee3450d1a091234292fde6109bf3c778bab
Author: Colin Walters <walters@verbum.org>
Date:   Tue Oct 15 00:12:22 2013 +0100

    gsubprocess: Fix up communicate

    We weren't closing the streams after we were done reading or writing,
    which is kind of essential.  The easy way to fix this is to just use
    g_output_stream_splice() to a GMemoryOutputStream rather than
    hand-rolling it.  This results in a substantial reduction of code
    complexity.

    A second serious issue is that we were marking the task as complete
    when
    the process exits, but that's racy - there could still be data to read
    from stdout.  Fix this by just refcounting outstanding operations.

    This code, not surprisingly, looks a lot like the "multi" test.

    Next, because processes output binary data, I'd be forced to annotate
    the char*/length pairs as (array) (element-type uint8).  But rather
    than
    doing that, it's *far* simpler to just use GBytes.

    We need a version of this that actually validates as UTF-8, that
    will be
    in the next patch.

 gio/gsubprocess.c         | 398
 ++++++++++++----------------------------------
 gio/gsubprocess.h         |  38 +----
 gio/gsubprocesslauncher.c |  32 ++--
 gio/gsubprocesslauncher.h |   2 +-
 gio/tests/gsubprocess.c   |  70 +++++++-
 5 files changed, 197 insertions(+), 343 deletions(-)

commit 5b48dc40cc13567d276883ee826fe9e78bc7f46a
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 17 14:37:17 2012 -0400

    GSubprocess: New class for spawning child processes

    There are a number of nice things this class brings:

    0) Has a race-free termination API on all platforms (on UNIX, calls to
       kill() and waitpid() are coordinated as not to cause problems).
    1) Operates in terms of G{Input,Output}Stream, not file descriptors
    2) Standard GIO-style async API for wait() with cancellation
    3) Makes some simple cases easy, like synchronously spawning a
       process with an argument list
    4) Makes hard cases possible, like asynchronously running a process
       with stdout/stderr merged, output directly to a file path

    Much rewriting and code review from Ryan Lortie <desrt@desrt.ca>

    https://bugzilla.gnome.org/show_bug.cgi?id=672102

 docs/reference/gio/gio-docs.xml     |    4 +
 docs/reference/gio/gio-sections.txt |   33 +
 docs/reference/gio/gio.types        |    1 +
 gio/Makefile.am                     |    5 +
 gio/gio.h                           |    2 +
 gio/gioenums.h                      |   50 ++
 gio/giotypes.h                      |   18 +
 gio/glib-compile-resources.c        |   81 +-
 gio/gsubprocess.c                   | 1689
 +++++++++++++++++++++++++++++++++++
 gio/gsubprocess.h                   |  174 ++++
 gio/gsubprocesslauncher-private.h   |   61 ++
 gio/gsubprocesslauncher.c           |  718 +++++++++++++++
 gio/gsubprocesslauncher.h           |  118 +++
 gio/tests/.gitignore                |    2 +
 gio/tests/Makefile.am               |    5 +-
 gio/tests/gsubprocess-testprog.c    |  199 +++++
 gio/tests/gsubprocess.c             |  855 ++++++++++++++++++
 17 files changed, 3959 insertions(+), 56 deletions(-)

commit e30bbca6679605487e52e52f810c54a0464b6d37
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Nov 10 13:16:29 2012 -0500

    gspawn: support creating pipes with O_CLOEXEC

    Add a new flag, G_SPAWN_CLOEXEC_PIPES, for creating the stdin/out/err
    pipes with O_CLOEXEC (for the usual reasons).

 glib/gspawn.c | 37 +++++++++++--------------------------
 glib/gspawn.h |  5 ++++-
 2 files changed, 15 insertions(+), 27 deletions(-)

commit c515c3ed111a721047d014832c2fc24bd1adb4a0
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 22 16:06:10 2012 -0400

    gio: Add private API to create win32 streams from fds

    This will be used by GSubprocess.

    https://bugzilla.gnome.org/show_bug.cgi?id=672102

 gio/Makefile.am          |  1 +
 gio/giowin32-priv.h      | 42 +++++++++++++++++++++++++++++++++++++++++
 gio/gwin32inputstream.c  | 49
 +++++++++++++++++++++++++++++++++++++-----------
 gio/gwin32outputstream.c | 49
 +++++++++++++++++++++++++++++++++++++-----------
 4 files changed, 119 insertions(+), 22 deletions(-)

commit aaddd823bcce4c5f751cb694c7c7d5064978213b
Author: Ihar Hrachyshka <Ihar_Hrachyshka@epam.com>
Date:   Thu Oct 10 17:23:00 2013 +0400

    Removed obsolete makefile rules

    Removed test, test-report, full-report, perf-report.  They all
    come from
    an old (now obsolete) approach toward glib testing[1]. Now the blessed
    ways to test glib are 'make check' and installed tests.

    [1]:
    https://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html

    https://bugzilla.gnome.org/show_bug.cgi?id=709995

 docs/Makefile.am |  1 -
 glib.mk          | 59
 ++------------------------------------------------------
 2 files changed, 2 insertions(+), 58 deletions(-)

commit a2f6f0d2f6c8fa0a9ee5ab483af6cea5d5766dfe
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Thu Oct 17 13:02:11 2013 -0400

    gtask: Fix invalid name in documentation

 gio/gtask.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9defb6b1b1de18b6005148e036941e89b400dbd2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 14 19:43:19 2013 -0400

    New gapplication(1) tool

    This is essentially a commandline implementation of the client-side of
    the org.freedesktop.Application D-Bus interface.

    It includes support for tab-completion based on desktop files
    and their
    contents.

    https://bugzilla.gnome.org/show_bug.cgi?id=704218

 docs/reference/gio/Makefile.am      |   1 +
 docs/reference/gio/gapplication.xml | 352 +++++++++++++++++++++++++++
 gio/.gitignore                      |   1 +
 gio/Makefile.am                     |   9 +
 gio/completion/gapplication         |  55 +++++
 gio/gapplication-tool.c             | 463
 ++++++++++++++++++++++++++++++++++++
 6 files changed, 881 insertions(+)

commit 4e1e36a7f0d3254bad01aaf3ba94dc70b230ef62
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 17 08:22:11 2013 -0400

    Revert "gapplication: don't rely on cmdline being finalized
    immediately"

    This reverts commit c5748328bee08e322997cc4703c372f6866a1693.

 gio/gapplicationimpl-dbus.c | 26 +++-----------------------
 1 file changed, 3 insertions(+), 23 deletions(-)

commit c5748328bee08e322997cc4703c372f6866a1693
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Sep 13 11:38:47 2013 -0700

    gapplication: don't rely on cmdline being finalized immediately

    The GApplicationCommandLine DBus implementation currently calls
    g_dbus_method_invocation_return_value() in its finalize()
    implementation
    only, relying on the object being destroyed after g_object_unref() is
    called on it inside g_application_impl_method_call().

    While this is usually fine for C applications, when overriding the
    command_line vfunc from language bindings, the binding might add extra
    references to the object, which might not be released immediately
    - e.g.
    because they're garbage collected, or possibly even leaked. The same
    scenario could happen in a C application that decides to keep a
    reference to the passed-in GApplicationCommandLine object.

    To ensure the CommandLine DBus method always gets a reply after the
    invocation of command_line in the primary instance, explicitly
    send the
    message back before dropping our reference to the object.

    https://bugzilla.gnome.org/show_bug.cgi?id=708042

 gio/gapplicationimpl-dbus.c | 26 +++++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

commit be2656f13952dd22d348ff5e3f43240700cdef5a
Author: Colin Walters <walters@verbum.org>
Date:   Wed Oct 16 10:10:22 2013 -0400

    g_file_copy: Fall back to pathname queryinfo to help gvfs backends

    It's not difficult to do; not all backends implement it, and for some
    it may be difficult to implement query_info_on_read(), so let's just
    do both.

    https://bugzilla.gnome.org/show_bug.cgi?id=706254

 gio/gfile.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

commit 4fea5c0029bdb8d800c5857bfba983147fe53445
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Tue Oct 15 11:02:40 2013 -0400

    Fix wrong function names in g_str_match_string() documentation

 glib/gstrfuncs.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit b2c15f18b2f35d2363922469e3497e5a10459e52
Author: Ihar Hrachyshka <Ihar_Hrachyshka@epam.com>
Date:   Sat Oct 12 16:43:16 2013 +0400

    Updated reference to README.commits

    The major useful information regarding commits is now placed in
    README.commits, not README.

    https://bugzilla.gnome.org/show_bug.cgi?id=709994

 HACKING | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c6d7e1ede766ea0227d2a594a3129445d03a6dfe
Author: Andika Triwidada <andika@gmail.com>
Date:   Tue Oct 15 11:54:59 2013 +0700

    Updated Indonesian translation

 po/id.po | 244
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 124 insertions(+), 120 deletions(-)

commit 04202954308471196817318b12df64665656fcda
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Wed Oct 9 14:32:58 2013 -0400

    Add testcase for search utilities functions

    https://bugzilla.gnome.org/show_bug.cgi?id=709753

 glib/tests/.gitignore     |  1 +
 glib/tests/Makefile.am    |  1 +
 glib/tests/search-utils.c | 76
 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 78 insertions(+)

commit 38dfce5992db803de0a179705ab93109012faa3c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 14 14:37:10 2013 -0400

    Add simple string "search" function

    Add a pair of functions to make it easier to do simple string
    matching.

    This will be useful for use with things like GtkSearchBar and
    will also
    be the basis of the searching done by the (soon to appear)
    g_desktop_app_info_search()

    https://bugzilla.gnome.org/show_bug.cgi?id=709753

 docs/reference/glib/glib-sections.txt |   2 +
 glib/gstrfuncs.c                      | 239
 ++++++++++++++++++++++++++++++++++
 glib/gstrfuncs.h                      |  10 ++
 3 files changed, 251 insertions(+)

commit 4c510801cfc8120d7dea7ae8121832e8d17d2453
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 14 14:36:34 2013 -0400

    Add g_str_is_ascii()

    Add a function for checking if a string is pure ASCII.

    https://bugzilla.gnome.org/show_bug.cgi?id=709753

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gstrfuncs.c                      | 23 +++++++++++++++++++++++
 glib/gstrfuncs.h                      |  2 ++
 3 files changed, 26 insertions(+)

commit c4c3ee6087d36603b29a8a1201c7171d2f99c0b1
Author: Noah Massey <gnome@walterwelp.net>
Date:   Sun Oct 13 10:25:39 2013 -0400

    gmain: mark newest id used when source id overflows

    When the source id reaches G_MAXUINT (just prior to overflow), we
    record the existing source ids to prevent reassigning them.  As we are
    about to assign G_MAXUINT to the triggering source, that id should be
    added as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=710002

 glib/gmain.c | 1 +
 1 file changed, 1 insertion(+)

commit e2d5282636bcbf4c8ac64a599bb020d33cd59897
Author: Colin Walters <walters@verbum.org>
Date:   Tue Oct 8 12:17:16 2013 -0400

    GMemoryOutputStream: Don't return -1 as a gboolean in precondition

    Since it could confuse callers (admittedly who are already violating
    a precondition).

    Just spotted while adapting some bits of this code for a ssh library.

 gio/gmemoryoutputstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 30772e74bf42cf7be67041df21316d305027f0fc
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Mon Oct 7 12:56:28 2013 +0530

    Assamese translation updated

 po/as.po | 246
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 125 insertions(+), 121 deletions(-)

commit 8e17040c159bf0a7cf060f12e467a0ad1f5b6741
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 4 12:58:48 2013 -0400

    Fix overloading of "source" and "target" terminology in GBinding

    GBindingTransformFunc called its arguments "source_value" and
    "target_value", but in the transform_from function of a bidirectional
    binding, "source_value" comes from the target object, and
    "target_value" comes from the source object, which quickly gets
    confusing if you need to use g_binding_get_source(), etc, in the
    function.

    Of course developers can call their transform function arguments
    whatever they want, but many will copy from the headers/docs to start
    out, so use less confusing names here ("from_value" and "to_value").

    Also, fix the documentation to describe the bidirectional case
    correctly.

    https://bugzilla.gnome.org/show_bug.cgi?id=709440

 gobject/gbinding.c      | 44 ++++++++++++++++++++++----------------------
 gobject/gbinding.h      | 17 ++++++++++-------
 gobject/tests/binding.c | 24 ++++++++++++------------
 3 files changed, 44 insertions(+), 41 deletions(-)

commit be7f40185fb2ce884112c1f8a4b196ea65350466
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Sat Sep 21 13:52:09 2013 +0200

    xdgmime: Fix an invalid read

    This commit factors out a function for comparing string suffixes,
    and at
    the same time makes it safe for mime types that are shorter than the
    "/*" suffix.

    ==25418== Invalid read of size 1
    ==25418==    at 0x3C6D0F9D22: __gio_xdg_cache_mime_type_subclass
    (xdgmimecache.c:848)
    ==25418==    by 0x3C6D09ED8C: g_content_type_is_a (gcontenttype.c:158)
    ==25418==    by 0x34D8031E95: gtk_recent_filter_filter
    (gtkrecentfilter.c:733)
    ==25418==    by 0x34D802F167: _gtk_recent_chooser_get_items
    (gtkrecentchooserutils.c:387)
    ==25418==    by 0x34D802D07F: idle_populate_func
    (gtkrecentchoosermenu.c:1011)
    ==25418==    by 0x34D7A20477: gdk_threads_dispatch (gdk.c:804)
    ==25418==    by 0x3C6C0492F5: g_main_context_dispatch (gmain.c:3065)
    ==25418==    by 0x3C6C049677: g_main_context_iterate.isra.23
    (gmain.c:3712)
    ==25418==    by 0x3C6C04972B: g_main_context_iteration (gmain.c:3773)
    ==25418==    by 0x34D7FC2AF4: gtk_main_iteration (gtkmain.c:1262)
    ==25418==    by 0x408EB4: main (in /usr/bin/glade)

    https://bugzilla.gnome.org/show_bug.cgi?id=708529

 gio/xdgmime/xdgmime.c      | 19 ++++++++++++++-----
 gio/xdgmime/xdgmimecache.c | 19 ++++++++++++++-----
 2 files changed, 28 insertions(+), 10 deletions(-)

commit 5aead642c29d2fcd4cc4152449eb434b52edc6af
Author: John Ralls <jralls@ceridwen.us>
Date:   Fri Oct 4 11:45:47 2013 -0700

    Restore gl_GLIBC21 to configure; needed for libcharset

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit e0ffd5c184bd1c0e6d602c406f53ed5f6b765f88
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 3 10:02:08 2013 -0400

    appinfo: Don't try DBusActivatable with load_from_keyfile

    We can't get the name of the filename, so we can't determine the
    application
    ID.  We'll have to fallback on Exec= for this case.

    https://bugzilla.gnome.org/show_bug.cgi?id=709326

 gio/gdesktopappinfo.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 5d7a7df867543644a4dc55ba980833743ffa1859
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 3 12:39:53 2013 -0400

    Add g_key_file_save_to_file()

    To write a keyfile to disk.

    https://bugzilla.gnome.org/show_bug.cgi?id=309224

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gkeyfile.c                       | 38
 +++++++++++++++++++++++++++++++++++
 glib/gkeyfile.h                       |  4 ++++
 3 files changed, 43 insertions(+)

commit 5a269e5a90181a5cafce90e7e5d7bc4f42f47f52
Author: Dan Winship <danw@gnome.org>
Date:   Thu Sep 19 16:09:38 2013 -0400

    gcredentials: add Solaris support

    Based on patches from Igor Pashev.

    https://bugzilla.gnome.org/show_bug.cgi?id=705029

 gio/gcredentials.c            | 52
 +++++++++++++++++++++++++++++++++++++++----
 gio/gcredentialsprivate.h     | 12 ++++++++++
 gio/gioenums.h                |  4 +++-
 gio/gsocket.c                 | 36 ++++++++++++++++++++++++------
 gio/gunixcredentialsmessage.c |  2 ++
 gio/tests/credentials.c       | 18 +++++++++++++++
 6 files changed, 112 insertions(+), 12 deletions(-)

commit 66edac7fb9f44009cdcac68c102c77d880e139a3
Author: Dan Winship <danw@gnome.org>
Date:   Thu Sep 19 12:56:56 2013 -0400

    gcredentials: add Hurd support

    It uses the same system as FreeBSD.

    https://bugzilla.gnome.org/show_bug.cgi?id=708265

 gio/gcredentials.c        | 5 +++--
 gio/gcredentialsprivate.h | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

commit cedd697bf80faf18d0d42b3e4d8bef5a5cf8ef9f
Author: Dan Winship <danw@gnome.org>
Date:   Wed Sep 18 13:40:09 2013 -0400

    gcredentials: add internal macros to simplify all the #ifdefs

    Rather than having lots of obscure platform-based #ifdefs all over
    gio, define some macros in gcredentialsprivate.h, and use those to
    simplify the rest of the code.

    https://bugzilla.gnome.org/show_bug.cgi?id=701482

 gio/Makefile.am               |   1 +
 gio/gcredentials.c            | 174
 ++++++++++++++++++------------------------
 gio/gcredentialsprivate.h     |  51 +++++++++++++
 gio/gsocket.c                 |  36 ++++-----
 gio/gunixcredentialsmessage.c | 140 ++++++++++++---------------------
 gio/tests/credentials.c       |  53 +++++++++----
 gio/tests/gdbus-peer.c        |  48 ++++--------
 7 files changed, 238 insertions(+), 265 deletions(-)

commit 32d2539295308711ec97b37feb104e1be04ba454
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Oct 3 20:26:18 2013 +0200

    GDBusProxy: add flag to control autostarting at construction time

    Sometimes the application doesn't want to autostart a service
    when it creates a proxy, but wants the service autostarted when
    it makes the first method call. Allow that behavior with a new
    flag.

    https://bugzilla.gnome.org/show_bug.cgi?id=708828

 gio/gdbusproxy.c | 15 ++++++++-------
 gio/gioenums.h   |  7 ++++++-
 2 files changed, 14 insertions(+), 8 deletions(-)

commit c8e1dbb106e27653176a1692f05c287cd8ca0bfd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 27 15:08:58 2013 -0400

    gdesktopappinfo: Large-scale whitespace fixup

    Fix up a lot of whitespace issues in this file since we're about to do
    some pretty serious rewriting here anyway...

    Add some fold markers while we're at it.

 gio/gdesktopappinfo.c | 1208
 +++++++++++++++++++++++++------------------------
 1 file changed, 626 insertions(+), 582 deletions(-)

commit b0601e75583600d0ea54e67f98ba91a7580df07c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 24 17:48:37 2013 -0400

    gdesktopappinfo: rework search path

    Change the search path to be a global array of 'DesktopFileDir'
    structures and
    change the 'get' function to an 'ensure' function.

    This is just a straight-up refactor.  Future patches will expand the
    DesktopFileDir structure.

 gio/gdesktopappinfo.c | 95
 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 53 insertions(+), 42 deletions(-)

commit 5e59ab8e8cb953bf9212ed47e8a41d34611a10de
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 24 17:28:43 2013 -0400

    gdesktopappinfo: remove global_defaults_cache

    ...and some related functions.

    This variable is also used for nothing at all.

 gio/gdesktopappinfo.c | 28 +++-------------------------
 1 file changed, 3 insertions(+), 25 deletions(-)

commit b95ef4aad457d502973ae6396e3bf45e3ba12753
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 24 17:26:45 2013 -0400

    gdesktopappinfo: remove should_ping_mime_monitor

    This variable is used for nothing...

 gio/gdesktopappinfo.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

commit 33762a417381db8cdd3229f12959ed01c0389165
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 25 14:05:36 2013 -0400

    glocalfile: add private worker monitor APIs

    Add a convenient and race-free method of watching local files from the
    GLib worker thread.

    Without this, the race-free way to create a monitor that dispatches
    events to the worker thread looked something like this:

     - dispatch an idle to the worker thread
     - from the idle, create the monitor and connect signals
     - from the original thread, wait (on a cond?) until the worker thread
       has finished setting up the monitor
     - read the file that you were monitoring

    which is just ridiculously complicated...

    To use the new API:

      monitor = g_local_file_monitor_new_in_worker ("/path/to/some/file",
                                                    G_FILE_MONITOR_NONE,
                                                    &error);
      g_assert_no_error (error);

      g_signal_connect (monitor, "changed", G_CALLBACK (callback), NULL);

      g_local_file_monitor_start (monitor);

    'callback' will run from the GLib worker thread.

    This is the reason that the start() call was introduced in the
    previous
    commit.  The backends that don't use the start() call will have a very
    thin race between creating the monitor and connecting the signal, but
    hopefully they will be fixed soon.

    These new APIs will be used (at least) from gdesktopappinfo to
    watch for
    changes in the desktop file directories.

    https://bugzilla.gnome.org/show_bug.cgi?id=704887

 gio/glocaldirectorymonitor.c | 10 ++++++----
 gio/glocaldirectorymonitor.h |  7 +++++++
 gio/glocalfile.c             | 26 ++++++++++++++++++++++++--
 gio/glocalfilemonitor.c      |  6 ++++--
 gio/glocalfilemonitor.h      |  7 +++++++
 5 files changed, 48 insertions(+), 8 deletions(-)

commit 5409d7827e1e51d8efd078e3f36eddc3c0405804
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 25 14:17:09 2013 -0400

    GFileMonitor: support specifying a context

    Add a new "context" construct-only property to allow explicitly
    specifying the context in which events should be dispatched.

    https://bugzilla.gnome.org/show_bug.cgi?id=704887

 gio/gfilemonitor.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit 700677de512e19060337121692058627fe717d24
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 25 13:48:50 2013 -0400

    inotify: stop using constructor()

    and start using the new start() vcall on the local monitor classes.

    I only port inotify because I am uncomfortable making changes to the
    other monitor backends without having a way of testing them.

    https://bugzilla.gnome.org/show_bug.cgi?id=704887

 gio/inotify/ginotifydirectorymonitor.c | 36 ++++++--------------
 gio/inotify/ginotifyfilemonitor.c      | 62
 ++++++++++------------------------
 2 files changed, 28 insertions(+), 70 deletions(-)

commit b050dc3c0a2236887719ddc7d1f53866bf4d5267
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 25 13:29:16 2013 -0400

    local monitors: make more idiomatic use of GObject

    Stop abusing constructor() to do startup work, adding _start() calls
    instead.

    The backends themselves still use constructor() although a patch
    will be
    following to also fix inotify.

    The reason for using a separate start() call instead of constructed()
    will become apparent in future commits.

    https://bugzilla.gnome.org/show_bug.cgi?id=704887

 gio/glocaldirectorymonitor.c | 73
 +++++++++++++++-----------------------------
 gio/glocaldirectorymonitor.h |  2 ++
 gio/glocalfilemonitor.c      | 66 ++++++++++++---------------------------
 gio/glocalfilemonitor.h      |  3 ++
 4 files changed, 48 insertions(+), 96 deletions(-)

commit 1ddfd9d98ebb772534eba27bdf275cc0507a5b09
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 25 13:19:56 2013 -0400

    directory monitor: use the right 'mount_notify'

    During initialisation of a directory monitor with the
    G_FILE_MONITOR_WATCH_MOUNTS flag set, GLocalDirectory monitor will
    add a
    UNIX mount watch in case the file notification backend doesn't support
    reporting these events for itself.

    Unfortunately, it was performing the check incorrectly, resulting in a
    monitor always being added.

    Fix that, and add the #define for
    G_LOCAL_DIRECTORY_MONITOR_GET_CLASS()
    that was also missing (since the fix depends on it).

    https://bugzilla.gnome.org/show_bug.cgi?id=704882

 gio/glocaldirectorymonitor.c | 2 +-
 gio/glocaldirectorymonitor.h | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

commit dd4c3695b4e4559179c2a10b7e1a6a13f8f8293e
Author: Colin Walters <walters@verbum.org>
Date:   Wed Oct 2 10:32:03 2013 -0400

    goutputstream: Add clear warning about short writes to _write_bytes()
    and async version

    Matthew Barnes noted this on IRC a few days ago.  I just had this file
    open for other reasons and decided to tweak the docs to make this trap
    more clear.

    https://bugzilla.gnome.org/show_bug.cgi?id=709301

 gio/goutputstream.c | 62
 ++++++++++++++++++-----------------------------------
 1 file changed, 21 insertions(+), 41 deletions(-)

commit 27898916d42f0e827cf2e99c12ab7bcd0a3712a9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Aug 8 18:50:21 2013 +0200

    g_settings_list_children: only list viable schemas

    Don't return children with invalid schemas from
    g_settings_list_children() (ie: missing schemas or mismatched paths).
    This prevents gsettings list-recursively from crashing when broken
    schemas are installed on the system.

    https://bugzilla.gnome.org/show_bug.cgi?id=705688

 gio/gsettingsschema.c | 56
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 55 insertions(+), 1 deletion(-)

commit d1e4f3dd1a67a646314918d90119e352d34315cb
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Oct 1 15:40:43 2013 +0200

    unicode: Update to unicode 6.3.0

    No new blocks were added in 6.3, and only 5 new characters to be used
    with the updated BiDi algorithm. And some character properties
    were changed.

    See http://www.unicode.org/versions/Unicode6.3.0/ for more
    information.

    https://bugzilla.gnome.org/show_bug.cgi?id=709227

 glib/gscripttable.h   | 11 ++++++-----
 glib/gunibreak.h      | 31 ++++++++++++++-----------------
 glib/gunichartables.h | 34 +++++++++++++++++-----------------
 3 files changed, 37 insertions(+), 39 deletions(-)

commit 2f57139b282f2ddf110966d4d0e80c6409230f67
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Oct 1 03:38:24 2013 -0700

    Fix crashes in various GParamSpec creation functions

    Add NULL check and return after calls to g_param_spec_internal
    in GParamSpec
    creation functions. This avoids glib crashing due to things like
    badly named
    properties.

    https://bugzilla.gnome.org/show_bug.cgi?id=707887

 gobject/gparamspecs.c | 52
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit 75bb906e5ea7927f8d411085e8e7539c5b85c313
Author: Michael Forney <mforney@mforney.org>
Date:   Tue Oct 1 05:19:55 2013 -0700

    Add missing string.h include

    Required for memset()

 gio/gnetworkmonitornetlink.c | 1 +
 1 file changed, 1 insertion(+)

commit 713614608d38ba5e16ffd54796ed60ac5dc2e004
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 30 13:06:30 2013 -0400

    Fix a careless mistake in the last commit

    Thanks Colin :)

 glib/gmain.c | 1 +
 1 file changed, 1 insertion(+)

commit 5ad7893b51d8652561dff72c70d6cb53416a31bf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 12 14:57:09 2013 -0400

    gmain: Remove dispatching source stack

    This stack exists only to answer the question of "what is the
    currently
    dispatching source" and is handled in a way that makes it very clear
    that we don't need to be using a linked list at all...

    Just store the GSource directly.

    Independently discovered (and same solution) by Phillip Susi.

    https://bugzilla.gnome.org/show_bug.cgi?id=709113

 glib/gmain.c | 37 ++++++++++++++-----------------------
 1 file changed, 14 insertions(+), 23 deletions(-)

commit 4e9e7d0cba53a711bd650e9a5e28452b93f0d849
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Mon Feb 18 08:12:50 2013 -0600

    GOutputStream: Use async read/write of streams in splice_async()

    There are some corner cases where using the sync version of read/write
    in a thread could cause thread-safety issues. In these cases it's
    possible to override the output stream's splice_async() function,
    but for input streams one would need to do some acrobatics to
    stay thread-safe. Alternatively, some implementations may not even
    override their sync read/write functions.

    This patch refactors the default splice_async() implementation to
    call the sync read and write functions in a thread only when both
    async versions are thread-based. When one or both are non-threaded,
    it calls the virtual write_async() and read_async() functions of the
    involved streams within the same thread.

    https://bugzilla.gnome.org/show_bug.cgi?id=691581

 gio/goutputstream.c | 180
 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 175 insertions(+), 5 deletions(-)

commit 87e5617a65883c49eab9291db4a644a520362ed0
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Mon Feb 18 07:58:58 2013 -0600

    GOutputStream: Split _close_async for internal use

    Refactor g_output_stream_close_async() into itself and an internal
    variant for potential use inside other operations (splice_async).
    The internal version must be called between
    g_output_stream_set_pending() and g_output_stream_clear_pending().

    https://bugzilla.gnome.org/show_bug.cgi?id=691581

 gio/goutputstream.c | 76
 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 68 insertions(+), 8 deletions(-)

commit 416ca8ad5729bfe92c1e32e1f9464849870a5ede
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Sun Feb 24 09:09:05 2013 -0600

    GOutputStream: Rename _g_output_stream_close_internal() for
    consistency

    https://bugzilla.gnome.org/show_bug.cgi?id=691581

 gio/goutputstream.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit e967a76728700d27719388653946c9190e95063b
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Sat Feb 23 15:13:53 2013 -0600

    tests: Add testcases for g_output_stream_splice_async()

    Previously, no testcases tested the close flags of
    g_output_stream_splice_async. This patch adds tests for that and
    also tests various combinations of threaded and non-threaded
    GInputStream async reads and GOutputStream async writes.

    https://bugzilla.gnome.org/show_bug.cgi?id=691581

 gio/tests/.gitignore                   |   1 +
 gio/tests/Makefile.am                  |   1 +
 gio/tests/async-splice-output-stream.c | 205
 +++++++++++++++++++++++++++++++++
 3 files changed, 207 insertions(+)

commit dec3bfeebc20d8fee9d6ddd6a7187ac762887f2d
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Sat Feb 23 17:42:49 2013 -0600

    GOutputStream: Add g_output_stream_async_write_is_via_threads()

    In implementing a better g_output_stream_splice_async() and possibly
    other situtations it's helpful to know whether the output stream's
    write function internally uses threads. If it and the input stream's
    read async functions use threads, then the splice function could
    spawn a single thread for better efficiency.

    This patch adds a function to determine whether an output stream's
    g_output_stream_write_async() function internally uses threads.

    https://bugzilla.gnome.org/show_bug.cgi?id=691581

 gio/gioprivate.h    |  2 ++
 gio/goutputstream.c | 26 ++++++++++++++++++++++++--
 2 files changed, 26 insertions(+), 2 deletions(-)

commit 94a232a4ed6245d0189f7de182f10a7c3825dc73
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Sat Feb 23 17:32:31 2013 -0600

    GInputStream: Add g_input_stream_async_read_is_via_threads()

    In implementing a better g_output_stream_splice_async() and possibly
    other situtations it's helpful to know whether the input stream's
    read function internally uses threads. If it and the output stream's
    write async functions use threads, then the splice function could
    spawn a single thread for better efficiency.

    This patch adds a function to determine whether an input stream's
    g_input_stream_read_async() function internally uses threads.

    https://bugzilla.gnome.org/show_bug.cgi?id=691581

 gio/Makefile.am    |  1 +
 gio/ginputstream.c | 32 +++++++++++++++++++++++++-------
 gio/gioprivate.h   | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 58 insertions(+), 7 deletions(-)

commit ab5aa2aa3a43cbd94aa6d7f3d683f9875df7249a
Author: John Ralls <jralls@ceridwen.us>
Date:   Sun Sep 29 11:33:30 2013 -0700

    Fix the -Werror=format-nonliteral fixes for older GCCs

    They don't allow that pragma inside functions.

 gio/gcontenttype.c      |  6 +++---
 gio/gthreadedresolver.c |  8 +++++---
 glib/gfileutils.c       | 10 +++++-----
 glib/gmarkup.c          |  8 +++++---
 glib/gstrfuncs.c        |  7 ++++---
 glib/gutils.c           |  8 +++++---
 6 files changed, 27 insertions(+), 20 deletions(-)

commit 09d83640a8e79bff71cddf90d39b40ef411d30c9
Author: John Ralls <jralls@ceridwen.us>
Date:   Sat Sep 28 16:44:32 2013 -0700

    More -Werror=format-nonliteral fixes

    This fixes the build with CLang.

    https://bugzilla.gnome.org/show_bug.cgi?id=702516

 gio/gcontenttype.c      | 5 ++++-
 gio/gthreadedresolver.c | 3 +++
 glib/gmarkup.c          | 5 ++++-
 glib/gstrfuncs.c        | 5 ++++-
 glib/gutils.c           | 3 +++
 5 files changed, 18 insertions(+), 3 deletions(-)

commit 38d1658b879c036f086b9dd5195d95bde8e08785
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 17 17:49:12 2013 -0400

    gfileutils: Make -Werror=format-nonliteral happy

    I tried to please it by using G_GNUC_FORMAT, but that didn't work, so
    let's just fall back to pushing an ignore.

    https://bugzilla.gnome.org/show_bug.cgi?id=702516

 glib/gfileutils.c | 50 ++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 36 insertions(+), 14 deletions(-)

commit b5ce635a423c8fbf226d46b3e7cdd106561fecbb
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 28 12:31:52 2013 -0400

    gmessages: fix clang annotations to work with older versions

    https://bugzilla.gnome.org/show_bug.cgi?id=708793

 glib/gmessages.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 4a953af8a53552931b7a5e32849f1ddca6658c4e
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 28 12:18:14 2013 -0400

    gio: make gnetworking.h nodist

    https://bugzilla.gnome.org/show_bug.cgi?id=708972

 gio/Makefile.am | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c9ac45a023dda81d232e4efc8e9642e2b849a973
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 28 10:39:01 2013 -0400

    .gitignore: add "signals"

 tests/gobject/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit e3fa9c9ab6a2b1f9955c457f413ddc81d0c1f3ff
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Fri Sep 27 10:09:32 2013 +0100

    Only use SA_RESTART if it exists

    Fixes build on QNX (and possibly HPUX given Bug 168352)
    Patch essentially from pkgsrc devel/glib2/patches/patch-ai

    https://bugzilla.gnome.org/show_bug.cgi?id=583321

 glib/gmain.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 2d8e5ef81e8116eeb8fea18292360dd3166b4b4e
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Sep 25 16:14:17 2013 +0200

    gdesktopappinfo: Call g_file_get_path() on demand

    Rather than always calling out to g_file_get_path() (which
    might block, whatever the documentation might say), postpone
    the call until we actually need it.

    https://bugzilla.gnome.org/show_bug.cgi?id=708753

 gio/gdesktopappinfo.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 458c1c0f16566e9ddfabe3c211adcb7815730e28
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Fri Sep 27 14:52:51 2013 +1200

    gio: Fix documentation for GSocketControlMessage that refers to a
    'file description' instead of a 'file descriptor'

 gio/gsocketcontrolmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0167c3340d8201dca8e9031b61703bbc5ed6ce33
Author: Jan Schmidt <thaytan@noraisin.net>
Date:   Wed Sep 25 19:22:26 2013 +1000

    gio: Fix -Werror format string errors from mismatched ints.

 gio/gdbusmessage.c | 8 ++++----
 gio/gdbusprivate.c | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 7eb1e5fc5bc5aa6744bd516463ca2d65104c5a4e
Author: William Orr <will@worrbase.com>
Date:   Thu Sep 26 11:02:06 2013 -0700

    glocalfile: Only use O_DIRECTORY if available

    Solaris 10 for example doesn't have it.

    https://bugzilla.gnome.org/show_bug.cgi?id=708860

 configure.ac     | 12 ++++++++++++
 gio/glocalfile.c |  6 +++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

commit e631507c50330157e09fe07a781c004ab1e6b456
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Wed Sep 25 23:11:08 2013 +0400

    Updated Russian translation

 po/ru.po | 1406
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 679 insertions(+), 727 deletions(-)

commit 3c5aad358c3de1c27dcd86100bc47891d20d80ed
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Wed Sep 25 09:39:20 2013 +0200

    Fix typo in GLIB_VERSION_2_40 docs.

    https://bugzilla.gnome.org/show_bug.cgi?id=708714

 glib/gversionmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 93101f1b8938eb7a679514c96c0ef5aeafa7c3a6
Author: Shantha kumar <shkumar@redhat.com>
Date:   Wed Sep 25 12:28:53 2013 +0530

    Tamil Translations Updated

 po/ta.po | 139
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 72 insertions(+), 67 deletions(-)

commit 74314de4d8c13b817fe433a8ff4c5a249cd1d722
Author: James Strandboge <jamie@strandboge.com>
Date:   Tue Sep 24 13:19:20 2013 +0100

    gio: Fix typo in the /org/freedesktop/DBus path

    https://bugzilla.gnome.org/show_bug.cgi?id=708677

 gio/gdbusobjectmanagerclient.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1d4bb3f5d0e88754aedb04d0a7df0e0c2788e363
Author: Svante Signell <svante.signell@gmail.com>
Date:   Wed Sep 18 16:39:09 2013 +0200

    gio/gsocket.c: Fix error code checks when SOCK_CLOEXEC is defined but
    not supported on GNU/Hurd.

    https://bugzilla.gnome.org/show_bug.cgi?id=708266

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 04e784e0c2675e104cc1d39c3e4e649c3a326e2c
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Tue Sep 24 19:01:24 2013 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 14 +++++++-------
 po/zh_TW.po | 12 ++++++------
 2 files changed, 13 insertions(+), 13 deletions(-)

commit d974d2ec8f7b4c8231a4b7b388d93737ebbec9b6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 23 17:47:49 2013 -0400

    Bump version to 2.39.0

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fbe3ce89a8a3696393d504fdd4372b86837eac6a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 23 17:46:58 2013 -0400

    Introduce version macros for 2.40

 glib/gversionmacros.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit c8de2b11bbbf5705ee20bf68d0c11e455b441312
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 23 16:14:57 2013 -0400

    GLib 2.38.0

 NEWS         | 129
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |   4 +-
 2 files changed, 131 insertions(+), 2 deletions(-)

commit 9da87f597cb81965f697c09a71e7d1dada010561
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 23 17:04:53 2013 -0400

    fix up refcount/properties test case

    Recent changes to the properties testcase made invalid use of
    the GArray
    free function.  This free function takes a pointer to the item to be
    freed, not the item itself.  Since that item was a pointer to
    a GObject,
    g_object_unref() was getting a GObject**, rather than a GObject*.

    The use of GArray in this testcase is pretty questionable in the first
    place, so just use C arrays instead.

 tests/refcount/properties.c | 43
 +++++++++++++------------------------------
 1 file changed, 13 insertions(+), 30 deletions(-)

commit 748c86e45f976639657284a40834484c1724732a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 23 16:38:49 2013 -0400

    gio docs: add some missing functions

 docs/reference/gio/gio-sections.txt | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit abf505fd0e6ae5c353de24621adbf56a083d4e66
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 23 16:29:24 2013 -0400

    More gio-du win32 fixes

    Don't free the utf8 filename before the async function completes.

    also, gitignore

 gio/tests/.gitignore | 1 +
 gio/tests/gio-du.c   | 9 ++++-----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 6d08d1191bfe17364c1d3b4634b86d6150c6db3f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 23 16:15:34 2013 -0400

    Revert "gcancellable: allow g_cancellable_disconnect from "cancelled"
    handler on same thread"

    This reverts commits 83605e2d0a7b0d39987715cfd046f7b8ef6de94e and
    140fa7ee4669adb3827e3ddea5be57f51ee7af3e.

 gio/gcancellable.c | 32 ++++++++++++--------------------
 1 file changed, 12 insertions(+), 20 deletions(-)

commit 140fa7ee4669adb3827e3ddea5be57f51ee7af3e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 23 09:11:04 2013 +0200

    cancellable: Minor fix to docs

    The code uses "my_data", not "data" everywhere else.

 gio/gcancellable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 83605e2d0a7b0d39987715cfd046f7b8ef6de94e
Author: Ray Strode <rstrode@redhat.com>
Date:   Tue Sep 10 15:32:12 2013 -0400

    gcancellable: allow g_cancellable_disconnect from "cancelled"
    handler on same thread

    g_cancellable_disconnect will wait until any pending "cancelled"
    handlers finish.  This is useful because disconnecting a handler
    can have the
    side-effect of freeing data that the cancelled handler may rely on.
    Unfortunately, the code used to enforce this synchronization between
    "cancelled" handlers and g_cancellable_disconnect will also cause
    deadlock if the cancelled handler itself calls
    g_cancellable_disconect.

    Obviously, if g_cancellable_disconnect is explicitly called by a
    "cancelled"
    handler, then the "cancelled" handler is shouldering the
    responsibility
    of not using any data that may be freed by disconnection.

    Also, g_cancellable_disconnect can be called in unexpected places by
    lower layers in the code (for instance as a result of
    g_source_destroy).
    In practice, this means it's easy for deadlocks to inadvertently crop
    up when using "cancelled" handlers.

    For these reasons, it would be good to fix the deadlock.

    This commit prevents the deadlock by allowing foregoing
    synchronization,
    if a pending "cancelled" handler is in the same thread as the
    g_cancellabale_disconnnect call.

    https://bugzilla.gnome.org/show_bug.cgi?id=705395

 gio/gcancellable.c | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)

commit 795a36142d447cf8e45668dc999e29612bc4a796
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Mon Sep 23 00:16:05 2013 +0100

    Updated Portuguese translation

 po/pt.po | 901
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 456 insertions(+), 445 deletions(-)

commit bbd8102ee5e553a9c8471bc9863e99b2843caed5
Author: Claude Paroz <claude@2xlibre.net>
Date:   Sun Sep 22 20:01:57 2013 +0200

    Updated French translation

 po/fr.po | 877
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 440 insertions(+), 437 deletions(-)

commit 29ef8217665fa1cd000e4668e01dbd638ab61f5e
Author: Ray Strode <rstrode@redhat.com>
Date:   Fri Sep 20 15:20:39 2013 -0400

    tests: add signal disconnection test

    This commit adds a test to ensure that during a signal emission, if
    a signal handler gets disconnected, it won't be run, even if it would
    have run before the disconnection.

 tests/gobject/Makefile.am |   2 +
 tests/gobject/signals.c   | 135
 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 137 insertions(+)

commit cb7059e17f48c77eeb2e8354ddb64c149a312262
Author: Ray Strode <rstrode@redhat.com>
Date:   Fri Sep 20 15:41:29 2013 -0400

    tests: free properties test object from main thread instead of
    helper thread

    The test objects are used from the main thread after the helper
    threads
    are destroyed, so we need to keep them alive until we're done
    using them.

 tests/refcount/properties.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d5c72b334b717584f0ed03ee7cfc5047af9f9e3d
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Fri Sep 20 21:07:28 2013 +0200

    docs: fix GSourceFuncs docs

    "returns" at the start of a description continuation
    line seems to confuse GTK-Doc's parser. Rearrange
    the text a bit to work around this...

    https://bugzilla.gnome.org/show_bug.cgi?id=708445

 glib/gmain.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit e31ce1cfe392c71263ac6b81b4c50c35b923952e
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Fri Sep 20 09:27:53 2013 +0200

    gsettings: Correct a GLIB_AVAILABLE_IN_*

 gio/gsettings.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 54e79d7dcb4c0d36ab867e1814ff26b97b4617d9
Author: Misty De Meo <mistydemeo@gmail.com>
Date:   Wed Sep 18 23:41:22 2013 -0700

    gobject: Fix compilation on OS X/ppc64

    Apple's GCC compilers cannot deal well with 64-bit pointers in
    transparent unions on ppc64, so compilation of
    _G_DEFINE_BOXED_TYPE_BEGIN was failing. Fortunately glib already
    provides a fallback for compilers that can't deal with it; this adds
    this specific case to the check.

    https://bugzilla.gnome.org/show_bug.cgi?id=647145

 gobject/gtype.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 85be7acb95dd57243003d3115268a6cbc3ebc8ba
Author: A S Alam <apreet.alam@gmail.com>
Date:   Wed Sep 18 08:49:53 2013 -0500

    Punjabi Translation updated by Aman

 po/pa.po | 896
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 456 insertions(+), 440 deletions(-)

commit 0ff1a89f5462106b7121362ef42c4987a18a976a
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Tue Sep 17 18:28:19 2013 +0200

    Updated Danish translation

 po/da.po | 890
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 451 insertions(+), 439 deletions(-)

commit c0ecae37f639ad03548ef76eaa5d30c203ea7963
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 17 11:39:56 2013 -0400

    GLib 2.37.93

 NEWS | 7 +++++++
 1 file changed, 7 insertions(+)

commit b72c466653c6e4a493874b35e4e7acdcadda7e67
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 17 09:53:18 2013 -0400

    measure_disk_usage: properly report results

    In the async case, make sure we copy all of the out parameters
    from the
    results structure, not just 'disk_usage'.

 gio/gfile.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit dbf95a5ae94441dc235d8dcf003f05cb5c6bd84b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 17 09:40:04 2013 -0400

    measure_disk_usage: skip progress on NULL callback

    In the real_..._async wrapper for GFile.measure_disk_usage, skip the
    wrapping of the progress callback in the case that the user gave
    a NULL
    callback to the async function.  This is a performance improvement
    because the sync version won't have to do continuous sampling of the
    clock to issue a call to the wrapper which will then do nothing.

    Unfortunately, I made this simplifying assumption when writing the
    wrapper, but forgot to actually implement it when making the sync
    call.
    As a result, the wrapper is still called, and invokes the NULL
    callback,
    causing a segfault.

    Make sure we pass NULL if the user's callback was NULL.

    https://bugzilla.gnome.org/show_bug.cgi?id=707787

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1a9b739c3176f0fd89aaadb10d90680c345c2d53
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Tue Sep 17 19:35:13 2013 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 215
 +++++++++++++++++++++++++++++++-----------------------------
 po/zh_TW.po | 215
 +++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 220 insertions(+), 210 deletions(-)

commit 373980f545639d577fd00bd0998a5acbe72b00c4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 16 14:14:07 2013 -0400

    bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f4c3e56f198e28e17694cc2939dd39ac2ed7bdca
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 16 13:47:04 2013 -0400

    GLib 2.37.92

 NEWS         | 27 +++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 28 insertions(+), 1 deletion(-)

commit 348764269d0d2af3371caeb96cae65976891022c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 16 13:42:02 2013 -0400

    gio-du: show the correct filename in progress

    We were showing argv[1] in the progress output before, which is not
    always the filename.

 gio/tests/gio-du.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2684dec44786b8463f27ec14547cfafab80c28a1
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 13 17:42:44 2013 +0800

    gio-du: Improve test program on Windows

    Make use of __wgetmainargs() on Windows so that we can get wide char
    versions of the argv's that are passed in when this test program
    is being
    invoked.  This is necessary as one might enter non-ASCII, such as
    CJK characters filenames and/or directories to run the test program
    against, so that we can process the name(s) and pass the proper
    UTF-8-encoded name(s) of the files/directories that is being tested.

    https://bugzilla.gnome.org/show_bug.cgi?id=707787

 gio/tests/gio-du.c | 78
 +++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 56 insertions(+), 22 deletions(-)

commit 084e5b0122d52f66d9320fb9b147ca4c62d3e9ac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 12 11:44:11 2013 -0400

    GLocalFile: use GDir for g_file_measure_disk_usage

    It turns out that although dirent is available on mingw32 (where the
    code was originally tested), it is not usable from MSVC.

    Avoid portability problems by just using GDir.

    Also, be careful about ensuring that we utf8-format filenames in our
    error messages, and leave out the "file://" component since the
    strings
    we're displaying are not URIs (and we don't want to make them
    URIs since
    the extra escaping would reduce legibility).

    Thanks to Chun-wei Fan <fanchunwei@src.gnome.org> for portions of this
    patch and for reviews.

    https://bugzilla.gnome.org/show_bug.cgi?id=707787

 gio/glocalfile.c | 57
 +++++++++++++++++++++++++++++++-------------------------
 1 file changed, 32 insertions(+), 25 deletions(-)

commit 725125aba3875ccd86dc51b8e4f301fe3c8de3a4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 12 17:00:29 2013 +0800

    GDir: add some glib-private APIs

    Add a simple UNIX-only API that is used to create a GDir object from a
    DIR* that is aquired using opendir() or fdopendir().

    This makes it possible to use GDir with openat(), which in turn will
    allow use of GDir in the existing GLocalFile implementation of
    g_file_measure_disk_usage(), avoiding the current MSVC compatibility
    problems there.

    Also add an API similar to g_dir_open(), but without the GError
    handling
    (since we want to create a better error message from inside of
    glocalfile.c).

    Thanks to Chun-wei Fan <fanchunwei@src.gnome.org> for portions of this
    patch and for reviews.

    https://bugzilla.gnome.org/show_bug.cgi?id=707787

 glib/gdir.c         | 153
 +++++++++++++++++++++++++++++++++-------------------
 glib/gdir.h         |   4 ++
 glib/glib-private.c |   5 +-
 glib/glib-private.h |   8 +++
 4 files changed, 115 insertions(+), 55 deletions(-)

commit 0e71110d17af3b82081a2d5487459280fb8dd902
Author: Benjamin Steinwender <b@stbe.at>
Date:   Mon Sep 16 19:05:54 2013 +0200

    Updated German translation

 po/de.po | 371
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 192 insertions(+), 179 deletions(-)

commit 67dd31e60fe6dbec95d043920a51aa152dbe6cac
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Mon Sep 16 13:07:12 2013 +0200

    Updated Hungarian translation

 po/hu.po | 187
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 92 insertions(+), 95 deletions(-)

commit 799af7a0d92cc5b56fd8f07b5527c0973759fce7
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Sat Sep 14 22:46:15 2013 +0900

    Updated Korean translation

 po/ko.po | 144
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 73 insertions(+), 71 deletions(-)

commit 89800d0ad4b4b6872c7913fd1a66c5ca8b6a040e
Author: Andika Triwidada <andika@gmail.com>
Date:   Sat Sep 14 15:42:05 2013 +0700

    Updated Indonesian translation

 po/id.po | 1552
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 784 insertions(+), 768 deletions(-)

commit 90b32fcc474208730d08b350cd1f2a7d4e1be723
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sat Sep 14 00:06:21 2013 +0200

    [l10n] Update Catalan translation

 po/ca.po | 137
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 71 insertions(+), 66 deletions(-)

commit 35d5b60b093762f4a5c7bb58051622f81e092ace
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Fri Sep 13 21:16:14 2013 +0200

    gmodule: Two minor g-i annotations fixes

 gmodule/gmodule.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b671cc96b1de4c80cc7170399f4b94729b7a7c97
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Fri Sep 13 18:25:03 2013 +0530

    Assamese Translation Updated

 po/as.po | 215
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 110 insertions(+), 105 deletions(-)

commit 7a91a6c9a56c70a7b80a71376d3299e7f81fd7cb
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Sep 10 00:49:39 2013 +0800

    gio/tests/gio-du.c: Avoid Using Unintialized Variable

    https://bugzilla.gnome.org/show_bug.cgi?id=707787

 gio/tests/gio-du.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 054270e4eb12fd62d584535af947244ba8fe6c25
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Thu Sep 12 23:16:04 2013 +0300

    Updated Lithuanian translation

 po/lt.po | 192
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 95 insertions(+), 97 deletions(-)

commit 5a11019034f68dc5522935d447d71593140f5210
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 12 14:38:08 2013 -0400

    tests: remove assertion for '!uncertain' on .txt

    Virtaal installs a mime package for various .po-like file formats, one
    of which has the extension .txt.  This causes GLib to report ".txt"
    files still as "text/plain" but no longer with complete certainty.

    The result is that asserting !uncertain during the testsuite
    causes the
    test to fail if Virtaal happens to be installed.

    Remove this assertion.

 gio/tests/contenttype.c | 1 -
 1 file changed, 1 deletion(-)

commit ac8b7ba9250a55f0fe8fcad16cb6e9e4f60c6946
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 12 14:22:56 2013 -0400

    tests: properly set locale to C

    We're testing for particular error messages, so we need to set to a C
    locale to make sure we get the untranslated version.

    Previously, this test set the LANG environment variable, but
    that's not
    good enough if LANGUAGE is also set.  The only way to ensure that
    LANGUAGE is ignored is to disable l10n with LC_ALL=C.

 glib/tests/markup-parse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8ab1b58ffd75314ceb8d67af12935a7cccc12904
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Thu Sep 12 19:20:01 2013 +0300

    Updated Belarusian translation.

 po/be.po | 872
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 440 insertions(+), 432 deletions(-)

commit 49a0cf08f759cf0e1621e3ef6318c7a3e8d487fb
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Wed Sep 11 22:36:52 2013 +0300

    Updated Latvian translation

 po/lv.po | 904
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 458 insertions(+), 446 deletions(-)

commit 5f6290e4f96cc3110168b056532c5af28aa15687
Author: Marek Černocký <marek@manet.cz>
Date:   Tue Sep 10 21:01:15 2013 +0200

    Updated Czech translation

 po/cs.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0acb99c933e515ee81c364290599c87210ee2b9f
Author: Marek Černocký <marek@manet.cz>
Date:   Tue Sep 10 21:00:16 2013 +0200

    Updated Czech translation

 po/cs.po | 216
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 110 insertions(+), 106 deletions(-)

commit f4e4c1bbbd03e52beed565bd31487c7e5d3506ed
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Sep 10 15:53:23 2013 +0200

    Updated Galician translations

 po/gl.po | 213
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 109 insertions(+), 104 deletions(-)

commit b301828b1507ae943ed8a755e87754b7412b8773
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Tue Sep 10 10:03:24 2013 +0200

    [l10n] Updated Italian translation.

 po/it.po | 183
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 94 insertions(+), 89 deletions(-)

commit df5a70057f9c3f275e59e97f500ae66c499fe853
Author: Enrico Nicoletto <liverig@gmail.com>
Date:   Mon Sep 9 20:31:50 2013 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 217
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 111 insertions(+), 106 deletions(-)

commit c0299d32ea80ddbbc3d272c58d0f9ebc46497281
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Sep 10 00:56:17 2013 +0200

    Updated Polish translation

 po/pl.po | 181
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 93 insertions(+), 88 deletions(-)

commit 49bbebc0b9fac28f009a1d43d10565dc1173f646
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Mon Sep 9 23:34:01 2013 +0200

    gio/tests/network-address: fix SCOPE_ID_TEST_INDEX fallback

 gio/tests/network-address.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b82ace52e00b703cc9c9e81162333a7eec9d6b96
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Mon Sep 9 23:35:25 2013 +0200

    Trivial typo fix

 glib/gstring.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 322f687f5f7aabf8e8c41628615f9b926a0127d2
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon Sep 9 20:35:43 2013 +0200

    Updated Slovenian translation

 po/sl.po | 181
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 93 insertions(+), 88 deletions(-)

commit 83d55492d488d7c5765d28ffe2222926b234c842
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Sep 9 16:46:32 2013 +0200

    Updated Spanish translation

 po/es.po | 215
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 110 insertions(+), 105 deletions(-)

commit a61c9f489a3da4b25b399a599c11dcfb4c4fd3a7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 28 14:46:14 2013 -0400

    tests/: add gio-du

    This is basically a minimally-featured 'du' equivalent to manually
    test
    g_file_measure_disk_usage().

    https://bugzilla.gnome.org/show_bug.cgi?id=704893

 gio/tests/Makefile.am |   1 +
 gio/tests/gio-du.c    | 146
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 147 insertions(+)

commit 6ec2bb17c393c411a2182e865aa0979165dfbac5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 28 13:41:17 2013 -0400

    GFile: add new g_file_measure_disk_usage() API

    This is essentially the equivalent of 'du'.

    This is currently only supported on local files.  gvfs will add
    support for the
    interface later.

    https://bugzilla.gnome.org/show_bug.cgi?id=704893

 docs/reference/gio/gio-sections.txt |   4 +
 gio/gfile.c                         | 301
 ++++++++++++++++++++++++++++++++++++
 gio/gfile.h                         |  53 +++++++
 gio/gioenums.h                      |  23 +++
 gio/giotypes.h                      |  43 ++++++
 gio/glocalfile.c                    | 289
 ++++++++++++++++++++++++++++++++++
 6 files changed, 713 insertions(+)

commit 242a735fe02462f7e6e8b2b2dc8c55d380d4fd96
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Thu Sep 5 08:05:45 2013 +0200

    Updated Serbian translation

 po/sr.po       | 924
 +++++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 924
 +++++++++++++++++++++++++++++----------------------------
 2 files changed, 946 insertions(+), 902 deletions(-)

commit 52251a5237579946f5afa2c3319bbd5504b2b92e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Sep 5 13:58:24 2013 +0800

    Visual C++ Builds: Fix "install" Projects

    Due to the split up of the property sheets, the install projects
    did not
    have info on the Intermediate and Output Paths, which caused confusing
    messages from Visual Studio to show up upon completing build+"install"
    and
    closing Visual Studio on whether to reload the install project,
    at least on
    Visual Studio 2008.

    Include the property sheet which defines these properties to fix this.

 build/win32/vs10/install.vcxproj | 4 ++++
 build/win32/vs9/install.vcproj   | 8 ++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 268f3ce0ff0eff2a858a91a049a87aefd23f2f93
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Wed Sep 4 00:29:58 2013 +0900

    Updated Korean translation

 po/ko.po | 904
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 460 insertions(+), 444 deletions(-)

commit 801a5c8bb23bdcc26a3900d479f4139f4d38fb7e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 2 12:12:58 2013 -0400

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b6a52f0a917576282545ab6dc769efd02e548757
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 2 11:25:57 2013 -0400

    2.37.7

 NEWS | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit ed1e3816adaf43021924a7096bb7dc4d834a9a69
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Sep 2 12:04:43 2013 +0200

    gobject-2.0: Annotate another GSignal function taking instances

    As a followup to commit a72983a, annotate g_signal_handlers_destroy()
    as well.

 gobject/gsignal.c | 4 ++++
 1 file changed, 4 insertions(+)

commit a72983a5db5d25e6face815c6eba5775175e4aa4
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Aug 27 14:11:47 2013 +0200

    gobject-2.0: Annotate GSignal functions taking instances

    Unbreak the GSignal API at least for GObject sub-classes.

    https://bugzilla.gnome.org/show_bug.cgi?id=685387

 gobject/gsignal.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit c81773da9cd21f1122da6e049d111cac8d6b6a3e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 1 14:54:33 2013 -0400

    Add Since tag for g_close

    The lack of this information in the docs was pointed out in

    https://bugzilla.gnome.org/show_bug.cgi?id=707092

 glib/gstdio.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8c50dfcc5a9d2f3166dcb03770bd6a0886a3fcdb
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sat Aug 31 22:45:44 2013 +0200

    [l10n] Update Catalan translation

 po/ca.po | 1138
 ++++++++++++++++++++++++--------------------------------------
 1 file changed, 437 insertions(+), 701 deletions(-)

commit f8bb08305cf819502934036e1fcfb7d7c7776097
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 31 11:51:07 2013 -0400

    gmessages: fix g_test_expect_message() with NULL domains

    Allow passing a NULL domain to g_test_expect_message(), and more
    importantly, don't crash if a message with a NULL domain gets logged
    while there is an expected message.

 glib/gmessages.c     |  5 ++---
 glib/tests/testing.c | 13 +++++++++++++
 2 files changed, 15 insertions(+), 3 deletions(-)

commit cde9f4598ba0e34d7c5fcbe4fcddaf67c15bd5e3
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 24 17:47:57 2013 -0400

    gio/tests/socket: fix warning building on win32

    setsockopt() has a broken prototype on win32. Fix this by just using
    g_socket_set_option() instead.

 gio/tests/socket.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 02393e6faf409c0cae952e94ecbc2c8fad75a3ee
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Oct 24 14:25:01 2012 +0200

    gio/tests/socket: add test for g_socket_get_available_bytes()

    https://bugzilla.gnome.org/show_bug.cgi?id=686786

 gio/tests/socket.c | 76
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

commit 9fd0927e5888458c9b1061f3cdf3a1aaa4924e36
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 24 13:55:06 2013 -0400

    gsocket: Fix g_socket_get_available_bytes() on Windows and OS X

    On Windows and OS X, FIONREAD on a UDP socket gets the total number of
    bytes available, not the number of bytes available in the next packet,
    which is the more useful number (and how the function always behaved
    on Linux).

    On OS X, fix this by using SO_NREAD. On Windows, fix this by doing a
    MSG_PEEK recv() into a giant buffer, since there is apparently no
    other way to get the information.

    https://bugzilla.gnome.org/show_bug.cgi?id=686786

 gio/gsocket.c | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

commit 8d62c2495a1c74a51eb9c752b3d2e0f4b93feefc
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Fri Aug 30 21:58:49 2013 +0200

    Add tests for new '%z' g_date_time_format extensions

    https://bugzilla.gnome.org/show_bug.cgi?id=707151

 glib/tests/gdatetime.c | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit 8fd7f58aeef89f60ca16b8350e6dd0bd34ab5ed1
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Fri Aug 30 21:24:56 2013 +0200

    gdatetime: Extend the '%z' timezone format

    Implement gnulib strftime extensions for the '%z' numeric timezone
    format. These are also supported and documented by GNU date(1):

    %z     +hhmm numeric time zone (e.g., -0400)

    %:z    +hh:mm numeric time zone (e.g., -04:00)

    %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

    %:::z  numeric time zone with : to necessary precision (e.g.,
    -04, +05:30)

    https://bugzilla.gnome.org/show_bug.cgi?id=707151

 glib/gdatetime.c | 99
 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 87 insertions(+), 12 deletions(-)

commit dac5e5e755b684582bf42ba443fa283e3cc40a14
Author: Shantha kumar <shkumar@redhat.com>
Date:   Fri Aug 30 15:36:22 2013 +0530

    Tamil Translations Updated

 po/ta.po | 413
 ++++++++++++++++++++++++---------------------------------------
 1 file changed, 157 insertions(+), 256 deletions(-)

commit 11254b3c7d0e95748a9e6e7988948cb1ba686a7e
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 29 09:25:42 2013 -0400

    gsocket: make GSocketSource trigger on G_IO_NVAL

    Getting G_IO_NVAL probably indicates bugs/race conditions in the
    calling code, but if GSocket just ignores it, it will get stuck in an
    infinite loop.

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 996edb0c46356d8a326f886b91a77a6af9a2de3e
Author: Antoine Jacoutot <antoine@mtier.org>
Date:   Wed Aug 28 09:35:27 2013 +0200

    fix atomic ops detection

    AC_TRY_LINK should be used instead of AC_TRY_COMPILE because the code
    will compile everywhere, either producing ``atomic'' code, or an
    external reference to __sync_bool_compare_and_swap.

    https://bugzilla.gnome.org/show_bug.cgi?id=706958

 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 34e1a537956e85d9d2db2127cd723a6c7456f793
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 27 09:40:18 2013 -0400

    gtype: fix a no-op assertion

    g_type_class_add_private() was doing

        g_assert (node->data->instance.private_size <= 0xffff);

    but that field is a guint16, so the check was a no-op. (Noticed by
    clang, but not gcc for some reason.) Fix it to do the math in a gssize
    variable and do the bounds checking there before updating the struct
    field.

    https://bugzilla.gnome.org/show_bug.cgi?id=706888

 gobject/gtype.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit ca4f6ba855fe0a18d8135e8379bec03e60b88f89
Author: Balázs Úr <urbalazs@src.gnome.org>
Date:   Mon Aug 26 19:39:25 2013 +0200

    Updated Hungarian translation

 po/hu.po | 885
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 448 insertions(+), 437 deletions(-)

commit 666b0bed9c4c9aec830edaf5539f0daf4d28f83b
Author: Jonas Danielsson <jonas@threetimestwo.org>
Date:   Sat Aug 24 13:12:45 2013 +0200

    gloadableicon: Fix gir bindings for load_finish

    Make the gir notation for g_loadable_icon_load_finish match
    the ones for g_loadable_icon_load.

    https://bugzilla.gnome.org/show_bug.cgi?id=706706

 gio/gloadableicon.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 9bcb6d3f007358deb77294b828ea5d706de04aab
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Thu Aug 22 20:52:17 2013 +0200

    Fix G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=706469

 gobject/gtype.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f6c4dee67aa5a670e8aeafdee7adae9261b8d1ab
Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
Date:   Fri Aug 23 00:41:24 2013 +0900

    l10n: Update Japanese translation

 po/ja.po | 886
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 448 insertions(+), 438 deletions(-)

commit ab6b7dbc2efc506e43616941ac70f14fc20de574
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Sun Jul 28 16:43:44 2013 +0200

    GSocket – GSocketSource finalizing not threadsafe on Windows

    The requested_conditions list access is not threadsafe. When passing
    the socket ownership from a GSource callback to another thread, which
    also creates a GSocketSource for the socket, it can happen that the
    original GSocketSource is finalized at the same time as the new one
    is created. This would cause inconsistencies in the
    requested_conditions
    list and can cause assertions or completely undefined behaviour.

    https://bugzilla.gnome.org/show_bug.cgi?id=705027

 gio/gsocket.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit b3b6aab007e8cf0c5a88cba8deb484269ad7eab1
Author: Ján Kyselica <kyselica.jan@gmail.com>
Date:   Wed Aug 21 21:12:28 2013 +0200

    Updated slovak translation

 po/sk.po | 892
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 455 insertions(+), 437 deletions(-)

commit bb7b0a8ca01c0f463fbd7a66cab686b9160ff59a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Aug 15 21:27:02 2013 +0800

    gio/gdbusaddress.c: Silence RunDLL errors

    The RunDLL command call during get_session_address_dbus_launch() was
    expecting _g_win32_run_session_bus@16 and g_win32_run_session_bus
    on Win32 and Win64 respectively at least when GLib is compiled
    with MSVC,
    not g_win32_run_session_bus@16, which caused annoying RunDLL error
    dialogue
    boxes to show up during the use of GtkApplication (such as when
    running
    gtk3-demo-application on Windows), prevented GtkApplication items from
    being run for more than one time during the lifespan of the program,
    and this also interfered with some GTK+ tests, causing them to fail.

    Update accordingly to address the issue.

 gio/gdbusaddress.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 2ff85ca47c4aa4ea67314bfade58ea087df6fb20
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 21 17:54:32 2013 +0800

    Fix typo in last commit

    The gio.vcxprojin and glib.vcxprojin were including .vsprops property
    sheets, but it should have been .props instead.

 build/win32/vs10/gio.vcxprojin  |  8 ++++----
 build/win32/vs10/glib.vcxprojin | 32 ++++++++++++++++----------------
 2 files changed, 20 insertions(+), 20 deletions(-)

commit 113793a4429b7a8f7d0eb7271a3ad6a6853932e5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 21 16:57:11 2013 +0800

    MSVC 2010 Project Files: Split up the Property Sheets

    Like the Visual Studio 2008 project files, split up the property
    sheets
    so to ease maintenace, and to prepare to use autotools to fill in the
    header entries to "install".

    Put some of the items that are frequently repeated in the projects
    as well,
    also to simplify maintenance.

    Also, update the autotools files to automate the upgrade of Visual
    Studio
    2010 project as we now have multiple property sheets to copy and
    process.

 build/Makefile-newvs.am                            |   13 +-
 build/win32/vs10/Makefile.am                       |    7 +-
 build/win32/vs10/gdbus.vcxproj                     |    8 +-
 build/win32/vs10/gio-querymodules.vcxproj          |   16 +-
 build/win32/vs10/gio.vcxprojin                     |   24 +-
 build/win32/vs10/glib-build-defines.props          |   70 ++
 build/win32/vs10/glib-compile-resources.vcxproj    |   16 +-
 build/win32/vs10/glib-compile-schemas.vcxproj      |    8 +-
 build/win32/vs10/glib-genmarshal.vcxproj           |    8 +-
 .../win32/vs10/{glib.props => glib-install.props}  | 1182
 +++++++++-----------
 build/win32/vs10/glib-version-paths.props          |   50 +
 build/win32/vs10/glib.vcxprojin                    |   40 +-
 build/win32/vs10/glibprepbuild.props               |   39 +
 build/win32/vs10/gmodule.vcxproj                   |   16 +-
 build/win32/vs10/gobject.vcxprojin                 |   16 +-
 build/win32/vs10/gresource.vcxproj                 |    8 +-
 build/win32/vs10/gsettings.vcxproj                 |    8 +-
 .../win32/vs10/gspawn-win32-helper-console.vcxproj |   16 +-
 build/win32/vs10/gspawn-win32-helper.vcxproj       |   16 +-
 build/win32/vs10/gthread.vcxproj                   |   16 +-
 build/win32/vs10/install.vcxproj                   |    9 +-
 build/win32/vs10/testglib.vcxproj                  |   16 +-
 build/win32/vs11/.gitignore                        |    5 +-
 build/win32/vs11/Makefile.am                       |    7 +-
 24 files changed, 858 insertions(+), 756 deletions(-)

commit 3c4ee831f74e760b65e9239bec3ad5b5ac60e6a6
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 21 16:05:47 2013 +0800

    MSVC 2008 Projects: Split the Property Sheets

    Split the property sheet into four sheets, to make maintainance of the
    build files easier, and also to prepare for using autotools to fill in
    the parts for the "installation" of headers.

    Also put more of the items that are repeated in the projects into the
    property sheets, also to improve ease of maintenance.

    Updates to the Visual Studio 2010 projects will come later, as
    the script
    to update them to Visual Studio 2012 must also be taken into account
    during'
    the process.

 build/win32/vs9/Makefile.am                        |  7 +-
 build/win32/vs9/gdbus.vcproj                       |  8 +--
 build/win32/vs9/gio-querymodules.vcproj            | 16 ++---
 build/win32/vs9/gio.vcprojin                       | 24 +++----
 build/win32/vs9/glib-build-defines.vsprops         | 65
 ++++++++++++++++++
 build/win32/vs9/glib-compile-resources.vcproj      | 16 ++---
 build/win32/vs9/glib-compile-schemas.vcproj        |  8 +--
 build/win32/vs9/glib-genmarshal.vcproj             |  8 +--
 .../vs9/{glib.vsprops => glib-install.vsprops}     | 78
 +---------------------
 build/win32/vs9/glib-version-paths.vsprops         | 49 ++++++++++++++
 build/win32/vs9/glib.vcprojin                      | 32 ++++-----
 build/win32/vs9/glibprepbuild.vsprops              | 27 ++++++++
 build/win32/vs9/gmodule.vcproj                     | 21 +++---
 build/win32/vs9/gobject.vcprojin                   | 16 ++---
 build/win32/vs9/gresource.vcproj                   |  8 +--
 build/win32/vs9/gsettings.vcproj                   |  8 +--
 build/win32/vs9/gspawn-win32-helper-console.vcproj | 16 ++---
 build/win32/vs9/gspawn-win32-helper.vcproj         | 16 ++---
 build/win32/vs9/gthread.vcproj                     | 16 ++---
 build/win32/vs9/install.vcproj                     |  8 +--
 build/win32/vs9/testglib.vcproj                    | 21 +++---
 21 files changed, 266 insertions(+), 202 deletions(-)

commit 716ec71ece2a583d48e7c09e2d8562cf5eb96809
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 21 13:55:52 2013 +0800

    GLib MSVC Projects: Consolidate PCRE items

    Move the definitions of macros used to build PCRE that ships with
    GLib into
    the property sheets, so that it can be easier to maintain

 build/win32/vs10/glib.props     | 4 ++++
 build/win32/vs10/glib.vcxprojin | 8 ++++----
 build/win32/vs9/glib.vcprojin   | 8 ++++----
 build/win32/vs9/glib.vsprops    | 4 ++++
 4 files changed, 16 insertions(+), 8 deletions(-)

commit 18f498c3fa6469662c3ab0050eb12d9731b8174a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 21 13:34:42 2013 +0800

    GIO MSVC Projects: Drop Unneeded Defines

    GIO_MODULE_DIR is dynamically constructed on Windows, so we don't
    really
    need to define it here.

 build/win32/vs10/gio.vcxprojin | 8 ++++----
 build/win32/vs9/gio.vcprojin   | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 7145f06941c3909108d248f11bd992bc221048d7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 21 11:16:19 2013 +0800

    GIO MSVC Project: Link to iphlpapi.lib

    This is needed for GetAdaptersAddresses()[1], which was used to
    implement
    if_nametoindex on Windows, notably on Windows XP, in commit 01156b12.

    if_nametoindex and if_indextoname, as noted in config.h.win32(.in), is
    available with Windows Vista and later, so when we eventually drop
    support for Windows XP, we can call them directly, and these functions
    also reside in the same iphlpapi.lib

    [1]:
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa365915%28v=vs.85%29.aspx

 build/win32/vs10/gio.vcxprojin | 8 ++++----
 build/win32/vs9/gio.vcprojin   | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit e05abaed0467fa4231bd0665973aa6b42384a12c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 21 11:04:37 2013 +0800

    Update config.h.win32.in

    Make entries more in sync with the items checked with autotools, and
    provide a MinGW declaration for _GLIB_EXTERN, taken from configure.ac.

 config.h.win32.in | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit dacc0ad2d16277550d806fcb8e9d398546675eab
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Aug 20 23:29:38 2013 +0200

    Updated Polish translation

 po/pl.po | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 130aaddd20e58e2f58ed10ac78807f8aed742ea5
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Aug 20 20:33:47 2013 +0200

    Updated Polish translation

 po/pl.po | 713
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 362 insertions(+), 351 deletions(-)

commit a4363582b0f1bcf55af9e49f2bd3897cc5d64438
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 19 23:54:43 2013 -0400

    post-release bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c512d16570d8b355525a019d71ea66be27fe1d01
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 19 23:31:40 2013 -0400

    2.37.6

 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

commit 739874c5dad77d5a5f0e88cc45d2199d9fa4b40e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 19 23:29:54 2013 -0400

    Set up test environment properly

    To make the G_TEST_SRCDIR and G_TEST_BUILDDIR variables
    reach our test binaries, we have to add it to the
    TESTS_ENVIRONMENT variable.

 glib-tap.mk | 6 ++++++
 1 file changed, 6 insertions(+)

commit 820406931b0fccc46fd3a4ebae0bb3a8629d9f57
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 19 22:31:56 2013 -0400

    Dist tap-test script

    Otherwise it won't be around when make distcheck is looking
    for it.

 Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 49cf439ce7432203688a32c5087ce50591f90329
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 19 20:00:25 2013 -0400

    Fix make check

    The glib/tests contained some tests for gtester. Now that
    we're not including glib.mk anymore, we have to define
    GTESTER ourselves.

 Makefile.am            | 3 ++-
 glib/tests/Makefile.am | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 01156b122c1c57bb27b664c6b973a35418b1f86d
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Wed Jul 31 14:11:55 2013 +0200

    GSocket – Implement multicast interface selection on Windows

    https://bugzilla.gnome.org/show_bug.cgi?id=697185

 gio/Makefile.am         |  2 +-
 gio/gnetworking.h.in    |  1 +
 gio/gnetworking.h.win32 |  1 +
 gio/gsocket.c           | 59
 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 62 insertions(+), 1 deletion(-)

commit c069c51db5767ae0973e3bbbfd9f3a1d2b2320a3
Author: Dan Winship <danw@gnome.org>
Date:   Mon Aug 19 12:14:27 2013 -0400

    gnetworkaddress: allow IPv6 scope ids in URIs

    GNetworkAddress was allowing IPv6 scope ids in g_network_address_new()
    / g_network_address_parse(), but not in g_network_address_parse_uri().
    Fix that.

    Part of https://bugzilla.gnome.org/show_bug.cgi?id=669724

 gio/gnetworkaddress.c       |  31 +++++++++---
 gio/tests/inet-address.c    |  55 --------------------
 gio/tests/network-address.c | 120
 +++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 143 insertions(+), 63 deletions(-)

commit e1f92431c1bc430362d27f9bce2f14bf8176aa5b
Author: Dan Winship <danw@gnome.org>
Date:   Mon Aug 19 12:09:59 2013 -0400

    gnetworkaddress: fix parsing of URIs with IPv6 literal and port

    Addresses like "http://[::1]:8080/" were being parsed as though they
    did not include a port. Fix that, and add some more parsing tests.

 gio/gnetworkaddress.c       |   3 ++
 gio/tests/network-address.c | 107
 +++++++++++++++++++++++---------------------
 2 files changed, 60 insertions(+), 50 deletions(-)

commit 635196b1ffc5e810431b5746d52138d2c3bcb1db
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 18 18:13:02 2013 -0400

    Expand docs for thread names

    Thread names may be NULL, and don't have to be unique.
    The docs should tell you that.

 glib/gthread.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 3c040f8534d87782d2ffefd88dfe87cd00393271
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Sun Aug 18 14:29:29 2013 +0200

    [l10n] Updated Italian translation.

 po/it.po | 557
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 281 insertions(+), 276 deletions(-)

commit b0e6a38d952f9c123e5966f382e77395daff2586
Author: William Jon McCann <jmccann@redhat.com>
Date:   Wed Jan 16 15:07:54 2013 -0500

    Remove legacy icon name support

    https://bugzilla.gnome.org/show_bug.cgi?id=684327

 gio/gcontenttype.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

commit 6ed46cd2a493e405623b8e46d3c1eca89cba5929
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sun Aug 18 01:59:54 2013 +0200

    Updated Slovenian translation

 po/sl.po | 695
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 349 insertions(+), 346 deletions(-)

commit 0e9f9867fab2e17f4723e739125d764bc40c9791
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 15:46:00 2013 -0400

    Start using TAP

    Convert {glib,gobject,gio}/tests to use the automake TAP driver
    and test harness instead of gtester. To do so, we add a glib-tap.mk
    that provides the same interface as glib.mk, except for the
    reporting and coverage testing functionality. Eventually, we may
    want to replace glib.mk with it. I've not yet converted the
    toplevel tests/ directory, since it mixes gtestutils tests with
    other binaries.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 gio/tests/Makefile.am     |   3 +-
 glib-tap.mk               | 128
 ++++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/Makefile.am    |   2 +-
 gobject/tests/Makefile.am |   2 +-
 tap-test                  |   5 ++
 5 files changed, 137 insertions(+), 3 deletions(-)

commit 1ea340529737a0a020ac67353e24661eaf3678b1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 15:23:41 2013 -0400

    Update the documentation for assertion macros

    The assertion macros that are part of gtestutils (but not
    g_assert) can now be made non-fatal. Update the documentation
    to reflect that.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 56
 ++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 35 insertions(+), 21 deletions(-)

commit a6a87506877939fee54bdc7eca70d47fc7d893d4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 15:18:29 2013 -0400

    Add a way to make assertions non-fatal

    When using test harnesses other than gtester (e.g. using TAP),
    it can be suboptimal to have the very first failed assertion
    abort the test suite.

    This commit adds a g_test_set_nonfatal_assertions() that can
    be called in a test binary to change the behaviour of most
    assert macros to just call g_test_fail() and continue. We
    don't change the behavior of g_assert() and g_assert_not_reached(),
    since these to assertion macros are older than GTest, are
    widely used outside of testsuites, and will cause compiler
    warnings if they loose their noreturn annotation.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 27 +++++++++++++++++++++++++++
 glib/gtestutils.h | 10 ++++++----
 2 files changed, 33 insertions(+), 4 deletions(-)

commit b63739e60ea03364a7a06e0c697b5c6c4690d0b6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 2 12:53:05 2013 -0500

    Add g_assert_true, g_assert_false and g_assert_null

    These are just like g_assert(), but using a different entry
    point for the message, so we can repurpose them together
    with the other assertion macros.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 27 +++++++++++++++++++++++++++
 glib/gtestutils.h | 15 ++++++++++++++-
 2 files changed, 41 insertions(+), 1 deletion(-)

commit a32c9c7e9c9500f151ccae602d92f88e43d8df45
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 2 12:47:54 2013 -0500

    Make g_assert and g_assert_not_reached use the same entry point

    These two assertion macros are commonly used outside tests,
    so we can't repurpose them, as we are going to do with the
    other assertion macros in the following commits. This
    change is in preparation for that.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 6 +++++-
 glib/gtestutils.h | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 19aafc4ca4dba2b63d24f01d23890ff30ef9b133
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 14:16:37 2013 -0400

    Support TAP as an output format

    Initial support for the Test Anything Protocol for
    GTest output. Use the --tap option to get TAP output.
    More information about TAP can be found e.g. here:
    http://en.wikipedia.org/wiki/Test_Anything_Protocol

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 59
 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 51 insertions(+), 8 deletions(-)

commit 69582bf63565c187a64daa1b9b22fc5a4d322db3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 14:14:20 2013 -0400

    Add a function to check test status from the inside

    The new g_test_failed() function can be used to find
    out if a currently running testcase is already marked
    as failed.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 24 ++++++++++++++++++++++++
 glib/gtestutils.h |  2 ++
 2 files changed, 26 insertions(+)

commit 88eaefb9d5f52bedf34a359b21c62f3c2cb95f20
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 14:11:24 2013 -0400

    Add functions to mark tests as skipped or incomplete

    We also expand the GTestResult enumeration to include
    values for skipped and incomplete tests, and pass that
    on when logging a test result.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 59
 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 glib/gtestutils.h |  4 ++++
 2 files changed, 60 insertions(+), 3 deletions(-)

commit 4e6d25f00501c0b9b3660d62409ea002ad24ca0a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 14:04:58 2013 -0400

    Add a GTestResult enumeration

    This enumeration will be expanded to introduce more results
    in the following commits.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtestutils.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit 8253f98a18043cba76cc7524f752b3586e63b747
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 20 03:23:38 2013 -0500

    Add start/stop suite log messages

    These will be used in the following commits, when
    implementing support for TAP as an alternative
    test driver protocol.

    https://bugzilla.gnome.org/show_bug.cgi?id=692125

 glib/gtester.c        |  2 ++
 glib/gtestutils.c     | 10 ++++++++++
 glib/gtestutils.h     |  4 +++-
 glib/tests/protocol.c |  4 ++++
 4 files changed, 19 insertions(+), 1 deletion(-)

commit de9cf58f6578e3c801a1b86d141502a8c147925e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 17:25:25 2013 -0400

    GApplication: Stop using deprecated api

 gio/gapplication.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 18accd43f79bc27cb68767cfcf1e3899b5349d57
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 17:22:05 2013 -0400

    Quell a few compiler warnings

 glib/tests/protocol.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5cd169810edb711964930f20b42796edce355ce5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 13:45:34 2013 -0400

    Take out an unused line from gdatetime tests

    This line was apparently causing build problems on Win64,
    and since the only test involving the t_str variable was
    already commented out, lets just take this out altogether.

    https://bugzilla.gnome.org/show_bug.cgi?id=696970

 glib/tests/gdatetime.c | 3 ---
 1 file changed, 3 deletions(-)

commit 409a6db3492e8d5e81f5e248e9e9abe100506ff5
Author: Stef Walter <stefw@gnome.org>
Date:   Tue May 14 08:49:55 2013 +0200

    Mark up warnings/critical functions for clang analyzer

    The clang code analyzer needs to know that functions like g_error
    g_critical an g_return_if_fail should be seen by the analyzer in the
    same way as g_assert(). That is the analyzer should think they are
    fatal.

    https://bugzilla.gnome.org/show_bug.cgi?id=700268

 glib/gmacros.h   | 13 +++++++++++++
 glib/gmessages.h | 13 +++++++------
 2 files changed, 20 insertions(+), 6 deletions(-)

commit 547df5937cc3b821498e27eb55cebc1f414ce597
Author: Dan Winship <danw@gnome.org>
Date:   Sun Feb 17 15:11:18 2013 -0500

    GSocket: fix g_socket_bind() allow_reuse semantics

    With UDP sockets, g_socket_bind() with allow_reuse=TRUE on Linux
    behaved in a way that the documentation didn't suggest, and that
    didn't match other OSes. (Specifically, it allowed binding multiple
    multicast sockets to the same address.)

    Since this behavior is useful, and since allow_reuse didn't have any
    other meaning with UDP sockets, update the docs to reflect the Linux
    behavior, and make it do the same thing on non-Linux.

    https://bugzilla.gnome.org/show_bug.cgi?id=689245

 gio/gsocket.c      | 67 +++++++++++++++++++++++++++++++--------------
 gio/tests/socket.c | 79
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 126 insertions(+), 20 deletions(-)

commit 2ea4af6f019632b810ea6f7c0f0c44498cf5dddf
Author: Dan Winship <danw@gnome.org>
Date:   Sun Feb 17 09:41:55 2013 -0500

    GSocket: fix broadcast documentation

    The :broadcast property only affects sending broadcast packets, not
    receiving them.

 gio/gsocket.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 37849277645d05c1e1cd9c5e585d7231f75ffa2f
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Fri May 31 11:07:55 2013 +1200

    Add G_SPAWN_DEFAULT to GSpawnFlags

    This is convenient for language bindings, and also makes
    invocations of g_spawn functions in C more readable.

    https://bugzilla.gnome.org/show_bug.cgi?id=701318

 glib/gspawn.h                    | 2 ++
 glib/tests/spawn-multithreaded.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

commit 8b3d779d1ece535680724812fddffbdc940f328c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 17 12:35:33 2013 -0400

    Make g_date_time_new check its arguments

    The documentation for this function explicitly gives valid
    ranges for the arguments and states that out-of-range arguments
    will cause NULL to be returned. Only, the code didn't check
    the ranges, and crashed instead. Fix that and add a testcase
    for invalid arguments. It turns out that the test_z testcase
    was providing invalid arguments and relied on g_date_time_new
    to return a non-NULL value anyway, so this commit fixes that
    testcase as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=702674

 glib/gdatetime.c       |  8 ++++++++
 glib/tests/gdatetime.c | 14 +++++++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

commit e70250bbd5e786240fee7ad373ee16657518acf7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 7 11:41:41 2013 -0400

    Export __glib_assert_msg

    Put __glib_assert_msg in the dynamic symbol table, but not in
    any public
    headers.

    This variable is _not_ part of our API but this way debuggers and
    automated crash report utilities will be able to access this variable,
    even if debug symbols are not available.

    https://bugzilla.gnome.org/show_bug.cgi?id=701800

 glib/gtestutils.c | 1 +
 1 file changed, 1 insertion(+)

commit f550c0dc9dafc582d323735d9e220e441a337f9a
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 17 10:35:13 2013 -0400

    update .gitignores

 gio/tests/.gitignore     | 2 ++
 gobject/tests/.gitignore | 1 +
 2 files changed, 3 insertions(+)

commit fd5b1939bddf4b935c7e8dea21496483d15c4ece
Author: Dan Winship <danw@gnome.org>
Date:   Thu Feb 7 10:02:55 2013 -0500

    build: fix dtrace-related warnings

    Fix the warnings when compiling and linking the probes files by
    calling dtrace with all the -W flags removed from CFLAGS (since dtrace
    generates bad C code), and with CC set to "libtool --mode=compile ..."
    (so that it will output a proper .lo file and libtool won't warn when
    linking it into the .la).

    https://bugzilla.gnome.org/show_bug.cgi?id=693335

 glib/Makefile.am    | 15 ++++++++++-----
 gobject/Makefile.am | 15 ++++++++++-----
 2 files changed, 20 insertions(+), 10 deletions(-)

commit 5415537edb383fedfc5d4edc17dcf2bd2b8a38af
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 2 19:59:09 2013 -0300

    glib/tests/gdatetime: use UTC time in test_GDateTime_diff()

    test_GDateTime_diff() checks that the span from 2009-01-01 to
    2010-01-01 is exactly 365 * G_TIME_SPAN_DAY, but it does this using
    local time, and so fails if you are in a timezone that is in the
    southern hemisphere which only did DST during one of 2008-2009 and
    2009-2010 (in which case the year will end up being one hour too long
    or too short).

    Switch the diff tests to use UTC time instead; there are plenty of
    other local time tests already.

    https://bugzilla.gnome.org/show_bug.cgi?id=701529

 glib/tests/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 74a5e920767eb350979595c3bc51f126158608d9
Author: Wouter Bolsterlee <uws@xs4all.nl>
Date:   Sat Aug 17 14:58:12 2013 +0200

    Updated Dutch translation

 po/nl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a7f2765dbabf889df065e601fc072644dda625e4
Author: Daiki Ueno <ueno@unixuser.org>
Date:   Fri Aug 16 17:44:14 2013 +0200

    codegen: Treat input file as binary

    Under C locale, open() in Python 3 sets the file encoding to ASCII.
    As expat looks at encoding="..." in XML declaration, gdbus-codegen can
    simply open the input file as binary and let expat decode the content.

    https://bugzilla.gnome.org/show_bug.cgi?id=696633

 gio/gdbus-2.0/codegen/codegen_main.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1e945933d4709131730294df0f9076a4424e6e1c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Aug 16 10:35:19 2013 +0800

    config.h.win32.in: Drop unneeded item

    ...We no longer have the iconv cache code around.

 config.h.win32.in | 3 ---
 1 file changed, 3 deletions(-)

commit 2ab9e544778b040c26d422138bea307f69064958
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Aug 16 10:29:41 2013 +0800

    Update config.h.win32.in

    Make its entries match the items that are being checked by the
    autotools
    builds in config.h.in.

 config.h.win32.in | 66
 +++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 59 insertions(+), 7 deletions(-)

commit 4cea6625cb377daa1a0088189447750427a146c3
Author: Colin Walters <walters@verbum.org>
Date:   Thu Aug 15 18:24:45 2013 -0400

    giochannel: Add an out annotation for g_io_channel_read_unichar()

    Since it's an output variable.

    https://bugzilla.gnome.org/show_bug.cgi?id=704165

 glib/giochannel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a93d373812e37dbac3b749457cedf290227ef441
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 15 11:30:59 2013 -0400

    gio/tests/task: fix a race condition in test_run_in_thread()

    When running a task in a thread, GTask may still be internally holding
    a ref on the task in that thread even after the callback is called in
    the original thread (depending on thread scheduling). Fix the test to
    handle that by using a weak notify that signals a GCond, and wait for
    that GCond from the main thread. (And add a corresponding check to
    test_return_on_cancel().)

    https://bugzilla.gnome.org/show_bug.cgi?id=705152

 gio/tests/task.c | 45 ++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 38 insertions(+), 7 deletions(-)

commit 4b334ef8f1393c997a2d83de4ffe0976dff238c3
Author: Nick Schermer <nick@xfce.org>
Date:   Wed Aug 7 21:01:00 2013 +0200

    gobject: Handle ref_count==0 in notify_by_pspec

    Just like g_object_notify, check for a zero ref_count in
    g_object_notify_by_pspec and leave if it is 0.

    This allows using functions in ->finalize() that possibly also
    notify a property change on the object.  Previously,
    this resulted in an error from g_object_ref.

    https://bugzilla.gnome.org/show_bug.cgi?id=705570

 gobject/gobject.c          | 3 +++
 gobject/tests/properties.c | 7 +++++++
 2 files changed, 10 insertions(+)

commit 62f173f1f3e5da028fd11cb827a54418e1ca8ec2
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Wed Aug 14 17:07:38 2013 +0700

    Updated Thai translation.

 po/th.po | 880
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 442 insertions(+), 438 deletions(-)

commit 844589b03e39ac07af3b63b234d03221ac11e766
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 13 16:48:51 2013 -0400

    GSimpleActionGroup: Deprecated redundant API

    See https://bugzilla.gnome.org/show_bug.cgi?id=705600

 gio/gsimpleactiongroup.c | 8 ++++++++
 gio/gsimpleactiongroup.h | 8 ++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

commit a5fd296cc8583de6ac10c5a6adc84751495ad7e1
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Aug 13 15:16:48 2013 +0200

    themedicon: correctly fallback to symbolic icons

    When an icon is requested as symbolic, our generic fallback algorithm
    uses fullcolor icons when the specified icon name is not found,
    treating
    the "-symbolic" suffix as another component of the icon name.

    Change the algorithm to check beforehand if the icon is symbolic,
    remove
    the suffix if so, and re-add it at the end for all the generated icon
    names.

    https://bugzilla.gnome.org/show_bug.cgi?id=680926

 gio/gthemedicon.c | 35 +++++++++++++++++++++++++++++------
 1 file changed, 29 insertions(+), 6 deletions(-)

commit aa4b9429b43e125a05c4c1c0d7b168c13efbb2ad
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Aug 11 21:01:50 2013 +0300

    Updated Lithuanian translation

 po/lt.po | 867
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 437 insertions(+), 430 deletions(-)

commit 0dcb1db7a0ec73a67b37a911c6b52b135365e37e
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Aug 8 22:14:04 2013 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 551
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 278 insertions(+), 273 deletions(-)

commit 4ab30c0770f21444682a1671f017293b8631900c
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Aug 8 11:14:31 2013 +0200

    Updated Spanish translation

 po/es.po | 80
 +++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 41 insertions(+), 39 deletions(-)

commit c2352409051df49a08d9dced5b69ede434e90723
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 29 10:00:20 2013 -0400

    g_get_tmp_dir(): Clean up envars

    On UNIX, we should only ever be looking at TMPDIR.

    On Windows, we should only ever look at TEMP.

    Also, clean up the documentation to better describe what is actually
    happening.  The previous docs may have left someone confused about why
    this function returns "/var/tmp" on Solaris, even with no TMPDIR set.

    https://bugzilla.gnome.org/show_bug.cgi?id=705075

 glib/gutils.c | 40 ++++++++++++++++++----------------------
 1 file changed, 18 insertions(+), 22 deletions(-)

commit 05d6175ded6ce5f1f7721e2ea90792d348505d89
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Aug 4 10:31:19 2013 +0300

    Updated Hebrew translation.

 po/he.po | 1720
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 846 insertions(+), 874 deletions(-)

commit 66233f1d1b70a4c220b1dc98e5338e8469a82ff1
Author: Emanuele Aina <emanuele.aina@collabora.com>
Date:   Sat Aug 3 11:51:00 2013 +0200

    gtype: Fix typo in g_type_class_add_private() error message

    https://bugzilla.gnome.org/show_bug.cgi?id=705398

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9edd65ad99194ed549a2cdac7c40898451be13ab
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Sun Aug 4 09:44:21 2013 +0400

    Updated Russian translation

 po/ru.po | 847
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 433 insertions(+), 414 deletions(-)

commit 29b2d3b74bf97b3f950bda666dfc208a1c34c8d7
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Sun Aug 4 08:57:37 2013 +0530

    Updated Marathi Translations

 po/mr.po | 624
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 312 insertions(+), 312 deletions(-)

commit 13759f9ce8c691f0ac7b9c7afe9da896ec9377a3
Author: Marek Černocký <marek@manet.cz>
Date:   Sat Aug 3 20:05:34 2013 +0200

    Updated Czech translation

 po/cs.po | 101
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 50 insertions(+), 51 deletions(-)

commit 0d99699ee447745c4e1a622282542be1cbff0d3f
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Aug 3 21:06:46 2013 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 863
 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 863
 ++++++++++++++++++++++++++++++------------------------------
 2 files changed, 872 insertions(+), 854 deletions(-)

commit 8c170c565b700099d738ea06eab0ed8c8c1aa565
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Fri Aug 2 23:15:58 2013 -0300

    Updated Brazilian Portuguese translation proofread by Enrico Nicoletto

 po/pt_BR.po | 889
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 450 insertions(+), 439 deletions(-)

commit 3d15261a5c90822587e91a49074f3224b8e8cd6e
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Aug 2 12:16:30 2013 +0200

    Updated Galician translations

 po/gl.po | 533
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 269 insertions(+), 264 deletions(-)

commit 7c0d527fa63f9b84ba8bd084b742676d3d5ebb82
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Thu Aug 1 20:41:50 2013 +0200

    GMenuModel: Fix typo in annotation

 gio/gmenumodel.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5451265cf40b58678e60662bccaa92e3dcb2a8ec
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Thu Aug 1 13:46:52 2013 +0530

    Updated Gujarati Translations

 po/gu.po | 48 +++++++++++++++++++++++++-----------------------
 1 file changed, 25 insertions(+), 23 deletions(-)

commit 8a1b55372857fa628eb3a1f27d63891374d13bef
Author: Daniel Svensson <dsvensson@gmail.com>
Date:   Tue Jul 30 18:20:44 2013 -0400

    gdesktopappinfo: Add missing return value

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 097ba61b33cd69b81260520ec1a891f3c0ccfb8c
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Tue Jul 30 22:40:49 2013 +0530

    Assamese translation updated

 po/as.po | 47 +++++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 22 deletions(-)

commit 54a76e24b3ac2d03851ac4825482f915cfcdc470
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jul 30 09:12:48 2013 -0400

    gsocket: fix a cut-and-pasted error message

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0f46a48ee3f8eaa9aaf7c4b2bd3ccff5eff061e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 29 18:07:32 2013 -0400

    post-release version bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1a78bea7cac2f49815b2a57039b27dc9993f6d1e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 29 17:18:06 2013 -0400

    2.37.5

 NEWS | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

commit 7a31a5010c548237bb107f2bf6a73d336f374bb2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 29 17:15:19 2013 -0400

    GMenuModel: add annotations to virtual functions

    Patch from Ted Gould.

    https://bugzilla.gnome.org/show_bug.cgi?id=704931

 gio/gmenumodel.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 9551a811981d14f897d100508dbcff07db1fc503
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Mon Jul 29 17:29:05 2013 +0200

    Fix G_ADD_PRIVATE_DYNAMIC()

 gobject/gtypemodule.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d0b4f59e8cffc9da8d6e2a856687d34ed2765c3a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Jul 19 19:10:41 2013 +0800

    Add MSVC implementations of G_GNUC_*_IGNORE_DEPRECATIONS

    As Visual Studio 2008 and later have support for the __pragma keyword,
    where the compiler pragmas can be used in a macro, we can support
    G_GNUC_BEGIN_IGNORE_DEPRECATIONS and G_GNUC_END_IGNORE_DEPRECATIONS
    for Visual Studio 2008 and later, so many deprecation (C4996) warnings
    can be suppressed when using these compilers when we use these macros
    in the code.

    https://bugzilla.gnome.org/show_bug.cgi?id=704543

 glib/gmacros.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 90da4ed628cf9e311c4730d529b5d53159035676
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 28 22:06:57 2013 -0400

    Trivial typo fix

 gobject/gsignal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3bdd8a2c882ed3cd8d7aab48d2f3180a543d21a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 28 18:44:41 2013 -0400

    Use GLIB_PRIVATE_CALL macro

    I accidentally pushed the fix for bug 704873 before
    applying this cleanup.

 gio/inotify/inotify-kernel.c  | 6 +++---
 gio/inotify/inotify-missing.c | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

commit d9359765acea796473ec9de328d023e5bdc7e96a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 28 18:39:51 2013 -0400

    Use better assertion macros

    Use g_assert_cmpint and friends in the convert test, to get
    more telling messages when they fail.

 glib/tests/convert.c | 132
 +++++++++++++++++++++++++--------------------------
 1 file changed, 66 insertions(+), 66 deletions(-)

commit 39460701d4ed32e1c437358875280a410fe8b82f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 28 18:39:42 2013 -0400

    Avoid an unused variable warning

 glib/tests/unix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 331e93c3f1ad95cb4add48213613e8eeee8cb386
Author: Colin Walters <walters@verbum.org>
Date:   Sun Jul 28 00:21:00 2013 +0100

    Drop iconv caching code

    This was introduced for Solaris performance theoretically;
    we have never been able to use it on Linux/glibc because
    the UTF-16 BOM state isn't reset.

    We have no data about Solaris performance; were some to
    still exist, we could reintroduce the code with an explicit
    check for Solaris, not a check for glibc.

    https://bugzilla.gnome.org/show_bug.cgi?id=704999

 configure.ac    |  27 ------
 glib/gconvert.c | 297
 --------------------------------------------------------
 2 files changed, 324 deletions(-)

commit abbb22573813405215c11bff9fb6b110880fd711
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 25 10:28:42 2013 -0400

    inotify: don't assume mainloop is running

    GFileMonitor takes great care to sample the thread-default main
    context
    at the time that it is created in order that events can be
    dispatched to
    the correct thread when they come in.

    The inotify GFileMonitor implementation uses a global file descriptor
    shared between all watches.  It has to poll this file descriptor from
    somewhere so it arbitrarily picks the default main context.

    The problem with that is that the user might not be running it.

    Let's use the GLib worker thread for this instead.  It's guaranteed to
    be running if you need it, and this is exactly the sort of problem it
    was meant to solve.

    https://bugzilla.gnome.org/show_bug.cgi?id=704873

 gio/inotify/inotify-kernel.c  | 20 ++++++++++++++++----
 gio/inotify/inotify-missing.c |  8 +++++++-
 2 files changed, 23 insertions(+), 5 deletions(-)

commit 5843582604c9b1b0d459dc7f15182c966d112d9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 28 17:04:56 2013 -0400

    Fix build with statvfs

    As pointed out in bug 704587, the maze of ifdefs was missing the
    variable declaration for statfs_result in one case.

    https://bugzilla.gnome.org/show_bug.cgi?id=704587

 gio/glocalfile.c | 1 +
 1 file changed, 1 insertion(+)

commit 023e3b31a5352460f415944e166d413c2c747886
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Sat Jul 27 09:02:58 2013 +0200

    Fix a typo

    Introduced by 3b01cbe8a8a9ee2d1169f072624069877b91097c

 gobject/gtype.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ca6b93d0936e6864d374d3e8f2a795c1702b28b3
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Fri Jul 26 16:45:48 2013 +0100

    Add macros and symbols for private data on dynamic types

    We need a TypeName_private_offset variable defined by the macros
    used to
    register dynamic types. We also need to call the
    adjust_private_offset()
    function inside class_init(). G_ADD_PRIVATE_DYNAMIC only sets the size
    of the private data structure, and relies on the behaviour of the
    g_type_class_adjuset_private_offset() function to register the private
    data structure at class init time if passed a value greater than zero.

    This allows using G_PRIVATE_OFFSET with dynamic types.

 gobject/gtypemodule.h | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit d2bb019533bbcbd1cee3891822ac7ba6ff55ad3d
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jul 26 12:39:51 2013 +0100

    configure: Use AC_USE_SYSTEM_EXTENSIONS

    ...instead of detecting glibc and using _GNU_SOURCE manually.  This
    should fix the build when using glibc-emulating libraries; we can
    defer portability work to autoconf.

    https://bugzilla.gnome.org/show_bug.cgi?id=684123

 configure.ac | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 3b01cbe8a8a9ee2d1169f072624069877b91097c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 26 14:40:10 2013 -0400

    Document restrictions on private names

    With the new machinery, private structs must be named
    TypeNamePrivate if TypeName is the name of the instance
    struct.

 gobject/gtype.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 40f56d9d351f36d3ba2d4797c8f65caa38c78488
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Fri Jul 26 14:50:22 2013 +0530

    updated Gujarati translations

 po/gu.po | 574
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 290 insertions(+), 284 deletions(-)

commit dc2d3f77811c1247f8c46030557e4f76804bdf9e
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Thu Jul 25 13:18:58 2013 +0530

    Assamese translation updated

 po/as.po | 495
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 247 insertions(+), 248 deletions(-)

commit 2127654da5ec64db93653e7b0ac02b0b17abe191
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 24 10:02:38 2013 -0400

    mainloop: redo child source tests to not use timeouts

    The timeout-based tests could fail on slow or heavily-loaded machines.
    Change them to use a counter-based "timeout" source rather than a
    time-based one, so they no longer depend on wall time.

    https://bugzilla.gnome.org/show_bug.cgi?id=700460

 glib/tests/mainloop.c | 109
 +++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 89 insertions(+), 20 deletions(-)

commit 8c748efce1b441cf8aa05f22a24c27a940a29cf7
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 24 10:45:36 2013 -0400

    gnetworkaddress: tweak to make Solaris happy

    https://bugzilla.gnome.org/show_bug.cgi?id=704704

 gio/gnetworkaddress.c | 1 +
 1 file changed, 1 insertion(+)

commit 5a287a0be58c7b54208143367e3d6e011f961544
Author: Shantha kumar <shkumar@redhat.com>
Date:   Wed Jul 24 14:57:30 2013 +0530

    Tamil Translation Updated

 po/ta.po | 637
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 317 insertions(+), 320 deletions(-)

commit baf7f1e23e4c924049e75fe11ea029846c03706d
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jul 22 19:31:35 2013 +0100

    tests/unix: Don't error immediately on timeout

    On a heavily loaded system, it's possible that both our normal
    condition *and* the timeout occurred.  In that case we can just ignore
    the timeout.

    While I did add a "sig_timeout" boolean, we don't need to add any
    assertions around whether or not it was reached - the assertions
    covering the non-timeout case are sufficient.  The sig_timeout boolean
    is mainly for later debugging.

    https://bugzilla.gnome.org/show_bug.cgi?id=700460

 glib/tests/unix.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 2e471acfcabef4bbf50ce29dc9cd157263e646f0
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jul 22 19:06:31 2013 +0100

    gmain: Reset signal handlers to default when source is destroyed

    If someone creates a unix signal source for e.g. SIGINT, and then
    removes it, reset the handler to SIG_DFL.

    Not doing this was the source of race conditions in the
    glib/tests/unix test, but this will also just make us a "good citizen"
    by cleaning up.

    For example, if a project temporarily creates a handler for SIGTERM,
    and then later removes it, they almost certainly want SIGTERM to
    revert to the default of terminating the process, rather than doing
    nothing.

    https://bugzilla.gnome.org/show_bug.cgi?id=704699

 glib/gmain.c      | 51
 +++++++++++++++++++++++++++++++--------------------
 glib/tests/unix.c | 11 ++++-------
 2 files changed, 35 insertions(+), 27 deletions(-)

commit 6fbb1463429748bed7ab6593779430ee1c0664f5
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Mon Jul 15 13:52:14 2013 +0200

    GRegex: add g_regex_get_max_lookbehind()

    It is useful for multi-segment regex matching.

    A unit test is included.

    https://bugzilla.gnome.org/show_bug.cgi?id=689794

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gregex.c                         | 23 +++++++++++++++++++++++
 glib/gregex.h                         |  2 ++
 glib/tests/regex.c                    | 19 +++++++++++++++++++
 4 files changed, 45 insertions(+)

commit d9e01e0c37eb7928a99aeaa3d51007198991928d
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jul 22 15:11:13 2013 +0100

    tests/closure: Send SIGUSR1 only to our pid

    Otherwise in e.g. the gnome-ostree integrationtest system, we
    end up sending SIGUSR1 to the *entire session*, which triggers
    various badness in untested debugging paths from gnome-session.

 gobject/tests/closure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 00f5c63621d8a0e67562deaf529b6a9c9362e2d7
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jul 22 12:51:00 2013 +0100

    tests/closure: Use correct prototype for signal callback

    This test worked when compiled without optimization, but fails with
    -O2.  Presumably we just happened to find the GMainLoop off the stack
    somewhere.

    https://bugzilla.gnome.org/show_bug.cgi?id=704267

 gobject/tests/closure.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit a65a85a4fd334a2dbd6739955aa652efc83a360f
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jul 22 13:48:58 2013 +0200

    Updated Spanish translation

 po/es.po | 549
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 276 insertions(+), 273 deletions(-)

commit 64041ca498a6115eb3a6f32c0fb2a3bec3c9fd88
Author: Milan Crha <mcrha@redhat.com>
Date:   Mon Jul 22 09:54:33 2013 +0200

    g_thread_create_full() can dereference NULL pointer

    In case of the thread creation failure, and the thread was not created
    as joinable, the g_thread_create_full() could dereference a NULL
    pointer.

    https://bugzilla.gnome.org/show_bug.cgi?id=704523

 glib/deprecated/gthread-deprecated.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 114b1ccf78849988567011c36dd5e868a66a3431
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Jul 18 17:22:53 2013 +0800

    gsourceclosure.c: Fix build on Windows

    GPid is a HANDLE (aka void *) on Windows, not an int, so treat pid
    accordingly on Windows, as using pid as a gulong directly would
    likely be
    undesirable on Windows

    https://bugzilla.gnome.org/show_bug.cgi?id=704447

 gobject/gsourceclosure.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 88ab63155de12a995c53711c65cc25026912171e
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jul 18 08:11:35 2013 -0400

    gobject/tests/closure: fix on win32

    (The g_closure_unref() was wrong, but was not causing errors on linux
    for some reason.)

    https://bugzilla.gnome.org/show_bug.cgi?id=704447

 gobject/tests/closure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 35e331b86912813a7d18b0ca3fb951f5759c11e8
Author: Colin Walters <walters@verbum.org>
Date:   Sun Jul 21 19:42:34 2013 +0100

    tests/closure: Fix invalid unref

    The closure is floating, g_source_set_closure() will claim the
    ref, so we do not need to unref it.

 gobject/tests/closure.c | 1 -
 1 file changed, 1 deletion(-)

commit 1543baddee0b18531325aa9728529777c38c94d7
Author: Marek Černocký <marek@manet.cz>
Date:   Sun Jul 21 11:00:38 2013 +0200

    Updated Czech translation

 po/cs.po | 454
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 230 insertions(+), 224 deletions(-)

commit 4f327d6379c3eb8f9dcd5127349c06f1d34b1155
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Fri Jul 12 16:44:13 2013 +0200

    GRegex: update documentation for partial matching

    The restrictions on partial matching no longer apply with PCRE
    >= 8.00.

    The pcrepartial manpage contains the "FORMERLY RESTRICTED PATTERNS"
    section:

    "For  releases  of PCRE prior to 8.00, because of the way certain
    internal optimizations were implemented in the pcre_exec() function,
    the
    PCRE_PARTIAL option (predecessor of PCRE_PARTIAL_SOFT) could not
    be used
    with all patterns. From release 8.00 onwards, the restrictions no
    longer  apply,  and  partial  matching  with  can  be requested
    for any
    pattern."

    https://bugzilla.gnome.org/show_bug.cgi?id=704250

 glib/gregex.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

commit b3968fb1501bb2950e6c15aad95083e6f01973ba
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Fri Jul 5 13:23:11 2013 +0200

    Improve documentation

    - Mention G_SOURCE_CONTINUE and G_SOURCE_REMOVE in the GSourceFunc
    doc;
    - Mention G_PARAM_READWRITE and G_PARAM_STATIC_STRINGS in the
      GParamFlags doc;
    - Fix "Since:" version for G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE;
    - Fix typo.

    https://bugzilla.gnome.org/show_bug.cgi?id=704250

 glib/gmain.h     | 3 ++-
 glib/gregex.h    | 2 +-
 gobject/gparam.h | 2 +-
 gobject/gtype.h  | 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

commit 8753df9d700dcc132f77432d76863884ab21fa87
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 19 19:41:24 2013 -0400

    gsettings tool: report failure to write

    If a key is locked down, we should report an error if we
    fail to write it.

    https://bugzilla.gnome.org/show_bug.cgi?id=704424

 gio/gsettings-tool.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit dc87c453fbdcf568990c0e7587fa4607f5e148b9
Author: Igor Pashev <pashev.igor@gmail.com>
Date:   Fri Jul 19 18:23:29 2013 -0400

    tests/gvariant: Canonicalize to lower case to work on Illumos
    (OpenSolaris)

    Solaris libc gives lowercase strings.

    https://bugzilla.gnome.org/show_bug.cgi?id=704585

 glib/tests/gvariant.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 31aee73285729b1d0d2210cb728b4b2d52711678
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jul 19 11:50:35 2013 -0400

    gdbusnameowning: Don't spew an error if we're releasing a name due
    to closing

    The default GNOME 3.10 login process right now has gdm spawn a session
    for the login screen, retaining the X server, but closing the session
    bus.  Right now in this scenario many GNOME components such as
    gnome-settings-daemon attempt to "clean up" on shutdown by releasing
    their owned names.

    But they're shutting down because the session bus went away, so
    releasing the name is pointless, and presently spews an error into the
    journal.

    This patch avoids that error spew, which helps system administrators
    find *real* problems.

    https://bugzilla.gnome.org/show_bug.cgi?id=704567

 gio/gdbusnameowning.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit be2c7b83c4a9c9d3aa76b1499c27ab19e0f4e470
Author: Giovanni Campagna <gcampagn@redhat.com>
Date:   Tue Jul 16 15:26:02 2013 +0200

    glib-unix: fix handling of multiple signal source for the same signal

    We can't reset the pending flag for a signal until we've traversed
    the whole list, as the documentation clearly says that in case
    multiple
    sources they all get invoked.
    This is still racy if you get a signal after checking the flag
    but before resetting it, but it was the same before. The correct
    fix would be to use sigwait() or signalfd(), but that would mean
    blocking all signals in all threads, which is not compatible
    with existing applications.

    https://bugzilla.gnome.org/show_bug.cgi?id=704322

 glib/gmain.c      |  6 ++---
 glib/tests/unix.c | 70
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 71 insertions(+), 5 deletions(-)

commit 72a7e824d65b725a5f64224ee274fe5e3d7933fc
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 17 18:58:18 2013 -0400

    gsourceclosure: fix idle/timeout/signal closures, add child watch
    support

    And add a test for all source types.

    https://bugzilla.gnome.org/show_bug.cgi?id=704267

 gobject/gsourceclosure.c  |  69 +++++++++++++++-
 gobject/tests/.gitignore  |   1 +
 gobject/tests/Makefile.am |   1 +
 gobject/tests/closure.c   | 202
 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 270 insertions(+), 3 deletions(-)

commit d06400cbaf4d3f6741a463668b2c8a56f695d124
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jul 17 16:54:35 2013 +0800

    Visual Studio Builds: Update property sheets

    "Install" the newly-introduced gpropertyaction.h header file, which is
    required for GIO.

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit 95f7dc949135181dcefd69e6773f1488c02a79a9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jul 17 16:45:50 2013 +0800

    Visual Studio Builds: "Install" gdbus-codegen

 build/win32/vs10/glib.props  | 7 +++++++
 build/win32/vs9/glib.vsprops | 4 ++++
 2 files changed, 11 insertions(+)

commit 371fb88362f372644bc1503594f8885ffd65f52e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 16 19:21:31 2013 -0400

    gsettings tool: Improve documentation

    Mention that gsettings needs a session bus to make changes.

 docs/reference/gio/gsettings.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit 8ead9055b9139a8e8849e8d34ba0bd4b245618db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 14 17:11:59 2013 -0400

    GApplication: reply to ActivateAction

    Send a reply for org.freedesktop.Application.ActivateAction calls.  We
    missed this before because nobody was waiting for it.

 gio/gapplicationimpl-dbus.c | 2 ++
 1 file changed, 2 insertions(+)

commit 06b968b6db73c88e16a791328be1ba57fe287d6a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 14 11:35:56 2013 -0400

    Make a test desktop file a little less invalid

    Add a missing Name entry, and add a terminal ; to the Actions
    entry in org.gtk.test.dbusappinfo.desktop. desktop-file-validate
    still contains about the DBusActivatable entry and about the
    missing Exec entries. The former will go away when
    desktop-file-validate
    gets updated for the latest spec revision.

 gio/tests/org.gtk.test.dbusappinfo.desktop | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit ff68fca9e9fc7b534af86f2928d80830b331716f
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jul 11 11:07:17 2013 -0400

    tests/mainloop: Fix assertions to really avoid race conditions

    As the comment says, we may be delayed an arbitrary amount of time on
    non-idle systems; update the assertions to reflect this.

    This should fix periodic failures in the gnome-ostree continuous
    integration system.

    https://bugzilla.gnome.org/700460

 glib/tests/mainloop.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 405936632a4ed8a83cb1a5472944e35e8159566a
Author: Christian Kirbach <christian.kirbach@gmail.com>
Date:   Sun Jul 14 12:24:07 2013 +0200

    Updated German translation

 po/de.po | 947
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 483 insertions(+), 464 deletions(-)

commit 8d0e0c6fcca845659ae54f8a4c1508826ed36963
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jun 3 08:13:50 2013 -0300

    gcancellable: update GCancellableSource, fix a race condition

    Update GCancellableSource to call g_source_set_ready_time() when its
    cancellable is cancelled, rather than manually checking the state of
    the cancellable from prepare() and check().

    This means that we now need to use g_cancellable_connect() rather than
    g_signal_connect() at construction time, to avoid the connect/cancel
    race condition. Likewise, use g_cancellable_disconnect() to avoid the
    disconnect/cancel race condition when freeing the source. (In fact,
    that was necessary in the earlier code as well, and might have
    occasionally caused spurious criticals or worse.)

    https://bugzilla.gnome.org/show_bug.cgi?id=701511

 gio/gcancellable.c | 40 +++++++++++++---------------------------
 1 file changed, 13 insertions(+), 27 deletions(-)

commit 8f80fbb2a7bbd140657247b328d6f010ed4d9157
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jun 3 08:10:31 2013 -0300

    Remove some unnecessary source prepare/check functions

    GPollableSource and GSocket's "broken" source never trigger on their
    own, so with the changes to GSources in the last cycle, their check
    and prepare functions are unnecessary (and undesired).

    https://bugzilla.gnome.org/show_bug.cgi?id=701511

 gio/gpollableutils.c | 18 ++----------------
 gio/gsocket.c        | 17 ++---------------
 2 files changed, 4 insertions(+), 31 deletions(-)

commit 6d328a0d5d0c4762d9d942f2632763075b12dcb8
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jun 1 15:24:13 2013 -0300

    gio: port unix streams to GUnixFDSource

    The unix input/output streams were using a gio-only source type that
    was mostly identical to GUnixFDSource. Get rid of that source type
    and just use GUnixFDSource instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=701511

 gio/gasynchelper.c      | 109
 ------------------------------------------------
 gio/gasynchelper.h      |   8 ----
 gio/gunixinputstream.c  |  13 +++++-
 gio/gunixoutputstream.c |  13 +++++-
 4 files changed, 22 insertions(+), 121 deletions(-)

commit 8a899265329f6bbbb066991fdc036045d7031b37
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jun 1 15:23:15 2013 -0300

    gsourceclosure: Add support for GUnixSignalWatchSource and
    GUnixFDSource

    https://bugzilla.gnome.org/show_bug.cgi?id=701511

 glib/glib-unix.c         |  8 ++++----
 glib/gmain.c             |  2 +-
 glib/gmain.h             |  4 ++++
 gobject/gsourceclosure.c | 45
 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 54 insertions(+), 5 deletions(-)

commit 1da47d5ede3384105c035638fb4eb533d8989e20
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 2 19:59:23 2013 -0300

    gsourceclosure: use g_cclosure_marshal_generic

    For the glib-defined source types, and any source type that defines a
    closure callback but not a closure marshal, use
    g_cclosure_marshal_generic. And then remove all the other remaining
    source closure marshals.

    https://bugzilla.gnome.org/show_bug.cgi?id=701511

 gio/gasynchelper.c       | 25 -------------------------
 gio/gcancellable.c       |  1 -
 gio/gpollableutils.c     |  1 -
 gio/gsocket.c            |  1 -
 gobject/gsourceclosure.c | 35 ++---------------------------------
 5 files changed, 2 insertions(+), 61 deletions(-)

commit cdff4a331ef5ba986afb3707db6cc019b71654d4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 13 15:48:39 2013 -0400

    Fix g_return_if_fail vs. return_val_if_fail

 gio/gaction.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c04a063b781fa4a8c84ed067eaa31241fea18f86
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 4 16:24:38 2013 -0400

    GAction: add function for printing detailed names

    A counterpart for parsing of detailed actions into (name, target)
    pairs,
    this new function prints them back.

    We also add a new function to check for validity of action names.
    Only
    valid action names are allowed when printing.  Parsing accepts _some_
    invalid names for backwards compatibility.

    https://bugzilla.gnome.org/show_bug.cgi?id=704157

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gaction.c                       | 102
 +++++++++++++++++++++++++++++++++---
 gio/gaction.h                       |   8 +++
 3 files changed, 105 insertions(+), 7 deletions(-)

commit c08ef6c165c6935f257d3fb98c049be50e3816da
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 4 17:29:55 2013 -0300

    gnetworkmonitornetlink: handle default route via device

    If the default route is via a device rather than a particular IP
    address, then neither RTA_DST nor RTA_GATEWAY will be present in the
    RTM_NEWROUTE message, and so GNetworkMonitorNetlink would ignore it,
    and then think there was no default route. (This could happen with
    certain kinds of VPNs, if they were set to route all traffic through
    the VPN.)

    Fix this by recognizing routes that specify RTA_OIF ("output
    interface") instead of RTA_GATEWAY.

    https://bugzilla.gnome.org/show_bug.cgi?id=701609

 gio/gnetworkmonitornetlink.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 973464781cf90c3b1a55c88cd1772a25aba153ca
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 11 15:57:05 2013 -0400

    Fix a typo in a filename in Makefile.am

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3b1b04433cdc1f1685af2e9c5437e3ac41f3a94a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 8 17:31:09 2013 -0400

    Add a testcase for DBusActivatable=true

    Add a fairly realistic testcase that ensures that GDesktopAppInfo with
    DBusActivatable=true can successfully talk to GApplication for
    a variety
    of purposes.

    https://bugzilla.gnome.org/show_bug.cgi?id=699259

 gio/tests/.gitignore                       |   1 +
 gio/tests/Makefile.am                      |   3 +
 gio/tests/dbus-appinfo.c                   | 290
 +++++++++++++++++++++++++++++
 gio/tests/org.gtk.test.dbusappinfo.desktop |  17 ++
 4 files changed, 311 insertions(+)

commit 2a4dbbc73a65a9a8faa895eda88d0e7339ae9475
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Thu Jul 11 21:09:15 2013 +0200

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit d07d96e13549439ea42af0f9348afc5aa044bc9f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 11 13:54:47 2013 -0400

    Deal with new automake test stuff

    Add *.trs and *.log to .gitignore along with test-driver

    Add *.trs and *.log to CLEANFILES in glib.mk.

 .gitignore | 3 +++
 glib.mk    | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit 985e95e831b340adb57b848590bc20c4e163100a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 11 13:47:45 2013 -0400

    Add missing file

    This got removed during the OnlyShowIn shuffle.

 gio/tests/appinfo-test-actions.desktop | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 9ec8ab62b29ca9a5499fd906231a1c3bb758f321
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 11 13:04:23 2013 -0400

    GDesktopAppInfo: remove note about OnlyShowIn

    A previous version of the patch had OnlyShowIn support for desktop
    file
    actions.  This was removed from the spec and the patch rewritten, but
    this bit of documentation slipped through.  Remove it.

 gio/gdesktopappinfo.c | 5 -----
 1 file changed, 5 deletions(-)

commit 6dc5c118e4e52d6a6abaed4d6191fe655917ee4d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 11 12:46:59 2013 -0400

    Implement the Desktop Action specification

    For some time, the desktop file specification has supported
    "additional
    application actions".  This is intended to allow for additional
    methods
    of starting an app, such as a mail client having a "Compose New
    Message"
    action that brings up the compose window instead of the folder list.

    This patch adds support for this with a relatively minimal API.

    In the case that the application is a GApplication and
    DBusActivatable,
    desktop actions are translated into GActions that have been added
    to the
    application with g_action_map_add_action().  This more or less closes
    the loop on being able to activate an application with an action
    invocation (instead of 'activate').

    https://bugzilla.gnome.org/show_bug.cgi?id=664444

 docs/reference/gio/gio-sections.txt |   4 +
 gio/gdesktopappinfo.c               | 219
 ++++++++++++++++++++++++++++++++----
 gio/gdesktopappinfo.h               |  12 ++
 gio/tests/Makefile.am               |   1 +
 gio/tests/desktop-app-info.c        |  78 +++++++++++++
 glib/gkeyfile.h                     |   1 +
 6 files changed, 291 insertions(+), 24 deletions(-)

commit f77e1216500986ae60b42a77e25717e1710c6013
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 28 11:41:43 2013 -0400

    add GPropertyAction

    Add a new type of GAction that represents the value of a property
    on an
    object.  As an example, this might be used on the "visible-child-name"
    property of a GtkStack.

    https://bugzilla.gnome.org/show_bug.cgi?id=703270

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  15 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/giotypes.h                      |   1 +
 gio/gpropertyaction.c               | 555
 ++++++++++++++++++++++++++++++++++++
 gio/gpropertyaction.h               |  49 ++++
 gio/tests/actions.c                 | 174 ++++++++++-
 8 files changed, 797 insertions(+), 1 deletion(-)

commit 662e3c4891a63498d9720d7c9a3d782f30374d3a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 11 12:26:33 2013 -0400

    GVariant: fix two small/theoretical leaks

    Fix some leaks that turned up while valgrinding the GVariant testcase.

    These leaks are small and only occur when there is already an error in
    the program: they are leaks of temp strings used when formatting a
    critical message.

    These show up as leaks again the testcase under the new "expect
    messages" approach.  Previously, we fork()ed and these caused the
    subprocess to abort, which is why this was not noticed before.

 glib/gvariant.c | 2 ++
 1 file changed, 2 insertions(+)

commit 1c586e44befe07812ac1e4473ef9e3a76330b78e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 11 12:16:44 2013 -0400

    Add g_variant_new_printf

    Add a quick way to get a floating GVariant from printf formatting.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gvariant.c                       | 38
 +++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |  3 +++
 glib/tests/gvariant.c                 | 21 +++++++++++++++++++
 4 files changed, 63 insertions(+)

commit 542099b5adfad9ee0641242b837e0e3d705d973a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 9 14:28:19 2013 -0400

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d5c5dcfab92a34e286e830520622a45b9e8fd39d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 9 12:54:00 2013 -0400

    2.37.4

 NEWS | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 89f9f227d6d968516e999c038d9115351879d9da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 9 13:30:49 2013 -0400

    Add G_TYPE_CHECKSUM to the docs

 docs/reference/gobject/gobject-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit e38ee2f468bbbed0d354a95bbace3e9e19e8e695
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 9 13:28:07 2013 -0400

    Document g_simple_proxy_resolver_set_ignore_hosts

 gio/gsimpleproxyresolver.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

commit 1c1255772bcdba846e31a00b1b5495b4da8ce607
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 9 13:23:12 2013 -0400

    Minor doc tweak

 glib/gtestutils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9675bcc5e7bd3e7ce2d23ad4ffecf332f09192d2
Author: Gil Forcada <gforcada@gnome.org>
Date:   Fri Jul 5 02:23:48 2013 +0200

    [l10n] Update Catalan translation

 po/ca.po | 514
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 257 insertions(+), 257 deletions(-)

commit dbdfcb69ce4a7f14bac784c2684c1a66bfe6a2c9
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Thu Jul 4 10:27:02 2013 +0200

    gthread: Use pthread_cond_timedwait_monotonic() if available

    Otherwise we have to rely on pthread_cond_timedwait() actually using
    the monotonic clock, which might be true or not. On Android at least
    it is using the realtime clock, no pthread_condattr_setclock()
    is available
    but instead pthread_cond_timedwait_monotonic() can be used.

 configure.ac         | 18 ++++++++++++++++++
 glib/gthread-posix.c |  9 +++++++++
 2 files changed, 27 insertions(+)

commit a4c352cd99738095ba34e04a86a2ffa9cc659cfe
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu Jun 27 15:15:40 2013 +0100

    Ensure that MAX_ALLOWED keeps working with the type macros

    When using the GLIB_VERSION_MAX_ALLOWED macro to define the upper
    bound
    of allowed API the G_DEFINE_TYPE_EXTENDED starts warning about
    the newly
    added g_type_class_adjust_private_offset() function; this effectively
    introduces a run-time dependency on GLib 2.38 even if we don't use its
    API explicitly.

    https://bugzilla.gnome.org/show_bug.cgi?id=703191

 gobject/gtype.h | 32 +++++++++++++++++++++++++-------
 1 file changed, 25 insertions(+), 7 deletions(-)

commit 4cd7bcaf00f26e60b7f76c7db91fcdefb9c0ae95
Author: Martin Ejdestig <marejde@gmail.com>
Date:   Tue Jul 2 19:53:04 2013 +0200

    Add missing G_BEGIN/END_DECLS to gsettingsschema.h.

    Without this fix, using any of the enclosed functions when building
    with a
    C++ compiler will result in undefined references.

    https://bugzilla.gnome.org/show_bug.cgi?id=703478

 gio/gsettingsschema.h | 4 ++++
 1 file changed, 4 insertions(+)

commit cb4469600c5146a48501a31e9a3fb9bfc261477d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 1 17:42:43 2013 -0400

    GDBusConnection: be more careful with async GetAll

    It's possible to get a org.freedesktop.Properties.GetAll call even
    if we
    have no readable properties in the introspection, in which case we
    should return the empty list in the usual way.

    We should certainly _not_ be dispatching to the method call handler of
    an interface which has no properties (since it will not be expecting
    this).

    Add a check to make sure that there is at least one readable property
    before assuming that a NULL get_property handler implies that we
    want to
    handle properties asynchronously.

    Add a testcase that was failing before the change and works after it.

    https://bugzilla.gnome.org/show_bug.cgi?id=703437

 gio/gdbusconnection.c    | 22 +++++++++++++++++++---
 gio/tests/gdbus-export.c | 29 ++++++++++++++++++++++++++++-
 2 files changed, 47 insertions(+), 4 deletions(-)

commit 3cefb7248affdf92c878520f54bcaa3993d9b2fc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 1 23:30:31 2013 -0400

    Revert two errant commits to GMutex, etc.

    This reverts commits dfbac178bdcbcb042be928dcbeaa87742b511836 and
    56348210f38209a11902e54b2db41833aab36414.

    These two commits introduce undesirable behaviour and were made
    with no
    apparent approval from anybody at all, and without reference to a
    bug or
    mailing list discussion.

 glib/gthread-posix.c | 6 +-----
 glib/gthread-win32.c | 1 -
 2 files changed, 1 insertion(+), 6 deletions(-)

commit e55ccf7338f2eb68f08d648855a4a92a091df690
Author: Paul Barbieri <paul.barbieri@baesystems.com>
Date:   Mon Jul 1 21:10:28 2013 +0100

    gspawn: Fix leak of internal pipe with G_SPAWN_LEAVE_DESCRIPTORS_OPEN

    Even when the app author specifies G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
    we should avoid leaking our internal pipe machinery into the
    child.

    Commit message written by: Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=703407

 glib/gspawn.c | 1 +
 1 file changed, 1 insertion(+)

commit 1891eafd1da6f31e6b8876b2882800a5c2b92148
Author: Bastien Nocera <hadess@hadess.net>
Date:   Fri Jun 21 20:07:58 2013 +0200

    Fix typo in documentation

    s/doucumentation/documentation

 glib/gspawn.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dfbac178bdcbcb042be928dcbeaa87742b511836
Author: Jeffrey Stedfast <fejj@gnome.org>
Date:   Sun Jun 30 14:01:34 2013 -0400

    Finish the previous fix for GMutex, GRecMutex, GRWLock and GCond

 glib/gthread-posix.c | 3 +++
 glib/gthread-win32.c | 1 +
 2 files changed, 4 insertions(+)

commit 56348210f38209a11902e54b2db41833aab36414
Author: Jeffrey Stedfast <fejj@gnome.org>
Date:   Sun Jun 30 13:46:28 2013 -0400

    Fixed g_mutex_clear() to fully undo g_mutex_init()

    In order to fully undo the effects of g_mutex_init(),
    it is necessary to reset the internal mutex pointer
    back to NULL so that a later call to g_mutex_init()
    actually works as expected.

 glib/gthread-posix.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b05bf77223cffb025b8a24963d6149a755da43c0
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Tue Jun 25 22:11:54 2013 +0200

    Doc: small fixes

    This commit adds the GTestSubprocessFlags enum to the docs, and fixes
    several minor typos in various places.

    https://bugzilla.gnome.org/show_bug.cgi?id=703254

 docs/reference/glib/glib-sections.txt | 1 +
 gio/gasyncresult.c                    | 2 +-
 gio/gtask.c                           | 2 +-
 glib/gtestutils.c                     | 6 +++---
 4 files changed, 6 insertions(+), 5 deletions(-)

commit b7b38384010be4385ba9a1872dc3eb7a0134cbe0
Author: Dan Winship <danw@gnome.org>
Date:   Fri Jun 14 11:19:31 2013 -0300

    Make G_STRFUNC consistent across platforms

    Recent versions of clang have changed __PRETTY_FUNCTION__ to always
    include the function signature (rather than including the function
    signature in C++ but not in C like gcc does). This causes G_STRFUNC to
    give different results under clang and gcc, causing some tests with
    g_test_expect_messages() to fail.

    Fix this by only using __PRETTY_FUNCTION__ in C++, and using
    __FUNCTION__ in C. (Under gcc this change has no effect.)

    https://bugzilla.gnome.org/show_bug.cgi?id=702147

 glib/gmacros.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a3182e3b9a229292be5370542915ae4cc8cc6e25
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 29 22:51:31 2013 -0400

    Improve various section headings in the docs

    We don't use # or other forms of links in the section headings.
    We also capitalize them and don't put a final period.

    This commit corrects several headings to follow these rules.

 gio/gbytesicon.c            | 2 +-
 gio/gdbusutils.c            | 2 +-
 gio/gpollableutils.c        | 2 +-
 gio/gremoteactiongroup.c    | 2 +-
 gio/gsettingsschema.c       | 2 +-
 gio/gtcpwrapperconnection.c | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

commit d30a2d92f3450ee420c49781c889b5fd3c46aba9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 29 22:46:38 2013 -0400

    docs: minor formatting fixes to the gresource man page

    Make the SECTION argument appear the same way throughout.

 docs/reference/gio/gresource.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5989651bee6bf8d8c50b180fa6295d824caa37de
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 25 09:34:29 2013 -0400

    tests: add a test for the previous commit

 glib/tests/mainloop.c | 51
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

commit 1d5c815ecd3a5ac6032e7931491296e693b51ccd
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu May 30 16:46:02 2013 +0200

    gmain: handle blocked source in g_source_add_child_source()

    When a child_source is added to a blocked source it has no context,
    yet we
    call block_source on it that segfaults when it dereferences the
    NULL context
    when it attempts to remove the file descriptors. To fix this we:

    - Ensure that when we block a source, we don't attempt to remove
    its file
      descriptors from a NULL context.

    - Also ensure that when we attach a blocked source to a context,
    we don't add the
      file descriptors to the context.

    https://bugzilla.gnome.org/show_bug.cgi?id=701283

 glib/gmain.c | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

commit 5841267a6c046744979fc11ec856265c18c6338c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 24 12:13:30 2013 -0400

    version bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1b12e9511cd9a002dc20b578e4064ce95c9c18d4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 24 11:05:20 2013 -0400

    GLib 2.37.3

 NEWS | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit a61f718e5e801657691a35fb402258531a2dbcd9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 24 11:19:06 2013 -0400

    small docs xml fixup

 docs/reference/gobject/tut_howto.xml | 1 +
 1 file changed, 1 insertion(+)

commit 54cc43630ddf724722ebdfc1d6906dc1986b773d
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Jun 24 15:43:04 2013 +0100

    Rename the generated private data getter function

    As it turns out, we have examples of internal functions called
    type_name_get_private() in the wild (especially among older
    libraries),
    so we need to use a name for the per-instance private data getter
    function that hopefully won't conflict with anything.

 docs/reference/gobject/tut_howto.xml | 12 ++++++------
 gio/gappinfo.c                       |  2 +-
 gio/gapplication.c                   |  2 +-
 gio/gapplicationcommandline.c        |  2 +-
 gio/gbufferedinputstream.c           |  2 +-
 gio/gbufferedoutputstream.c          |  2 +-
 gio/gcancellable.c                   |  2 +-
 gio/gconverterinputstream.c          |  2 +-
 gio/gconverteroutputstream.c         |  2 +-
 gio/gdatainputstream.c               |  2 +-
 gio/gdataoutputstream.c              |  2 +-
 gio/gdbus-2.0/codegen/codegen.py     |  4 ++--
 gio/gdbusauth.c                      |  2 +-
 gio/gdbusauthmechanism.c             |  2 +-
 gio/gdbusauthmechanismanon.c         |  2 +-
 gio/gdbusauthmechanismexternal.c     |  2 +-
 gio/gdbusauthmechanismsha1.c         |  2 +-
 gio/gdbusinterfaceskeleton.c         |  2 +-
 gio/gdbusobjectmanagerclient.c       |  2 +-
 gio/gdbusobjectmanagerserver.c       |  2 +-
 gio/gdbusobjectproxy.c               |  2 +-
 gio/gdbusobjectskeleton.c            |  2 +-
 gio/gdbusproxy.c                     |  2 +-
 gio/gdelayedsettingsbackend.c        |  2 +-
 gio/gemblemedicon.c                  |  2 +-
 gio/gfileenumerator.c                |  2 +-
 gio/gfileinputstream.c               |  2 +-
 gio/gfileiostream.c                  |  2 +-
 gio/gfilemonitor.c                   |  2 +-
 gio/gfileoutputstream.c              |  2 +-
 gio/gfilterinputstream.c             |  8 ++++----
 gio/gfilteroutputstream.c            |  8 ++++----
 gio/ginetaddress.c                   |  2 +-
 gio/ginetaddressmask.c               |  2 +-
 gio/ginetsocketaddress.c             |  2 +-
 gio/ginputstream.c                   |  2 +-
 gio/giostream.c                      |  2 +-
 gio/glocalfileinputstream.c          |  2 +-
 gio/glocalfileoutputstream.c         |  2 +-
 gio/gmemoryinputstream.c             |  2 +-
 gio/gmemoryoutputstream.c            |  2 +-
 gio/gmenumodel.c                     |  4 ++--
 gio/gmountoperation.c                |  2 +-
 gio/gnetworkaddress.c                |  2 +-
 gio/gnetworkmonitorbase.c            |  2 +-
 gio/gnetworkmonitornetlink.c         |  2 +-
 gio/gnetworkservice.c                |  2 +-
 gio/goutputstream.c                  |  2 +-
 gio/gpermission.c                    |  2 +-
 gio/gproxyaddress.c                  |  2 +-
 gio/gproxyaddressenumerator.c        |  2 +-
 gio/gresolver.c                      |  2 +-
 gio/gsettings.c                      |  2 +-
 gio/gsettingsbackend.c               |  2 +-
 gio/gsimpleactiongroup.c             |  2 +-
 gio/gsimpleproxyresolver.c           |  2 +-
 gio/gsocket.c                        |  2 +-
 gio/gsocketclient.c                  |  2 +-
 gio/gsocketconnection.c              |  2 +-
 gio/gsocketinputstream.c             |  2 +-
 gio/gsocketlistener.c                |  2 +-
 gio/gsocketoutputstream.c            |  2 +-
 gio/gsocketservice.c                 |  2 +-
 gio/gtcpconnection.c                 |  2 +-
 gio/gtcpwrapperconnection.c          |  2 +-
 gio/gtestdbus.c                      |  2 +-
 gio/gthreadedsocketservice.c         |  2 +-
 gio/gtlsinteraction.c                |  2 +-
 gio/gtlspassword.c                   |  2 +-
 gio/gunixcredentialsmessage.c        |  2 +-
 gio/gunixfdlist.c                    |  2 +-
 gio/gunixfdmessage.c                 |  2 +-
 gio/gunixinputstream.c               |  2 +-
 gio/gunixoutputstream.c              |  2 +-
 gio/gunixsocketaddress.c             |  2 +-
 gio/gwin32inputstream.c              |  2 +-
 gio/gwin32outputstream.c             |  2 +-
 gobject/gtype.h                      |  6 +++---
 gobject/tests/private.c              | 16 ++++++++--------
 79 files changed, 101 insertions(+), 101 deletions(-)

commit 6000bc9ea8a1d6da53304db8dd6a4880d52cb2d2
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Jun 24 15:43:00 2013 +0100

    gio: Missing G_ADD_PRIVATE in GFileInputStream

 gio/gfileinputstream.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 1f6f7e1c4d38a8eab41af3280fcfcdd23b270102
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Jun 12 15:18:29 2013 +0100

    docs: Clean up the GObject tutorial a bit

    Started off by using the new instance private data macro, ended up
    cleaning up the obscure, out of date, or simply broken concepts and
    paragraphs.

    https://bugzilla.gnome.org/show_bug.cgi?id=700035

 docs/reference/gobject/tut_howto.xml | 303
 ++++++++++++++++-------------------
 1 file changed, 142 insertions(+), 161 deletions(-)

commit f870d5abdb2f38d751665e820a4c13a4fdeca6fe
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Jun 10 22:21:02 2013 +0100

    docs: Include newly added functions and macros

    The functions are private, and an implementation detail of the macros.

    https://bugzilla.gnome.org/show_bug.cgi?id=700035

 docs/reference/gobject/gobject-sections.txt | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 32747def4bb4cce7cfc4f0f8ba8560392ec9ad3d
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Jun 11 00:29:58 2013 +0100

    gio: Use the new private instance data declaration

    Use the newly added macros, and remove the explicit calls to
    g_type_class_add_private().

    https://bugzilla.gnome.org/show_bug.cgi?id=700035

 gio/gappinfo.c                   | 12 +++++-------
 gio/gapplication.c               |  7 ++-----
 gio/gapplicationcommandline.c    | 11 +++--------
 gio/gbufferedinputstream.c       |  7 ++-----
 gio/gbufferedoutputstream.c      |  8 ++------
 gio/gcancellable.c               |  8 ++------
 gio/gconverterinputstream.c      | 10 +++-------
 gio/gconverteroutputstream.c     | 10 +++-------
 gio/gdatainputstream.c           | 13 ++++---------
 gio/gdataoutputstream.c          |  8 ++------
 gio/gdbus-2.0/codegen/codegen.py | 18 ++++++++----------
 gio/gdbusauth.c                  |  7 ++-----
 gio/gdbusauthmechanism.c         |  9 ++-------
 gio/gdbusauthmechanismanon.c     |  8 ++------
 gio/gdbusauthmechanismexternal.c |  8 ++------
 gio/gdbusauthmechanismsha1.c     |  8 ++------
 gio/gdbusinterfaceskeleton.c     |  7 +++----
 gio/gdbusobjectmanagerclient.c   |  7 ++-----
 gio/gdbusobjectmanagerserver.c   |  9 +++------
 gio/gdbusobjectproxy.c           |  9 +++------
 gio/gdbusobjectskeleton.c        |  7 +++----
 gio/gdbusproxy.c                 |  8 +++-----
 gio/gdelayedsettingsbackend.c    | 13 ++++---------
 gio/gemblemedicon.c              |  7 ++-----
 gio/gfileenumerator.c            | 27 +++++++++++----------------
 gio/gfileinputstream.c           |  6 +-----
 gio/gfileiostream.c              | 15 ++++++---------
 gio/gfilemonitor.c               | 18 +++++++-----------
 gio/gfileoutputstream.c          | 15 ++++++---------
 gio/gfilterinputstream.c         | 34 +++++++++++++++-------------------
 gio/gfilteroutputstream.c        | 29 ++++++++++++++---------------
 gio/ginetaddress.c               | 24 ++++++++++--------------
 gio/ginetaddressmask.c           | 19 ++++++++-----------
 gio/ginetsocketaddress.c         | 38
 ++++++++++++--------------------------
 gio/ginputstream.c               | 17 +++--------------
 gio/giostream.c                  | 15 ++-------------
 gio/glocalfileinputstream.c      | 32 +++++++++-----------------------
 gio/glocalfileoutputstream.c     | 35 +++++++++++++++--------------------
 gio/gmemoryinputstream.c         |  7 ++-----
 gio/gmemoryoutputstream.c        |  7 ++-----
 gio/gmenumodel.c                 | 16 ++++++----------
 gio/gmountoperation.c            | 10 +++-------
 gio/gnetworkaddress.c            |  6 ++----
 gio/gnetworkmonitorbase.c        | 30 +++++++++++++-----------------
 gio/gnetworkmonitornetlink.c     | 31 ++++++++++++++-----------------
 gio/gnetworkservice.c            |  6 ++----
 gio/goutputstream.c              | 19 ++++---------------
 gio/gpermission.c                | 10 +++-------
 gio/gproxyaddress.c              |  9 +++------
 gio/gproxyaddressenumerator.c    | 11 +++--------
 gio/gresolver.c                  |  5 ++---
 gio/gsettings.c                  |  9 ++-------
 gio/gsettingsbackend.c           | 10 +++-------
 gio/gsimpleactiongroup.c         |  7 ++-----
 gio/gsimpleproxyresolver.c       |  7 ++-----
 gio/gsocket.c                    | 15 +++++++--------
 gio/gsocketclient.c              | 13 ++++---------
 gio/gsocketconnection.c          | 10 +++-------
 gio/gsocketinputstream.c         | 29 ++++++++++++++---------------
 gio/gsocketlistener.c            | 10 +++-------
 gio/gsocketoutputstream.c        | 29 ++++++++++++++---------------
 gio/gsocketservice.c             | 19 +++++++------------
 gio/gtcpconnection.c             | 16 ++++++----------
 gio/gtcpwrapperconnection.c      | 19 +++++++------------
 gio/gtestdbus.c                  |  8 ++------
 gio/gthreadedsocketservice.c     | 26 ++++++++++----------------
 gio/gtlsinteraction.c            |  7 ++-----
 gio/gtlspassword.c               |  7 ++-----
 gio/gunixcredentialsmessage.c    |  9 ++-------
 gio/gunixfdlist.c                | 11 +++--------
 gio/gunixfdmessage.c             | 12 +++---------
 gio/gunixinputstream.c           | 27 ++++++++-------------------
 gio/gunixoutputstream.c          | 27 ++++++++-------------------
 gio/gunixsocketaddress.c         |  9 +++------
 gio/gwin32inputstream.c          | 18 +++---------------
 gio/gwin32outputstream.c         | 19 +++----------------
 76 files changed, 370 insertions(+), 713 deletions(-)

commit aba80eea6c2965ee253a675610bd31c3dc256419
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Jun 11 00:29:22 2013 +0100

    gparam: Use the new private instance data API

    https://bugzilla.gnome.org/show_bug.cgi?id=700035

 gobject/gparam.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit 39ba7c81428cf660381266337990b16c31e9630f
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sun Jun 23 14:50:49 2013 +0100

    gobject: Add private field access macros

    Similar to G_STRUCT_MEMBER and G_STRUCT_MEMBER_P, but automatically
    using
    the G_PRIVATE_OFFSET macro.

    https://bugzilla.gnome.org/show_bug.cgi?id=700035

 gobject/gtype.h | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit d91d114a54bb89d987acb47a6d78fcd5c3ecd2fc
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Jun 19 20:41:02 2013 +0100

    Add G_PRIVATE_OFFSET

    A macro that evaluates to the offset of a field inside an instance
    private data structure.

    https://bugzilla.gnome.org/show_bug.cgi?id=700035

 gobject/gtype.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit d3dec6ec80e9243bdc14d47f6e51c381eb46cda2
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu May 9 14:41:26 2013 -0700

    Allow registering instance private data during get_type()

    For static types, it should be possible to register a private data
    structure right when we are registering the type, i.e. from the
    get_type() implementation. By allowing this, we can take advantage of
    the existing type definition macros to cut down the amount of code
    necessary (as well as the knowledge baggage) when creating a new type.

    The main issue with this new feature is that it cannot be mixed
    with the
    old idiomatic way of adding private instance data by calling
    a function
    in the middle of the class_init() implementation, as that imposes the
    additional constraint of initializing the whole type hierarchy
    in order
    to retrieve the offset of the private data in the GTypeInstance
    allocation.

    For this reason we are going to follow a two-step process; in
    the first
    step, we are going to introduce the new (semi-private) API to register
    the intent to add private instance data from within the get_type()
    implementation, and hide it behind a macro; at the same time, the
    G_DEFINE_TYPE_EXTENDED macro is going to be modified so that it will
    register the private instance data if the macro was used, using a new
    (semi-private) function as well. Once we have migrated all our
    code, we
    will make the first new function perform the actual private data
    registration, and turn the second new function into a no-op. This
    should
    guarantee a transparent migration of existing code to the new
    idiomatic
    form.

    https://bugzilla.gnome.org/show_bug.cgi?id=700035

 gobject/gtype.c           | 105 ++++++++++++++++++++
 gobject/gtype.h           | 104 ++++++++++++++++++++
 gobject/tests/.gitignore  |   1 +
 gobject/tests/Makefile.am |   1 +
 gobject/tests/private.c   | 246
 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 457 insertions(+)

commit ebdbbd9b62efa40542a467862a5401e0a8b4e07e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 23 19:35:15 2013 -0400

    Define GTESTER_REPORT for non-GLIB too

 glib.mk | 1 +
 1 file changed, 1 insertion(+)

commit fdc9379132dbdd3b02a04eab3a3cbd4c9e7cef3f
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Sun Jun 23 14:15:05 2013 +0200

    docs: fix GTK-Doc build

    cd html && gtkdoc-mkhtml $mkhtml_options  gio ../gio-docs.xml
    ../xml/gdbusconnection.xml:2063: parser error : Opening and ending
    tag mismatch: literal line 2062 and para
    </para>
           ^

 gio/gdbusconnection.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit edf16aace4033967dd2bcf9e05beff1c62190451
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 22 13:41:12 2013 -0400

    GDBusMethodInvocation: add missing 'goto out'

    We do a bunch of new validity checks for return values in response to
    calls on the D-Bus property API but we miss the 'goto out' in
    one case.
    Add it.

    https://bugzilla.gnome.org/show_bug.cgi?id=698375

 gio/gdbusmethodinvocation.c | 2 ++
 1 file changed, 2 insertions(+)

commit 317e8c132d1fd6373a698846932a10c443979726
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 17 09:45:23 2013 -0400

    GDBusMethodInvocation: add property return checks

    Add some type checking for the values returned from async property
    handling calls, similar in spirit to the type checking we do for
    normal
    method calls.

    https://bugzilla.gnome.org/show_bug.cgi?id=698375

 gio/gdbusmethodinvocation.c | 59
 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

commit f754c4e85b666686a374aa31f7d05fff739e9cde
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 17 09:30:15 2013 -0400

    GDBusConnection: allow async property handling

    The existing advice in the documentation to "simply" register the
    "org.freedesktop.DBus.Properties" interface if you want to handle
    properties asynchronously is pretty unreasonable.  If you want
    to handle
    this interface you have to deal with all properties for all interfaces
    on the path, and you have to do all of the checking for yourself.  You
    also have to provide your own introspection data.

    Introduce a new convention for dealing with properties asynchronously.

    If the user provides NULL for their get_property() or set_property()
    functions in the vtable and has properties registered then the
    properties are sent to the method_call() handler.  We get lucky here
    that this function takes an "interface_name" parameter that we can set
    to "org.freedesktop.DBus.Properties".

    We also do the user the favour of setting the GDBusPropertyInfo on the
    GDBusMethodInvocation for their convenience (for much the same reasons
    as they might want the already-available GDBusMethodInfo).

    Add a testcase as well as a bunch of documentation about this new
    feature.

    https://bugzilla.gnome.org/show_bug.cgi?id=698375

 gio/gdbusconnection.c       |  53 ++++++++++---
 gio/gdbusconnection.h       |  35 ++++++++-
 gio/gdbusmethodinvocation.c |  19 +++++
 gio/tests/gdbus-export.c    | 176
 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 268 insertions(+), 15 deletions(-)

commit c691f7b6ca664fc33100b29d1d920c2a94779a6e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 17 09:28:05 2013 -0400

    GDBusMethodInvocation: add 'property_info'

    Add a field on GDBusMethodInvocation for GDBusPropertyInfo.

    For now, it is always %NULL.  It will be set in future patches.

    https://bugzilla.gnome.org/show_bug.cgi?id=698375

 gio/gdbusconnection.c       |  4 +++-
 gio/gdbusmethodinvocation.c | 41
 ++++++++++++++++++++++++++++++++---------
 gio/gdbusmethodinvocation.h |  2 ++
 gio/gdbusprivate.h          | 19 ++++++++++---------
 4 files changed, 47 insertions(+), 19 deletions(-)

commit 14dc0280039a08c4b85ab9a5fbcbb17bf491afa8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 17 09:24:36 2013 -0400

    GDBusConnection: some straight-up refactoring

    Separate the code for validating a method call from the code for
    actually scheduling it for dispatch.

    This will allow property Get/Set/GetAll calls to be dispatched to the
    method_call handler without duplicating a lot of code.

    https://bugzilla.gnome.org/show_bug.cgi?id=698375

 gio/gdbusconnection.c | 86
 ++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 58 insertions(+), 28 deletions(-)

commit 02f5cdd98320d330d9b94ccfb15a0f6986534930
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 22 13:37:54 2013 -0400

    GDBusConnection: move 'Set' typecheck to worker

    We presently do a lot of checks on property sets (signature check,
    correct interface, property exists, etc.) from the worker thread
    before
    dispatching the call to the user's thread.  The typecheck, however, is
    saved until just before calling the user's vfunc, in their thread.

    My best guess is that this was done to save having to unpack the value
    from the tuple twice (since we don't unpack it until we're just about
    the call the user).

    This patch moves the check to the same place as all of the other
    checks.

    The purpose of this change is to allow for sharing this check with the
    (soon-to-be-introduced) case of handing property sets from
    method_call().

    This change has a minor side effect: error messages generated
    by sending
    invalid values to property sets are no longer guaranteed to be
    correctly
    ordered with respect to the void returns from successful property
    sets.
    They will instead be correctly ordered with respect to the other error
    messages.

    https://bugzilla.gnome.org/show_bug.cgi?id=698375

 gio/gdbusconnection.c | 40 +++++++++++++++++++++++++---------------
 1 file changed, 25 insertions(+), 15 deletions(-)

commit 0d29b17af7c5a79e143c31208cc0b37f7c09d481
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 17 12:52:59 2013 +0200

    GDBusConnection: remove an unused g_variant_get()

    https://bugzilla.gnome.org/show_bug.cgi?id=698375

 gio/gdbusconnection.c | 5 -----
 1 file changed, 5 deletions(-)

commit 15477ebd4216a6d71556eb381974b0dd93019dda
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 5 18:46:29 2013 -0400

    Makefile.am: move gtk-doc.make back to EXTRA_DIST

    0192c599377c35cc465eed1ae61de56d5a1034e8 moved this file from
    EXTRA_DIST TO
    BUILT_EXTRA_DIST for an unknown reason.

    Having it here causes the timestamp to be updated during 'make
    dist' to
    something newer than docs/reference/*/Makefile.in.  This is a problem
    because those Makefile.in are generated by including gtk-doc.make, so
    automake becomes convinced that they need to be regenerated.
    This is a
    problem for people who don't have automake installed, or have
    the wrong
    version.

    The timestamp problem has been around for quite a while, but it only
    became a problem recently after automake changed policy about this in
    commit a22717dffe37f30ef2ad2c355b68c9b3b5e4b8c7.

    Specifically:

    https://bugzilla.gnome.org/show_bug.cgi?id=700350

 Makefile.am | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 4829e02c09c9faa5a312bac04bbaaccb82fa7981
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 20 13:13:29 2013 -0400

    Revert "g_file_set_contents(): don't fsync on ext3/4"

    We didn't actually do any real-world testing of this, and
    unsurprisingly it turns out to break in at least one widely-used
    configuration (Fedora 19 x86_64, ext4 on LVM).

    This reverts commit 9d0c17b50102267a5029b58b1f44efbad82d8f03.

    https://bugzilla.gnome.org/show_bug.cgi?id=701560

 glib/gfileutils.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

commit 69afaf6905bf6d9e6808a1f18d410ea810e37435
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Jun 20 11:46:58 2013 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 286
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 136 insertions(+), 150 deletions(-)

commit 97b82d8d21bc77fdc3aa27a851662d642a89bc5c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Jun 20 15:48:32 2013 +0800

    Add MSVC Projects for Utility Programs

    Build and "install" the gio-querymodules and gdbus utility programs
    so that
    the Visual Studio builds of GLib is more comprehensive.  The Python
    scripts
    for the GDBus codegen will be added to "installation" later.

 build/win32/vs10/Makefile.am                      |   4 +
 build/win32/vs10/gdbus.vcxproj                    | 180
 +++++++++++++++++++++
 build/win32/vs10/gdbus.vcxproj.filters            |  14 ++
 build/win32/vs10/gio-querymodules.vcxproj         | 184
 ++++++++++++++++++++++
 build/win32/vs10/gio-querymodules.vcxproj.filters |  14 ++
 build/win32/vs10/glib.props                       |   4 +
 build/win32/vs10/glib.sln                         |  36 +++++
 build/win32/vs10/install.vcxproj                  |   8 +
 build/win32/vs11/Makefile.am                      |   4 +
 build/win32/vs9/Makefile.am                       |   2 +
 build/win32/vs9/gdbus.vcproj                      | 155
 ++++++++++++++++++
 build/win32/vs9/gio-querymodules.vcproj           | 155
 ++++++++++++++++++
 build/win32/vs9/glib.sln                          |  49 ++++++
 build/win32/vs9/glib.vsprops                      |   2 +
 14 files changed, 811 insertions(+)

commit ffaf57b936c22e95d13f90257425555716e6036e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Jun 20 15:43:32 2013 +0800

    Update Visual Studio Projects

    Make all projects settings use the MultiByte character set when
    building
    GLib to improve consistency.

 build/win32/vs10/glib-compile-resources.vcxproj | 4 ++--
 build/win32/vs10/glib-compile-schemas.vcxproj   | 4 ++--
 build/win32/vs10/glib-genmarshal.vcxproj        | 4 ++--
 build/win32/vs10/gresource.vcxproj              | 4 ++--
 build/win32/vs10/gsettings.vcxproj              | 4 ++--
 build/win32/vs9/glib-compile-resources.vcproj   | 4 ++--
 build/win32/vs9/glib-compile-schemas.vcproj     | 4 ++--
 build/win32/vs9/glib-genmarshal.vcproj          | 4 ++--
 build/win32/vs9/gresource.vcproj                | 4 ++--
 build/win32/vs9/gsettings.vcproj                | 4 ++--
 10 files changed, 20 insertions(+), 20 deletions(-)

commit 19e20084abb681a74254ad485c64e34b540cdc46
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Mon Jun 10 12:37:42 2013 +0800

    g_uri_unescape_string: Mention (allow-none)/%NULL in documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=701409

 glib/gurifuncs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 8d29a5a357425892e0fa7e2bc79b7f8b23c7ebd0
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Sat Jun 1 14:47:27 2013 +0800

    g_uri_escape_string: Add missing allow-none annotation

    https://bugzilla.gnome.org/show_bug.cgi?id=701409

 glib/gurifuncs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 87d5985718bafbebb9e64c614acaf75ee3e28e0a
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Wed Jun 19 10:37:13 2013 +0200

    [l10n] Updated Italian translation.

 po/it.po | 286
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 136 insertions(+), 150 deletions(-)

commit 18702168e125b8423d19d0e6fa7350e8956e0c81
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 17 13:05:11 2013 -0400

    gobject/tests: Add missing build dependency

 gobject/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f9e47f1f2f971a3d0709d692704de892729df1d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 17 12:56:40 2013 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 544816bf6ec4bc8dd2296624bd77ca0fe08a59e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 17 08:40:33 2013 -0400

    2.37.2

 NEWS | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

commit d929eb64eeac8947e966e817e3afc7f7aff8672b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 17 12:39:56 2013 -0400

    Try to make the testgdate test hobble along a little longer

 tests/testgdate.c | 44 +++++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

commit 1eefcb4d66479ece8a7e6932cf65dee60d0c5984
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 16 09:28:59 2013 -0400

    Plug a small memory leak

    g_test_trap_assertions was leaking the process_id string.

 glib/gtestutils.c | 1 +
 1 file changed, 1 insertion(+)

commit 910732ea7e6e4eaf42a33c32d25899b10afefa81
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Fri May 3 16:44:36 2013 -0700

    tests/binding: Ensure that the binding goes away

    Use weak pointers so that we can check that the GBinding instance goes
    away when it should.

    https://bugzilla.gnome.org/show_bug.cgi?id=698018

 gobject/tests/binding.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

commit d1959e4faae93bbe22bb95c99850b515611cb578
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu May 16 22:34:55 2013 +0100

    binding: Use hash table as a set

 gobject/gbinding.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 25a3c8720cb13944eb051775b89838540d4c5760
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu May 16 22:28:54 2013 +0100

    binding: Make unbind() release the reference on GBinding

    The automatic memory management of GBinding is not optimal for high
    order languages with garbage collectors semantics. If we leave the
    binding instance inert but still referenced it will be leaked, so one
    solution that does not throw away the baby of C convenience with the
    bathwater of language bindability is to have unbind() perform an
    implicit unref().

    Hopefully, C developers will read the documentation and especially the
    note that says that after calling unbind() the reference count on the
    GBinding instance is decreased.

    https://bugzilla.gnome.org/show_bug.cgi?id=698018

 gobject/gbinding.c      | 81
 ++++++++++++++++++++++++++++---------------------
 gobject/tests/binding.c |  4 +--
 2 files changed, 48 insertions(+), 37 deletions(-)

commit 270d73a1e08162de9099f6058b20ffe4d026d4e6
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Fri May 3 15:51:43 2013 -0700

    docs: Fix g_binding_unbind() in the API reference

 docs/reference/gobject/gobject-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 236ee6556188d3b1f3055d7d2ff65ea6cc824655
Author: Krishnababu Krothapalli <kkrothap@redhat.com>
Date:   Tue Jun 11 14:23:53 2013 +0530

    Updated Telugu Translations

 po/te.po | 301
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 150 insertions(+), 151 deletions(-)

commit f1f7c97e084c8cecd10a5d05ea2022bf20deeada
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Tue Jun 11 11:52:33 2013 +0530

    updated kn translations

 po/kn.po | 235
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 116 insertions(+), 119 deletions(-)

commit 9d9532bdd358a38c1b878be91702af5a8b82a5aa
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 10 13:17:08 2013 -0400

    gmain: Document more use cases of g_main_context_wakeup()

    https://bugzilla.gnome.org/show_bug.cgi?id=701878

 glib/gmain.c | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

commit 8a37af7f0ec434c8e283d3b8da4e4833e767574e
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jun 8 21:59:59 2013 +0200

    tests: Add a test for a specific invariant

    See the documentation in the test. The invariant is used by
    gnome-test-runner.

    https://bugzilla.gnome.org/show_bug.cgi?id=701878

 glib/tests/mainloop.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit 8474ad7f6ac9ee3ea8bbadf162abb2493bce2af9
Author: Marek Černocký <marek@manet.cz>
Date:   Mon Jun 10 21:31:36 2013 +0200

    Updated Czech translation

 po/cs.po | 568
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 263 insertions(+), 305 deletions(-)

commit 57eca445ca1080be8278e1d8ab432dde3bdab648
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Jun 10 20:32:57 2013 +0200

    Updated Polish translation

 po/pl.po | 246
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 114 insertions(+), 132 deletions(-)

commit c1e32a5c59cf43d86c6e1b50ba570e01a549c026
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 10 11:14:17 2013 -0400

    GObject: turn add-property-after-init to a warning

    We have turned up enough cases of this being done (including GTK API
    allowing apps to do this to GtkSettings well after it has been
    instantiated) that it is clear that we cannot really break this
    feature
    while claiming to be backwards compatible.

    For that reason, it becomes a warning rather than a critical (ie:
    it is
    still well-defined behaviour, but you are discouraged from doing it).

    The intention is to keep this feature for at least the next while.
    A given GObjectClass will be able to avoid using GParamSpec pool
    for as
    long as you don't install properties after init.  If you do that, you
    will get a warning and we will devolve to using GParamSpecPool.

    https://bugzilla.gnome.org/show_bug.cgi?id=698614

 gobject/gobject.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bbf9f5e97c49f0f24476bfb7e457f7f60789ea89
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Mon Jun 10 14:58:13 2013 +0530

    Assamese translation updated

 po/as.po | 265
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 130 insertions(+), 135 deletions(-)

commit 3fdbfe7c0a7585c9c2dd0dc4976883e324c6e957
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Jun 10 10:31:01 2013 +0200

    Updated Galician translations

 po/gl.po | 222
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 108 insertions(+), 114 deletions(-)

commit 12958ed5cc08e3222054edbdb203fdfe4b2f5d1f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 8 17:01:56 2013 -0400

    gio/tests: sort tests in the Makefile.am

    ...to make it clear where people should add theirs, reducing the
    chance
    of conflicts caused by everyone always adding at the end.

 gio/tests/Makefile.am | 138
 +++++++++++++++++++++++++-------------------------
 1 file changed, 69 insertions(+), 69 deletions(-)

commit afc8b1020aaa3a8acd7e8328d148748d3a5adfe6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 29 13:37:55 2013 -0700

    GDesktopAppInfo: support DBusActivatable

    Support the sender-side of the freedesktop application specification
    for
    cases that we find 'DBusActivatable=true' in the desktop file.

    https://bugzilla.gnome.org/show_bug.cgi?id=699259

 gio/gdesktopappinfo.c | 219
 +++++++++++++++++++++++++++++++++++++++-----------
 glib/gkeyfile.h       |   1 +
 2 files changed, 172 insertions(+), 48 deletions(-)

commit 0aaac55d1474dde49a5ac664dda16f0f6deca9b6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 6 00:05:41 2013 -0400

    Update link to documentation

 gio/gapplicationimpl-dbus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6965b721b1c7ec571f54065ddd1ef4ee1f7a4c3d
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jun 5 23:49:31 2013 -0300

    tests: fix and re-add the broken test

 gio/tests/inet-address.c | 2 ++
 1 file changed, 2 insertions(+)

commit 1dac271ace5f4ca690ac2ce13864b444359c54ce
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 5 21:50:52 2013 -0400

    Remove a failing testcase

    One of the recently added examples seems wrong. Drop it.

 gio/tests/inet-address.c | 2 --
 1 file changed, 2 deletions(-)

commit 76a10a572c67387533fa1e34796e39e3b7e70c30
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 5 18:05:12 2013 -0400

    GFileEnumerator: Add some documentation about ordering

    Kind of a gratuitious gaping hole in the docs...

    https://bugzilla.gnome.org/show_bug.cgi?id=701680

 gio/gfileenumerator.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 74a034028a964a25cc11318caf0b3c6d9a47bbcc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 5 15:51:13 2013 -0400

    tests: add a few more invalid IPv6 address tests

    https://bugzilla.gnome.org/show_bug.cgi?id=701401

 gio/tests/inet-address.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 59ed934b055229ff2da96f96c772a060dc0f4092
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 2 18:32:21 2013 -0300

    ginetaddress: fix addr/string conversions on windows

    When parsing an address, we need to re-set "len" between IPv4 and
    IPv6, since WSAStringToAddress() might set it to sizeof(struct
    sin_addr)
    when trying to parse the string as IPv4, even if it fails. Also, we
    need to make sure to not pass strings to WSAStringToAddress() that it
    will accept but that we don't want it to.

    When stringifying an address, we need to clear the sockaddr before
    filling it in, so we don't accidentally end up with an unwanted
    scope_id or the like.

    https://bugzilla.gnome.org/show_bug.cgi?id=701401

 gio/ginetaddress.c | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

commit 9f1a0b57cdca9eb2f9d8a8ecd414369df739fb8d
Author: Colin Walters <walters@verbum.org>
Date:   Sun May 12 07:28:01 2013 +0100

    Ensure g_file_copy() does not temporarily expose private files

    Previously, g_file_copy() would (on Unix) create files with the
    default mode of 644.  For applications which might at user request
    copy arbitrary private files such as ~/.ssh or /etc/shadow, a
    world-readable copy would be temporarily exposed.

    This patch is suboptimal in that it *only* fixes g_file_copy()
    for the case where both source and destination are instances of
    GLocalFile on Unix.

    The reason for this is that the public GFile APIs for creating files
    allow very limited control over the access permissions for the created
    file; one can either say a file is "private" or not.  Fixing
    this by adding e.g. g_file_create_with_attributes() would make sense,
    except this would entail 8 new API calls for all the variants of
    _create(), _create_async(), _replace(), _replace_async(),
    _create_readwrite(), _create_readwrite_async(), _replace_readwrite(),
    _replace_readwrite_async().  That can be done as a separate patch
    later.

    https://bugzilla.gnome.org/show_bug.cgi?id=699959

 gio/gfile.c                  | 24 +++++++++++++++++++++++-
 gio/glocalfile.c             | 23 ++++++++++++++---------
 gio/glocalfile.h             |  2 ++
 gio/glocalfileoutputstream.c | 36 ++++++++++++++++++++++--------------
 gio/glocalfileoutputstream.h |  2 ++
 5 files changed, 63 insertions(+), 24 deletions(-)

commit 02aaef5a4dd92fe3a3f3a7c4ccebf22ca1ba2644
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 9 00:01:59 2013 +0100

    g_file_copy(): Clean up logic for info query

    Previously, we called g_file_query_info() *again* on the source at the
    very end of the copy.  This has the lame semantics that if the source
    happened to be deleted, we would fail to apply attributes to the
    destination.  This could even be a security flaw.

    This commit changes things so that we query info from the source
    *stream* after opening - i.e. on Unix we use the proper fstat() and
    friends.  That way we operate more atomically.

    https://bugzilla.gnome.org/show_bug.cgi?id=699959

 gio/gfile.c | 128
 +++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 88 insertions(+), 40 deletions(-)

commit b4df86fa193d54c7604bf90aa88824e220b92683
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 29 13:30:02 2013 -0700

    GApplication: implement fd.o application spec

    The freedesktop application specification is largely overlapping the
    GLib application D-Bus interface but implementing it will allow for
    applications to be launched directly from desktop files, which
    we want.

    We keep the old Gtk interface for compatibility reasons and because it
    has some functionality not in the freedesktop spec (Busy state,
    CommandLine, etc.).

    https://bugzilla.gnome.org/show_bug.cgi?id=699259

 gio/gapplicationimpl-dbus.c | 78
 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 76 insertions(+), 2 deletions(-)

commit 7baea0aee559c70139e03421487d5aa213a547c0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 9 09:30:38 2013 -0400

    GApplication: set prgname to appid for services

    Since services are based on D-Bus activation and desktop files are
    supposed to be named like the busname for DBusActivatable applications
    and since gnome-shell wants wmclass equal to the desktop file name, we
    therefore want wmclass equal to the application ID in this case.

    wmclass is determined from the prgname, which is otherwise pretty
    pointless to set to some random thing in $(libexec) for a D-Bus
    service,
    so set that to the appid.

    This means that for D-Bus services, the following things are now
    all the
    same:

     - application ID
     - prgname
     - wmclass property set on all windows
     - desktop file name
     - well-known bus name

    There are not many applications running as D-Bus services at
    present so
    this shouldn't impact anybody except for gnome-clocks (where this
    change
    will be fixing a bug) and gnome-terminal.

    https://bugzilla.gnome.org/show_bug.cgi?id=699259

 gio/gapplication.c | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

commit 25d6560588bee636466ad62127f306a5d68bb872
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Jun 5 18:28:48 2013 +0200

    Updated Spanish translation

 po/es.po | 51 ++++++++++++++++++++++-----------------------------
 1 file changed, 22 insertions(+), 29 deletions(-)

commit 27c2864843f40d6a89eb9b0609f47216dd44058c
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Wed Jun 5 13:08:46 2013 +0530

    Updated Odia Translation.

 po/or.po | 51 ++++++++++++++++++++++-----------------------------
 1 file changed, 22 insertions(+), 29 deletions(-)

commit 5b872bb4fdc5118ea19172d3654131918ad676b4
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Wed Jun 5 12:28:00 2013 +0530

    Updated Marathi Translations

 po/mr.po | 470
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 233 insertions(+), 237 deletions(-)

commit 78ebab5bea1982a49cadadb36aa9ab0b3485d2fa
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Jun 5 10:48:55 2013 +0530

    Updated Gujarati Translations

 po/gu.po | 51 ++++++++++++++++++++++-----------------------------
 1 file changed, 22 insertions(+), 29 deletions(-)

commit 9d0c17b50102267a5029b58b1f44efbad82d8f03
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 4 09:48:12 2013 -0400

    g_file_set_contents(): don't fsync on ext3/4

    ext3 and ext4 (for quite some time) with default mount options don't
    need fsync() to ensure safety of replace-by-rename.  Stop doing
    that for
    these filesystems.

    Note: this patch also impacts ext2, which is probably not safe, but I
    don't know of any way to check ext2. vs the others because they
    all have
    the same magic numbers (short of opening /proc/mount).

    This patch assumes that if BTRFS_SUPER_MAGIC is defined then so
    will be
    EXT3_SUPER_MAGIC.

    https://bugzilla.gnome.org/show_bug.cgi?id=701560

 glib/gfileutils.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 16b26231ca7d807a5bb52228eb4f2cae4427edde
Author: Dan Winship <danw@gnome.org>
Date:   Sat May 25 11:09:43 2013 -0300

    gio/tests/inet-address: fix to work on OS X

    OS X's getaddrinfo() only supports IPv6 scope IDs that are interface
    names, not numbers. So use if_indextoname() to get the name of an
    interface and construct an address using that.

    https://bugzilla.gnome.org/show_bug.cgi?id=700123

 configure.ac             |  2 +-
 gio/tests/inet-address.c | 28 ++++++++++++++++++++++++----
 2 files changed, 25 insertions(+), 5 deletions(-)

commit c828aef014082c06f6a697ef4d0b92054d82b727
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 3 22:55:20 2013 -0400

    g_file_set_contents: change {posix_ => }fallocate

    Use fallocate() instead of posix_fallocate() so that we just fail
    instead of getting the emulated version from the libc.

    https://bugzilla.gnome.org/show_bug.cgi?id=701560

 configure.ac      | 2 +-
 glib/gfileutils.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit fc98c13fdec0e5ea7d8827be0eb1f1add31ad946
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 3 17:59:29 2013 -0400

    g_file_set_contents(): fix simple logic error

    CI FTW.

 glib/gfileutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e40435e834b4da4e791dd6c67ffc8bf285b777fd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 3 17:49:06 2013 -0400

    g_file_set_contents(): use unistd instead of stdio

    Use a normal write() system call instead of fdopen() and fwrite().

    This will definitely work on UNIX system and should work on Windows as
    well...

    As an added bonus, we can use g_close() now as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=701560

 glib/gfileutils.c | 52
 +++++++++++++++++++---------------------------------
 1 file changed, 19 insertions(+), 33 deletions(-)

commit c152ceba090840be100ae6eeb90b639b85420ec7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 3 16:16:25 2013 -0400

    g_file_set_contents(): don't allocate display name

    g_file_set_contents() sets a GError in the event of various failures
    that count occur.  It uses g_filename_display_name() in order to
    get the
    filename to include in the messages.

    Factor out the error handling to make it easier to allocate the
    display
    name only when we need it (instead of allocating it every time).

    https://bugzilla.gnome.org/show_bug.cgi?id=701560

 glib/gfileutils.c | 124
 ++++++++++++++++++++----------------------------------
 1 file changed, 46 insertions(+), 78 deletions(-)

commit d3be43fcc5165b7680c9073438ad60a3652c1703
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 3 15:43:01 2013 -0400

    g_file_set_contents(): use posix_fallocate()

    Extents-based filesystems like knowing in advance how much data
    will be
    written to a file in order to prevent fragmentation.  If we have
    it, use
    posix_fallocate() before writing data in g_file_set_contents().

    https://bugzilla.gnome.org/show_bug.cgi?id=701560

 configure.ac      | 2 +-
 glib/gfileutils.c | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

commit b9350597384502e51e800d9bcfea32d719b7b41b
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon Jun 3 21:37:49 2013 +0200

    Updated Slovenian translation

 po/sl.po | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 771c841b3d2ff10e36cfd103479ca57dc698be5e
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jun 3 11:27:44 2013 +0200

    Updated Spanish translation

 po/es.po | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

commit ebea942d955c383ab179db1473d58cee6b2dee54
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Mon Jun 3 13:48:33 2013 +0530

    Updated Odia Translation.

 po/or.po | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 72af6b0d5baa291210d603c366d232185ceae91f
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Mon Jun 3 13:30:48 2013 +0530

    Updated Gujarati Translations

 po/gu.po | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

commit 9acc480d72e9140ec1fa34d780c6d924c7a71aec
Author: Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Date:   Sun Jun 2 20:21:33 2013 +0200

    Remove extra comma in gtestutils.h

    https://bugzilla.gnome.org/show_bug.cgi?id=701474

 glib/gtestutils.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d0301080ee78c2f67ce04486da2ee3e7e123eece
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 20:00:21 2013 -0400

    Improve GSettings test coverage

 gio/tests/gsettings.c | 100
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 100 insertions(+)

commit b9406904a5d8a50a0608864160029e7bb07d04e2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 19:59:48 2013 -0400

    Add a directory monitoring test

 gio/tests/Makefile.am |   1 +
 gio/tests/monitor.c   | 184
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 185 insertions(+)

commit e546eb016a15646be75b73c1eacf6c2b6d5f120b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 14:37:19 2013 -0400

    Remove some unused inotify code

 gio/inotify/inotify-kernel.c  | 142
 ++++++------------------------------------
 gio/inotify/inotify-missing.c |  15 -----
 2 files changed, 20 insertions(+), 137 deletions(-)

commit a62079e2e3270f6196a0744c532e72d38ab311b1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 2 09:53:06 2013 -0400

    tests: Remove a leftover debug printf

    https://bugzilla.gnome.org/show_bug.cgi?id=701456

 gio/tests/file.c | 1 -
 1 file changed, 1 deletion(-)

commit fc35c3487eb926417261035cfc834b0b716530e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:47:19 2013 -0400

    Improve unix stream test coverage

 gio/tests/unix-streams.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 8f655149e9d0bb48fc7ebb2c29bba13924f13056
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:46:21 2013 -0400

    Improve GAppInfo test coverage

 gio/tests/mimeapps.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 0326f146fd3bbff74e7ca1e77bef814601c1a981
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:44:49 2013 -0400

    Improve GMemoryInputStream test coverage

 gio/tests/memory-input-stream.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit dcf5dea9225efd3ef60a23a5a0fcbbb1e95cc794
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:44:15 2013 -0400

    Improve GMenuModel test coverage

 gio/tests/gmenumodel.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit c40e0b59da5dba6af74f7778e77b01e7f7f48e15
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:43:13 2013 -0400

    Improve GFileAttributeMatcher test coverage

 gio/tests/g-file-info.c | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

commit 0753ae1235a3765339b4637db0ca0c89a66fb0e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:42:28 2013 -0400

    Improve GIcon test coverage

 gio/tests/g-icon.c | 118
 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 107 insertions(+), 11 deletions(-)

commit 49d39633d15427436a18e160f06aab12dce6f378
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:41:50 2013 -0400

    Improve test coverage for GZipCompressor

 gio/tests/converter-stream.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 2f3f270fccaf92ae423864b5d35e61572137fda3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:41:09 2013 -0400

    Improve test coverage for GBufferedOutputStream

 gio/tests/buffered-output-stream.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 6a487eae569198c88ef799b637891a4ed53effae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 2 01:40:39 2013 -0400

    Trivial formatting fix

 gio/gbytesicon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7977bb15de1f19e4f11484779c581a6c08ebdd03
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 1 18:54:57 2013 -0400

    Skip spawn tests when collecting coverage

    These tests break gcov's data collection, so don't link them
    against -lgov. See bug 682133.

 glib/tests/Makefile.am | 5 +++++
 1 file changed, 5 insertions(+)

commit fed8ae38c3b43c8da693c624bb552c50d269af84
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 1 00:36:16 2013 -0400

    Improve test coverage a bit

 gio/tests/file.c                 | 20 ++++++++++++++++++++
 gio/tests/memory-output-stream.c | 10 ++++++++++
 2 files changed, 30 insertions(+)

commit c0f96bb27636de407a29c8ee30bb44a03c74a0fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 1 00:35:39 2013 -0400

    mem-overflow: test malloc and realloc corner cases

 glib/tests/mem-overflow.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 81be95fffbb8aed746fe6ceaa820fde10773e026
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Jun 2 00:25:33 2013 +0200

    Updated Galician translations

 po/gl.po | 401
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 204 insertions(+), 197 deletions(-)

commit 79972d22ac7085c252b6714d7dffd10fb470db6b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 1 11:38:10 2013 -0400

    Fix failure to build exit-on-close gdbus test

    In the case that HAVE_DBUS_DAEMON was undefined (as in ostree
    where glib
    is built before D-Bus) this test was failing.  Move it inside the
    HAVE_DBUS_DAEMON block.

 gio/tests/Makefile.am | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 16ec6295806131103e1ba08f8b23f5b9bbe05adb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 1 10:07:33 2013 -0400

    glib.mk: Rework win32 test support

    Newer versions of automake (~1.13.1) seem to generate some new
    rules for
    testcases that get tripped up on our use of $(addsuffix) and
    $(strip) so
    take those out of the definition of TESTS on win32.

 glib.mk | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 601a00fa2ac31da0595cfe572b04edcdded3ae86
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 1 09:55:13 2013 -0400

    Change a pair of TESTS = to TEST +=

 tests/gobject/Makefile.am  | 2 +-
 tests/refcount/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit e042db0f83d73801a206cbaed1a49783355e0dd5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri May 31 22:33:22 2013 -0400

    GSettings tests: reverse installed test complexity

    Remove the complications that were introduced in an attempt to
    make the
    gsettings and gschema-compile tests function as installed tests.
    These
    tests are designed (in large part for gsettings and entirely for
    gschema-compile) to test the in-tree tools and should not be
    testing the
    system versions.

    In the future we may want to move the use of the in-tree tools
    from the
    gsettings testcase into the Makefile and install the resulting files,
    allowing this testcase to run against those files, installed.

 gio/tests/gschema-compile.c |  9 +--------
 gio/tests/gsettings.c       | 46
 ++++++++++++++++-----------------------------
 2 files changed, 17 insertions(+), 38 deletions(-)

commit f9eb9eed10b7123ef000e49be1290755b2d6ae8f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 30 00:07:32 2013 -0400

    Rework the build system for a new tests approach

    Perform a substantial cleanup of the build system with respect to
    building and installing testcases.

    First, Makefile.decl has been renamed glib.mk and substantially
    expanded.  We intend to add more stuff here in the future, like canned
    rules for mkenums, marshallers, resources, etc.

    By default, tests are no longer compiled as part of 'make'.  They will
    be built when 'make check' is run.  The old behaviour can be obtained
    with --enable-always-build-tests.

    --disable-modular-tests is gone (because tests are no longer built by
    default).  There is no longer any way to cause 'make check' to be a
    no-op, but that's not very useful anyway.

    A new glibtests.m4 file is introduced.  Along with glib.mk, this
    provides for consistent handling of --enable-installed-tests and
    --enable-always-build-tests (mentioned above).

    Port our various test-installing Makefiles to the new framework.

    This patch substantially improves the situation in the toplevel tests/
    directory.  Things are now somewhat under control there.  There were
    some tests being built that weren't even being run and we run
    those now.
    The long-running GObject performance tests in this directory have been
    removed from 'make check' because they take too long.

    As an experiment, 'make check' now runs the testcases on win32 builds,
    by default.  We can't run them under gtester (since it uses a pipe to
    communicate with the subprocess) so just toss them in TESTS.  Most of
    them are passing on win32.

    Things are not quite done here, but this patch is already a
    substantial
    improvement.  More to come.

 Makefile.am                                        |  17 +-
 Makefile.decl                                      |  97 ---
 configure.ac                                       |  28 +-
 gio/Makefile.am                                    |  20 +-
 gio/fam/Makefile.am                                |   4 +-
 gio/fen/Makefile.am                                |   6 +-
 gio/gdbus-2.0/codegen/Makefile.am                  |   4 +-
 gio/glib-compile-schemas.c                         |   4 +-
 gio/inotify/Makefile.am                            |   6 +-
 gio/kqueue/Makefile.am                             |   6 +-
 gio/tests/Makefile.am                              | 726
 +++++++++------------
 gio/tests/appinfo.c                                |   6 +
 gio/tests/file.c                                   |   2 +-
 gio/tests/gdbus-example-objectmanager-client.c     |   2 +-
 gio/tests/gdbus-example-objectmanager-server.c     |   2 +-
 gio/tests/gdbus-object-manager-example/Makefile.am |  37 +-
 gio/tests/gdbus-peer.c                             |   2 +-
 gio/tests/gdbus-test-fixture.c                     |   2 +-
 gio/tests/gschema-compile.c                        |   6 +-
 gio/tests/gsettings.c                              |  61 +-
 gio/win32/Makefile.am                              |   6 +-
 gio/xdgmime/Makefile.am                            |   4 +-
 glib.mk                                            | 223 +++++++
 glib/Makefile.am                                   |  15 +-
 glib/gnulib/Makefile.am                            |   4 +-
 glib/libcharset/Makefile.am                        |   6 +-
 glib/pcre/Makefile.am                              |   4 +-
 glib/tests/Makefile.am                             | 194 +++---
 glib/update-pcre/Makefile.am                       |   2 +-
 gmodule/Makefile.am                                |   8 +-
 gobject/Makefile.am                                |  14 +-
 gobject/tests/Makefile.am                          |  86 +--
 gthread/Makefile.am                                |   6 +-
 m4macros/Makefile.am                               |   2 +-
 m4macros/glibtests.m4                              |  28 +
 tests/Makefile.am                                  | 296 ++++-----
 tests/gobject/Makefile.am                          | 124 ++--
 tests/refcount/Makefile.am                         |  33 +-
 38 files changed, 974 insertions(+), 1119 deletions(-)

commit 210b1f8b4230b881d1c2e4a9e7dac571c967e091
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 30 00:04:05 2013 -0400

    Remove a bunch of lingering g_thread_init()

    After this patch, there is but one remaining use of g_thread_init(),
    which is in tests/slice-threadinit.c, a testcase dedicated to testing
    the functionality of gslice across a g_thread_init() boundary.

    This testcase is pretty meaningless these days... probably we should
    delete it.

 tests/asyncqueue-test.c              | 2 --
 tests/child-test.c                   | 3 ---
 tests/gobject/performance-threaded.c | 3 ---
 tests/mainloop-test.c                | 4 +---
 tests/onceinit.c                     | 2 --
 tests/slice-test.c                   | 2 --
 tests/thread-test.c                  | 1 -
 tests/threadpool-test.c              | 2 --
 8 files changed, 1 insertion(+), 18 deletions(-)

commit e66abbe2ef574b1ff5c36588bbac7267f04e5abe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 29 23:49:30 2013 -0400

    Some final g_test_build_filename() porting

    This should be the last users that need to be ported.

    For some of the oldschool non-gtester-ified tests, we call
    g_test_init()
    from main() because it is necessary in order to use
    g_test_build_filename().

 gio/tests/appinfo-test.c        |  2 +-
 gio/tests/desktop-app-info.c    |  2 +-
 glib/tests/keyfile.c            |  2 +-
 glib/tests/spawn-singlethread.c |  2 +-
 tests/iochannel-test.c          | 11 +++--------
 tests/module-test.c             | 17 ++++++-----------
 tests/unicode-caseconv.c        | 10 +++-------
 tests/unicode-encoding.c        | 12 ++++--------
 8 files changed, 20 insertions(+), 38 deletions(-)

commit d7b3e558cfc91b1eaee80b156ad358774ded1c34
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 29 23:43:26 2013 -0400

    Move a pair of gobject tests to tests/gobject/

    testgobject.c and timeloop-closure.c are the only two tests in the
    toplevel tests/ directory that depend on gobject, so move them to
    tests/gobject/ along with the other gobject tests.

    Both of these were in noinst_PROGRAMS and not TESTS, so keep them that
    way when we move them.

 tests/Makefile.am                      | 7 ++-----
 tests/gobject/Makefile.am              | 6 +++++-
 tests/{ => gobject}/testgobject.c      | 0
 tests/{ => gobject}/timeloop-closure.c | 0
 4 files changed, 7 insertions(+), 6 deletions(-)

commit a114e98d09248f843c87b99c15534db4cf6367aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 31 21:24:21 2013 -0400

    Split off the gdbus-overflow test

    It is unrealiable under load, and frequently fails in the
    ostree tests. See https://bugzilla.gnome.org/show_bug.cgi?id=701105

 gio/tests/Makefile.am      |   3 +-
 gio/tests/gdbus-overflow.c | 252
 +++++++++++++++++++++++++++++++++++++++++++++
 gio/tests/gdbus-peer.c     | 126 +----------------------
 3 files changed, 255 insertions(+), 126 deletions(-)

commit eb16c5a4fea60e7969640972c8bc70dcc8673857
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 31 17:23:29 2013 -0400

    Fix a typo

 glib/gtestutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9cfac6e76c19b40a9b07b92d34afb06b13b1876e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 30 13:50:17 2013 -0400

    Bump version.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a681e11f928e79d40d4d1e994dd5b65378f911a7
Author: William Jon McCann <jmccann@redhat.com>
Date:   Wed Jan 30 00:46:43 2013 +0100

    Fix property example in gobject tutorial

    https://bugzilla.gnome.org/show_bug.cgi?id=692848

 docs/reference/gobject/tut_howto.xml | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit ccc039c70578b3fdf146d8e4d97588debf3d7c89
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 29 23:30:46 2013 -0400

    Remove org.gtk.test.gschema

    This is the old non-xml schema file format that we were playing around
    with at one time.  Nothing is using this file anymore.

 gio/tests/Makefile.am          |  1 -
 gio/tests/org.gtk.test.gschema | 39
 ---------------------------------------
 2 files changed, 40 deletions(-)

commit c235087ba44cd090623510d50371f4444538a49c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 29 21:49:53 2013 -0400

    icon deserialisation: fix uninitialised variable

    Deserialising an emblemed icon would make uninitialised use of a
    variable in the error case.  Fix that.

 gio/gicon.c | 2 ++
 1 file changed, 2 insertions(+)

commit c7e965f4ee26b95b10b80756f24589019f9d3857
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 29 21:33:04 2013 -0400

    docs/: ignore gtester Makefile targets

    Mark 'test', 'test-report', 'perf-report' and 'full-report' as
    PHONY in
    docs/Makefile.am to prevent recursion of gtester into the
    documentation
    subdirectories.  Stop including Makefile.decl from these directories
    since it is no longer necessary.

    This will clear up the warnings about EXTRA_DIST being defined once in
    gtk-doc.make and again in Makefile.decl.

 docs/Makefile.am                                            | 5 +++--
 docs/reference/Makefile.am                                  | 2 --
 docs/reference/gio/Makefile.am                              | 1 -
 docs/reference/gio/gdbus-object-manager-example/Makefile.am | 1 -
 docs/reference/glib/Makefile.am                             | 1 -
 docs/reference/gobject/Makefile.am                          | 1 -
 6 files changed, 3 insertions(+), 8 deletions(-)

commit a8a9afe17c0ee484b65c6f75e0d22ad1ae2cd9b6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 22 17:37:18 2013 -0400

    GObject: prevent installing properties after init

    GObject has previously allowed installing properties after class_init
    has finished running.  This means that you could install some of your
    own properties on G_TYPE_OBJECT, for example, although they wouldn't
    have worked properly.

    A previous patch asserted that this was not true and we had to
    revert it
    because it broke the shell.  Instead of reverting, we should have
    used a
    critical, so do that now.

    Complaints go to this bug:

    https://bugzilla.gnome.org/show_bug.cgi?id=698614

 gobject/gobject.c       |  9 +++++++--
 gobject/gtype-private.h |  1 +
 gobject/gtype.c         | 10 ++++++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

commit 8df1bb3486417bc67a5b38fb8fa81f333b18da22
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 29 08:49:16 2013 -0400

    Rename G_TEST_DISTED to G_TEST_DIST

    Since this feature is so utterly automake-centric, we may as well be
    using the same terminology as automake itself (ie: although it's
    BUILT_SOURCES, it's DIST_EXTRA, not DISTED).

    Also add some comments to the enum explaining that these terms are
    really corresponding directly to the automake terms.

    https://bugzilla.gnome.org/show_bug.cgi?id=549783

 gio/tests/appinfo.c         | 22 +++++++++++-----------
 gio/tests/contexts.c        |  2 +-
 gio/tests/file.c            |  2 +-
 gio/tests/g-icon.c          |  2 +-
 gio/tests/gdbus-peer.c      |  2 +-
 gio/tests/gschema-compile.c |  2 +-
 gio/tests/gsettings.c       |  8 ++++----
 gio/tests/tls-certificate.c | 44
 ++++++++++++++++++++++----------------------
 glib/gtestutils.c           | 30 ++++++++++++++++++++++--------
 glib/gtestutils.h           |  2 +-
 glib/tests/bookmarkfile.c   |  4 ++--
 glib/tests/keyfile.c        |  6 +++---
 glib/tests/mappedfile.c     | 10 +++++-----
 glib/tests/markup-parse.c   |  4 ++--
 14 files changed, 77 insertions(+), 63 deletions(-)

commit da478acd3c948536cd117e4347fcc554d93a7dc8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 28 17:48:06 2013 -0400

    Remove G_TEST_DATA= from installed .test files

    This is no longer needed with the new test data file finding stuff.

    https://bugzilla.gnome.org/show_bug.cgi?id=549783

 gio/tests/Makefile.am     | 2 +-
 glib/tests/Makefile.am    | 2 +-
 gobject/tests/Makefile.am | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit ddd7e941f4e7199832b508d7f892680ca31937de
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 28 18:03:17 2013 -0400

    Test data file API: port two more testcases

    These ones were slightly non-trivial so they didn't get included
    in the
    previous patches.  Port them now.

    https://bugzilla.gnome.org/show_bug.cgi?id=549783

 gio/tests/appinfo.c   | 75
 ++++++++++++++++++---------------------------------
 gio/tests/gsettings.c | 15 ++++-------
 2 files changed, 31 insertions(+), 59 deletions(-)

commit 17ded322c5cb2cdb230233a9a020e1acdab9c0ab
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 28 14:24:47 2013 -0400

    tests: move tests to new _get_filename() API

    This API was introduced to save a few lines of code here and there, so
    let's start by removing a bunch from our own tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=549783

 gio/tests/file.c                        |  5 +--
 gio/tests/g-icon.c                      |  7 +---
 gio/tests/gdbus-connection-slow.c       | 12 ++----
 gio/tests/gdbus-connection.c            |  5 +--
 gio/tests/gdbus-introspection.c         |  5 +--
 gio/tests/gdbus-peer.c                  |  3 +-
 gio/tests/gdbus-proxy-well-known-name.c |  9 +----
 gio/tests/gdbus-proxy.c                 | 11 +----
 gio/tests/resources.c                   | 35 +++++-----------
 gio/tests/tls-certificate.c             | 72
 ++++++++++++---------------------
 glib/tests/keyfile.c                    | 12 ++----
 glib/tests/mappedfile.c                 | 25 +++---------
 12 files changed, 56 insertions(+), 145 deletions(-)

commit 575a9da718e8c84da052f50f1435914a94197696
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 28 13:22:59 2013 -0400

    gtest: Add more path building API

    Add a pair of functions for returning strings that don't need to be
    freed.  This is a bit of a hack but it will turn the 99% case of using
    these functions from:

      gchar *tmp;
      tmp = g_test_build_filename (...);
      fd = open (tmp, ...);
      g_free (tmp);

    to:

      fd = open (g_test_get_filename (...), ...);

    which is a pretty substantial win.

    https://bugzilla.gnome.org/show_bug.cgi?id=549783

 docs/reference/glib/glib-sections.txt |   2 +
 glib/gtestutils.c                     | 125
 ++++++++++++++++++++++++++++++----
 glib/gtestutils.h                     |   6 ++
 3 files changed, 118 insertions(+), 15 deletions(-)

commit 58c6ca32aac6e0735d7325ce0b876025c722bae3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 28 12:48:37 2013 -0400

    tests: use new g_test_build_filename() API

    Port most of the tests to the new g_test_build_filename() API.

    https://bugzilla.gnome.org/show_bug.cgi?id=549783

 gio/tests/contexts.c                    |  8 +-----
 gio/tests/file.c                        | 10 +++----
 gio/tests/g-icon.c                      |  9 +------
 gio/tests/gapplication.c                | 23 +++++-----------
 gio/tests/gdbus-connection-loss.c       |  9 +------
 gio/tests/gdbus-connection-slow.c       | 11 ++------
 gio/tests/gdbus-connection.c            | 13 +--------
 gio/tests/gdbus-introspection.c         |  9 +------
 gio/tests/gdbus-peer.c                  |  9 +------
 gio/tests/gdbus-proxy-well-known-name.c | 11 ++------
 gio/tests/gdbus-proxy.c                 | 11 ++------
 gio/tests/gdbus-threading.c             |  9 +------
 gio/tests/gschema-compile.c             |  8 +-----
 gio/tests/resources.c                   | 25 +++++-------------
 gio/tests/tls-certificate.c             | 47
 ++++++++++++++-------------------
 glib/tests/bookmarkfile.c               |  9 ++-----
 glib/tests/keyfile.c                    | 14 +++-------
 glib/tests/mappedfile.c                 | 17 ++++--------
 glib/tests/markup-parse.c               | 10 ++-----
 19 files changed, 62 insertions(+), 200 deletions(-)

commit 0c4806733cb30f56325b0f1c4e95a400e4998c14
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 28 12:44:41 2013 -0400

    Add g_test_build_filename()

    This function allows testcases to find data files in various
    situations
    of srcdir == builddir, srcdir != builddir and for installed tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=549783

 Makefile.decl                         |  6 +--
 docs/reference/glib/glib-sections.txt |  3 ++
 glib/gtestutils.c                     | 98
 +++++++++++++++++++++++++++++++++++
 glib/gtestutils.h                     | 11 ++++
 4 files changed, 115 insertions(+), 3 deletions(-)

commit 2afd39a90dbde31159a78b780bacdd636badb34e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 28 22:23:58 2013 -0400

    Trivial doc typo fix

 gobject/gtype.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 2349635ebe1a757107d864bac603d7f2189b7418
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 29 00:07:26 2013 -0400

    Trivial documentation typos

 gobject/gobject.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b5463f4cf44eb74e667491ddd96476f51b9a8ed6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 29 00:14:55 2013 -0400

    Work with ltp 1.10

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit db1c83a5163dab40673b1c5cdf23fdff771ebaf3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 29 08:34:24 2013 -0400

    Improve gtype test coverage

 tests/refcount/objects.c     | 3 +++
 tests/refcount/properties.c  | 2 ++
 tests/refcount/properties2.c | 2 ++
 tests/refcount/properties4.c | 4 ++++
 4 files changed, 11 insertions(+)

commit 07168724d74cb656938df7abaa42dacff94c62cf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 29 08:33:55 2013 -0400

    Improve signal test coverage

 gobject/tests/signals.c | 206
 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 205 insertions(+), 1 deletion(-)

commit a9abbb31924f8ae9f51c1064f88efedde7c34117
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 29 00:15:55 2013 -0400

    Improve test coverage in gobject/

    Lines:          6631    8862    74.8 %
    Functions:      747     893     83.7 %

 gobject/tests/Makefile.am |   5 +-
 gobject/tests/boxed.c     | 116 +++++++++++++++++++++++++++++++++++
 gobject/tests/qdata.c     |  28 +++++++++
 gobject/tests/type.c      | 152
 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 300 insertions(+), 1 deletion(-)

commit 3382ac99be3141e084fea888c428f5d5bf725ab7
Author: Emanuele Aina <emanuele.aina@collabora.com>
Date:   Mon May 20 15:53:40 2013 +0100

    GIcon: NULLify the `type' out param in the sync methods too

    Both g_[file|bytes]_icon_load() leave the `type' out parameter
    untouched, while the async methods g_[file|bytes]_icon_load_finish()
    always set it to NULL.

    For consistency's sake NULLify it in the sync methods too.

    https://bugzilla.gnome.org/show_bug.cgi?id=700725

 gio/gbytesicon.c | 3 +++
 gio/gfileicon.c  | 3 +++
 2 files changed, 6 insertions(+)

commit 7a861ab4c9b4a8e379b1c5b7ec0385c5ef0c5d3d
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue May 28 22:26:50 2013 +0200

    Updated Slovenian translation

 po/sl.po | 113
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 59 insertions(+), 54 deletions(-)

commit 9d7429509cbb6adbe6be86a55183acceccfd7167
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Tue May 28 18:28:09 2013 +0530

    updated kn translations

 po/kn.po | 123
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 63 insertions(+), 60 deletions(-)

commit 26df5e0d949b0ada2e5c939359dfccca71735cb4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue May 28 12:55:56 2013 +0800

    Update Visual Studio Project Sheets

    "Install" the newly-introduced gio/gbytesicon.h...

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit 762842b9943145c3645f4ded065d6737fccf3692
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 27 17:34:21 2013 -0400

    GLib 2.37.1

 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

commit 4c9a7b65eb028f78ad4e68c177e4ee634124b694
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 27 22:05:19 2013 -0400

    More test fixes for builddir != srcdir

 tests/Makefile.am        | 1 +
 tests/iochannel-test.c   | 2 +-
 tests/unicode-caseconv.c | 2 +-
 tests/unicode-encoding.c | 2 +-
 4 files changed, 4 insertions(+), 3 deletions(-)

commit 98a921045cf16cb927eae2fd13a5f025cfb76365
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 27 21:20:10 2013 -0400

    Fix make check with builddir != srcdir

    This broke when the tests were converted to be installable.
    My apologies.

 gio/tests/Makefile.am                   |  1 +
 gio/tests/appinfo.c                     | 16 ++++++++++------
 gio/tests/gapplication.c                | 11 ++++++++---
 gio/tests/gdbus-connection-loss.c       |  2 +-
 gio/tests/gdbus-connection-slow.c       |  2 +-
 gio/tests/gdbus-connection.c            |  2 +-
 gio/tests/gdbus-introspection.c         |  8 ++++----
 gio/tests/gdbus-proxy-well-known-name.c |  2 +-
 gio/tests/gdbus-proxy.c                 |  2 +-
 gio/tests/gdbus-threading.c             |  8 ++++----
 10 files changed, 32 insertions(+), 22 deletions(-)

commit 4ec32e6fa827a97c4d7fd8a8b00126d52a604319
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 27 19:30:31 2013 -0400

    gio/tests: Make gdbus-proxy-well-known-name handle srcdir != builddir

 gio/tests/gdbus-proxy-well-known-name.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 7336a1e745907104ec7fab9f2086c2fc93ef8b9d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 27 18:34:33 2013 -0400

    Fix yet more test regressions...

 gio/tests/gdbus-connection-slow.c | 10 +++++-----
 gio/tests/gdbus-proxy.c           | 10 +++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 42139d463721aff623041eb3e016aae263b01a8b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 27 18:30:53 2013 -0400

    One more broken test....

 gio/tests/gdbus-connection-loss.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 8f87d428a6c8c91aaa47daaaff2d843b6536a88c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 27 18:27:14 2013 -0400

    More srcdir != destdir tests fallout

 gio/tests/resources.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit aa3db2c91b254250a84b8c8e07eb3da96fbf74aa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 27 18:05:09 2013 -0400

    tests: fix a srcdir vs. destdir issue

    The target file is a script, so it'll always be in SRCDIR for the
    uninstalled
    case.  Just look there and avoid the libtool trickery.

 glib/tests/spawn-singlethread.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit ad2716bb1aa202bd6d25ab8bdafb09fd3bcc8c22
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Mon May 27 18:09:17 2013 +0530

    Updated Odia Translation.

 po/or.po | 127
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 65 insertions(+), 62 deletions(-)

commit 676a3d6ede64b6383d25706d514e7f4498474c96
Author: Shantha kumar <shkumar@redhat.com>
Date:   Mon May 27 15:31:22 2013 +0530

    Tamil Translation Updated

 po/ta.po | 127
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 65 insertions(+), 62 deletions(-)

commit 0d55c4aaf8c6671387dee287da7574ae25fb9983
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon May 27 15:57:54 2013 +0800

    Fix the GObject Visual Studio Projects

    Update G_LOG_DOMAIN to be "GLib-GObject" so that we are consistent
    with
    the autotools builds, and that tests expecting the log domain to be
    "GLib-GObject" would not fail.

 build/win32/vs10/gobject.vcxprojin | 8 ++++----
 build/win32/vs9/gobject.vcprojin   | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 524470d8e02c7da867cf61dff86de1105067bebb
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon May 27 13:23:58 2013 +0800

    Fix the GLib Visual Studio Projects

    Define the G_LOG_DOMAIN of the GLib DLL as "GLib", because:
    -This makes it consistent with the autotools builds
    -Some tests expect the log domain to be "GLib"

 build/win32/vs10/glib.vcxprojin | 16 ++++++++--------
 build/win32/vs9/glib.vcprojin   | 16 ++++++++--------
 2 files changed, 16 insertions(+), 16 deletions(-)

commit 80985d1c05e58f63252b1b108e8637808a2f3e4c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon May 27 12:49:47 2013 +0800

    Update config.h.win32(.in)

    Make the entries of config.h.win32(.in) consistent with the entries
    that are generated from the autotools build (config.h.in).

 config.h.win32.in | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

commit b382c6f63339397c338aa68ad939894665368ada
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 25 23:07:03 2013 -0400

    Avoid a segfault in gdbus tool

    When the interface name is invalid, we don't get an error
    back from g_dbus_connection_call_sync.

 gio/gdbus-tool.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 0b167b0ae964fcd999ccf8a9fdc41804df936a28
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 24 22:16:44 2013 +0100

    build: Fix usage of %.test again

    We actually need the first dependency because it includes the
    final executable name.  Rather, fix the original bug by using
    the variable $(EXEEXT).

 gio/tests/Makefile.am     | 2 +-
 glib/tests/Makefile.am    | 2 +-
 gobject/tests/Makefile.am | 2 +-
 tests/Makefile.am         | 2 +-
 tests/gobject/Makefile.am | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit 5088c705ac5ce118502d0c6ea74aca1cec26b575
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 24 15:42:12 2013 -0400

    tests: Drop unnecessary % from .test pattern match rule

    On Windows, the executables will have .exe, so this won't
    match.  Furthermore, they aren't actually dependent on the
    executable to build.

 gio/tests/Makefile.am     | 2 +-
 glib/tests/Makefile.am    | 2 +-
 gobject/tests/Makefile.am | 2 +-
 tests/Makefile.am         | 2 +-
 tests/gobject/Makefile.am | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit b85e8e5bfb3f0cb86411cc5d8b038c5af1404f1c
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri May 24 13:57:47 2013 +0200

    Updated Spanish translation

 po/es.po | 286
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 145 insertions(+), 141 deletions(-)

commit a2a6122bb62f3536f59156170f334df4f8741842
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Fri May 24 17:28:12 2013 +0530

    Assamese translation updated

 po/as.po | 290
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 147 insertions(+), 143 deletions(-)

commit fc6f6a4330e72bd4155ca0b491136ff61b477294
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Fri May 24 13:21:27 2013 +0530

    Updated Gujarati Translations

 po/gu.po | 290
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 147 insertions(+), 143 deletions(-)

commit ec61deb79116c8b2364ef070f98ac9a222249f0c
Author: Simon Kågedal Reimer <skagedal@gmail.com>
Date:   Mon May 6 22:04:32 2013 +0200

    G_GNUC_FORMAT: documentation error

    Attribute should be placed just before the semicolon, not after.
    As can be seen in the example.

    https://bugzilla.gnome.org/show_bug.cgi?id=699779

 glib/docs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 47d96381a2f52587f8706ffa115b2379d6ca731e
Author: Jason L. Quinn <jason.lee.quinn@gmail.com>
Date:   Thu Apr 11 23:43:17 2013 -0400

    spelling fixes of 'runtine' and 'adresses' in cross.xml and
    running.xml, respectively

    https://bugzilla.gnome.org/show_bug.cgi?id=697849

 docs/reference/glib/cross.xml   | 2 +-
 docs/reference/glib/running.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 3d1d49177bc577e4c0d4ec2d73b96db09e4d5be3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 21 17:48:04 2013 +0000

    gsignal: remove some pointless locking

    We previously hold a lock in the loop that collects the arguments for
    g_signal_emit(), which we drop before calling into the argument
    collection functions and reacquire again at the bottom of the loop
    (ie:
    one release/acquire pair for each argument collected).  To make
    matters
    worse, the lock is just released again after the loop.

    Presumably that was done to protect the access to the parameter array,
    but it's pretty unlikely that this is needed because the only way it
    changes is if the signal is unloaded.  That only happens when
    unloading
    types which is quite unlikely to happen while we are emitting on an
    instance of that type (and, as an aside, never happens anymore
    anyway).

    If we move the unlock below the loop up above it and remove the
    acquire/release pair from the loop, we improve performance in the new
    arg-collecting performance tests by ~15% (more like ~18% in the case
    where we only emit to one handler -- where argument collection
    dominates
    more).

    https://bugzilla.gnome.org/show_bug.cgi?id=694380

 gobject/gsignal.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 8bb6a4aec5dbc7535244a0fa2b96b728eebe75cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 21 17:47:08 2013 +0000

    performance test: add signal test with args

    Add a signal that has some typical arguments (a uint and a pointer)
    since all of the other signal performance tests are for signals
    with no
    args.

    https://bugzilla.gnome.org/show_bug.cgi?id=694380

 tests/gobject/performance.c | 45
 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

commit 4b72bbf9b18a698555bb2aa914b9ab5fd0a4e5f3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 21 17:44:56 2013 +0000

    performance test: share some code

    The handled and unhandled cases share the same data and _run()
    functions.  Refactor into a common section.

    https://bugzilla.gnome.org/show_bug.cgi?id=694380

 tests/gobject/performance.c | 62
 ++++++++++++++++++---------------------------
 1 file changed, 25 insertions(+), 37 deletions(-)

commit 7427e2295812b7512478d76a4424b32ec977523a
Author: Elisabeth Henry <liz.henry@ouvaton.org>
Date:   Mon Apr 1 04:11:01 2013 +0200

    gunixconnection: added ngettext to support plural forms

    While those strings ("Expecting 1 control message, got %d" and
    "Expecting one fd, but got %d\n") have same singular/plural form
    in english, it is not necessarily the case in other languages.

    https://bugzilla.gnome.org/show_bug.cgi?id=695233

 gio/gunixconnection.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit 7fc2ab9493dbb480e2b6815813af9cf8bbfc081e
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 9 18:47:50 2013 +0100

    GLocalFileOutputStream: Further deduplicate error code path

    Just code cleanup.

    https://bugzilla.gnome.org/699959

 gio/glocalfileoutputstream.c | 56
 +++++++++++++++++++-------------------------
 1 file changed, 24 insertions(+), 32 deletions(-)

commit 5e65cd4e5153b340a25a8ffb580cf5f23f54d649
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 9 18:39:50 2013 +0100

    GLocalFileOutputStream: Deduplicate stream creation code

    Lots of copy/paste of the error handling path, let's deduplicate
    so I can sanely patch this code later.

    https://bugzilla.gnome.org/699959

 gio/glocalfileoutputstream.c | 103
 +++++++++++++------------------------------
 1 file changed, 31 insertions(+), 72 deletions(-)

commit 49030c8797d5a415e2cb94a3c658f67206cb8bf5
Author: Colin Walters <walters@verbum.org>
Date:   Wed May 22 17:41:32 2013 +0100

    gdbus-peer: Drop some usage of g_thread_yield()

    It's a recipe for race conditions and error; on some hardware
    architectures one thread isn't guaranteed to see the results
    of writes from another thread without a cache flush.

    https://bugzilla.gnome.org/show_bug.cgi?id=700855

 gio/tests/gdbus-peer.c | 66
 ++++++++++++++++++++++++++++++++------------------
 1 file changed, 43 insertions(+), 23 deletions(-)

commit ff8f37ac05490c67fc3be5e87ff5756f1a275da3
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 23 01:07:13 2013 +0100

    glib/tests/cond: Fix race condition

    The producer could push two values with the first one being
    lost.  Fix this by blocking the producer until a consumer
    reads.

 glib/tests/cond.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 9115dd0a7ce31f69f78aca0b0b32d7d2e4670be3
Author: Dan Winship <danw@gnome.org>
Date:   Wed May 22 14:20:08 2013 -0300

    gtestutils: Use stdio rather than write() to be Windows-friendly

    Windows doesn't define STDOUT_FILENO and STDERR_FILENO, and they're
    not even guaranteed to be 1 and 2. So just use stdio instead. Also fix
    a counting error. Pointed out on gtk-devel-list.

 glib/gtestutils.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

commit c9cc0beb3a8c298b843efdb71822a71cc078a8ac
Author: Josep Puigdemont <josep.puigdemont@enea.com>
Date:   Tue May 21 16:46:25 2013 +0200

    Timeout the test if dbus sevice has not appeared in due time.

    The test /gdbus/connection/large_message waits for a dbus name
    to appear.
    The dbus name is created by a another process executed in the
    background.
    If for some reason this fails, the test will likely wait forever.
    This will avoid this situation by making the test fail if the
    dbus service
    has not appeared after 10 seconds.

    https://bugzilla.gnome.org/show_bug.cgi?id=698981

 gio/tests/gdbus-connection-slow.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

commit 4edc2f1a9330006a5d615bc16264b5328da6fe66
Author: Dan Winship <danw@gnome.org>
Date:   Tue May 21 09:52:32 2013 -0300

    po: update for quote changes

    https://bugzilla.gnome.org/show_bug.cgi?id=700746

 po/af.po          | 146 +++++++++++++-------------
 po/am.po          | 146 +++++++++++++-------------
 po/an.po          | 142 ++++++++++++-------------
 po/ar.po          | 146 +++++++++++++-------------
 po/as.po          | 158 ++++++++++++++--------------
 po/ast.po         | 146 +++++++++++++-------------
 po/az.po          | 173 +++++++++++++++---------------
 po/be.po          | 142 ++++++++++++-------------
 po/be@latin.po    | 146 +++++++++++++-------------
 po/bg.po          | 142 ++++++++++++-------------
 po/bn.po          | 146 +++++++++++++-------------
 po/bn_IN.po       | 146 +++++++++++++-------------
 po/bs.po          | 151 +++++++++++++-------------
 po/ca.po          | 153 +++++++++++++--------------
 po/ca@valencia.po | 153 +++++++++++++--------------
 po/cs.po          | 148 +++++++++++++-------------
 po/cy.po          | 149 +++++++++++++-------------
 po/da.po          | 153 +++++++++++++--------------
 po/de.po          | 148 +++++++++++++-------------
 po/dz.po          | 149 +++++++++++++-------------
 po/el.po          | 308
 ++++++++++++++++++++++++++---------------------------
 po/en@shaw.po     | 146 +++++++++++++-------------
 po/en_CA.po       | 288
 +++++++++++++++++++++++++-------------------------
 po/en_GB.po       | 303
 ++++++++++++++++++++++++++--------------------------
 po/eo.po          | 298
 ++++++++++++++++++++++++++--------------------------
 po/es.po          | 158 ++++++++++++++--------------
 po/et.po          | 156 +++++++++++++--------------
 po/eu.po          | 152 +++++++++++++--------------
 po/fa.po          | 143 +++++++++++++------------
 po/fi.po          | 140 ++++++++++++-------------
 po/fr.po          | 142 ++++++++++++-------------
 po/ga.po          | 146 +++++++++++++-------------
 po/gl.po          | 156 +++++++++++++--------------
 po/gu.po          | 278 ++++++++++++++++++++++++------------------------
 po/he.po          | 293
 +++++++++++++++++++++++++--------------------------
 po/hi.po          | 266 +++++++++++++++++++++++-----------------------
 po/hr.po          | 146 +++++++++++++-------------
 po/hu.po          | 142 ++++++++++++-------------
 po/hy.po          | 290
 +++++++++++++++++++++++++-------------------------
 po/id.po          | 148 +++++++++++++-------------
 po/is.po          | 151 +++++++++++++-------------
 po/it.po          | 142 ++++++++++++-------------
 po/ja.po          | 156 +++++++++++++--------------
 po/ka.po          | 146 +++++++++++++-------------
 po/kk.po          | 148 +++++++++++++-------------
 po/kn.po          | 252 ++++++++++++++++++++++----------------------
 po/ko.po          | 280 ++++++++++++++++++++++++-------------------------
 po/ku.po          | 146 +++++++++++++-------------
 po/lt.po          | 144 ++++++++++++-------------
 po/lv.po          | 155 ++++++++++++++-------------
 po/mai.po         | 146 +++++++++++++-------------
 po/mg.po          | 146 +++++++++++++-------------
 po/mk.po          | 146 +++++++++++++-------------
 po/ml.po          | 172 +++++++++++++++---------------
 po/mn.po          | 149 +++++++++++++-------------
 po/mr.po          | 290
 +++++++++++++++++++++++++-------------------------
 po/ms.po          | 151 +++++++++++++-------------
 po/nb.po          | 142 ++++++++++++-------------
 po/nds.po         | 146 +++++++++++++-------------
 po/ne.po          | 148 +++++++++++++-------------
 po/nl.po          | 150 +++++++++++++-------------
 po/nn.po          | 140 ++++++++++++-------------
 po/oc.po          | 146 +++++++++++++-------------
 po/or.po          | 264 +++++++++++++++++++++++-----------------------
 po/pa.po          | 284 ++++++++++++++++++++++++-------------------------
 po/pl.po          | 142 ++++++++++++-------------
 po/ps.po          | 146 +++++++++++++-------------
 po/pt.po          | 309
 +++++++++++++++++++++++++++---------------------------
 po/pt_BR.po       | 150 +++++++++++++-------------
 po/ro.po          | 152 +++++++++++++--------------
 po/ru.po          | 146 +++++++++++++-------------
 po/rw.po          | 150 +++++++++++++-------------
 po/si.po          | 146 +++++++++++++-------------
 po/sk.po          | 142 ++++++++++++-------------
 po/sl.po          | 288
 +++++++++++++++++++++++++-------------------------
 po/sq.po          | 146 +++++++++++++-------------
 po/sr.po          | 142 ++++++++++++-------------
 po/sr@ije.po      | 149 +++++++++++++-------------
 po/sr@latin.po    | 142 ++++++++++++-------------
 po/sv.po          | 150 +++++++++++++-------------
 po/ta.po          | 282 ++++++++++++++++++++++++-------------------------
 po/te.po          | 286
 +++++++++++++++++++++++++-------------------------
 po/tg.po          | 144 ++++++++++++-------------
 po/th.po          | 281 ++++++++++++++++++++++++-------------------------
 po/tl.po          | 149 +++++++++++++-------------
 po/tr.po          | 288
 +++++++++++++++++++++++++-------------------------
 po/tt.po          | 146 +++++++++++++-------------
 po/ug.po          | 270 +++++++++++++++++++++++------------------------
 po/uk.po          | 146 +++++++++++++-------------
 po/vi.po          | 280 ++++++++++++++++++++++++-------------------------
 po/wa.po          | 149 +++++++++++++-------------
 po/xh.po          | 152 +++++++++++++--------------
 po/yi.po          | 149 +++++++++++++-------------
 po/zh_CN.po       | 148 +++++++++++++-------------
 po/zh_HK.po       | 152 +++++++++++++--------------
 po/zh_TW.po       | 152 +++++++++++++--------------
 96 files changed, 8511 insertions(+), 8585 deletions(-)

commit 4b94c0831e449374ce769cb4938a28b3dca59a43
Author: Dan Winship <danw@gnome.org>
Date:   Mon May 20 17:54:48 2013 -0300

    Use 'dumb quotes' rather than `really dumb quotes'

    Back in the far-off twentieth century, it was normal on unix
    workstations for U+0060 GRAVE ACCENT to be drawn as "‛" and
    for U+0027
    APOSTROPHE to be drawn as "’". This led to the convention of using
    them as poor-man's ‛smart quotes’ in ASCII-only text.

    However, "'" is now universally drawn as a vertical line, and "`" at a
    45-degree angle, making them an `odd couple' when used together.

    Unfortunately, there are lots of very old strings in glib, and also
    lots of new strings in which people have kept up the old tradition,
    perhaps entirely unaware that it used to not look stupid.

    Fix this by just using 'dumb quotes' everywhere.

    https://bugzilla.gnome.org/show_bug.cgi?id=700746

 gio/gapplicationimpl-dbus.c                 |   2 +-
 gio/gdbus-2.0/codegen/codegen.py            |   2 +-
 gio/gdbus-tool.c                            |  24 ++---
 gio/gdbusaddress.c                          |  60 ++++++------
 gio/gdbusauth.c                             |  82 ++++++++---------
 gio/gdbusauthmechanismanon.c                |   2 +-
 gio/gdbusauthmechanismsha1.c                |  42 ++++-----
 gio/gdbusconnection.c                       |  44 ++++-----
 gio/gdbusmessage.c                          |  26 +++---
 gio/gdbusmethodinvocation.c                 |   4 +-
 gio/gdbusproxy.c                            |   6 +-
 gio/gdbusserver.c                           |   6 +-
 gio/gicon.c                                 |   6 +-
 gio/glib-compile-schemas.c                  |  16 ++--
 gio/gsettings.c                             |  36 ++++----
 gio/gsettingsschema.c                       |   6 +-
 gio/kqueue/dep-list.c                       |   6 +-
 gio/kqueue/kqueue-thread.c                  |   2 +-
 gio/tests/gdbus-example-subtree.c           |   6 +-
 gio/tests/gdbus-export.c                    |  24 ++---
 gio/tests/gdbus-non-socket.c                |   4 +-
 gio/tests/gdbus-serialization.c             |  32 +++----
 gio/tests/gdbus-test-codegen.c              |   4 +-
 gio/tests/gdbus-tests.h                     |   4 +-
 glib/gcharset.c                             |   8 +-
 glib/gchecksum.c                            |   2 +-
 glib/gdate.c                                |   4 +-
 glib/gfileutils.c                           |   4 +-
 glib/glib-mirroring-tab/gen-mirroring-tab.c |   6 +-
 glib/gmessages.c                            |   4 +-
 glib/gmessages.h                            |   4 +-
 glib/gnode.h                                |   8 +-
 glib/gscanner.c                             |  20 ++--
 glib/gscanner.h                             |   4 +-
 glib/gspawn.c                               |   8 +-
 glib/gtester-report                         |   2 +-
 glib/gunicode.h                             |   2 +-
 glib/gutils.c                               |   6 +-
 glib/gutils.h                               |   4 +-
 glib/gvariant-parser.c                      |  14 +--
 glib/gvariant.c                             |  28 +++---
 glib/tests/gvariant.c                       |  40 ++++----
 glib/tests/markup-collect.c                 |   2 +-
 gmodule/gmodule-beos.c                      |   2 +-
 gmodule/gmodule-win32.c                     |   2 +-
 gmodule/gmodule.c                           |   2 +-
 gmodule/gmodule.h                           |   8 +-
 gobject/gboxed.c                            |   4 +-
 gobject/genums.c                            |   2 +-
 gobject/gobject.c                           |  50 +++++-----
 gobject/gobject.h                           |   2 +-
 gobject/gparam.c                            |  10 +-
 gobject/gsignal.c                           | 108 +++++++++++-----------
 gobject/gtype.c                             | 136
 ++++++++++++++--------------
 gobject/gvalue.c                            |   6 +-
 gobject/gvaluetypes.c                       |  20 ++--
 tests/testgdateparser.c                     |   8 +-
 57 files changed, 488 insertions(+), 488 deletions(-)

commit 52f6a7d16250d2b180c83cce8929f3e14972e1a9
Author: Dan Winship <danw@gnome.org>
Date:   Tue May 21 11:21:36 2013 -0300

    tests: fix a few recently-broken tests

 tests/gobject/Makefile.am    | 1 +
 tests/module-test.c          | 3 ---
 tests/run-assert-msg-test.sh | 4 ++--
 3 files changed, 3 insertions(+), 5 deletions(-)

commit bb1a5ca9a8488bbbfc06f961e2275c36b354ed3b
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 21 09:21:21 2013 -0400

    gio/tests: Fix gdbus-connection when run from "make check"

 gio/tests/Makefile.am        |  1 +
 gio/tests/gdbus-connection.c | 12 ++++++++----
 2 files changed, 9 insertions(+), 4 deletions(-)

commit 7ff5c082213c13c893f583f2bce77fa63a146af2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 20 21:05:56 2013 -0400

    Convert more tests to installed tests

    This makes the tests in tests installed, except for
    the performance tests.

 tests/Makefile.am         | 33 +++++++++++++++++++++++++++++++--
 tests/gobject/Makefile.am |  8 +++++---
 tests/iochannel-test.c    | 12 ++++++++----
 tests/module-test.c       | 13 ++++++++-----
 tests/unicode-caseconv.c  |  9 ++++++---
 tests/unicode-encoding.c  |  6 ++++--
 6 files changed, 62 insertions(+), 19 deletions(-)

commit 1808888a1f543276f83d65ef41a5cadb5f31c388
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 20 21:05:56 2013 -0400

    Convert more tests to installed tests

 tests/gobject/Makefile.am | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit c26e253b1090d529097ccd3c744f865977d3703f
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 21 00:12:31 2013 +0100

    gio/tests: gsettings is a developer-only test

    It tries to run glib-compile-schemas and glib-mkenums, which
    we won't have in the runtime tree.

    Anyways it's kind of a dumb test since the best test for
    compilation tools is...compiling things, which we already
    do frequently.

 gio/tests/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f2a9a6142c7187b6dd700728ecfa5ea094ad6096
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 21 00:07:18 2013 +0100

    gmessages: Fix up testing commit to handle fatal masquerading

    This makes glib/tests/testing pass again.

 glib/gmessages.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c12538a9c0693d9204bee0ef43dc505a52c55ba2
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 21 00:02:39 2013 +0100

    gio/tests: Disable desktop-app-info test in installed mode for now

    It wants a writable copy of the applications, and appears to
    depend on a prior execution of "mimeapps".  This will take
    a bit of work to untangle.

 gio/tests/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 3d7fcc23c154824a0377ceea07a1d3b18bcd3874
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 20 21:50:28 2013 +0100

    gio/tests: Make gdbus-peer work in installed mode

    There's no /etc/hosts in gnome-ostree...

 gio/tests/gdbus-peer.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 7ee44da5cf7fc5c7bee18c29287d8f062f045c67
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 20 21:43:52 2013 +0100

    gio/tests: Fix gapplication test in installed mode

 gio/tests/gapplication.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

commit 1a398b2e564e4ba8a42ca4865d49233b5b4a0c95
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 20 21:33:00 2013 +0100

    gio/tests: Some more fixes for installed tests

    file passes now, appinfo needs a bit more work, but is getting
    there.

 gio/tests/Makefile.am | 23 +++++++++++++++++++----
 gio/tests/appinfo.c   |  3 ++-
 gio/tests/file.c      | 16 ++++++++++++++--
 3 files changed, 35 insertions(+), 7 deletions(-)

commit bdf383dcd6c3adc657c35ef499f4739509da6eb1
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 20 20:15:43 2013 +0100

    gio/tests: Deduplicate Makefile.am a bit

    We can just add all the static test data to EXTRA_DIST.

 gio/tests/Makefile.am | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit 714cbbea52f0d08b6a4a4588329128a5172e8e92
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 20 14:31:48 2013 +0100

    gtestutils: Ensure test subprocesses don't dump core

    Since we expect them to crash, let's not spam the system
    core dump collection (systemd, abrt).  At the moment
    systemd is not very robust against programs crashing
    in loops.

    Instead of aborting, we exit(1).

    https://bugzilla.gnome.org/show_bug.cgi?id=700714

 glib/Makefile.am         |  1 +
 glib/gmessages-private.h | 35 +++++++++++++++++++++++++++++++++++
 glib/gmessages.c         | 27 ++++++++++++++++++++++++---
 glib/gtestutils.c        | 18 +++++++++++++++++-
 4 files changed, 77 insertions(+), 4 deletions(-)

commit 9038e2263827a4323be81a8f199afb87eef07587
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon May 20 14:51:04 2013 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 292
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 150 insertions(+), 142 deletions(-)

commit 142d78214d42905fd9af195265b9bda85f6a36a8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 20 08:46:21 2013 -0400

    Convert remaining gio tests to installed

 gio/tests/Makefile.am                   |  32 ++++++----
 gio/tests/appinfo.c                     | 104
 +++++++++++++++++++++++++-------
 gio/tests/gdbus-connection-loss.c       |  12 +++-
 gio/tests/gdbus-connection-slow.c       |  17 +++++-
 gio/tests/gdbus-connection.c            |  13 +++-
 gio/tests/gdbus-introspection.c         |  12 +++-
 gio/tests/gdbus-proxy-well-known-name.c |  17 +++++-
 gio/tests/gdbus-proxy.c                 |  18 +++++-
 gio/tests/gdbus-threading.c             |  12 +++-
 9 files changed, 194 insertions(+), 43 deletions(-)

commit 5e1f9173c397a04eca97a11d962fce824a2234a3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 20 06:38:41 2013 -0400

    Convert some gio tests to installed tests

 gio/tests/Makefile.am                    | 220
 +++++++++++++++++++------------
 gio/tests/{ => cert-tests}/cert-key.pem  |   0
 gio/tests/{ => cert-tests}/cert-list.pem |   0
 gio/tests/{ => cert-tests}/cert1.pem     |   0
 gio/tests/{ => cert-tests}/cert2.pem     |   0
 gio/tests/{ => cert-tests}/cert3.pem     |   0
 gio/tests/{ => cert-tests}/key-cert.pem  |   0
 gio/tests/{ => cert-tests}/key.pem       |   0
 gio/tests/{ => cert-tests}/key8.pem      |   0
 gio/tests/{ => cert-tests}/nothing.pem   |   0
 gio/tests/contexts.c                     |  16 ++-
 gio/tests/g-icon.c                       |  14 +-
 gio/tests/gschema-compile.c              |  17 ++-
 gio/tests/gsettings.c                    |  49 ++++---
 gio/tests/resources.c                    |  42 ++++--
 gio/tests/tls-certificate.c              | 100 ++++++++++----
 16 files changed, 312 insertions(+), 146 deletions(-)

commit f66016261a3db69fd14b8f3821123aad82d651e2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 19 21:49:51 2013 -0400

    Make gobject tests installable

    This makes the gobject tests run as part of the ostree integration
    tests.

 gobject/tests/Makefile.am | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 6c3cf6dc18d9fc0a80e732406ac31a71acab09a6
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Sun May 19 13:30:46 2013 +0200

    [l10n] Updated Italian translation.

 po/it.po | 236
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 120 insertions(+), 116 deletions(-)

commit ad7959c5b7d484c7d819a15f61cad46b6fab8cfd
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 6 09:47:00 2013 -0400

    Add --enable-installed-tests configure option

    See https://live.gnome.org/GnomeGoals/InstalledTests for more
    information.

    The tests now support being run both uninstalled and installed, so
    'make check' works for those who want it.  For tests which need data
    files, the way this works is they look in the compiled in value of
    SRCDIR by default, and the generated tests use "env G_TEST_DATA=" to
    override that.

    This patch only converts glib/tests for now; if this patch looks good,
    I'll do the rest of the tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=699079

 .gitignore                |  1 +
 configure.ac              |  7 ++++++-
 glib/tests/Makefile.am    | 49
 ++++++++++++++++++++++++++++++++++++++++-------
 glib/tests/bookmarkfile.c | 11 +++++++++--
 glib/tests/keyfile.c      | 19 +++++++++++++++---
 glib/tests/mappedfile.c   | 26 ++++++++++++++++++++-----
 glib/tests/markup-parse.c | 12 ++++++++++--
 glib/tests/protocol.c     |  8 ++++++--
 8 files changed, 111 insertions(+), 22 deletions(-)

commit 91d7c8de6bfa4290006da992ea0ef604ff24b009
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 6 09:24:25 2013 -0400

    glib/tests: Drop unnecessary SRCDIR definitions

    It's always going to be defined, we don't support compiling these
    tests "by hand".  This is a cleanup commit for the installed tests
    work.

    https://bugzilla.gnome.org/show_bug.cgi?id=699079

 glib/tests/bookmarkfile.c       | 4 ----
 glib/tests/keyfile.c            | 4 ----
 glib/tests/markup-parse.c       | 4 ----
 glib/tests/spawn-singlethread.c | 5 +----
 4 files changed, 1 insertion(+), 16 deletions(-)

commit 225d8fb97d4400a3417c32ee16ba3d1da570a010
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 3 18:36:43 2013 -0400

    glib/tests: Use explicit file listings

    This is a preparatory commit for installed tests work; having things
    cleanly categorized helps.

    https://bugzilla.gnome.org/show_bug.cgi?id=699079

 glib/tests/Makefile.am              | 71
 ++++++++++++++++++++++++++++++-------
 glib/tests/markup-parse.c           | 10 +++---
 glib/tests/markups/fail-3.expected  | 50 ++++++++++++++++++++++++++
 glib/tests/markups/fail-36.expected |  4 +++
 4 files changed, 117 insertions(+), 18 deletions(-)

commit 6e64bbe8de27ab72aa84dbe90c34f3a01eaadc15
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 3 18:13:51 2013 -0400

    glib/tests/mappedfile: Copy test file before writing to it

    This way we're *always* testing writability rather than only sometimes
    doing it in the source directory.

    https://bugzilla.gnome.org/show_bug.cgi?id=699079

 glib/tests/mappedfile.c | 53
 ++++++++++++++++++++++++++++++++-----------------
 1 file changed, 35 insertions(+), 18 deletions(-)

commit 23f5d8b238bc104672e0ad967c916ca258acef06
Author: Jorge Pérez Pérez <jorgtum@gmail.com>
Date:   Wed May 15 23:05:10 2013 +0200

    Added Aragonese translation

 po/LINGUAS |    1 +
 po/an.po   | 4472
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 4473 insertions(+)

commit c81a9556fffea3578aff3d53b4f1bc61c905c748
Author: Adrian Bunk <bunk@stusta.de>
Date:   Tue May 14 01:48:37 2013 +0300

    m4macros/glib-gettext.m4: Don't use AC_HEADER_STDC

    AC_HEADER_STDC is obsolete (pre-C89 headers are no longer an issue),
    and the resulting STDC_HEADERS define is anyway not used.

    https://bugzilla.gnome.org/show_bug.cgi?id=700263

 m4macros/glib-gettext.m4 | 1 -
 1 file changed, 1 deletion(-)

commit 216725f0ae31f193c57244df3c4d11dcb46d790b
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Tue May 14 15:26:07 2013 +0530

    updated kn translations

 po/kn.po | 395
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 192 insertions(+), 203 deletions(-)

commit e195490a879e6fcdd5b861629fadd6b7e652237b
Author: Dan Winship <danw@gnome.org>
Date:   Mon May 13 11:47:12 2013 -0400

    tests/slice: use G_GNUC_BEGIN_IGNORE_DEPRECATIONS

    rather than implementing it by hand

 glib/tests/slice.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eebb3c1c8e09d122f049edb762c9a13199f3b1e9
Author: Dan Winship <danw@gnome.org>
Date:   Mon May 13 11:38:53 2013 -0400

    gtestutils: use g_clear_pointer

 glib/gtestutils.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit e9284ed29731365415992d8c9ed72f10e67cf056
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 5 11:28:53 2012 -0500

    gtestutils: deprecate g_test_trap_fork()

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 gio/tests/gdbus-non-socket.c | 2 ++
 glib/gtestutils.c            | 6 ++++--
 glib/gtestutils.h            | 3 ++-
 glib/tests/testing.c         | 6 ++++++
 4 files changed, 14 insertions(+), 3 deletions(-)

commit e3d1869ee3b6e269b80723173dc4f85c7cc3eaea
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 24 15:58:36 2012 -0500

    tests: port from g_test_trap_subprocess() to g_test_trap_fork()

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 gio/tests/gdbus-exit-on-close.c | 137 +++++++------
 gio/tests/gdbus-non-socket.c    |   1 +
 gio/tests/gdbus-proxy.c         |  20 +-
 gio/tests/gschema-compile.c     |  50 +++--
 gio/tests/gsettings.c           | 422
 ++++++++++++++++++++++++++--------------
 glib/tests/array-test.c         |  27 +--
 glib/tests/dataset.c            |  22 ++-
 glib/tests/gvariant.c           |  79 +++++---
 glib/tests/list.c               |  35 ++--
 glib/tests/logging.c            | 215 +++++++++++---------
 glib/tests/mem-overflow.c       | 143 +++++++++-----
 glib/tests/option-context.c     | 382
 ++++++++++++++++++++----------------
 glib/tests/scannerapi.c         |  21 +-
 glib/tests/slice.c              |  14 +-
 glib/tests/test-printf.c        | 277 ++++++++++----------------
 glib/tests/testing.c            | 204 ++++++++++++-------
 glib/tests/utils.c              |  22 ++-
 gobject/tests/param.c           |  54 ++++-
 tests/Makefile.am               |   1 +
 tests/testglib.c                |  50 +++--
 20 files changed, 1263 insertions(+), 913 deletions(-)

commit 467f9ea1bc41bdb343644fc0d13760799542cc4e
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 25 11:50:09 2012 -0500

    tests/protocol: redo a bit

    Rather than overloading --verbose, just skip the tests that aren't
    supposed to be run in the parent process (so that if you do run the
    toplevel test with --verbose, it doesn't immediately error out).

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 glib/tests/protocol.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 960f5500e22d505a5dccbff51ccbc8ab969f0851
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 24 15:58:27 2012 -0500

    gtestutils: add g_test_trap_subprocess()

    g_test_trap_fork() doesn't work on Windows and is potentially flaky on
    unix anyway given the fork-but-don't-exec. Replace it with
    g_test_trap_subprocess(), which re-spawns the same program with
    arguments telling it to run a specific (otherwise-ignored) test case.

    Make the existing g_test_trap_fork() unit tests be unix-only (they
    never passed on Windows anyway), and add a parallel set of
    g_test_trap_subprocess() tests.

    Also fix the logic of gtestutils's "-p" argument (which is used by the
    subprocess tests); previously if you had tests "/foo/bar" and
    "/foo/bar/baz", and ran the test program with "-p /foo/bar/baz", it
    would run "/foo/bar" too. Fix that and add tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 docs/reference/glib/glib-sections.txt |   4 +-
 glib/gmessages.c                      |   2 +-
 glib/gtestutils.c                     | 753
 +++++++++++++++++++++++-----------
 glib/gtestutils.h                     |  16 +-
 glib/tests/testing.c                  | 183 +++++++++
 5 files changed, 712 insertions(+), 246 deletions(-)

commit 38859e8e2930f12bc5885c1ce9191aa3f73b8110
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 19 15:59:55 2012 -0500

    g_test_trap_fork: don't blow away the SIGCHLD handler

    Not sure why it was doing this, but it's not necessary (all of glib's
    tests pass fine without it), and it breaks tests that try to use
    g_spawn_sync() or GChildWatchSource after doing a g_test_trap_fork().

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 glib/gtestutils.c | 1 -
 1 file changed, 1 deletion(-)

commit 4c356443b85d8deb97107cfebc8c329446a9d6c9
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 25 13:52:20 2012 -0500

    tests/spawn-*.c: fix on Windows

    Need to append ".exe" to the spawned binary name on Windows

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 glib/tests/Makefile.am           | 1 +
 glib/tests/spawn-multithreaded.c | 4 ++--
 glib/tests/spawn-singlethread.c  | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

commit 1d310cf5dbe3ef224f5af505f33cc7263a5801e9
Author: Christian Persch <chpe@gnome.org>
Date:   Sun May 12 21:52:54 2013 +0200

    app: Document when floating variants are consumed

    Bug #700203.

 gio/gaction.c       | 2 ++
 gio/gsimpleaction.c | 2 ++
 2 files changed, 4 insertions(+)

commit b7550999cdee5281cdece52b4ca2d35fa70dd868
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Fri May 10 12:08:27 2013 +0530

    Updated Odia Translation.

 po/or.po | 306
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 150 insertions(+), 156 deletions(-)

commit 6fe6b0300b382fd000f75edd3ad968d29b276a0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 9 16:02:52 2013 -0400

    Clarify GValueArray docs

    Don't refer to Quicksort in the documentation of
    g_value_array_sort, but just to qsort().

 gobject/gvaluearray.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 8d13a3e4e175697f00d5963542ea2ff0aa37662f
Author: Krishnababu Krothapalli <kkrothap@redhat.com>
Date:   Thu May 9 18:03:09 2013 +0530

    Updated Telugu Translations

 po/te.po | 306
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 150 insertions(+), 156 deletions(-)

commit c2d6aaa540240c1842b6204cafc8dca404e4ba87
Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Date:   Tue Mar 20 22:40:32 2012 +0200

    Fix minor typos in GSocketConnectable example code

 gio/gsocketconnectable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 25fa94eb82a8b55fd9279f5faa67c02c4738b8d8
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Mon May 6 16:06:48 2013 +0200

    Declare res_init() for builds against Android's Bionic

    res_init() exists in the C library here and as such is detected
    by configure, but it is not declared in any header.

 gio/gresolver.c | 4 ++++
 1 file changed, 4 insertions(+)

commit f4a188234105cb363aecaefd31e06e1f976200c0
Author: Dan Winship <danw@gnome.org>
Date:   Sun May 5 16:50:43 2013 -0400

    GProxyAddressEnumerator: add default-port property

    Although none of the in-tree GSocketConnectable types need it, other
    types (like SoupAddress) may find it useful to be able to pass a URI
    and a default-port to GProxyAddressEnumerator separately (the same way
    you can with GNetworkAddress). So add a default-port property.

    https://bugzilla.gnome.org/show_bug.cgi?id=698877

 gio/gproxyaddressenumerator.c | 181
 +++++++++++++++++++++++-------------------
 gio/tests/proxy-test.c        | 105 +++++++++++++++++++++---
 2 files changed, 194 insertions(+), 92 deletions(-)

commit 6104230bce3607f62d47165dbee5ccbe73953b5a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 4 21:10:43 2013 -0400

    Document all gtester-report options

    The --subunit option was missing from the man page.

 docs/reference/glib/gtester-report.xml | 7 +++++++
 1 file changed, 7 insertions(+)

commit 794401c0a2165ec6d9e0e29b61c0a2cdb59acdb2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 4 21:08:18 2013 -0400

    Document all glib-mkenums placeholders

    The @ENUMPREFIX@ placeholder was missing in the man page.

 docs/reference/gobject/glib-mkenums.xml | 7 +++++++
 1 file changed, 7 insertions(+)

commit f10dc91ceedaef63d3a6b0421d4ae0b28f5e1473
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 4 21:05:24 2013 -0400

    Document all glib-genmarshal options

    The --stdinc option was missing from the man page.

 docs/reference/gobject/glib-genmarshal.xml | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 8d99b24a03adf1c5b950336c3bd649baeb953a9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 4 21:03:00 2013 -0400

    Fix a typo

 docs/reference/gio/glib-compile-resources.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7b60a469b751b655cbce04fb44b40e42a7d42391
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 4 21:01:35 2013 -0400

    Document all gdbus-codegen options

    The --help and --xml-files options were missing from the man page.

 docs/reference/gio/gdbus-codegen.xml | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 13958ee4292947e0a074ebf4a0e697462ba58e79
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 2 10:14:57 2013 -0400

    gbitlock: fix this to not unconditionally use futex emulation

    Ryan accidentally committed some debugging code a long time ago,
    causing this file to always use futex emulation even when real futex
    support was available. I noticed this a while later and pointed it out
    to him, and assumed he was going to fix it, but I guess he assumed I
    was going to fix it, and then neither of us did...

    https://bugzilla.gnome.org/show_bug.cgi?id=699500

 glib/gbitlock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9d69c274e0e13294bbfd6488c220ab523d3e881a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 2 21:00:57 2013 -0400

    Silently handle icon being NULL

    While an emblemed icon without a base icon is not very
    useful, no need to crash here.
    This was crashing the object finalization test in gtk.

 gio/gemblemedicon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a360b314aad5dcbc575948a401d22d47a36e4328
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Sun Apr 14 21:04:41 2013 +0100

    binding: Add an explicit unbind()

    Higher order languages with garbage collection can have issues
    releasing
    a binding, as they do not control the last reference being dropped on
    the binding, source, or target instances.

    https://bugzilla.gnome.org/show_bug.cgi?id=698018

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gbinding.c                          | 89
 +++++++++++++++++++----------
 gobject/gbinding.h                          |  2 +
 gobject/tests/binding.c                     | 32 +++++++++++
 4 files changed, 95 insertions(+), 29 deletions(-)

commit f61daa6ed275f1794a6552d3343e313d1d243933
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 2 11:39:11 2013 -0400

    tests/mappedfile: Also handle ENOMEM

    The RHEL6.4 kernel gives me that instead of EINVAL.

    https://bugzilla.gnome.org/show_bug.cgi?id=699485

 glib/tests/mappedfile.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c0e0c6a4201c879b5d8d7f5314d42f268a317f4c
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 2 13:58:25 2013 -0400

    gobject: rename an unused parameter to make AIX happy

 gobject/gobject.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 769e3edbe0f658ecaf22d7352486aad176095328
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu May 2 16:50:01 2013 +0100

    GSocks5Proxy: don't crash if parsing negotiation reply fails

    The GError should be initialized to NULL, otherwise we'll
    "pile up" errors, then try to free an uninitialized pointer.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=699493

 gio/gsocks5proxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eda37dbc3f547d785e4e8941abd320d1292e93e7
Author: Rajesh Ranjan <rranjan@redhat.com>
Date:   Thu May 2 13:45:46 2013 +0530

    hindi update

 po/hi.po | 311
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 153 insertions(+), 158 deletions(-)

commit b24f73700d3779187b763178d4e462cdfa3e43c5
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Wed May 1 20:32:44 2013 +0200

    Updated Slovenian translation

 po/sl.po | 1396
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 702 insertions(+), 694 deletions(-)

commit 631cf195c8fa718d78354688de4d88057c7e68ad
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 1 05:20:02 2013 -0400

    Bump version to 2.37.1

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 20012ec9a96c3b12315be0f516fbea9088e67d93
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 1 00:16:25 2013 -0400

    Add 2.38 indexes to the docs

 docs/reference/gio/gio-docs.xml         | 4 ++++
 docs/reference/glib/glib-docs.xml       | 4 ++++
 docs/reference/gobject/gobject-docs.xml | 4 ++++
 3 files changed, 12 insertions(+)

commit 83e74d5e3e5b6b142daceb12497608312820c1ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 1 00:15:06 2013 -0400

    Updates

 NEWS | 68
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

commit daf7f56491517f048e119a12661999a103875c06
Author: Tim Lunn <tim@feathertop.org>
Date:   Wed May 1 10:39:26 2013 +1000

    gio: fix small leak

    https://bugzilla.gnome.org/show_bug.cgi?id=699361

 gio/gdesktopappinfo.c | 1 +
 1 file changed, 1 insertion(+)

commit 0646e00e2522490b41f39fc25a4093bb61e8a4dc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 21 10:55:40 2013 -0400

    GApplication: don't leak 'hint' on remote Open

    We were using format string "s" to deconstruct the open hint into a
    'const gchar *' which, of course, we never freed.  Fix that.

 gio/gapplicationimpl-dbus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 706e636ab83de76c22ed7f2e56df9a1bcb49b39a
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Apr 26 17:11:02 2013 -0400

    bytesicon: don't use g_object_unref() on GBytes

    We need to use g_bytes_unref()

    https://bugzilla.gnome.org/show_bug.cgi?id=699001

 gio/gbytesicon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 463022cc09c3ebab18c4d3a6f2f80752339dc5f0
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Apr 26 17:07:41 2013 -0400

    bytesicon: fix a memory leak

    https://bugzilla.gnome.org/show_bug.cgi?id=698999

 gio/gbytesicon.c | 1 +
 1 file changed, 1 insertion(+)

commit 518e3104bf6cdb5d8e6b43d3b721805db5951139
Author: Colin Walters <walters@verbum.org>
Date:   Fri Apr 26 08:12:01 2013 -0400

    configure: Assume C90 compatible malloc() prototype

    This ancient code was attempting to cope with (unknown) systems whose
    malloc() prototype was incompatible with the standard.  This test was
    fragile; it would break if the build environment provided -Wall in
    CFLAGS.

    Now that it's 2013, let's assume that target systems have a sane
    malloc().  If someone complains, we can revisit this.

    https://bugzilla.gnome.org/698716

 configure.ac | 41 ------------------------------
 glib/gmem.c  | 81
 ++++++++++--------------------------------------------------
 2 files changed, 13 insertions(+), 109 deletions(-)

commit 7d61da0c078fcc10fada292811401b127e330555
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 26 11:27:51 2013 -0400

    g_object_new: check for NULL from _constructor()

    There is some code in the wild (like in gnome-session) that does this
    from its custom _constructor() implementation:

    {
      GObject *obj;

      obj = ((chain up));

      if (!object_is_viable (obj))
        {
          g_object_unref (obj);
          return NULL;
        }
      else
        return obj;
    }

    This has never been a valid use of GObject and this code has always
    caused memory to be leaked[1] by growing the construction_objects
    list.
    The ability to legitimately return NULL from a constructor was exactly
    the reason that we created GInitable, in fact.

    That doesn't change the fact that the g_object_new() rewrite will
    crash
    in this case, so instead of doing that, let's emit a critical
    and avoid
    the crash.  This will allow people to upgrade their GLib without also
    upgrading their gnome-session.  Meanwhile, people can fix their broken
    code.

    [1] not in the strictest sense of the word, because it's still
    reachable

 gobject/gobject.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit c98c65fffc4319c5caca164df09af9c8415a46bd
Author: Shantha kumar <shkumar@redhat.com>
Date:   Fri Apr 26 11:40:25 2013 +0530

    Tamil Translation Updated

 po/ta.po | 630
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 373 insertions(+), 257 deletions(-)

commit c027e88a30fc3c332c8955fdeef1bf5e15cc63fc
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Thu Apr 25 02:24:53 2013 -0500

    gio/tests: Find "true" in PATH opposed to hardcoding the location

    Not all systems have /usr/bin/true. Some have it in /bin/true.
    Instead of trying to guess a hardcoded path to find it, let
    g_app_info_create_from_commandline() internally search PATH
    to find the program.

    https://bugzilla.gnome.org/show_bug.cgi?id=698655

 gio/tests/desktop-app-info.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8a6ae995ee53f09da60b60f853b597b23f9dc4c0
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Thu Apr 25 09:01:11 2013 +0200

    [l10n] Updated Italian translation.

 po/it.po | 121
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 63 insertions(+), 58 deletions(-)

commit 03dd6cf1b55fbef243e90ee3253dacecae06cf61
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Apr 24 11:58:47 2013 -0400

    docs: fix docs for g_icon_[de]serialize()

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/gicon.c                         | 24 ++++++++++++++++++++++++
 2 files changed, 26 insertions(+)

commit 755f4f0bf66ea6b9e735bf685a5ae2a2c404d6d2
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Apr 24 00:01:48 2013 +0200

    Updated Polish translation

 po/pl.po | 119
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 62 insertions(+), 57 deletions(-)

commit bfa8bef7b9985b3ab8bc6165ed5e915f70d464d8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Mar 27 23:34:30 2013 -0400

    GObject: substantially rework g_object_new()

    Make a number of improvements to g_object_new():

     - instead of looking up the GParamSpec for the named property once in
       g_object_new() (in order to collect) and then again in
       g_object_newv
       (when actually setting the property), g_object_new_internal() is a
       new function that takes the GParamSpec on the interface to
       avoid the
       second lookup

     - in the case that ->constructor() is not set, we need not waste time
       creating an array of GObjectConstructParam to pass in.
       Just directly
       iterate the list of parameters, calling set_property() on each.

     - instead of playing with linked lists to keep track of the construct
       properties, realise that the number of construct properties that we
       will set is exactly equal to the length of the construct_properties
       list on GObjectClass and the only thing that may change is
       where the
       value comes from (in the case that it was passed in)

       This assumption was already implicit in the existing code and
       can be
       seen from the sizing of the array used to hold the construct
       properties, but it wasn't taken advantage of to make things
       simpler.

     - instead of allocating and filling a separate array of the
       non-construct properties just re-iterate the passed-in list and set
       all properties that were not marked G_PARAM_CONSTRUCT (since
       the ones
       that were construct params were already used during construction)

     - use the new g_param_spec_get_default_value() API instead of
       allocating and setting the GValue for each construct property that
       wasn't passed from the user

    Because we are now iterating the linked list of properties in-order we
    need to append to that list during class initialising instead of
    prepending.

    These changes show a very small improvement on the simple-construction
    performance testcase (probably just noise) and they improve the
    complex-construction case by ~30%.

    Thanks to Alex Larsson for reviews and fixes.

    https://bugzilla.gnome.org/show_bug.cgi?id=698056

 gobject/gobject.c | 527
 +++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 340 insertions(+), 187 deletions(-)

commit c18462b5803a3dd57d3ccb67153ad7851cc8ce08
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 23 11:11:20 2013 -0400

    GParamSpec: add g_param_spec_get_default_value()

    The way of getting the default value out of a GParamSpec is to
    allocate
    a GValue, initialise it, then call g_param_spec_set_default() to
    set the
    default value into that GValue.

    This is exactly how we handle setting the default value for all of the
    construct properties that were not explicitly passed to
    g_object_new().

    Instead of doing the alloc/init/store on all construct properties on
    every call to g_object_new(), we can cache those GValues in the
    private
    data of the GParamSpec itself and reuse them.

    This patch does not actually make that change to g_object_new()
    yet, but
    it adds the API to GParamSpec so that a future patch to GObject
    can make
    the change.

    https://bugzilla.gnome.org/show_bug.cgi?id=698056

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gparam.c                            | 62
 +++++++++++++++++++++++++++++
 gobject/gparam.h                            |  3 +-
 gobject/tests/param.c                       | 16 ++++++++
 4 files changed, 81 insertions(+), 1 deletion(-)

commit c30c0bb34d80013489897c49bef36cc56972d5d9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 23 10:38:23 2013 -0400

    GType: add accessor for instance private offset

    Since instance private data is now always at a constant offset to the
    instance pointer, we can add an accessor for it that doesn't also
    require an instance.

    The idea is that classes can call this from their class_init and store
    it in a file-scoped static variable and use that to find their private
    data on instances very quickly, without a priv pointer.

    https://bugzilla.gnome.org/show_bug.cgi?id=698056

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gtype.c                             | 48
 +++++++++++++++++++++++++++++
 gobject/gtype.h                             |  2 ++
 3 files changed, 51 insertions(+)

commit eb860fd898a6a2bd86c11d245294cd0e8cd4304b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 23 13:26:48 2013 -0400

    Partially revert "Merge waitpid() from g_spawn_sync into gmain()"

    This partially reverts commit
    ce0022933c255313e010b27f977f4ae02aad1e7e.

    It used to be safe to use g_spawn_sync() from processes that had their
    own SIGCHLD handler because it simply called wait().  When it was
    changed to depend on the GLib child watching infrastructure this meant
    that GLib had to own the SIGCHLD handler.

    This caused hangs in at least Pidgin.

    The patch contained two other improvements to the child watch
    code which
    we want to keep, so only revert the changes to gspawn itself.

    https://bugzilla.gnome.org/show_bug.cgi?id=698081

 glib/gspawn.c | 76
 ++++++++++++++++++++++++++++-------------------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

commit c91af2ab44c20556f3d3493edff686cf77137fda
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 23 14:30:42 2013 -0400

    Test GUnixSocketAddress construction

    This test fails without the previous fix and works properly with it.

    https://bugzilla.gnome.org/show_bug.cgi?id=698686

 gio/tests/.gitignore       |  1 +
 gio/tests/Makefile.am      |  1 +
 gio/tests/socket-address.c | 79
 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 81 insertions(+)

commit 9c243beea25f08b506eab9e1e877d6ffe2b20531
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 23 13:38:33 2013 -0400

    GUnixSocketAddress: fix construct parameter issue

    GUnixSocketAddress has some very strange logic for interpreting its
    construct paramters.  This logic behaves differently in these
    two cases:

      g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
                    "abstract", FALSE,
                    "address-type", ...,
                    NULL);

    and

      g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
                    "address-type", ...,
                    NULL);

    even though the default value for "abstract" is already FALSE.

    Change the way the code works so that it is not sensitive to people
    merely setting a property to its default value.

    https://bugzilla.gnome.org/show_bug.cgi?id=698686

 gio/gunixsocketaddress.c | 23 ++++++-----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

commit 7409ac0d14e197f0c2ef1ae86fa15ddaeea5a434
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 23 11:59:09 2013 -0400

    gtype: tweak valgrind hints

    The valgrind client requests were not producing the intended result in
    some cases, so step up our game a bit.

 gobject/gtype.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

commit e8438f98e2d274b57008eddcb86df3f63e166933
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 22 18:32:05 2013 -0400

    Revert "GObject: prevent installing properties after init"

    This reverts commit ddb0ce14215cd62c7a2497d6cf9f2ea63c40ebb5.

    Colin's smoke testing has found issues in at least gjs and
    gnome-settings-daemon.  We'll need to see if we can address those.

 gobject/gobject.c       |  9 ++-------
 gobject/gtype-private.h |  1 -
 gobject/gtype.c         | 10 ----------
 3 files changed, 2 insertions(+), 18 deletions(-)

commit ddb0ce14215cd62c7a2497d6cf9f2ea63c40ebb5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 22 17:37:18 2013 -0400

    GObject: prevent installing properties after init

    GObject has previously allowed installing properties after class_init
    has finished running.  This means that you could install some of your
    own properties on G_TYPE_OBJECT, for example, although they wouldn't
    have worked properly.

    Prevent this from happening.  Require that all properties are
    installed by
    the time class_init has finished.

    Complaints go to this bug:

    https://bugzilla.gnome.org/show_bug.cgi?id=698614

 gobject/gobject.c       |  9 +++++++--
 gobject/gtype-private.h |  1 +
 gobject/gtype.c         | 10 ++++++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

commit 31fde567a95ff8f50b6b0e75d4010da9b73514ed
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 22 12:33:30 2013 -0400

    gtype: put private data before the instance

    Classically, a GTypeInstance has had the following layout:

     [[[[GTypeInstance] GObject] TypeA] TypeB] [TypeAPrivate]
     [TypeBPrivate]

    where TypeB is a subclass of TypeA which is a GObject.  Both TypeA and
    TypeB use pivate data.

    The main problem with this approach is that the offset between
    a pointer
    to an instance of TypeA and the TypeAPrivate is not constant:
    it changes
    depending on the depth of derivation and the size of the instance
    structures of the derived types.  For example, changing the size
    of the
    TypeB structure in the above example would push the TypeAPrivate
    further
    along.

    This complicates the implementation of g_type_instance_get_private().
    In particular, during object construction when the class pointer
    to the
    'complete type' of the object is not yet stored in the header of the
    GTypeInstance, we need a lookup table in order to be able to implement
    g_type_instance_get_private() accurately.

    We can avoid this problem by storing the private data before the
    structures, in reverse order, like so:

      [TypeBPrivate] [TypeAPrivate] [[[[GTypeInstance] GObject] TypeA]
      TypeB]

    Now the distance between TypeA and TypeAPrivate depends only on
    the size
    of GObject and GTypeInstance, which are static.  Even in the case of
    TypeB, the distance is not statically known but can be determined at
    runtime and is constant (because we will know the size of TypeAPrivate
    by the time we initialise TypeB and it won't change).

    This approach requires a slighty dirty trick: allocating extra memory
    _before_ the pointer we return from g_type_create_instance().
    The main
    problem with this is that it will cause valgrind to behave very badly,
    reporting almost everything as "possibly lost".

    We can correct for this by including a few valgrind client requests in
    order to inform it that the start of the GTypeInstance should be
    considered a block of memory and that pointers to it should mean that
    this block is reachable.  In order to make the private data reachable,
    we also declare it as a block and include an extra pointer from
    the end
    of the primary block pointing back at it.  All of this is only done if
    we are running under Valgrind.

    https://bugzilla.gnome.org/show_bug.cgi?id=698595

 gobject/gtype.c | 221
 ++++++++++++++++++--------------------------------------
 1 file changed, 72 insertions(+), 149 deletions(-)

commit 00fbc2f0ce2fb65da1027485707fbac59b91a1ef
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 22 12:28:44 2013 -0400

    gslice: disable by default under valgrind

    All experienced GLib hackers know that G_SLICE=always-malloc is
    absolutely essential when valgrinding but many users of GLib
    don't know
    about this and get hit pretty hard when valgrinding their programs.

    When initialising gslice, add a check to see if we are running under
    valgrind and disable ourselves if we are.

    We only do the check in the case that G_SLICE= was not specified
    in the
    environment, so setting it to an empty string will prevent this
    default
    behaviour.

    I considered modifying gslice to use the VALGRIND_MALLOCLIKE_BLOCK
    client request in all cases in order to just mark the blocks properly
    but these calls are not free and gslice is pretty hyper-optimised.
    It's
    easier to just disable gslice completely and this way we only have
    to do
    one check during startup.  It's also theoretically possible that
    someone
    might want to use valgrind to debug gslice, in which case the extra
    annotations would probably cause quite a lot of difficulty.

    https://bugzilla.gnome.org/show_bug.cgi?id=698595

 glib/gslice.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit c8d56d7cf79b107d0e9a64812734fe877b332093
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 22 12:10:35 2013 -0400

    Add a copy of valgrind.h to glib/

    This is a BSD-licenced header file that is designed to be copy-pasted
    into programs.  It will allow us to detect if we are running under
    Valgrind and send "client requests" to it.

    We will use this for a couple of reasons in upcoming patches.

    https://bugzilla.gnome.org/show_bug.cgi?id=698595

 glib/Makefile.am |    3 +-
 glib/valgrind.h  | 4840
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 4842 insertions(+), 1 deletion(-)

commit c1c1b33f883d6afd2e27bb2506ab6490ed916052
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 20 18:55:03 2013 -0400

    GMenu: add g_menu_item_set_icon() convenience

    This function takes a GIcon, serialises it and sets the resulting
    GVariant as the "icon" attribute on the menu item.  We will need
    to add
    a patch to Gtk to actually consume this icon.

    Also add G_MENU_ATTRIBUTE_ICON.

    https://bugzilla.gnome.org/show_bug.cgi?id=688820

 docs/reference/gio/gio-sections.txt |  4 +++-
 gio/gmenu.c                         | 41
 +++++++++++++++++++++++++++++++++++++
 gio/gmenu.h                         |  4 ++++
 gio/gmenumodel.h                    | 15 ++++++++++++++
 4 files changed, 63 insertions(+), 1 deletion(-)

commit 63a0cc3f8d97da612d445babfe367fb3d603e658
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Mon Apr 22 13:12:12 2013 -0400

    tests: Fix appinfo test

 gio/tests/appinfo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 709ade0e45bce4d43ef227c9442f599389482dce
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Apr 22 17:49:06 2013 +0200

    Updated Spanish translation

 po/es.po | 142
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 72 insertions(+), 70 deletions(-)

commit 93349e6ea36fa5dd48ee2fa2cd9b8328414cf3c5
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Mon Apr 22 15:53:10 2013 +0530

    Updated gujarati file

 po/gu.po | 110
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 54 insertions(+), 56 deletions(-)

commit 454691a4b4957846ed81e1611eb8ee142258008f
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Apr 22 00:37:20 2013 +0200

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit c16f914b40c749b938490a4e10a3c54ec1855c42
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 20 18:50:21 2013 -0400

    GIcon: add g_icon_[de]serialize()

    Add support for serialising a GIcon to a GVariant and deserialising
    the
    result back to a GIcon.

    This solves a number of problems suffered by the existing to_string()
    API, primarily these:

     - not forcing the icon to be a utf8 string means that we can
       efficiently encode a PNG (ie: just give the array of bytes)

     - there is no need to ensure that proper types are loaded before
     using
       the deserialisation interface.  'Foreign' icon types will probably
       emit a serialised format the deserialises to a GBytesIcon.

    We additionally clearly document what is required for being a consumer
    or implementation of #GIcon.

    Further patches will be required to GdkPixbuf and GVfsIcon to bring
    their implementations in line with the new rules (essentially:
    introduce
    implementations of the new serialize() API).

    https://bugzilla.gnome.org/show_bug.cgi?id=688820

 gio/gbytesicon.c    |  10 +++
 gio/gemblem.c       |  21 +++++
 gio/gemblemedicon.c |  49 ++++++++++++
 gio/gfileicon.c     |   9 +++
 gio/gicon.c         | 217
 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 gio/gicon.h         |   7 ++
 gio/gthemedicon.c   |   9 +++
 gio/gvfs.h          |   3 +-
 gio/tests/g-icon.c  | 122 ++++++++++++++++++++++++++++-
 9 files changed, 439 insertions(+), 8 deletions(-)

commit 9cc222c0bfc65034143753a64b081b7811ee48f1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 20 17:23:31 2013 -0400

    Introduce GBytesIcon

    GBytesIcon is an icon that has a GBytes inside of it where the GBytes
    contains some sort of encoded image in a widely-recognised file
    format.
    Ideally this will be a PNG.

    It implements GLoadableIcon, so GTK will already understand how to use
    it, but we will add another patch there to make things more efficient.

    https://bugzilla.gnome.org/show_bug.cgi?id=688820

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  14 ++
 gio/Makefile.am                     |   2 +
 gio/gbytesicon.c                    | 253
 ++++++++++++++++++++++++++++++++++++
 gio/gbytesicon.h                    |  54 ++++++++
 gio/gio.h                           |   1 +
 gio/giotypes.h                      |   1 +
 7 files changed, 326 insertions(+)

commit 519e989ea8d33924f5d6f5d57f100e65359275af
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 20 16:41:09 2013 -0400

    GIcon: pure re-factor of _from_string()

    Split out the 'simple string format' cases of URIs, file paths and
    themed icons to a separate function.

    This function will be shared by g_icon_deserialize().

    https://bugzilla.gnome.org/show_bug.cgi?id=688820

 gio/gicon.c | 77
 ++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 43 insertions(+), 34 deletions(-)

commit c0af442909e1304b799a4b6c145f8444c752e3da
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Sat Apr 20 15:13:42 2013 -0400

    gdesktopappinfo: Allow getting the desktop ID from the filename

 gio/gdesktopappinfo.c | 2 ++
 1 file changed, 2 insertions(+)

commit 390115f3851de49f93918cda9266ab857382cc3e
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Sat Apr 20 18:58:14 2013 -0400

    gactionmap: don't require GActionGroup

    https://bugzilla.gnome.org/show_bug.cgi?id=698478

 gio/gactionmap.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit ac1379e22cc6d97f1336eee0f846900950e978b5
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Sat Apr 20 11:44:21 2013 -0400

    g_variant_get_data_as_bytes: return a sub-bytes if necessary

    https://bugzilla.gnome.org/show_bug.cgi?id=698457

 glib/gvariant-core.c  | 15 ++++++++++++++-
 glib/tests/gvariant.c | 11 +++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

commit dbb65b54651a88b9691b156bf19b53fbe4a4bd5a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 20 11:44:53 2013 -0400

    GVariant: add new g_variant_new_take_string() API

    Lots of people have variously asked for APIs like
    g_variant_new_string_printf() in order to avoid having to use
    g_strdup_printf(), create a GVariant using g_variant_new_string(),
    then
    free the temporary string.

    Instead of supporting that, plus a million other potential cases,
    introduce g_variant_new_take_string() as a compromise.

    It's not possible to write:

     v = g_variant_new_take_string (g_strdup_printf (....));

    to get the desired result and avoid the extra copies.  In addition, it
    works with many other functions.

    https://bugzilla.gnome.org/show_bug.cgi?id=698455

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gvariant.c                       | 36
 +++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |  2 ++
 3 files changed, 39 insertions(+)

commit a2a44a9617098ef061b1fd026ea44d381aa5ccec
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Wed Apr 17 16:37:55 2013 +0200

    Add async version of g_file_make_directory()

    https://bugzilla.gnome.org/show_bug.cgi?id=548353

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gfile.c                         | 111
 ++++++++++++++++++++++++++++++++++++
 gio/gfile.h                         |  25 ++++++--
 3 files changed, 134 insertions(+), 4 deletions(-)

commit bd57c3f171d0775d8b1f0944f45a196b59fc79fd
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Wed Apr 17 15:07:03 2013 +0200

    GFile: fix the *_async_thread()

    In the *_async_thread() functions, call the corresponding synchronous
    function instead of calling the interface vfunc, which can be NULL.

    In some cases the check for the vfunc == NULL was done, but to be
    consistent it is better to always call the synchronous version
    (and the
    code is simpler).

    https://bugzilla.gnome.org/show_bug.cgi?id=548353

 gio/gfile.c | 65
 ++++++++-----------------------------------------------------
 1 file changed, 8 insertions(+), 57 deletions(-)

commit 1de0625103e98710689d65cecfc288e15a5d240d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 8 15:27:16 2013 -0400

    GMenu: add g_menu_remove_all() API

    Removes all of the items from a GMenu.  The keyboard indicator
    wants to
    do this as part of refreshing the layout list, as an example.

    https://bugzilla.gnome.org/show_bug.cgi?id=697601

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gmenu.c                         | 23 +++++++++++++++++++++++
 gio/gmenu.h                         |  3 +++
 3 files changed, 27 insertions(+)

commit 57cd876321f563bade0f6230108b1fce18d9b0c6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 17 12:12:20 2013 -0400

    GVariant parser: tweak lexer for format strings

    Tweak the lexer so that '[%s]' gets parsed as three separate tokens,
    instead of the closing bracket getting sucked into the format string.

 glib/gvariant-parser.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 1d87c6c7f818eef758a2bd6afd07f6feabc5f45d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 17 12:08:00 2013 -0400

    GVariant parser: turn two asserts into soft errors

    Parsing wrongly-typed GVariant text format data is a well-defined
    operation and it ought to result in a GError.  We do that for most
    cases, but 'v' and 'ay' were being treated differently.  Fix those as
    well.

 glib/gvariant-parser.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit c70b4978598a3b4e3d712e89cacf21b5369ed53e
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed Apr 17 04:35:50 2013 -0400

    utils: avoid redundant set/endpwent around getpwuid

    set/endpwent are only required for iterating through passwd entries
    using getpwent(). Since we are explicitly requesting a passwd entry
    for a uid then the set/endpwent calls are redundant.

    Removing these redundant calls is required for building on Android
    since their C library doesn't implement these.

    https://bugzilla.gnome.org/show_bug.cgi?id=645881

 glib/gutils.c | 6 ------
 1 file changed, 6 deletions(-)

commit d171e833478dcb067a543082ff69c237c97c6fe4
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Fri Apr 12 17:25:15 2013 +0200

    GVariant: fix transfer annotation

    g_variant_new_from_bytes() returns a floating reference, so it
    must be annotated (transfer none)

    https://bugzilla.gnome.org/show_bug.cgi?id=697887

 glib/gvariant-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ad12142943e0f20ed9583c9d6bf50f6262110c74
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Sat Apr 13 12:02:24 2013 +0200

    check-abis.sh: allow _ftext as that's leaked on mips

    https://bugzilla.gnome.org/show_bug.cgi?id=697942

 check-abis.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bcbaf1bef01c669715860299fe8603bc21b0e137
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Nov 28 16:55:54 2012 +0100

    Fix compilation on Android with the bionic C library

    https://bugzilla.gnome.org/show_bug.cgi?id=689223

 configure.ac                       | 182
 ++++++++++++++++++++++++++++++++-----
 gio/glocalfileinfo.c               |   2 +
 gio/gresolver.c                    |   2 +
 gio/gthreadedresolver.c            | 143 +++++++++++++++++++++++++++++
 gio/tests/gtlsconsoleinteraction.c |  12 ++-
 glib/galloca.h                     |   4 +-
 glib/glib-unix.c                   |   5 +
 glib/gstrfuncs.c                   |  14 +++
 glib/gutils.c                      |   6 ++
 glib/tests/Makefile.am             |   2 +-
 gmodule/gmodule-dl.c               |   4 +
 11 files changed, 349 insertions(+), 27 deletions(-)

commit 5e2cad9de96a569e72466a4ff748c579d6d6708e
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Mar 27 16:41:44 2013 -0400

    bookmarkfile: Fix annotations on GBookmarkFile

 glib/gbookmarkfile.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 3c614be04acaea3a84b07cd3732af0567bb0c376
Author: Marek Kasik <mkasik@redhat.com>
Date:   Wed Apr 10 13:48:49 2013 +0200

    tests: Add test for disabled help options

    Test whether help options are hidden when they are disabled
    by g_option_context_set_help_enabled(.., FALSE).

    https://bugzilla.gnome.org/show_bug.cgi?id=697652

 glib/tests/option-context.c | 60
 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

commit d20336130d08978c5e7e7f12df29d6cb6f7bbef5
Author: Marek Kasik <mkasik@redhat.com>
Date:   Tue Apr 9 18:03:53 2013 +0200

    Don't show help options when help is disabled

    Check whether help is enabled when creating help text
    in g_option_context_get_help().

    https://bugzilla.gnome.org/show_bug.cgi?id=697652

 glib/goption.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

commit a12157b1f8515bbd9304ecd03c646a34ca7e975d
Author: Jason Quinn <jason_quinn@yahoo.com>
Date:   Thu Apr 11 05:00:38 2013 -0400

    building.xml: Fix a typo of "fo" to "of"

    https://bugzilla.gnome.org/show_bug.cgi?id=697771

 docs/reference/glib/building.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f5806a208cab3a460e29d8ef56611257efe81ed8
Author: Balázs Úr <urbalazs@src.gnome.org>
Date:   Wed Apr 10 23:33:20 2013 +0200

    Updated Hungarian translation

 po/hu.po | 111
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 59 insertions(+), 52 deletions(-)

commit 733bf962023d9b227bc9d8f5a1366b222b796946
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Jan 31 18:45:32 2013 +0100

    Add async version of g_file_trash()

    https://bugzilla.gnome.org/show_bug.cgi?id=548353

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gfile.c                         | 111
 ++++++++++++++++++++++++++++++++++++
 gio/gfile.h                         |  27 +++++++--
 3 files changed, 136 insertions(+), 4 deletions(-)

commit c35b73a90f8489f69e14b5029479d5f5304176bb
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Jan 31 18:44:24 2013 +0100

    Add missing details in GFile documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=548353

 gio/gfile.c | 2 ++
 1 file changed, 2 insertions(+)

commit 0513c855cba69b96e4c9d2200719249a8a0c586e
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 10 11:39:12 2013 -0400

    gmain: fix double-unlock in g_main_context_unref()

    When unreffing a context with sources still attached, it would end up
    unlocking an already-unlocked context, causing crashes on platforms
    that (unlike Linux) actually check for that.

    https://bugzilla.gnome.org/show_bug.cgi?id=697595

 glib/gmain.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 74ed1cf5b0538f71ae566219c14b6a1b954c1a74
Author: Lionel Landwerlin <llandwerlin@gmail.com>
Date:   Fri Apr 5 15:21:23 2013 +0100

    gunixmounts: remove warning on unused variable

    https://bugzilla.gnome.org/show_bug.cgi?id=697367

 gio/gunixmounts.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 907a931082f442ab15bc4508284bf4bf90fa4aa4
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Wed Apr 10 15:53:14 2013 +1200

    Fix deprecation warning for g_io_channel_read

 glib/giochannel.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2ca9dda72aa85756010dfc9b73aa0d891e61bf29
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Tue Apr 9 14:09:33 2013 +0200

    win32: Allow POSIX threads to be used if --with-threads=posix

    All tests pass with this patch AND a good pthreads implementation
    (i'm using winpthreads, not pthreads-w32).

    https://bugzilla.gnome.org/show_bug.cgi?id=697626

 configure.ac         | 6 ++++++
 glib/Makefile.am     | 4 +++-
 glib/glib-init.c     | 4 ++++
 glib/gthread-posix.c | 3 +++
 4 files changed, 16 insertions(+), 1 deletion(-)

commit 0a130c8bb0bbbbe392c3c10b92a09906ce8a07f3
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Tue Apr 9 14:02:54 2013 +0200

    win32: Fix warning

 glib/gspawn-win32-helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c237338b04954803f482571d57dbe5cd927e7ae3
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat Dec 3 07:08:26 2011 +0400

    Use AC_LINK_IFELSE instead of AC_TRY_COMPILE

    Fixes #665445

 configure.ac | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

commit 00f6d78125a02c014bcfb31e47b082ff30ede1d6
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Mon Apr 8 08:13:10 2013 +0200

    g_dbus_connection_signal_subscribe: add path and namespace matching

    https://bugzilla.gnome.org/show_bug.cgi?id=695156

 gio/gdbusconnection.c        | 93
 ++++++++++++++++++++++++++++++++++++++------
 gio/gioenums.h               |  9 ++++-
 gio/tests/gdbus-connection.c | 78 +++++++++++++++++++++++++++++++++++++
 3 files changed, 167 insertions(+), 13 deletions(-)

commit 690d6b97f83149770ef2aa4477c1cb28159678c2
Author: James Turner <james@calminferno.net>
Date:   Fri Apr 5 15:29:55 2013 -0400

    g_atomic_int_get, g_atomic_pointer_get: accept const arguments

    https://bugzilla.gnome.org/show_bug.cgi?id=697386

 glib/gatomic.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit aba02c5248ef1a8911588e38f56d011f81e21345
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Tue Mar 26 12:34:51 2013 +0100

    simpler regex match on the shebang

    The previous pattern didn't match on traditional non-GNU sed(1).
    https://bugzilla.gnome.org/show_bug.cgi?id=696629

 glib/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d474309c3f439fbe8c4af8cd9acac70235cf67a3
Author: Lionel Landwerlin <llandwerlin@gmail.com>
Date:   Fri Apr 5 15:18:28 2013 +0100

    gunixmounts: correctly flag hasmntopt usage

    https://bugzilla.gnome.org/show_bug.cgi?id=697365

 gio/gunixmounts.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3d03c9cb13d8d5f23fa4b118c46e24d2d12996b1
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Fri Apr 5 17:23:01 2013 +0530

    Updated kn translations

 po/kn.po | 126
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 86 insertions(+), 40 deletions(-)

commit a04596417037227329cb4bdbcf3786a60a4f9a52
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Fri Apr 5 16:20:28 2013 +0530

    Updated kn translations

 po/kn.po | 321
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 189 insertions(+), 132 deletions(-)

commit 1517cdb813253a550334b6cb614fa49dde9d1ac9
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Fri Apr 5 12:36:07 2013 +0530

    Updated kn translations

 po/kn.po | 1022
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 557 insertions(+), 465 deletions(-)

commit fb1ad873a6d29e40681e2ffd555e88a1d08428c1
Author: Jesse van den Kieboom <jesse.vandenkieboom@epfl.ch>
Date:   Fri Apr 5 08:01:17 2013 +0200

    GDateTime to GTimeZone in opaque structure doc

 glib/gtimezone.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3b4c9f5fcc6dcd519f106406c489b5492f31dba1
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Thu Apr 4 13:15:00 2013 -0400

    gversionmacros: fix a typo

 glib/gversionmacros.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit db325cd6a3ed3e95d497d7a4087c0f37f155ef01
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Apr 3 14:12:03 2013 -0400

    application: introduce methods to mark the application as busy

    This feature is intended for clients that want to signal a desktop
    shell
    their busy state, for instance because a long-running operation is
    pending.
    The API works in a similar way to g_application_hold and
    g_application_release: applications can call g_application_mark_busy()
    to increase a counter that will keep the application marked as busy
    until the counter reaches zero again.

    The busy state is exported read-only on the org.gtk.Application
    interface
    for clients to use.

    https://bugzilla.gnome.org/show_bug.cgi?id=672018

 docs/reference/gio/gio-sections.txt |  3 ++
 gio/gapplication.c                  | 58
 +++++++++++++++++++++++++++++++++++++
 gio/gapplication.h                  |  5 ++++
 gio/gapplicationimpl-dbus.c         | 55
 +++++++++++++++++++++++++++++++++++
 gio/gapplicationimpl.h              |  3 ++
 5 files changed, 124 insertions(+)

commit 96f7e6d70b7b7aa915e471d5ee5f5bc2a6637af9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 4 11:12:42 2013 -0400

    gtype: interface-after-init exception for gtk#

    gtk# also has a problem with the new interface-after-init restriction
    that nobody noticed until now.  Add an exception for them as well so
    that they have a cycle or so to sort things out.

    https://bugzilla.gnome.org/show_bug.cgi?id=687659

 gobject/gtype.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit c5307e4cba67fadf1749c9a5c127bf1000c1dc89
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 4 09:31:11 2013 -0400

    gtype: interface-after-init exception for glibmm

    glibmm has a pretty difficult-to-solve problem caused by our recent
    change to deny addition of interfaces to classes after initialisation.

    They're looking for a long-term workaround for the problem, but in the
    meantime we can allow the registration to succeed (with warning)
    if the
    class looks like it's being defined by gtkmm.

    https://bugzilla.gnome.org/show_bug.cgi?id=697229

 gobject/gtype.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 859e4239c575a0e597f32d017d6012be7b4d3ab8
Author: Andres G. Aragoneses <knocte@gmail.com>
Date:   Thu Apr 4 12:10:28 2013 +0100

    gobject: fix G_DEFINE_TYPE_EXTENDED docs so code snippet actually
    compiles

    Flags being used in the G_DEFINE_TYPE_EXTENDED sample was "0", so it
    should expand to 0 as well, otherwise the compiler would bark with:
    maman-bar.c: In function ‘maman_bar_get_type’:
    maman-bar.c:36:53: error: ‘flags’ undeclared (first use in
    this function)
    maman-bar.c:36:53: note: each undeclared identifier is reported only
    once for each function it appears in

    https://bugzilla.gnome.org/show_bug.cgi?id=697250

 gobject/gtype.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cef5ce20122ab9f2e62cd582eea751f1efd2c246
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Thu Apr 4 13:26:59 2013 +0530

    Assamese translation updated

 po/as.po | 142
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 72 insertions(+), 70 deletions(-)

commit bfb6ff0dbd587841366cc4fa04d1da549dc3e9d7
Author: David Gomes <davidrafagomes@gmail.com>
Date:   Wed Apr 3 20:15:49 2013 +0100

    gsettings: implemented --version command

    This was discussed in
    https://bugzilla.gnome.org/show_bug.cgi?id=697131

 gio/completion/gsettings |  2 +-
 gio/gsettings-tool.c     | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

commit 4214078f3353d19c65f997eca236726b9e7a3503
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Apr 3 11:51:27 2013 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 196
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 101 insertions(+), 95 deletions(-)

commit d1bbab5689064e23732a132aa53de360d3e59383
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 3 00:31:28 2013 -0400

    gmacros: Mark G_UNAVAILABLE() functions as deprecated (gcc <= 4.4)

    RHEL6 ships with GCC 4.4 by default, which doesn't understand the
    nicer deprecated attribute that takes a message.  However, we can at
    least fall back to the old G_DEPRECATED, rather than silently doing
    nothing.

    This gives me warning messages when building OSTree on RHEL6 when I
    accidentally added a usage of g_unix_fd_source_new().

    https://bugzilla.gnome.org/show_bug.cgi?id=697160

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3456152f23a9507f10c868ff4bc1cca91a486b21
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Fri Mar 29 15:39:26 2013 +0100

    GThreadedResolver: set an error if no records could be found

    It is possible that the upstream servers return something, but
    we then filter all results because they are of the wrong type.
    In that case the API and subsequent GTask calls expect a GError
    to be set.

    https://bugzilla.gnome.org/show_bug.cgi?id=696857

 gio/gthreadedresolver.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit 31c00c1fbeba76e046ade5792b9b3b3638d9f11c
Author: Guido Günther <agx@sigxcpu.org>
Date:   Sun Mar 24 17:11:49 2013 +0100

    codegen: move G_DEFINE_INTERFACE{,_WITH_CODE} before _default_init

    to avoid warnings when built with -Wredundant-decls:

      sessionmanager-presence-generated.c:316:1: warning: redundant
      redeclaration of ‘session_manager_presence_default_init’
      [-Wredundant-decls]
      sessionmanager-presence-generated.c:281:1: note: previous definition
      of ‘session_manager_presence_default_init’ was here
      sessionmanager-presence-generated.c:1273:1: warning: redundant
      redeclaration of ‘object_default_init’ [-Wredundant-decls]
      sessionmanager-presence-generated.c:1259:1: note: previous
      definition of ‘object_default_init’ was here

    https://bugzilla.gnome.org/show_bug.cgi?id=696108

 gio/gdbus-2.0/codegen/codegen.py | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit 576e2ce1db9b6b2ea5f19c45909c6ddbd871e744
Author: Guido Günther <agx@sigxcpu.org>
Date:   Mon Mar 18 22:31:36 2013 +0100

    codegen: Avoid warnings when the generated client code is built
    with -Wunused-parameter

    https://bugzilla.gnome.org/show_bug.cgi?id=696108

 gio/gdbus-2.0/codegen/codegen.py | 52
 ++++++++++++++++++++--------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

commit e359130e3ec840b72628253d0bde44144225fa1a
Author: Colin Walters <walters@verbum.org>
Date:   Tue Apr 2 14:10:15 2013 -0400

    ghash: Suppress -Wmaybe-uninitialized from GCC 4.4

    It's not clever enough to figure out that these are always initialized
    in code paths that use them.

    Reviewed-By: Benjamin Otte <otte@gnome.org>

 glib/ghash.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 8cddb54659582042eaede0da158c3ab40105bada
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 1 15:01:20 2013 -0400

    gaction: add parser for detailed action names

    Expand and formalise the syntax for detailed action names, adding a
    well-documented (and tested) public parser API for them.

    Port the only GLib-based user of detailed action names to the new API:
    g_menu_item_set_detailed_action().  The users in Gtk+ will also be
    ported soon.

    https://bugzilla.gnome.org/show_bug.cgi?id=688954

 docs/reference/gio/gio-sections.txt |   3 ++
 gio/gaction.c                       | 100
 ++++++++++++++++++++++++++++++++++++
 gio/gaction.h                       |   6 +++
 gio/gmenu.c                         |  33 +++++-------
 gio/tests/actions.c                 |  75 +++++++++++++++++++++++++++
 5 files changed, 196 insertions(+), 21 deletions(-)

commit e1fdd59f08b3072464b5374b62146fd69014ef77
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 1 16:53:33 2013 -0400

    Add GLib 2.38 version macros

 glib/gversionmacros.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 1011e4269f2c1bb16ad0a72b4b92abaf625c6b56
Author: Hib Eris <hib@hiberis.nl>
Date:   Sun Mar 31 16:40:34 2013 +0200

    Fix compile error in gdbusmessage.c for win64

    https://bugzilla.gnome.org/show_bug.cgi?id=696973

 gio/gdbusmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2c8008a905df7a67e18ec9642ac7d7905da3f3ce
Author: Xan Lopez <xan@igalia.com>
Date:   Tue Mar 26 19:19:41 2013 +0100

    gtask: free error on finalize if it's set

    https://bugzilla.gnome.org/show_bug.cgi?id=696652

 gio/gtask.c | 3 +++
 1 file changed, 3 insertions(+)

commit fdd3cf921cf32ac5d281df025b45f888cb93d9ff
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Tue Mar 26 10:51:48 2013 +0100

    Fix tiny docs typo.

 gio/gtlsfiledatabase.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 812bb6cff04f1451c76924b257dcac7c8a1d531c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 25 17:49:20 2013 -0400

    bump version for start of unstable branch

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bea56fc270883a6705b377f9c933a3080b901362
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 25 17:39:21 2013 -0400

    GLib 2.36.0

 NEWS         | 32 ++++++++++++++++++++++++++++++++
 configure.ac |  4 ++--
 2 files changed, 34 insertions(+), 2 deletions(-)

commit 978571d854922d12050e17d618e747ebdb4ff0a8
Author: Colin Walters <walters@verbum.org>
Date:   Sun Mar 17 18:33:59 2013 -0400

    g_file_copy(): Ensure G_FILE_COPY_OVERWRITE preserves permissions

    We need to close the stream *before* applying the file modes, because
    g_file_replace() allocates a temporary file.  At the moment we're
    applying the modes to the extant file, then immediately rename()ing
    over it with the default perms.

    This regressed with commit 166766a89fcd173dcd6ffda11f902029928f7f28.

    The real fix here is to have g_file_create_with_info() so that we can
    atomically create a file with the permissions we want.

    https://bugzilla.gnome.org/show_bug.cgi?id=696014

 gio/gfile.c      | 15 +++++++-------
 gio/tests/file.c | 59
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 7 deletions(-)

commit ef2aa88a4f5febd34e89b0101872d513c78ca7f5
Author: Ani Peter <apeter@redhat.com>
Date:   Mon Mar 25 23:08:52 2013 +0530

    Completed for Malayalam

 po/ml.po | 6115
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3377 insertions(+), 2738 deletions(-)

commit d428084e4e3ab30fe56b77579c817fa2f8cf7c13
Author: A S Alam <aalam@users.sf.net>
Date:   Mon Mar 25 22:50:00 2013 +0530

    Punjabi: Translation updated (aalam)

 po/pa.po | 393
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 195 insertions(+), 198 deletions(-)

commit 9d1a4343b1427ce5f70c5b27dd3b77b4b6451182
Author: Krishnababu Krothapalli <kkrothap@redhat.com>
Date:   Mon Mar 25 15:26:55 2013 +0530

    Updated Telugu Translations

 po/te.po | 855
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 440 insertions(+), 415 deletions(-)

commit 21c99744ff723cd58133eb62e81637d5b7983e72
Author: Krishnababu Krothapalli <kkrothap@redhat.com>
Date:   Wed Nov 28 16:06:58 2012 +0530

    Updated Telugu Translations

 po/te.po | 822
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 417 insertions(+), 405 deletions(-)

commit 09fcd1a2dfcb961cc5030377f71cd4febce0fed7
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Mon Mar 25 10:16:49 2013 +0100

    Corrected some GLIB_AVAILABLE_IN_*

 gio/gsocketclient.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit c63d7ce89f60b67eed8e723cfd14d3bb1378244e
Author: Petr Kovar <pkovar@redhat.com>
Date:   Sun Mar 24 20:20:55 2013 +0100

    Update Czech translation

 po/cs.po | 1395
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 701 insertions(+), 694 deletions(-)

commit beae47d838d7e7912ea7716ba4177f286c95a270
Author: Guido Günther <agx@sigxcpu.org>
Date:   Sat Mar 23 12:41:15 2013 +0100

    Init padding to NULL to avoid a missing initializer warning

    like

    sessionmanager-presence-generated.c:920:1: warning: missing
    initializer [-Wmissing-field-initializers]
    sessionmanager-presence-generated.c:920:1:
    warning: (near initialization for
    ‘_org_gnome_session_manager_presence_skeleton_vtable.padding’)
    [-Wmissing-field-initializers]

    https://bugzilla.gnome.org/review?bug=696108

 gio/gdbus-2.0/codegen/codegen.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 82f29a0204b07e92889f49a7ed215c2ffd0c2755
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Sat Mar 23 21:12:04 2013 +0400

    Updated Russian translation

 po/ru.po | 1347
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 688 insertions(+), 659 deletions(-)

commit 159e923d168ed23153e5ef3b2c5ac423e4f8563f
Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
Date:   Sat Mar 23 19:10:01 2013 +0900

    [l10n] Update Japanese translation

 po/ja.po | 148
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 72 insertions(+), 76 deletions(-)

commit 05b3787cda1afb14946929e2aef64b62bce08225
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Fri Mar 22 18:26:42 2013 +0530

    Updated Odia Language along with FUEL implementation

 po/or.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit fe6e7f7bc6bd9cff32efe00d0c288ac15e37bb82
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Fri Mar 22 18:22:51 2013 +0530

    Updated Odia Language along with FUEL implementation

 po/or.po | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 8431ae42b46eb68267f001a9f2c628e09c8c09c8
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Fri Mar 22 18:11:16 2013 +0530

    Updated Odia Language along with FUEL implementation

 po/or.po | 1453
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 717 insertions(+), 736 deletions(-)

commit 7f7154ac495012e0022e18ba2dbfabec6a3ee998
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Fri Mar 22 16:26:24 2013 +0530

    Updated gujarati file

 po/gu.po | 112
 ++++++++++++++++++++++++---------------------------------------
 1 file changed, 42 insertions(+), 70 deletions(-)

commit 48e4d01473760d15501097a49b844e9bd69d7fff
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Fri Mar 22 15:46:01 2013 +0530

    Updated Marathi Translations

 po/mr.po | 1349
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 693 insertions(+), 656 deletions(-)

commit 14fe1ae7b387e6af9ad6a876c3f53ef598bb7dd6
Author: Shantha kumar <shkumar@redhat.com>
Date:   Fri Mar 22 15:17:35 2013 +0530

    Tamil Translations Updated

 po/ta.po | 683
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 353 insertions(+), 330 deletions(-)

commit e4eaa14a8eb9ad3f720bb794f8dfef2ae56a2285
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Mar 21 13:10:36 2013 +0100

    Corrected a GLIB_AVAILABLE_IN_*

 glib/gvariant.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a3de65afee7c9eb4519efd51cf0c256d41e6be47
Author: Rajesh Ranjan <rranjan@redhat.com>
Date:   Thu Mar 21 14:58:09 2013 +0530

    hindi translation

 po/hi.po | 1400
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 698 insertions(+), 702 deletions(-)

commit dd0ea5dcc2f7de16d23603ddee93db6c0367d689
Author: Tristan Van Berkom <tristan.van.berkom@gmail.com>
Date:   Wed Jan 16 16:26:08 2013 +0900

    Added examples to GTestDBus documentation

 docs/reference/gio/migrating-gdbus.xml |  4 ++
 gio/gtestdbus.c                        | 75 +++++++++++++++++++++++++++++
 gio/tests/gdbus-test-fixture.c         | 86
 ++++++++++++++--------------------
 3 files changed, 114 insertions(+), 51 deletions(-)

commit 7081635b7fe372d2aad418724a99591307cd4bfb
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Thu Mar 21 00:22:58 2013 +0100

    Updated Hungarian translation

 po/hu.po | 1549
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 797 insertions(+), 752 deletions(-)

commit ed95b01d896196ca1ee63a9354238ea6c5320d00
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Wed Mar 20 09:35:28 2013 +0100

    Updated Basque language

 po/eu.po | 2009
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1107 insertions(+), 902 deletions(-)

commit 9f758c29b2f396f43324437ad23cbfd30d19afd4
Author: Victor Ibragimov <victor.ibragimov@gmail.com>
Date:   Tue Mar 19 22:30:07 2013 +0100

    [l10n] Added Tadjik translation

 po/LINGUAS |    1 +
 po/tg.po   | 4162
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 4163 insertions(+)

commit 4c6c093b3600d5bc7f649a7dcc89486e38bd31e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 18 23:28:27 2013 -0400

    More clean up for Unicode corrigendum #9

    Fix some more testcases.

 tests/utf8.txt | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

commit 11bb67bbdac1fe4eaacbc1211d637e3276a0e3eb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 18 23:01:08 2013 -0400

    Small NEWS change

 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a8939a67dea9af04cd2735fd05944da764857d7b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 18 22:57:55 2013 -0400

    tests: remove a pair of testcases that fail in en_CA

    These testcases don't work with the Canadian date format, so remove
    them.

 glib/tests/date.c | 12 ------------
 1 file changed, 12 deletions(-)

commit 366b0481be429a0c9f6038a2c15dd2d135beef68
Author: Ján Kyselica <kyselica.jan@gmail.com>
Date:   Mon Mar 18 21:22:18 2013 +0100

    Updated slovak translation

 po/sk.po | 82
 +++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 45 insertions(+), 37 deletions(-)

commit 3e41aba011c4d47fa8cdf4b685baf95179a94ae5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 18 15:23:07 2013 -0400

    Another update

 NEWS | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit 9863cce079e8ece11cce61902d6ea08c6780467a
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Mar 18 14:01:28 2013 +0100

    goption: g_option_context_new allows NULL for parameter_string

 glib/goption.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cc092232aaedd24ad4757c22803e91e65e61e46d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Mar 18 16:52:36 2013 +0800

    Update Visual Studio property sheets

    "Install" gtask.h... it's needed.

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit 5825dd864b965d4bf32f87cd042d5bb60850eaa7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 17 23:30:34 2013 -0400

    g_hash_table_get_keys: Improve docs slightly

    https://bugzilla.gnome.org/show_bug.cgi?id=630284

 glib/ghash.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d59acb701e8ab80f51f19dc9ec9d5145fc4fc2e7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 17 23:01:21 2013 -0400

    Small cleanup to tutorial headings

    This makes all the subsection headers consistent.
    https://bugzilla.gnome.org/show_bug.cgi?id=659428

 docs/reference/gobject/tut_howto.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0a13464df86ac2c68c52686451ce250f2e454d3a
Author: David King <amigadave@amigadave.com>
Date:   Fri Feb 17 14:54:31 2012 +0000

    docs: Elaborate replacement for g_strncasecmp

    https://bugzilla.gnome.org/show_bug.cgi?id=568405

 glib/gstrfuncs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 9a08d81b0d58d78e7f2353a088690d8d243d4425
Author: David Schleef <ds@schleef.org>
Date:   Sun Mar 17 15:56:17 2013 -0700

    Add warning to g_base64_decode()

    https://bugzilla.gnome.org/show_bug.cgi?id=696015

 glib/gbase64.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit a8811fb86477d162379694eb8a4480a11ee8cc71
Author: Patrick Ohly <patrick.ohly@intel.com>
Date:   Thu Mar 7 18:44:44 2013 +0100

    GDBusMethodInvocation: leak and potential crash

    _g_dbus_method_invocation_new is said to allow method_info == NULL,
    but will crash inside g_dbus_method_info_ref when the method_info
    really is NULL, because g_dbus_method_info_ref does not allow NULL as
    parameter. Fixed by checking for NULL in _g_dbus_method_invocation_new
    itself.

    The leak itself happens because _g_dbus_method_invocation_new stores a
    new reference to the method_info without also unreferencing it. Fixed
    by adding the missing unref, protected by an if because the pointer
    may be NULL.

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=695376

 gio/gdbusmethodinvocation.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 1a9567139d56d648eb1fa7b07a660488b6b50435
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Sun Mar 17 20:08:27 2013 +0200

    Updated Latvian translation

 po/lv.po | 1354
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 698 insertions(+), 656 deletions(-)

commit a484b6205d079cf1bdfef99fd6c52efb0c0e31c9
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Sun Mar 17 16:40:46 2013 +0300

    Updated Belarusian translation.

 po/be.po | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 9a8bae80360a12f7641b0bf33f0e46f30bad1b1b
Author: Gheyret Kenji <gheyret@gmail.com>
Date:   Sun Mar 17 13:54:19 2013 +0900

    Updated Uyghur translation

    Signed-off-by: Gheyret Kenji <gheyret@gmail.com>

 po/ug.po | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

commit 255c65f83c1515a7e3fc4609b36e72acc08a79e4
Author: Stephan Bergmann <sbergman@redhat.com>
Date:   Fri Mar 15 17:30:24 2013 +0100

    gmacros: Ensure GUINT32/64_SWAP_LE_BE macros parenthesize arguments

    Like all macros, we need to parenthesize arguments to ensure the order
    of operations is correct.

    See the mail thread starting at
    <http://lists.fedoraproject.org/pipermail/devel/2013-March/180302.html>
    "GCC produced wrong code in gvfs-1.14.2-3.fc18.x86_64" for how this
    caused trouble with GVFS (which in turn caused trouble with
    LibreOffice, where running "soffice sftp://.../.../test.odt" to access
    an .odt file via GVFS failed to properly type-detect that file as a
    Writer document and produced bogus error messages about the file being
    broken).

    https://bugzilla.gnome.org/show_bug.cgi?id=695925

 glib/gtypes.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 55a235d377f8da416834156b89c7f5b98b02583b
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Fri Mar 15 12:55:57 2013 +0000

    Updated Portuguese translation and converted to New Spelling (Novo AO)

 po/pt.po | 1579
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 802 insertions(+), 777 deletions(-)

commit e3c2d030922d1cab1eab45d3695622ccf0a736e6
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Mar 14 23:24:18 2013 +0100

    Doc: clarify set_property() vfunc

    Implementations "don't need to ...". It was not clear what happen
    if they do it all the same.

    https://bugzilla.gnome.org/show_bug.cgi?id=695887

 gobject/gobject.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit e5690794146d7a0db7683ecd783b621b33cf2c52
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Mar 14 22:56:54 2013 +0100

    Doc: clarify a bit g_signal_connect_object()

    "the object" can be a bit confusing for a beginner, he can think it is
    the @instance.

    https://bugzilla.gnome.org/show_bug.cgi?id=695887

 gobject/gobject.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2c566aa09ebffb379e34136b33bcaf7f87ec331c
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Thu Mar 14 23:17:33 2013 +0100

    Updated Slovenian translation

 po/sl.po | 1209
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 601 insertions(+), 608 deletions(-)

commit 2d1456b0ed8014a55f806b6cab106c0969794486
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Thu Mar 14 16:28:11 2013 +0530

    Updated gujarati file

 po/gu.po | 373
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 208 insertions(+), 165 deletions(-)

commit a0a68efc1e7d3e4ec81e1cd97a6337d77a15afff
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Thu Mar 14 15:24:20 2013 +0530

    Updated gujarati file

 po/gu.po | 1408
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 734 insertions(+), 674 deletions(-)

commit 605c4ca24ef0cbfdee5775526399f217f659faea
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Mon Mar 4 20:03:26 2013 +0100

    live-g-file: test hidden files

    We test for traditional Unix dot-leading files as well as
    for files listed in the .hidden file.

    https://bugzilla.gnome.org/show_bug.cgi?id=695147

 gio/tests/live-g-file.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

commit 3902006a5b043ad418ff5ee1542d54c678280db8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 12 12:53:42 2013 -0400

    glocalfileinfo: Stop using PATH_MAX for .hidden

    We were using PATH_MAX to size a static array for reading lines from
    the .hidden file.  Some platforms (Hurd) don't declare a PATH_MAX.

    Switch to using g_file_get_contents() and g_str_split('\n') instead.

    Also take the time to clean up a bit with a switch to using a
    'set mode'
    GHashTable (since this code was originally written before we had
    those).

    This patch is largely based on a patch from Emilio Pozuelo Monfort
    (who
    also reported the bug).

    https://bugzilla.gnome.org/show_bug.cgi?id=695147

 gio/glocalfileinfo.c | 32 +++++++++++++-------------------
 1 file changed, 13 insertions(+), 19 deletions(-)

commit 8028f54c9c66b7e483ff658e082062ad5275f264
Author: Gheyret Kenji <gheyret@gmail.com>
Date:   Wed Mar 13 20:48:15 2013 +0900

    Updated Uyghur translation

    Signed-off-by: Gheyret Kenji <gheyret@gmail.com>

 po/ug.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 498d907bcbc36fe5c1ac55e1a93b08594852c434
Author: Gheyret Kenji <gheyret@gmail.com>
Date:   Wed Mar 13 20:39:02 2013 +0900

    Updated Uyghur translation

    Signed-off-by: Gheyret Kenji <gheyret@gmail.com>

 po/ug.po | 521
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 283 insertions(+), 238 deletions(-)

commit 4db7e5ea0d73e895db442501e3cf07e2e600d03f
Author: Joe Hansen <joedalton2@yahoo.dk>
Date:   Tue Mar 12 23:14:39 2013 +0100

    Updated Danish translation

 po/da.po | 1319
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 674 insertions(+), 645 deletions(-)

commit ee8d54b0cfc75f828b250504cfc9092e6ccf2a00
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Tue Mar 12 23:02:33 2013 +0100

    [l10n] Updated Catalan (Valencian) translation

 po/ca@valencia.po | 1346
 +++++++++++++++++++++++++++--------------------------
 1 file changed, 687 insertions(+), 659 deletions(-)

commit 7b7cf945773c532770f7895724405c795f5f94c7
Author: Gil Forcada <gforcada@gnome.org>
Date:   Tue Mar 12 23:02:24 2013 +0100

    [l10n] Updated Catalan translation

 po/ca.po | 1344
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 686 insertions(+), 658 deletions(-)

commit 5131421c09706658d1b33e9e5fc39210dcbfd0a9
Author: Claude Paroz <claude@2xlibre.net>
Date:   Tue Mar 12 18:17:12 2013 +0100

    Updated French translation

 po/fr.po | 1332
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 676 insertions(+), 656 deletions(-)

commit e359bc09c2dc2f4feca1f4aec2ca6602aef870d1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 12 12:32:16 2013 -0400

    tests: clean up for Unicode corrigendum #9

    Unicode corrigendum #9 spells out in no uncertain terms that on
    conversion interfaces we should not reject characters like U+FFFE and
    U+FFFF which we were doing before.

    Commit f91ef4ef15d220f6899c97aaf5b1c0a8f68cfe9a started accepting
    these
    characters, but we had some testcases that were checking that strings
    containing these characters should be rejected.

    Update the tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=694669

 glib/tests/utf8-validate.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit a839dc5df6e16dd060490091ed00c4c7781f5ddd
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Tue Mar 12 18:23:29 2013 +0530

    Assamese translation updated for gnome 3.8

 po/as.po | 605
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 306 insertions(+), 299 deletions(-)

commit 97050e503fc012239b61bef70df4e8f7586e3b7c
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Mar 11 09:29:34 2013 +0100

    Fix /appinfo/mime tests

    Commit f641699 (for bug 675333) introduced a check whether the Exec=
    program in
    a .desktop actually exists. This broke the /appinfo/mime/* test
    cases which use
    executable names like "my_app".

    Use real ones instead (like "echo" and "sleep"), and add a new
    /appinfo/mime/ignore-nonexisting test case which verifies that
    g_desktop_app_info_new() indeed ignores nonexisting executables.

    https://bugzilla.gnome.org/show_bug.cgi?id=695191

 gio/tests/mimeapps.c | 36 +++++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

commit 48b18041c119cfa28488663d044158f1502ee379
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Mon Mar 11 22:08:36 2013 +0100

    [l10n] Updated Italian translation.

 po/it.po | 97
 ++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 51 insertions(+), 46 deletions(-)

commit 40026bce914d7525f4b8e9f0e60058fcaee97077
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Mar 11 21:54:50 2013 +0100

    Updated Galician translations

 po/gl.po | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 1c10773d681e92c1e44a97c8ff9e0e2e977b578a
Author: Seong-ho Cho <darkcircle.0426@gmail.com>
Date:   Tue Mar 12 02:22:06 2013 +0900

    Updated Korean translation

 po/ko.po | 1400
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 702 insertions(+), 698 deletions(-)

commit 77798c227841487de7b7fbcfbd115e1492054310
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Mar 11 18:09:07 2013 +0100

    Updated Spanish translation

 po/es.po | 384
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 195 insertions(+), 189 deletions(-)

commit f240872cf85a34c29bac18754c6cb1ee562cf3a0
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Mon Mar 11 17:26:39 2013 +0200

    Updated Greek translation

 po/el.po | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

commit 5e20ba457de0902175f04fbc68d4035a7c174391
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Mon Mar 11 11:29:28 2013 +0100

    Updated Serbian translation

 po/sr.po       | 386
 +++++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 386
 +++++++++++++++++++++++++++++----------------------------
 2 files changed, 392 insertions(+), 380 deletions(-)

commit 8a8f423629c89f6c7a066bfa5f0e1270508b4999
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Sun Mar 10 17:06:47 2013 +0100

    [l10n] Updated German translation

 po/de.po | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 1da401d7b8a7f3fb0dfd2048980d61482724c415
Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
Date:   Sun Mar 10 21:55:53 2013 +0900

    [l10n] Update Japanese translation

 po/ja.po | 1548
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 796 insertions(+), 752 deletions(-)

commit d72e609ff6eb37e0cfb7fb783dd7d626497aac36
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Sat Mar 9 15:43:20 2013 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 9da2125f4906b6bedc1d66dac73865a052af430e
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Mar 9 19:41:07 2013 +0100

    Updated Polish translation

 po/pl.po | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 92de11e7e78bb50581cbbb7f06e5f1620a0dcc1d
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Mar 9 17:20:42 2013 +0200

    Updated Lithuanian translation

 po/lt.po | 396
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 198 insertions(+), 198 deletions(-)

commit 2549c33451c9460c25030baa6d25bc0002532b2a
Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
Date:   Sat Mar 9 23:56:02 2013 +0900

    gsettings-tool: Make a string translatable

    https://bugzilla.gnome.org/show_bug.cgi?id=695425

 gio/gsettings-tool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 74e92836d0624e056c7747cec6da17461cfaab6b
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Mar 9 13:50:59 2013 +0100

    Updated Slovenian translation

 po/sl.po | 381
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 191 insertions(+), 190 deletions(-)

commit 9c3d69eaa78d89e58580fcd0ab3e364b1c4833eb
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Sat Mar 9 14:01:43 2013 +0300

    Updated Belarusian translation.

 po/be.po | 48 ++++++++++++++++++++++++++----------------------
 1 file changed, 26 insertions(+), 22 deletions(-)

commit eaaa5ef6fb445172f0e24ee0271e4e72aa8911a3
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Sat Mar 9 11:37:03 2013 +0200

    Updated Greek translation

 po/el.po | 619
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 314 insertions(+), 305 deletions(-)

commit af6192631284c283ce511d02522d3c60a436d1d2
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Mar 8 20:46:44 2013 +0100

    Updated Polish translation

 po/pl.po | 80
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 40 insertions(+), 40 deletions(-)

commit 85b8f23d627ebf50a461a9b6d305482f1bbdeb2e
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Fri Mar 8 17:06:53 2013 +0100

    [l10n] Updated German translation

 po/de.po | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit 7d468ad538a2c35a6d061602508e71d55ea356ab
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Fri Mar 8 10:37:54 2013 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 33fb5227ad7953cf3336a8ce48b00e6300e86dce
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Fri Mar 8 15:46:25 2013 +0700

    Updated Thai translation

 po/th.po | 6057
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3313 insertions(+), 2744 deletions(-)

commit f67a9905ff310b124f91f4d232b785553eafbd2b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Mar 7 20:14:08 2013 -0500

    [win32] Remove MemoryBarrier() fallback implementation

    I added these because the older mingw32 toolchain didn't have
    MemoryBarrier().  The newer mingw-w64 toolchain however has.
    As reported by John Emmas this was causing build failure with
    MSVC because of inline issues.  But that reminded me that we
    may be taking this path even if the system implements
    MemoryBarrier as a function, which is a waste.  So, just remove
    it.

 glib/gatomic.c | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

commit 75d424977e132b6f3ec33eb8d3b27339b3120862
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Mar 8 00:49:41 2013 +0100

    Updated Galician translations

 po/gl.po | 92
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 46 insertions(+), 46 deletions(-)

commit f1173dd7251d51f1c8895fceb89f4ccdda912b47
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Mar 7 16:44:36 2013 -0500

    Fix a mixup of singular and plural

    Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=695339

 gio/gdbusmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b3dc7e734dbd62b761f41ef1260e39c8c58794d7
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Thu Mar 7 16:20:49 2013 +0300

    Updated Belarusian translation.

 po/be.po | 1301
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 656 insertions(+), 645 deletions(-)

commit 865316dfb847a539f1b51e6931d46b05aa1d1fc2
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Thu Mar 7 00:31:42 2013 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 2101
 +++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 1166 insertions(+), 935 deletions(-)

commit 155f599b206f67642970e0bc35b3ba5e1386b884
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Mar 6 20:32:14 2013 -0500

    tests/appinfo: Fix a typo

    The environment variable name is BLA, not BAR, so if BAR is
    set for some strange reason, the test fails.

 gio/tests/appinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 717e933e72605c9b83c3007d9613f25e788dc622
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Tue Mar 5 22:33:18 2013 +0100

    [l10n] Updated German translation

 po/de.po | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit f91ef4ef15d220f6899c97aaf5b1c0a8f68cfe9a
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Feb 25 14:48:14 2013 +0100

    unicode: Allow noncharacters

    Implement unicode corrigendum #9.

    https://bugzilla.gnome.org/show_bug.cgi?id=694669

 glib/gutf8.c         | 14 +++-----------
 glib/tests/unicode.c |  2 +-
 2 files changed, 4 insertions(+), 12 deletions(-)

commit 06a59f889a8d3c8a63622af64d253632a0530017
Author: Ognyan Tonchev <ognyan@axis.com>
Date:   Thu Feb 28 18:27:14 2013 +0100

    base64: Fix g_base64_decode_step ()

    Do not produce invalid data if there was padding character in the
    previous sequence.

    https://bugzilla.gnome.org/show_bug.cgi?id=694843

 glib/gbase64.c      | 14 ++++++++++++--
 glib/tests/base64.c |  2 --
 2 files changed, 12 insertions(+), 4 deletions(-)

commit 27b19cee1bb5007f9dd123e171bcf3f978263f15
Author: Colin Walters <walters@verbum.org>
Date:   Fri Mar 1 13:29:29 2013 -0500

    base64: Add tests for incremental decoding with very small block size

    At the moment, sizes 1-3 are commented out since they fail, but
    a future patch will fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=694843

 glib/tests/base64.c | 53
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

commit f641699299ed2713cf247e3465bb1a21612b36f7
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri May 4 17:51:35 2012 -0400

    desktopappinfo: check whether the specified executable is valid

    Before declaring the desktop file as valid, make sure the referenced
    application actually exists in path and the commandline is not
    malformed.

    https://bugzilla.gnome.org/show_bug.cgi?id=675333

 gio/gdesktopappinfo.c | 33 ++++++++++++++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

commit fd04d6860fd6a964b7e1dde05cd5b12ba1b7994e
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Sun Mar 3 22:11:21 2013 +0100

    [l10n] Updated German translation

 po/de.po | 1313
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 668 insertions(+), 645 deletions(-)

commit a9a6c4ae81eec7b2ac0ceecaff9a63bb7ec6bc50
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Mar 2 09:25:48 2013 -0500

    Update for 2.37.9

 NEWS | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit 7be9de786a4cb1d0ab63a412ee0af2de0d250e61
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Mar 2 20:42:13 2013 +0700

    Updated Vietnamese translation

 po/vi.po | 51 ++++++++++++++++++---------------------------------
 1 file changed, 18 insertions(+), 33 deletions(-)

commit 773297519eeb532b8989337333a95bc960e97765
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Mar 2 20:37:35 2013 +0700

    po/vi: import from Damned Lies

 po/vi.po | 1393
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 717 insertions(+), 676 deletions(-)

commit 14768e97f8c87c0f4a32a7f946017fd853a67512
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 1 19:11:11 2013 -0500

    Make GList more robust

    g_list_delete_link was silently ignoring a NULL link before
    the last change. Make it do so again, since we've found callers
    that rely on this.

 glib/glist.c | 3 +++
 1 file changed, 3 insertions(+)

commit 10630eed3066907a880816592bb35965d203f02c
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Fri Mar 1 22:23:13 2013 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1306
 +++++++++++++++++++++++++++++-----------------------------
 po/zh_TW.po | 1308
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 1330 insertions(+), 1284 deletions(-)

commit fe10e864712d00191d1d3234e7a5ca643fd7ac6b
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Fri Mar 1 06:35:30 2013 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 1581
 ++++++++++++++++++++++++++---------------------------------
 1 file changed, 687 insertions(+), 894 deletions(-)

commit c7996825ce999a99f2d73722419c0d11d0b52238
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 26 12:38:57 2013 +0800

    Fix gspawn-win32-helper.c with newer Microsoft CRTs

    The newer Microsoft CRTs (8.0/2005 and later) impose much stricter
    (paranoid) checks on close() being doubly called and the use of
    invalid file descriptors.  This makes the calls on the file
    descriptors
    use more caution when using them and only call close() when necessary.

    This also adds an (empty) invalid parameter handler* as required
    by the
    newer Microsoft CRTs to prevent the system from aborting the process
    when we are checking whether a file descriptor is valid.

    [*]: http://msdn.microsoft.com/en-us/library/a9yf33zb.aspx

    https://bugzilla.gnome.org/show_bug.cgi?id=693646

 glib/gspawn-win32-helper.c | 79
 ++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 72 insertions(+), 7 deletions(-)

commit 872d3634a78b417612d90c3472d5cd7078ef2440
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Mar 1 16:11:24 2013 +0800

    Update config.h.win32.in

    Add entry for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, to better reflect
    the
    entries of items in config.h.in.  We are not currently defining
    this here
    as the pre-configured config.h.win32.in is primarily meant for Visual
    Studio builds of GLib-the MinGW/GCC/Clang builds of GLib will normally
    use the autotools builds, which should give the correct config.h
    entries
    upon running ./configure.

 config.h.win32.in | 3 +++
 1 file changed, 3 insertions(+)

commit 3f678afa0547f0bacf0579c82a8939c25f022643
Author: Wylmer Wang <wantinghard@gmail.com>
Date:   Thu Feb 28 21:07:02 2013 +0800

    Update Simplified Chinese translation

 po/zh_CN.po | 1969
 ++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1082 insertions(+), 887 deletions(-)

commit 156b14cde5423c5bdaf8f28f1a8a5a0b54fbe455
Author: Colin Walters <walters@verbum.org>
Date:   Tue Feb 26 11:19:51 2013 -0500

    build: Add --disable-compile-warnings

    Some (broken) toolchains for example trip up
    -Werror=missing-prototypes in system headers.  This patch allows
    people to skip the formerly hardcoded "baseline" warnings.

    https://bugzilla.gnome.org/show_bug.cgi?id=694757

 configure.ac              | 10 ++++++++--
 gio/Makefile.am           |  2 ++
 gio/tests/Makefile.am     | 11 ++++++-----
 glib/Makefile.am          |  2 ++
 glib/tests/Makefile.am    |  2 ++
 gmodule/Makefile.am       |  2 ++
 gobject/Makefile.am       |  2 ++
 gobject/tests/Makefile.am |  2 ++
 gthread/Makefile.am       |  2 ++
 9 files changed, 28 insertions(+), 7 deletions(-)

commit e3582c617cf00f3c90b6448d11cf253933a28802
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Feb 25 23:08:43 2013 -0500

    Minor

 glib/gwakeup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 547221b486473ed9b7f85634ce162f937e5912b1
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Feb 25 22:48:03 2013 -0500

    [win32] Fix atomic ops on mingw*

    Bug 682896 - glib doesn't build on mingw32

 configure.ac | 63
 ++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 38 insertions(+), 25 deletions(-)

commit e1ccae841658854a5db0d907edb2b1f2c0a68ef5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Feb 25 22:01:11 2013 -0500

    [win32] Add fallback implementations for gatomic.c on mingw32

    Bug 682896 - glib doesn't build on mingw32

 glib/gatomic.c | 72
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 67 insertions(+), 5 deletions(-)

commit 8efe198d2e7f2c02d2d11831e6f99313960ca1c3
Author: A S Alam <aalam@users.sf.net>
Date:   Tue Feb 26 07:18:28 2013 +0530

    Punjabi: Translation updated (aalam)

 po/pa.po | 1263
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 647 insertions(+), 616 deletions(-)

commit 921593b022491ce3dbd61739cc9808a715f25b9f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 24 22:54:09 2013 +0100

    GList: be more robust

    We can detect list corruption in some cases. The new test case
    demonstrates a case where we can warn instead of silently corrupt
    the list. This was pointed out by Steve Grubb.

    Also, use the same auxiliary routine in all places where we unlink
    a list element.

 glib/glist.c      | 69
 ++++++++++++++++++++++++++++---------------------------
 glib/tests/list.c | 27 ++++++++++++++++++++++
 2 files changed, 62 insertions(+), 34 deletions(-)

commit 6833267a07cb3251bc1fa89c99cc3fe6c47001e2
Author: Dan Winship <danw@gnome.org>
Date:   Sun Feb 24 15:02:10 2013 +0100

    gtestutils: fix two GLIB_AVAILABLE flags

    g_test_expect_message() and g_test_assert_expected_messages() appeared
    in 2.34

 glib/gtestutils.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit cbd070d8b8589dda6d70f09e8fbff12610aa4b3f
Author: Ján Kyselica <kyselica.jan@gmail.com>
Date:   Fri Feb 22 22:27:10 2013 +0000

    Updated Slovak translation

 po/sk.po | 655
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 332 insertions(+), 323 deletions(-)

commit 0a39acc0579d89fc9bfbcf31596f336568a795c2
Author: Gheyret Kenji <gheyret@gmail.com>
Date:   Fri Feb 22 22:52:26 2013 +0900

    Updated Uyghur translation

    Signed-off-by: Gheyret Kenji <gheyret@gmail.com>

 po/ug.po | 193
 +++++++++++++++++++++++++--------------------------------------
 1 file changed, 75 insertions(+), 118 deletions(-)

commit f5d40bd8138991287bbdc2e249bd35cf82caf123
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 21 11:25:26 2013 +0000

    gsignal: improve warning output

    When looking up signals by name (to connect, for example) and
    the named
    signal cannot be found on the given instance, report the type of the
    instance.

    This is quite a lot more useful as a diagnostic message than only a
    memory address.

    https://bugzilla.gnome.org/show_bug.cgi?id=694350

 gobject/gsignal.c | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

commit aede77464259e6d50e724113c16f301367201a72
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Feb 21 16:10:36 2013 +0100

    signals: Ensure we ref handler in emission fast path

    We need to keep a reference to the handler in the fast path, just like
    in the slow path, otherwise if another thread disconnects the handler
    we may destroy the closure while we're using it without the lock held.

    We also move the freeing of the instance to after the emission
    is totally
    done as the handler_unref_R (and the tracepoint) reference it.

    https://bugzilla.gnome.org/show_bug.cgi?id=694253

 gobject/gsignal.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 3e274423bacfa1b702fea93fba9d6d44c650db44
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Feb 21 16:06:24 2013 +0100

    signals: No need to use atomics for Handler refcount

    handler_ref and handler_unref_R are always called with the signal
    lock held. This is obvious for handler_unref_R as it even sometimes
    drops this lock, and can be verified quickly for handler_ref by
    looking
    at all call sites.

    This improves the performace about 6% on the emit-handled and the
    emit-handled-generic tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=694253

 gobject/gsignal.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 5bbca5fa0c96904542f286b55329820a9567a9c9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 21 14:58:32 2013 +0000

    GApplication: document IS_SERVICE timeout properly

    The documentation was suggesting that using G_APPLICATION_IS_SERVICE
    would automatically set an inactivity timeout (ie: app stays
    around for
    a while after the use count drops to zero).

    In reality, it only adds an initial 10 second wait for the first
    activation message to arrive after which it uses the normal inactivity
    timeout mechanism.

 gio/gapplication.c | 9 ++++++---
 gio/gioenums.h     | 5 +++--
 2 files changed, 9 insertions(+), 5 deletions(-)

commit ce0ff7c9da6d159669e4aad2e964a56fc915cc7c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 21 10:19:27 2013 +0000

    threads: don't do rlimit test when running as root

    Linux CAP_SYS_RESOURCE overrides RLIMIT_NPROC so we probably shouldn't
    test thread creation failure when running the test as root...

 glib/tests/thread.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 9670d06a660cd27a30a339798f4af1ce4c5abb29
Author: Dan Winship <danw@gnome.org>
Date:   Tue Feb 19 16:12:30 2013 -0500

    GNetworkMonitorBase: implement can_reach_async

    Implement the g_network_monitor_can_reach_async() rather than falling
    back to the default implementation, which calls the sync version (not
    in a thread).

    https://bugzilla.gnome.org/show_bug.cgi?id=694181

 gio/gnetworkmonitorbase.c | 130
 +++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 112 insertions(+), 18 deletions(-)

commit 4ca3d80ff3d5d076c0bfc187b4efa9fa51cbcca2
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Tue Feb 19 11:18:11 2013 -0500

    g_network_monitor_base_can_reach: Check for default route after
    enumerating.

    Enumerate the GSocketConnectable before checking for a default route.
    For some connectable types this will involve a DNS lookup.  This will
    elminate false positives for hosts behind a VPN since DNS lookup will
    fail if the VPN is not connected.

    https://bugzilla.gnome.org/show_bug.cgi?id=694181

 gio/gnetworkmonitorbase.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit c6c11665668c47841011258e5dbca07ad3d8aba0
Author: Dan Winship <danw@gnome.org>
Date:   Tue Feb 19 15:19:22 2013 -0500

    GNetworkAddress: drop cached addresses on resolver reload

    If the resolver reloads (ie, if /etc/resolv.conf changes),
    GNetworkAddress needs to re-resolve its addresses the next time it's
    enumerated. Otherwise hosts that have different IP addresses inside
    and outside a VPN won't work correctly if you hold on to a
    GNetworkAddress for them for a long time.

    https://bugzilla.gnome.org/show_bug.cgi?id=694181

 gio/gnetworkaddress.c    | 70
 +++++++++++++++++++++++++++++++++++-------------
 gio/gnetworkingprivate.h |  2 ++
 gio/gresolver.c          | 14 ++++++++++
 3 files changed, 67 insertions(+), 19 deletions(-)

commit cfafad5aefeeab1a4ee208cefa15e01d31932611
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 4 14:41:25 2013 +0100

    gutils: stop g_get_home_dir() from reading passwd

    In the case that the "HOME" environment variable is set (as it
    is under
    normal circumstances), we don't really need to be opening /etc/passwd.

    For historical reasons (ie: how we used to ignore $HOME) and due
    to the
    grouping of many unrelated things together (reading username,
    hostname,
    home directory, tmpdir, etc.) into one function we were still opening
    /etc/passwd in g_get_home_dir(), even if $HOME was set.

    Since earlier commits removed code from it, all that remains in
    g_get_any_init_do() is the logic for dealing with $HOME and reading
    the
    password database.

    We now split the logic to deal with $HOME into g_get_home_dir().  With
    only the password database functionality remaining,
    g_get_any_init_do()
    is renamed to g_get_user_database_entry() and modified not to
    set global
    variables but rather return a struct.  If g_get_home_dir() cannot find
    $HOME, it falls back to calling g_get_user_database_entry() and using
    the home directory from there.

    Use of the 'g_utils_global' lock is further reduced by using
    g_once_init_enter() to protect the critical sections in each of
    g_get_user_database_entry() and g_get_home_dir().

    Finally, the g_get_user_name() and g_get_real_name() functions are
    modified to use the new regime.

    https://bugzilla.gnome.org/show_bug.cgi?id=693204

 glib/gutils.c | 399
 +++++++++++++++++++++++++++++++---------------------------
 1 file changed, 213 insertions(+), 186 deletions(-)

commit 167c73faf461cf84accffe190813ce0ab5ef6cdc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 4 14:40:03 2013 +0100

    gutils: replace direct references to g_home_dir

    Some code was directly calling g_get_any_init() and then expecting
    to be
    able to use the static 'g_home_dir' variable directly.  Change these
    over to g_get_home_dir() instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=693204

 glib/gutils.c | 37 +++++++++++++++----------------------
 1 file changed, 15 insertions(+), 22 deletions(-)

commit 9879c7f5fa640d994dc1209ef333d4be706670f0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 4 14:17:08 2013 +0100

    gutils: split out g_get_tmp_dir()

    Remove the code for getting the tmpdir from g_get_any_init_do() and
    outside of the g_utils_global lock.

    https://bugzilla.gnome.org/show_bug.cgi?id=693204

 glib/gutils.c | 125
 ++++++++++++++++++++++++++--------------------------------
 1 file changed, 55 insertions(+), 70 deletions(-)

commit 3c9691f7f8b3b66905ab689a5dddc6157182b50e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 4 13:49:06 2013 +0100

    gutils: split out g_get_host_name()

    Remove the code for getting the hostname from g_get_any_init_do() and
    outside of the g_utils_global lock.

    https://bugzilla.gnome.org/show_bug.cgi?id=693204

 glib/gutils.c | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

commit 8c42a663f8182f8281c083390aa761e8e9badc63
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 4 14:04:05 2013 +0100

    win32: Drop old codepage ABI from gutils.c

    This is a source-compatible change and only breaks ABI with respect to
    truly ancient binaries (and those binaries are already broken
    for other
    reasons).

    Back in the day, functions like g_get_user_name() used to return
    strings
    in the system codepage instead of utf8 (as they do today).

    It was decided at some point to change these functions to return utf8,
    breaking source compatibility but keeping ABI compatibility.  This was
    done by exporting new symbols with names like g_get_user_name_utf8()
    and
    using a #define of the old name over to the new name (so that newly
    compiled code would link against the _utf8 version, but old binaries
    would continue to use the non-utf8 variant).

    Meanwhile, glib has undergone several ABI breaks on Windows since, so
    those old binaries don't work anymore.

    Start to clean up this mess by removing the #define renaming.  New
    binaries calling g_get_user_name() will now link against
    g_get_user_name() and it will return utf8.

    We must keep the functions like g_get_user_name_utf8() for binary
    compatibility with recently built programs (ie: ones built with the
    renaming).  Nobody should have ever been calling these directly and of
    course they can return utf8, so just add them as internal wrappers
    in the
    .c file and declare them _GLIB_EXTERN there.

    One day, if we feel like breaking Windows ABI again, we can finish the
    cleanup by dropping the wrappers.  There is some talk of introducing
    something like 'ABI compatible for two years' and this change would be
    compatible with such a regime.

    https://bugzilla.gnome.org/show_bug.cgi?id=693204

 glib/gutils.c | 71
 ++++++++++-------------------------------------------------
 glib/gutils.h | 19 ----------------
 2 files changed, 12 insertions(+), 78 deletions(-)

commit b029135ed49b33d8f301d79a9ca27df6894d8b22
Author: Mike Ruprecht <mike.ruprecht@collabora.co.uk>
Date:   Mon Feb 18 07:56:05 2013 -0600

    GOutputStream: Remove unused SpliceUserData struct

 gio/goutputstream.c | 6 ------
 1 file changed, 6 deletions(-)

commit 90f726f6b96c274c35358dc178cc0e85a18fdc99
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 19 18:26:30 2013 +0800

    Update Visual Studio property sheets

    "install" gio/gsimpleproxyresolver.h...

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit d21699a272bd046d43faaeb107770bef16c47dd7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 19 10:06:55 2013 +0000

    *bump*

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 766dec9670a40035cee456e8776947085fc50814
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 19 09:29:28 2013 +0000

    GLib 2.35.8

 NEWS         | 35 +++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 36 insertions(+), 1 deletion(-)

commit 4e975bfc9e3268ec271480bed89091ad2d4290db
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Mon Feb 18 10:43:49 2013 +0100

    Updated Serbian translation

 po/sr.po       | 2 +-
 po/sr@latin.po | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 7c3b4617cfb58cc51e78e9f9a729b6e89130818b
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Mon Feb 18 10:38:38 2013 +0100

    Updated Serbian translation

 po/sr.po       | 275
 ++++++++++++++++++++++++++++-----------------------------
 po/sr@latin.po | 275
 ++++++++++++++++++++++++++++-----------------------------
 2 files changed, 272 insertions(+), 278 deletions(-)

commit c910c3e7a319db88749418cedbebe05fbe1b9324
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Feb 18 10:30:29 2013 +0100

    GNetworkAddress: Build if AI_NUMERICSERV not defined

    This is not defined on all Win32 SDKs and in some unixes.
    If its not defined its safe to just ignore it though.

 gio/gnetworkaddress.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit d175fae8d5226cd2f24454c1fa6cc3ca6ba317ce
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Feb 17 16:49:40 2013 +0100

    Updated Polish translation

 po/pl.po | 56 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

commit 4061a96cc182453bb8c6f0c958d2461f64db8a11
Author: Dan Winship <danw@gnome.org>
Date:   Sun Feb 17 09:54:11 2013 -0500

    GSimpleProxyResolver: add missing include

    string.h was getting pulled in by something else on Linux, but not
    elsewhere

 gio/gsimpleproxyresolver.c | 1 +
 1 file changed, 1 insertion(+)

commit c78d0e9ac4d9f08b37af946486c3e6db894ac168
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 15 10:39:19 2013 -0500

    GSocketClient: add missing NULL to g_object_set() call

 gio/gsocketclient.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit e4695bd6f547a05f335f43038787873242f264cb
Author: Thomas Perl <m@thp.io>
Date:   Sun Feb 10 00:16:49 2013 +0100

    docs/reference/glib/cross.xml: Fix typo: yes/np -> yes/no

    https://bugzilla.gnome.org/show_bug.cgi?id=693502

 docs/reference/glib/cross.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8a77f7bb181f3341a6866cd0e64779c35b3a3f61
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 12 16:12:09 2012 +0100

    gnetworkaddress: preserve IPv6 scope ID in IP literals

    If a GNetworkAddress is created with a hostname like "fe80::xxx%em1",
    make sure that the scope_id corresponding to "em1" is present in the
    GSocketAddresses it returns when used as a GSocketConnectable.

    https://bugzilla.gnome.org/show_bug.cgi?id=684404

 gio/gnetworkaddress.c    | 88
 ++++++++++++++++++++++++++++++++++--------------
 gio/tests/inet-address.c | 38 +++++++++++++++++++++
 2 files changed, 100 insertions(+), 26 deletions(-)

commit a44a3cc15091a2f6ba13bfede5dbdfc4215715cb
Author: Dan Winship <danw@gnome.org>
Date:   Thu Feb 14 18:06:41 2013 -0500

    GSimpleProxyResolver: fix for the case where the default proxy is NULL

 gio/gsimpleproxyresolver.c | 2 ++
 1 file changed, 2 insertions(+)

commit afc0a7257584467394bd3fb8c04918646ac34a88
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Feb 15 13:45:35 2013 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit cb40853eaebe0adcad8ca9baa8c7f1d0a3d75721
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Fri Feb 15 05:39:20 2013 -0500

    More doc fixes

 gio/gasyncresult.h | 2 +-
 gio/gmenumodel.h   | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 3522567519facaaea24c4dc3414bb69cecb2b0ec
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Fri Feb 15 05:35:05 2013 -0500

    gmenumodel: Fix documentation

 gio/gmenumodel.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ee17a54c289b8be286a54c594cff5c2d46345054
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jan 26 09:54:03 2013 -0500

    GSimpleProxyResolver: new simple GProxyResolver class

    Add GSimpleProxyResolver, for letting people do static proxy
    resolution, and to use as a base class for other resolvers (such as
    GProxyResolverGnome).

    https://bugzilla.gnome.org/show_bug.cgi?id=691105

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  20 ++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   8 +-
 gio/gio.h                           |   1 +
 gio/gsimpleproxyresolver.c          | 593
 ++++++++++++++++++++++++++++++++++++
 gio/gsimpleproxyresolver.h          |  91 ++++++
 gio/tests/.gitignore                |   1 +
 gio/tests/Makefile.am               |   1 +
 gio/tests/simple-proxy.c            | 236 ++++++++++++++
 10 files changed, 950 insertions(+), 3 deletions(-)

commit 7c49869eaef4d49c57bbdf4e95989e4d8f864623
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jan 27 13:53:36 2013 -0500

    GSocketClient: add proxy-resolver property

    Add a proxy-resolver property to GSocketClient, to allow overriding
    proxy resolution in situations where you need to force a particular
    proxy rather than using the system defaults.

    https://bugzilla.gnome.org/show_bug.cgi?id=691105

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gproxyaddressenumerator.c       |  43 ++++++++--
 gio/gsocketclient.c                 | 113 ++++++++++++++++++++++++--
 gio/gsocketclient.h                 |   5 ++
 gio/tests/proxy-test.c              | 154
 ++++++++++++++++++++++++++++++++++--
 5 files changed, 302 insertions(+), 15 deletions(-)

commit d200208d2b8bad7babdd56f4ec6fcae1589e142b
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Feb 13 20:42:58 2013 +0000

    g_dbus_address_escape_value: add

    This is a GLib reimplementation of dbus_address_escape_value().
    It's useful if you want to construct a D-Bus address from pieces:
    for instance, if you have a listening Unix socket whose path is known,
    and you want to connect a D-Bus peer to it.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=693673
    Reviewed-by: Colin Walters <walters@verbum.org>
    [amended to add Since: 2.36 as per review]
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 gio/gdbusaddress.c          | 47
 +++++++++++++++++++++++++++++++++++++++++++++
 gio/gdbusaddress.h          |  3 +++
 gio/tests/gdbus-addresses.c | 24 +++++++++++++++++++++++
 3 files changed, 74 insertions(+)

commit 035cd81477ca9dc3061ff056c269fee28aab89c3
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Feb 13 07:20:43 2013 +0100

    gio: Fix annotations on g_[async_]initable_new() and friends

    These return a GObject even though in C it's represented as a gpointer

    https://bugzilla.gnome.org/show_bug.cgi?id=693694

 gio/gasyncinitable.c | 4 ++--
 gio/ginitable.c      | 9 ++++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

commit 23d6d1769bc95eba6029dae4593755154c320cf4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 10 11:42:58 2013 -0500

    Fix the build on Solaris

    Make the btrfs support explicitly linux-only, as that is what it
    is. With this, there's no need anymore to check for sys/ioctl.h
    either.
    https://bugzilla.gnome.org/show_bug.cgi?id=692829

 configure.ac | 1 -
 gio/gfile.c  | 6 +++---
 2 files changed, 3 insertions(+), 4 deletions(-)

commit 27ecab75538a47ed89b78b4c212d870a9be60bac
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Thu Feb 7 10:54:24 2013 +0100

    gdbusobjectmanagerclient: always connect to proxy's 'g-signal'

    If we don't connect to the control proxy's 'g-signal' signal, we
    won't have
    'object-added' or 'object-removed' signals. So, connect to the
    'g-signal' not
    only when there already is a name-owner, but always.

    https://bugzilla.gnome.org/show_bug.cgi?id=693285

 gio/gdbusobjectmanagerclient.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit f9d6dcac0b0bdd30a19cb81dfde96264570bc815
Author: Wouter Bolsterlee <uws@xs4all.nl>
Date:   Sat Feb 9 17:50:16 2013 +0100

    Updated Dutch translation

 po/nl.po | 94
 +++++++++++++++++++---------------------------------------------
 1 file changed, 28 insertions(+), 66 deletions(-)

commit ff9b0875d04267d7a42db9f3885bcea42faef421
Author: Rachid <rachidbm@ubuntu.com>
Date:   Sat Feb 9 17:41:59 2013 +0100

    Updated Dutch translation

 po/nl.po | 6318
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3442 insertions(+), 2876 deletions(-)

commit d7c8eda18676dbb1e6743ef46b3bbfe00cdbb578
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 7 14:05:28 2013 -0500

    tests: comment out asserts in dynamic type tests

    We have some testcases that assert that type modules are unloaded
    after
    the last reference on them is dropped.  Comment out those asserts now
    that we turned the last unref into a no-op.

    https://bugzilla.gnome.org/show_bug.cgi?id=693351

 tests/gobject/defaultiface.c | 6 ++++++
 tests/gobject/dynamictype.c  | 4 ++++
 2 files changed, 10 insertions(+)

commit 72df62600d1ab473125b6e8beb998e71aa63701e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 7 13:50:16 2013 -0500

    disable support for unloading of dynamic types

    Experimentally disable the ability to unload dynamic types by refusing
    to drop the last reference on types (effectively turning the type
    unloading into dead code).

    The plan is to leave things like this for a stable cycle and only
    proceed with removing the code if we are sure that there are no
    unforeseen problems.

    https://bugzilla.gnome.org/show_bug.cgi?id=693351

 gobject/gtype.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 2f61a877d8e8e1311d905ab374e421ed0f37c3b7
Author: Dan Winship <danw@gnome.org>
Date:   Thu Feb 7 08:41:00 2013 -0500

    build: fix configure arpa/nameser.h test for Solaris

    https://bugzilla.gnome.org/show_bug.cgi?id=692827

 configure.ac | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 5b2c87538d09422c2aad61bb42400907c521ec4e
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Wed Feb 6 18:20:41 2013 +0100

    Updated Galician translations

 po/gl.po | 518
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 259 insertions(+), 259 deletions(-)

commit 7bcd03b570c8dd1e9c9f1607cd3ec29f2895f526
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 5 18:48:37 2013 +0100

    GLib 2.35.7

 NEWS | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 87d9b0b1fd18f7e5e543b69476e44811af809cf6
Author: Milo Casagrande <milo@ubuntu.com>
Date:   Tue Feb 5 19:22:03 2013 +0100

    [l10n] Updated Italian translation.

 po/it.po | 1304
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 655 insertions(+), 649 deletions(-)

commit 7788bb3a915cc0818186bb2c04a51e195579d13e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 4 22:46:24 2013 -0500

    Make G_IO_FLAG_IS_WRITEABLE and enum value

    Having it as a define was causing some problems for bindings.
    https://bugzilla.gnome.org/show_bug.cgi?id=657045

 glib/giochannel.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 262ebcd3fa0aff41e7e8e7e70ac1d493f41f2470
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 4 22:35:29 2013 -0500

    docs: Add 2 missing :

    The file attribute names go by namespace::keyname, not
    namespace:keyname.

    https://bugzilla.gnome.org/show_bug.cgi?id=636683

 gio/gfileattribute.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7f9af8071ca6b9f2ba9e1b60ae41aeeb7274e491
Author: Andoni Morales Alastruey <ylatuya@gmail.com>
Date:   Sat Nov 10 16:27:56 2012 +0100

    configure: fix check for atomic operations

    Some compilers have support for atomic operations, but do not
    define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4. Instead of checking
    for this define, we check for __sync_bool_compare_and_swap and
    define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 if the compiler doesn't
    define it.

    https://bugzilla.gnome.org/show_bug.cgi?id=682818

 configure.ac | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit 6b3ec827325cdca7eb2728b07eda4c6b21833b65
Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Date:   Sun Feb 3 19:52:58 2013 +0100

    Compile private test with -pthread on UNIX

    The commit f5f151cb removed this linkage, which is needed,
    at least for the toolchain gcc version 4.7.2 (Debian 4.7.2-5)

    https://bugzilla.gnome.org/show_bug.cgi?id=693105

 glib/tests/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 6bcb1c0ed6d1fc0ccade1a1b1bd2167b226ec39c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 15:14:57 2013 -0500

    Post-release version bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3fe8ed04c7ae7a34af03056e73962c2beea53486
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 14:25:09 2013 -0500

    2.35.6

 NEWS         | 64
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 65 insertions(+), 1 deletion(-)

commit 844527c037717d6d086eed1cf750732032d7585c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 14:08:02 2013 -0500

    Document GIO_USE_FILE_MONITOR

 docs/reference/gio/overview.xml | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 435abb174d6a1c17ef9f85e7d83cf27c419ce790
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 13:50:36 2013 -0500

    Fix a doc comment mismatch

 gio/gapplicationcommandline.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c5ec4831fa8d96de37d04dcd97abb249872b7a44
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 13:46:50 2013 -0500

    Trivial doc comment formatting fix

 docs/reference/gio/gio-sections.txt | 9 +++++++++
 gio/gmemoryinputstream.c            | 3 ++-
 2 files changed, 11 insertions(+), 1 deletion(-)

commit 9c72b5776af287447cd79bfee8c848797402755a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 13:26:36 2013 -0500

    add 2.36 index to gobject docs

 docs/reference/gobject/gobject-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit 349e6018641d846cd3854d2df223e8a8cf20149b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 13:25:56 2013 -0500

    Add 2.36 index to glib docs

 docs/reference/glib/glib-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit f302c655842149faa4f01af46e95693ebfcd737b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 13:24:59 2013 -0500

    Add a 2.36 index to gio docs

 docs/reference/gio/gio-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit 1e4b5a3267161b69975ec5af31c30165c0c555ab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 13:22:28 2013 -0500

    Minor doc build cleanups

 docs/reference/glib/glib-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 79d7a138af288e74c564b6382ac17582fc01e323
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 13:17:59 2013 -0500

    Make GUnixFDSourceFunc show up in the docs

 docs/reference/glib/glib-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 50850cdf98ba4e65d35a4c8e88f301b5c2551b7e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 10:21:20 2013 -0500

    Use g_timeout_add_seconds for some long timeouts

    https://bugzilla.gnome.org/show_bug.cgi?id=692618

 gio/tests/gdbus-tests.c | 12 ++++++------
 tests/child-test.c      |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 1a7b4b42a89ea9736e6447a54e0d2a678356ff64
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Thu Jan 31 11:44:32 2013 +0100

    gmenumodel: add G_MENU_ATTRIBUTE_ACTION_NAMESPACE

    https://bugzilla.gnome.org/show_bug.cgi?id=692928

 gio/gmenumodel.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 7fb922365bcf635f46b7989ccf08a17c7dd43f91
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Thu Jan 31 11:35:49 2013 +0100

    gmenumodel: document G_MENU_{ATTRIBUTE,LINK}_*

    https://bugzilla.gnome.org/show_bug.cgi?id=692928

 gio/gmenumodel.h | 52
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit aeafab17c72ae19e77c2711183ace8a022e773aa
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Thu Jan 31 11:03:14 2013 +0100

    gmenuexporter: fix typo in docstring

    https://bugzilla.gnome.org/show_bug.cgi?id=692928

 gio/gmenuexporter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f802f467a5bc5454f7ca5c685fe6e1f3f05a2ae5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 09:50:48 2013 -0500

    Avoid a portability problem in the checksum test

    String literals are not guaranteed to work like this.
    https://bugzilla.gnome.org/show_bug.cgi?id=570572

 glib/tests/checksum.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit abbb54cdd6da757f9833d57126551ce934f4970d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 01:28:50 2013 -0500

    Fix deprecation note for g_static_mutex_free

    It should point at g_mutex_clear, not g_mutex_free.
    https://bugzilla.gnome.org/show_bug.cgi?id=678223

 glib/deprecated/gthread-deprecated.c | 2 +-
 glib/deprecated/gthread.h            | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d632713a7716db10eca4524e7438cbc52f0ea230
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 3 01:11:02 2013 -0500

    Make G_DISABLE_DEPRECATED work again for wholly deprecated headers

    Patch by Milan Crha,

    https://bugzilla.gnome.org/show_bug.cgi?id=688169

 glib/glib.h | 2 ++
 1 file changed, 2 insertions(+)

commit 39a528b9fdf7b16c81bf5338a4b7dd4fd5318dea
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 23 12:39:26 2012 -0400

    g_option_context_help: don't modify the input data

    If there are options that need their names to be aliased, keep track
    of that internally rather than modifying the passed-in GOptionGroup
    (and leaking strings in the process).

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 glib/goption.c | 42 ++++++++++++++++++++++++++++++------------
 1 file changed, 30 insertions(+), 12 deletions(-)

commit ab328469f5cab5681e5564893938a48fe5c2222f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 2 22:54:15 2013 -0500

    Silence automake

    automake doesn't like INCLUDES anymore.

 docs/reference/gio/Makefile.am                           |  2 +-
 .../gio/gdbus-object-manager-example/Makefile.am         |  6 +++---
 docs/reference/gobject/Makefile.am                       |  5 +++--
 gio/gdbus-2.0/codegen/Makefile.am                        |  1 -
 gio/tests/Makefile.am                                    | 16
 ++++++++--------
 gio/tests/gdbus-object-manager-example/Makefile.am       |  2 +-
 glib/gnulib/Makefile.am                                  |  8 ++++++--
 glib/libcharset/Makefile.am                              |  5 +++--
 gobject/tests/Makefile.am                                |  7 ++++---
 tests/gobject/Makefile.am                                |  2 +-
 tests/refcount/Makefile.am                               |  2 +-
 11 files changed, 31 insertions(+), 25 deletions(-)

commit 0336eb67a23a434ecb08b1fcafb087b869f45239
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 2 16:53:45 2013 -0500

    Log errors the same way as messages

    This will make sense if we keep going past
    the assertions that cause the error to be logged.

 glib/gtestutils.c | 1 +
 1 file changed, 1 insertion(+)

commit f5f151cb85b217516ad375d085f379ec4ea97d88
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 2 16:26:17 2013 -0500

    Simplify glib/glib/tests setup

    The Makefile.am was setting a ton of unnecessary things

 glib/tests/Makefile.am | 346
 +++++++++++++------------------------------------
 1 file changed, 87 insertions(+), 259 deletions(-)

commit 8455702a8d55436f2ca37b801052d41cfb0ee2c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 2 16:23:03 2013 -0500

    Make the logging test more robust

    The default handler test was not unsetting the log handler that
    gets installed by GTest, which causes the log messages to be
    duplicated
    on stdout if --verbose or --tap are passed. This in turn can make some
    of the non-match checks fail. Since we are already using
    g_test_trap_fork,
    we can just unset the handler in the child.

 glib/tests/logging.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 067d822968719e87adde7745541e8fa82cfcf9ab
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Feb 3 00:24:14 2013 +0100

    Updated Polish translation

 po/pl.po | 503
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 258 insertions(+), 245 deletions(-)

commit 278fe4a20f133b95694b413cc42789c3d85fdef1
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Feb 2 11:23:56 2013 +0200

    Updated Hebrew translation.

 po/he.po | 620
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 316 insertions(+), 304 deletions(-)

commit a809650a06cc91aa3f7acbe4ac3d7c4018798c2e
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Tue Jan 29 16:09:40 2013 +0000

    Test for g_hash_table_insert() corrupting sets

    https://bugzilla.gnome.org/show_bug.cgi?id=692815

 glib/tests/hash.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

commit bb1df4d01b25e6e12ff30adcd3b07b37c4837bc0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 30 01:23:48 2013 +0100

    hashtable: properly handle insert() de-set-ifying

    GHashTable remains a set for as long as all of the keys are exactly
    equal (in pointer value) to all of the values.  We check this by
    comparing keys to values when we do inserts.

    Unfortunately, when doing g_hash_table_insert() when a key is
    already in
    the table, the old key pointer value is kept, but the new value
    pointer
    is used.  Now we have a situation where a key pointer is unequal to a
    value pointer, but we were not treating this case properly.

    Fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=692815

 glib/ghash.c | 74
 +++++++++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 56 insertions(+), 18 deletions(-)

commit b1e02c7e32b40bd9e202fd4e14f046041ae0258b
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Sat Jan 19 11:50:28 2013 +0400

    Fix gio tests makefile for W32

    While compiling, libtool will say that undefined symbols are not
    allowed, and
    will refuse to make you a dll. This is only one line, easy to
    miss. And it
    doesn't prevent `make' from completing successfully.

    The code this patch adds is from other Makefile.am files that use
    $(no_undefined). It's absence in gio is, most likely, an oversight.

    Fixes #692058

 gio/tests/Makefile.am | 4 ++++
 1 file changed, 4 insertions(+)

commit 59372663f2ed57b60de7cbf2a3241cf9d7adbbea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 2 00:19:15 2013 -0500

    Don't try to find nfs mounts on Windows

    This should fix the build there.
    https://bugzilla.gnome.org/show_bug.cgi?id=592211

 gio/glocalfile.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 477490786b05c25614620a47a4b7d6632aa6e480
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 1 04:56:23 2013 +0100

    gmain: equivocate a bit on _set_ready_time()

    Since this is a new API this cycle it's a good time to add a doc
    comment
    explicitly declaring that a confusing issue that could be resolved
    either way has no specific defined behaviour.

    This may allow us some additional freedom in future GMainContext
    work or
    we may decide that one behaviour is more desirable than the other.

 glib/gmain.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 3202978060b8352633ad484199ce51d4b81ffdc3
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Jan 30 11:13:38 2013 +0100

    gdbus: Don't output invalid nested <para> docbook tags

    Fix gdbus-codegen so it no longer outputs tags like
    <para><para>Text</para></para>

    https://bugzilla.gnome.org/show_bug.cgi?id=692865

 gio/gdbus-2.0/codegen/codegen_docbook.py | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit 11e208f9d61156c1bbe4ff9f3ca3f24827246976
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Jan 30 11:07:52 2013 +0100

    gdbus: Don't output invalid empty <variablelist> tags

    Docbook doesn't allow an empty <variablelist> and so the docbook
    output from gdbus-codegen is invalid when a method/signal has
    no arguments.

    https://bugzilla.gnome.org/show_bug.cgi?id=692865

 gio/gdbus-2.0/codegen/codegen_docbook.py | 40
 +++++++++++++++++---------------
 1 file changed, 21 insertions(+), 19 deletions(-)

commit a60014f1b6fe9b62fa37b738dfc9a97d3046a1dc
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 12 16:00:26 2012 +0100

    GInetSocketAddress: fix the byte order of flowinfo and scope_id

    The flowinfo and scope_id fields of struct sockaddr_in6 are in host
    byte order, but the code previously assumed they were in network byte
    order. Fix that.

    This is an ABI-breaking change (since before you would have had to use
    g_ntohl() and g_htonl() with them to get the correct values, and now
    that would give the wrong values), but the previous behavior was
    clearly wrong, and no one ever reported it, so it is likely that no
    one was actually using it.

    https://bugzilla.gnome.org/show_bug.cgi?id=684404

 README.in                | 6 ++++++
 gio/ginetsocketaddress.c | 4 ++--
 gio/gsocketaddress.c     | 4 ++--
 gio/tests/socket.c       | 4 ++--
 4 files changed, 12 insertions(+), 6 deletions(-)

commit 0ea7abaed5cff685f4d825f13588979e5dcb8e5b
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Jan 30 17:59:09 2013 +0100

    gmacros: add G_GNUC_UNUSED to G_STATIC_ASSERT

    Silence some warnings seen with GCC 4.8.

 glib/gmacros.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7986d834c03490104a06e6adfa6156a52688f7c2
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Jan 29 19:36:58 2013 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 324
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 162 insertions(+), 162 deletions(-)

commit f398bec5bcc0d924e2401c76a6b94133e9490835
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 25 12:05:26 2013 -0500

    Add g_close(), use it

    There are two benefits to this:

    1) We can centralize any operating system specific knowledge of
       close-vs-EINTR handling.  For example, while on Linux we should
       never
       retry, if someone cared enough later about HP-UX, they could
       come by
       and change this one spot.
    2) For places that do care about the return value and want to provide
       the caller with a GError, this function makes it convenient to
       do so.

    Note that gspawn.c had an incorrect EINTR loop-retry around close().

    https://bugzilla.gnome.org/show_bug.cgi?id=682819

 docs/reference/glib/glib-sections.txt |  1 +
 gio/gapplicationimpl-dbus.c           |  3 ++-
 gio/gdbusprivate.c                    |  3 ++-
 gio/gdbusserver.c                     |  4 ++-
 gio/gdesktopappinfo.c                 |  6 ++++-
 gio/gfile.c                           | 15 ++++++++---
 gio/glocalfile.c                      |  7 +++--
 gio/glocalfileinfo.c                  |  3 ++-
 gio/glocalfileinputstream.c           | 24 +++++++----------
 gio/glocalfileoutputstream.c          | 49
 ++++++++++++++---------------------
 gio/gnetworkmonitornetlink.c          |  5 ++--
 glib/glib-unix.c                      |  1 -
 glib/gspawn.c                         | 14 +++-------
 glib/gstdio.c                         | 43 ++++++++++++++++++++++++++++++
 glib/gstdio.h                         |  4 +++
 15 files changed, 115 insertions(+), 67 deletions(-)

commit cf68300d27784ab5baaf6ef4761cead0ec404b1f
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Sat Jan 26 17:37:33 2013 +0000

    g_atomic_int_get, g_atomic_pointer_get: accept const arguments

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=692583

 glib/gatomic.c      | 12 ++++++------
 glib/gatomic.h      |  4 ++--
 glib/tests/atomic.c | 11 +++++++++++
 3 files changed, 19 insertions(+), 8 deletions(-)

commit f7b31301d5cc8f3810a747fb598b3cb683dfb337
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sun Jan 27 22:03:12 2013 +0100

    Updated Slovenian translation

 po/sl.po | 275
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 137 insertions(+), 138 deletions(-)

commit 166766a89fcd173dcd6ffda11f902029928f7f28
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 25 10:40:45 2013 -0500

    GFile: Clean up file_copy_fallback to fix SEGV with btrfs

    Ok, this function was just an awful mess before.  Now the problem
    domain is not trivial, and I won't claim this new code is *beautiful*,
    but it should fix the bug at hand, and be somewhat less prone to
    failure for the next person who tries to modify it.  There's only one
    unref call for each object now.

    https://bugzilla.gnome.org/show_bug.cgi?id=692408

 gio/gfile.c | 140
 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 76 insertions(+), 64 deletions(-)

commit 1818e0a2f80fc578d80b8dbc73163bf81b7d792b
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Jan 26 20:24:32 2013 +0200

    Updated Lithuanian translation

 po/lt.po | 2066
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 1043 insertions(+), 1023 deletions(-)

commit 67694fb35e88dd4254173871ebfd5ef814a2ba59
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Sat Jan 26 19:08:08 2013 +0100

    gsequence: Fix g_sequence_lookup() return value documentation

    Mention that we return NULL if the item we are looking up isn't
    found.

 glib/gsequence.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 82f2ee90fea41238d1936fc38a404cdb268c1b89
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jan 26 10:09:33 2013 -0500

    .gitignore updates

 gio/tests/.gitignore | 4 ++++
 tests/.gitignore     | 1 +
 2 files changed, 5 insertions(+)

commit 1eb5c7ceddd88bb198a01384684e52e7080921a9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 25 20:09:26 2013 -0500

    Plug a small memleak in gdbus-export test

 gio/tests/gdbus-export.c | 1 +
 1 file changed, 1 insertion(+)

commit 48fd50701229de084947ea94406c1ff2c7c397f5
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 25 12:32:39 2013 -0500

    gfile: Ensure we create internal pipe with FD_CLOEXEC

    That way the descriptors aren't leaked to child processes.

    https://bugzilla.gnome.org/show_bug.cgi?id=692544

 gio/gfile.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit cbd7225e7072e6c886e7370f999299d25906a14b
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 25 12:06:04 2013 -0500

    gwakeup: Fix uninitialized variable from previous commit

    We really don't want to infloop here...

 glib/gwakeup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 090f874626312e83d053a51aeb59670b2a9655d7
Author: Colin Walters <walters@verbum.org>
Date:   Wed Aug 29 11:44:01 2012 -0400

    Handle EINTR for a few more write() calls

    https://bugzilla.gnome.org/show_bug.cgi?id=682819

 glib/gmessages.c |  5 ++++-
 glib/gwakeup.c   | 13 +++++++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)

commit 2ab5ed84b2154146c75dcd3876315a4beda48752
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Jan 25 12:54:09 2013 +0100

    Updated Spanish translation

 po/es.po | 257
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 129 insertions(+), 128 deletions(-)

commit 7261294ec163234e52f0edeb24df0b18f5e77395
Author: Akira TAGOH <akira@tagoh.org>
Date:   Thu Jan 24 12:33:39 2013 +0900

    gcontenttype: Duplicate the string inside Mutex lock for thread-safety

    https://bugzilla.gnome.org/show_bug.cgi?id=692360

 gio/gcontenttype.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c67a2ebda387331793563dafa57dbb19aa136b9d
Author: Gil Forcada <gforcada@gnome.org>
Date:   Fri Jan 25 00:17:18 2013 +0100

    Incorrect string formatters, fixes #692229

 glib/gfileutils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b0d5ce16782cc06712456ffa6b8a7521a70bcd1e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Jan 23 12:07:10 2013 +0100

    Ignore fstab entries that are bind mounts

    We don't show the bind mounts anyway, so it only leads to
    problems when we show the fstab entries, like being unable
    to mount them.

    https://bugzilla.gnome.org/show_bug.cgi?id=625552

 gio/gunixmounts.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 455afd3545a29393aec66f5d87dde7920db9d87b
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jan 21 11:25:26 2013 -0500

    build: fix a srcdir != builddir problem with gnetworking.h

    gio's glib-mkenums call needs to get gnetworking.h out of $(builddir),
    not $(srcdir). Fix/simplify it by using $(filter) on $^ and letting
    make find everything.

    Also add -Wno-portability to AM_INIT_AUTOMAKE in configure.ac, so that
    it doesn't warn about this (or about the gmake-specific features we
    were already using in gio/tests/)

    https://bugzilla.gnome.org/show_bug.cgi?id=691866

 configure.ac    | 2 +-
 gio/Makefile.am | 6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)

commit d8874e58a78889815f004f62681cd99b5f5d36f7
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jan 23 11:51:48 2013 -0500

    gtester: Use FD_CLOEXEC when creating pipes

    We were already unsetting the cloexec flag for the child later,
    just not actually starting with it.

    https://bugzilla.gnome.org/show_bug.cgi?id=692404

 glib/gtester.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 5932e16acda9434cd4e9d76cf6faba4b8217357f
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jan 22 16:39:49 2013 -0500

    GNetworkMonitorNetlink: make the netlink socket cloexec

    Use the same code GSocket does, to try SOCK_CLOEXEC first, and then
    fall back to FD_CLOEXEC if it fails. (And fix that code to not call
    fcntl if SOCK_CLOEXEC worked.)

    https://bugzilla.gnome.org/show_bug.cgi?id=692332

 gio/gnetworkingprivate.h     |  5 +++
 gio/gnetworkmonitornetlink.c |  2 +-
 gio/gsocket.c                | 86
 ++++++++++++++++++++++++++------------------
 3 files changed, 57 insertions(+), 36 deletions(-)

commit 2476dd24d7c30dbc04a37fbac6a2fa7e2551ede9
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Wed Jan 23 12:59:13 2013 +0530

    Updated kn translations

 po/kn.po | 689
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 351 insertions(+), 338 deletions(-)

commit bfc9536617721535eb0403496d9983542f2175e4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jan 22 14:14:27 2013 +0800

    build/Makefile-newvs.am: Make description comment clearer

 build/Makefile-newvs.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e908b50371a5052d7a9690b3409ae028d46540b4
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Sun Jan 20 14:00:50 2013 -0500

    gfile: don't report completion twice on g_file_load_contents error

    When an error occurs while reading the file input stream in
    g_file_load_contents (e.g. because the operation was cancelled), the
    code is correctly calling g_task_return_error(), but in the callback
    from the close operation, g_task_return_boolean() will be called
    again.

    Code that cleans up its state in the async callback will then
    be called
    twice, leading to invalid memory access.

    https://bugzilla.gnome.org/show_bug.cgi?id=692202

 gio/gfile.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 40f8e15c1b07f46d36b16cf8bcf9fce7f1a73c54
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Sun Jan 20 13:12:49 2013 -0500

    inotify: fix a memleak

    https://bugzilla.gnome.org/show_bug.cgi?id=692201

 gio/inotify/inotify-path.c | 1 +
 1 file changed, 1 insertion(+)

commit 09342300074f8cff5b91bb777d99f63bcda2666c
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Jan 21 12:25:16 2013 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 264
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 138 insertions(+), 126 deletions(-)

commit 1ce415b45bde895c31dd32e2f7ab7e7ab79e735e
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Jan 3 22:53:06 2013 +0100

    Install an invalidation notifier for GClosure in
    g_source_set_closure()

    The point of g_source_set_closure() is getting memory management
    right,
    including handling closures disappearing from the outside (for example
    because a runtime they refer to is being shutdown). This means that
    sources with an associated closure should remove themselves from the
    main loop and free memory when the closure is invalidated.

    https://bugzilla.gnome.org/show_bug.cgi?id=692034

 gobject/gsourceclosure.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit e68402e330b977fb6324af6eca7ccf612b0e8b9c
Author: Gheyret Kenji <gheyret@gmail.com>
Date:   Sun Jan 20 19:47:16 2013 +0900

    Updated Uyghur translation

    Signed-off-by: Gheyret Kenji <gheyret@gmail.com>

 po/ug.po | 2377
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1275 insertions(+), 1102 deletions(-)

commit 287849a1ee1f927e055f6daa5d298ba568529fb2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 20 03:16:47 2013 -0500

    Fix a typo

 glib/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 89aa9dbd9871d6f6cffc25ae8cb02e3b764a25b6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 20 03:14:24 2013 -0500

    Fix g_test_add_vtable

    This function was creating a test suite for each added
    testcase, when it should have grouped tests according to
    their paths.

 glib/gtestutils.c | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

commit 1cd0cf37974f8bae221bf9b988376066c683f69e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 20 03:12:09 2013 -0500

    Fix annotation for g_test_fail

    The doc comment has a "Since: 2.30" annotation, so make
    the header match that.

 glib/gtestutils.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9e9d028b96b3e19902a40b930418a0ec3e30ccfc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 19 14:30:05 2013 -0500

    Fix build with -Werror=format

    There were a few places in gmarkup.c where we were giving
    pointer differences when integers are expected. Fix that
    by explicitly casting to int.

    https://bugzilla.gnome.org/show_bug.cgi?id=692079

 glib/gmarkup.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 6af88940032ab12179af5a9531915344e3e3db98
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 18:48:31 2013 -0500

    fam: implement gio-nfs-{file,directory}-monitor

    Declare explicit support for monitor NFS from the fam file monitoring
    backend.  This will cause it to be preferred for monitoring on NFS, if
    it is installed.

    https://bugzilla.gnome.org/show_bug.cgi?id=592211

 gio/fam/fam-module.c           | 2 ++
 gio/fam/gfamdirectorymonitor.c | 4 ++++
 gio/fam/gfamfilemonitor.c      | 4 ++++
 3 files changed, 10 insertions(+)

commit 6be54e9f56e9344ecd55a8952dff957573a136b7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 18:44:11 2013 -0500

    localfile: add support for monitoring on NFS

    Add a pair of new extension points: 'gio-nfs-file-monitor' and
    'gio-nfs-directory-monitor'.

    Add a check to GLocalFile when creating a file monitor.  If the
    requested file is in the user's home directory and the user has an NFS
    home directory then attempt to use an implementation of one of the new
    extension points.  If we don't have any implementations then fall back
    to the normal "local" monitors.

    https://bugzilla.gnome.org/show_bug.cgi?id=592211

 gio/giomodule.c              |  6 ++++
 gio/glocaldirectorymonitor.c | 15 ++++++---
 gio/glocaldirectorymonitor.h |  2 ++
 gio/glocalfile.c             | 73
 ++++++++++++++++++++++++++++++++++++++++++--
 gio/glocalfilemonitor.c      | 19 ++++++++----
 gio/glocalfilemonitor.h      |  2 ++
 6 files changed, 105 insertions(+), 12 deletions(-)

commit c83600e8ae419df7c30b16d267d71d706a29936f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 18:30:36 2013 -0500

    file monitors: use new giomodule function

    Get rid of the complicated default module detection code in
    GLocalFileMonitor and GLocalDirectoryMonitor and use the new
    _gio_module_get_default_type() function instead.

    This change also adds the ability to override the default file monitor
    via the GIO_USE_FILE_MONITOR environment variable in the same way
    as can
    be done for GIO_USE_VFS.

    https://bugzilla.gnome.org/show_bug.cgi?id=592211

 gio/glocaldirectorymonitor.c | 60
 +++-----------------------------------------
 gio/glocalfilemonitor.c      | 60
 +++-----------------------------------------
 2 files changed, 8 insertions(+), 112 deletions(-)

commit 3a7b44c007c2d80d9adfa883eca82124ec39deee
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 18:27:57 2013 -0500

    giomodule: add a new "get default" function

    _gio_module_get_default() is a very convenient function for modules
    implementing a singleton -- it finds the default module by priority
    subject to override by a given environment variable name, instantiates
    it, and caches the instance for future calls.  It also has the ability
    to query instances for being 'active' using a callback.

    It doesn't work very well for non-singletons (like file monitors).

    Add a new function _gio_module_get_default_type() that skips the
    instantiation, returning the GType instead.  As a replacement for the
    'active' callback, a vtable offset can be given for a virtual function
    to use to query if a particular backend is supported.

    https://bugzilla.gnome.org/show_bug.cgi?id=592211

 gio/giomodule-priv.h |   4 ++
 gio/giomodule.c      | 120
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 122 insertions(+), 2 deletions(-)

commit ca58dae277896d9e431b54069e5f28cf1bd49d2a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Jan 19 12:05:12 2013 +0800

    Update Visual C++ 2010 property sheet

    Left out some items to purge in the last commit.  Sorry :|

 build/win32/vs10/glib.props | 18 ------------------
 1 file changed, 18 deletions(-)

commit 6c7539fe592849f5639eebd277763319f6fc9cb8
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Jan 19 12:02:45 2013 +0800

    Clean up Visual C++ property sheets

    We no longer need entries to generate the .def files in the property
    sheets
    as we are now doing __declspec (dllexport) to export all the needed
    symbols.  So, purge these items from the property sheets since they
    are no
    longer used.

 build/win32/vs10/glib.props  |  7 -------
 build/win32/vs9/glib.vsprops | 24 ------------------------
 2 files changed, 31 deletions(-)

commit bdb7c2d956a95ca6a66812c1218dc085f8f2f8fe
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Jan 19 11:58:47 2013 +0800

    Bug 688681: Stop using the .def file for GThread Visual C++ builds

    We should also stop using gthread/gthread.def file as well, since we
    also use __declspec (dllexport) for the two (deprecated) functions
    there
    since commit f8756694.

    This should also silence some linker warnings in x64 builds.

    Also get rid of the references to the .symbols files in the
    .vcxproj.filters(in) in the various Visual C++ 2010 projects

 build/win32/vs10/gio.vcxproj.filtersin     |  5 -----
 build/win32/vs10/glib.vcxproj.filtersin    |  5 -----
 build/win32/vs10/gmodule.vcxproj.filters   |  5 -----
 build/win32/vs10/gobject.vcxproj.filtersin |  5 -----
 build/win32/vs10/gthread.vcxproj           |  7 -------
 build/win32/vs10/gthread.vcxproj.filters   |  5 -----
 build/win32/vs9/gthread.vcproj             | 18 ++----------------
 7 files changed, 2 insertions(+), 48 deletions(-)

commit 13966e0fadc40a6fabb0de216e8b2c3b6d457a79
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Jan 18 17:22:52 2013 -0500

    timezone: plug a memleak

 glib/gtimezone.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit f24594122c3e3c66702ff537d3468ed251838007
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Jan 18 17:02:35 2013 -0500

    timezone: avoid a double GBytes unref

    This will cause random memory corruption; functions should not unref
    passed-in parameters.

 glib/gtimezone.c | 1 -
 1 file changed, 1 deletion(-)

commit 4d3bb3caf7a1076960e148216e4f6d20eedd5ad1
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Fri Jan 18 23:01:19 2013 +0100

    Updated Serbian translation

 po/sr.po       | 1120
 ++++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 1120
 ++++++++++++++++++++++++++++----------------------------
 2 files changed, 1120 insertions(+), 1120 deletions(-)

commit 998c6e65cf18aee626b9982347c29b4b09f2c097
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 16:11:20 2013 -0500

    GVariant: fix normal-form checking for tuples

    GVariant has the concept of fixed-sized types (ie: types for which all
    values of the type will have the same size).  Examples are booleans,
    integers, doubles, etc.  Tuples containing only these types are also
    fixed size.

    When GVariant is trying to deal with a fixed-sized value for which it
    doesn't have a sufficient backing store (eg: the case where a
    fixed-sized value was created with g_variant_new_data() with an
    incorrect number of bytes) it denotes this by setting the size of the
    value to the correct fixed size but using a NULL data pointer.

    This is well-documented in several code comments and also in the
    public
    API documentation for g_variant_get_data() which describes the
    situation
    number which NULL could be returned.

    The decision to deal with this case in this way was changed at
    the last
    minute around the time that GVariant was merged -- originally we
    had an
    elaborate setup involving allocating an internal buffer of sufficient
    size to be shared between all invalid values.

    Unfortunately, when making this change a small detail was missed.
    gvs_tuple_get_child() (the function responsible for deserialising
    tuples) was updated to properly check for this case (and it contains a
    comment about why it must).  gvs_tuple_is_normal() (the function
    responsible for verifying if a tuple is in normal form) was not.

    We add the check now.

    Note that this problem does not exist with any other container type
    because tuples are the only container capable of being fixed-sized.
    All
    other container types (arrays, maybes, variants) can contain
    a variable
    number of items or items of variable types (note: we consider
    dictionary
    entries to be two-tuples).  The code for validating non-container
    values
    also contains a check for the case of NULL data.

    The problem also does not occur in the only other function dealing
    with
    serialised tuples: gvs_tuple_n_children().  Whereas other container
    types would have to inspect the serialised data to determine the
    number
    of children, for tuples it can be determined directly from the type.

 glib/gvariant-serialiser.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 00ee6de4e29f7f8c5338f1f9083717d5ec1d9246
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 14:33:16 2013 -0500

    gobject/: Remove abicheck.sh from DIST_EXTRA

 gobject/Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 614f6c5e7073737cf1f531120287688859f88bd7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 13:56:10 2013 -0500

    Add new API checking utility

    Add a test script to make sure that (with a few exceptions) only
    symbols
    that start with 'g_' are being exported from our public libraries.

    https://bugzilla.gnome.org/show_bug.cgi?id=692029

 Makefile.am   |  7 ++++++-
 check-abis.sh | 23 +++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

commit 52a81a7d86102604729ba07824f1ae6a45b51cea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 13:27:16 2013 -0500

    Remove a few more G_GNUC_INTERNAL users

 gio/fen/fen-kernel.c         |  2 +-
 gio/inotify/inotify-helper.c |  2 +-
 glib/gconvert.c              |  2 +-
 glib/gutils.c                |  2 +-
 glib/gwakeup.h               | 12 ++++++------
 5 files changed, 10 insertions(+), 10 deletions(-)

commit 346aa683de6b84da4bb53a63693ec04858cbf952
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 18 13:23:40 2013 -0500

    Fix visibility for glib/ and gio/ submodules

    We have various sub directories in glib/ and gio/ (eg: inotify,
    gnulib,
    pcre, xdgmime, etc.) that build convenience libraries that are then
    included into libglib and libgio.  The files in these directories need
    to be built with the same visibility policy as the files in the first
    level directories, so add CFLAGS for them all.

    This wasn't a problem when the visibility flags were set directly in
    CFLAGS but then we had to deal with some modules that we built that we
    explicitly wanted to export symbols from.

    For now, we can keep things the way they are because it's less
    hacky and
    although it's a theoretical hazard to forget these CFLAGS, we
    rarely add
    new subdirectories to the build.

 gio/fen/Makefile.am         | 1 +
 gio/inotify/Makefile.am     | 1 +
 gio/kqueue/Makefile.am      | 1 +
 gio/win32/Makefile.am       | 1 +
 gio/xdgmime/Makefile.am     | 1 +
 glib/gnulib/Makefile.am     | 1 +
 glib/libcharset/Makefile.am | 1 +
 glib/pcre/Makefile.am       | 1 +
 8 files changed, 8 insertions(+)

commit 6f8f1f7097cbef698b4c7be5816bc9d3864ec744
Author: Colin Walters <walters@verbum.org>
Date:   Wed Nov 28 12:00:40 2012 -0500

    Remove most use of G_GNUC_INTERNAL

    Now that we use an explicit list of symbols to export, the
    G_GNUC_INTERNAL is redundant.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 gio/gapplicationimpl.h         |  8 --------
 gio/gdbusactiongroup.c         |  2 +-
 gio/gdelayedsettingsbackend.h  |  5 -----
 gio/gregistrysettingsbackend.h |  1 -
 gio/gsettings-mapping.h        |  3 ---
 gio/gsettingsbackendinternal.h | 15 ---------------
 gio/gsettingsschema-internal.h | 15 ---------------
 glib/gcharset.c                |  2 +-
 glib/gcharsetprivate.h         |  3 +--
 glib/gconvert.c                |  2 +-
 glib/glib-init.h               | 12 ++++++------
 glib/glib-private.h            |  3 ---
 glib/gmain.c                   |  2 +-
 glib/gmessages.h               |  2 +-
 glib/gthread-win32.c           |  4 ++--
 glib/gthreadprivate.h          |  7 -------
 glib/gunicodeprivate.h         |  5 ++---
 glib/gvariant-core.h           |  3 ---
 18 files changed, 16 insertions(+), 78 deletions(-)

commit dbf447292d83b54be321c33025aea2e4d448d4f5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 23:31:45 2013 -0500

    Remove ABI checking scripts

    Before this commit, the only difference between the expected and
    actual
    ABI were the addition of _init and _fini symbols in each module (now
    that regexp-based export control is not catching those).

 gio/Makefile.am         |    8 -
 gio/abicheck.sh         |   13 -
 gio/gio.symbols         | 1808
 -----------------------------------------------
 glib/Makefile.am        |    9 -
 glib/abicheck.sh        |   13 -
 glib/glib.symbols       | 1694
 --------------------------------------------
 gmodule/Makefile.am     |    1 -
 gmodule/gmodule.symbols |   14 -
 gobject/Makefile.am     |    9 +-
 gobject/abicheck.sh     |   13 -
 gobject/gobject.symbols |  426 -----------
 11 files changed, 1 insertion(+), 4007 deletions(-)

commit 304950a7ac9866dca990dcabb02ec5297c735ce8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 23:12:23 2013 -0500

    Remove regexp-based export control

 configure.ac        | 10 ----------
 gio/Makefile.am     |  4 +---
 glib/Makefile.am    |  4 +---
 gmodule/Makefile.am |  2 +-
 gobject/Makefile.am |  5 +----
 5 files changed, 4 insertions(+), 21 deletions(-)

commit d89fb7bf10bc1f9de10a275625d4c18a1d4ff89d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 16 22:55:27 2013 -0500

    gsignal: fix closure invalidation code

    This is the bug that has been causing segfaults and criticals
    when accel
    keys are used to close windows via GtkUIManager.

    The main cause of this problem was a mistake made in the original
    patch
    when modifying the handler_lookup() to take the extra 'closure'
    parameter.  The original check used was:

        if (handler->sequential_number == handler_id ||
           (closure && handler->closure == closure))

    It was called to find a particular closure like so:

        handler_lookup (instance, 0, closure, &signal_id);

    The problem is that the check will return if either the signal ID or
    closure matches (if a closure was given).  The calling code assumes
    0 to
    be an invalid signal ID which will match no handlers, but
    unfortunately
    the rest of gsignal code uses this to denote a signal that has already
    been disconnected.  The result is that this function was searching
    for a
    matching closure _or_ the first already-disconnected handler.  When it
    found the already-disconnected handler, we'd get criticals and
    crashes.

    The condition has been corrected; it now ignores the handler_id
    parameter if the closure parameter is non-NULL.

    While we're in here, change the lifecycle of the invalidation
    notify to
    be easier to understand.

    Before, the notify was removed when the last reference on the handler
    dropped.  This could happen in very many situations; often at the
    end of
    an emission.  Instead, we now tie the registration of the notifier to
    the lifecycle of the signal connection.  When the signal is
    disconnected
    we remove the notification, even if other references are held (eg:
    because it is currently being dispatched).

    https://bugzilla.gnome.org/show_bug.cgi?id=690118

 gobject/gsignal.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 578b657f950e66376f31f8c09151c85d39e8219c
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jan 16 10:09:10 2013 -0500

    gio/tests: add some more async stream tests

    Add read_async() and skip_async() tests to buffered-input-stream.

    Fix and re-enable filter-streams's existing close_async() tests, and
    add read_async(), skip_async(), and write_async() tests as well. Also,
    redo the tests to use dummy GFilterInputStream and GFilterOutputStream
    subclasses rather than GBufferedInput/OutputStream, so that we're
    testing the base filter stream implementations of everything (since
    the buffered stream overrides are already getting tested in the
    buffered-input-stream and buffered-output-stream tests anyway).

    Add a skip_async() test to unix-streams. (This one would crash without
    the bugfix in the previous commit.)

 gio/tests/buffered-input-stream.c | 164 +++++++++++++++++++++++++++++++++
 gio/tests/filter-streams.c        | 188
 ++++++++++++++++++++++++++++++++------
 gio/tests/unix-streams.c          |  90 ++++++++++++++----
 3 files changed, 394 insertions(+), 48 deletions(-)

commit acfa6e233780a79664a62e5d4f1bf822b446017e
Author: Alban Browaeys <prahal@yahoo.com>
Date:   Wed Jan 16 00:04:58 2013 +0100

    gio: callback_data is the task not the task data.

    skip_callback_wrapper expect the user_data (callback_data)
    to be the task holding the task_data, not the task_data
    itself.
    Otherwise the task_data is cast as GTask and then task_data
    is extracted from this bogus task.

    https://bugzilla.gnome.org/show_bug.cgi?id=691812

 gio/ginputstream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e1517ca82da834dccf8a862bd84cdd17e36e1124
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 15 15:40:14 2013 -0500

    mainloop test: fix a silly memory error

 glib/tests/mainloop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 46b15bb58148d84b3681d1a728ca0e6e96d65122
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 15 15:40:09 2013 -0500

    mainloop test: use atomic for cross-thread access

 glib/tests/mainloop.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 42c2c4f67da404330960ca307393ad71e68c167d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 15 15:22:35 2013 -0500

    mainloop test: fix a small typo

    This g_assert() could never possibly fail, as it was.

 glib/tests/mainloop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 83e5d169d6f0fd3d0427bc3599df8e777b275d9f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 23:05:31 2013 -0500

    tests for the new MainContext/GSource API

 glib/tests/mainloop.c | 492
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 492 insertions(+)

commit 6d1a6636090b498d43354d5503ac39fb10ac908c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 14:47:16 2013 -0500

    Add a UNIX fd source

    https://bugzilla.gnome.org/show_bug.cgi?id=658020

 docs/reference/glib/glib-sections.txt |  10 ++-
 glib/glib-unix.c                      | 139
 ++++++++++++++++++++++++++++++++++
 glib/glib-unix.h                      |  33 ++++++++
 glib/glib.symbols                     |   3 +
 4 files changed, 184 insertions(+), 1 deletion(-)

commit cbf68cb22d9f17721654283e97c2320025f03bc7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 16:53:06 2013 -0500

    gsource: Add support for file descriptors on UNIX

    Adding file descriptors to a GSource provides similar functionality to
    the old g_source_add_poll() API with two main differences.

    First: the list of handles is managed internally and therefore
    users are
    prevented from randomly modifying the ->events field.  This prepares
    us
    for an epoll future where changing the event mask is a syscall.

    Second: keeping the list internally allows us to check the ->revents
    for
    events for ourselves, allowing the source to skip implementing
    check/prepare.  This also prepares us for the future by allowing an
    implementation that doesn't need to iterate over all of the sources
    every time.

    https://bugzilla.gnome.org/show_bug.cgi?id=686853

 docs/reference/glib/glib-sections.txt |   4 +
 glib/glib.symbols                     |   4 +
 glib/gmain.c                          | 225
 +++++++++++++++++++++++++++++++++-
 glib/gmain.h                          |  17 +++
 4 files changed, 246 insertions(+), 4 deletions(-)

commit db7d5306cce36ace71e6f7765a7669fc335747e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 30 19:14:17 2011 -0400

    GTimeoutSource: simplify

    Take advantage of the new default handling of the 'prepare' and
    'check'
    functions.

    https://bugzilla.gnome.org/show_bug.cgi?id=657729

 glib/gmain.c | 50 +++++++++++---------------------------------------
 1 file changed, 11 insertions(+), 39 deletions(-)

commit 768574635dcb69e91a2b749467ef3c75ed16579f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 16:51:51 2013 -0500

    GSource: new API g_source_set_ready_time()

    Add an API to mark a GSource to automatically become ready at the
    specified monotonic time.

    https://bugzilla.gnome.org/show_bug.cgi?id=657729

 docs/reference/glib/glib-sections.txt |   2 +
 glib/glib.symbols                     |   2 +
 glib/gmain.c                          | 109
 ++++++++++++++++++++++++++++++++++
 glib/gmain.h                          |   9 ++-
 4 files changed, 121 insertions(+), 1 deletion(-)

commit 6d25e349988d4c40b066d548383fce3b126a7a43
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 29 18:26:05 2012 +0100

    gsource: allow NULL check and prepare functions

    Allow for NULL GSourceFuncs.check() and .prepare().

    For prepare() the source will be taken not to be ready and having an
    infinite timeout.  For check() the source will be taken not to
    be ready.

    https://bugzilla.gnome.org/show_bug.cgi?id=686853

 glib/gmain.c | 54 ++++++++++++++++++++++++++++++++++--------------------
 glib/gmain.h |  8 ++++++--
 2 files changed, 40 insertions(+), 22 deletions(-)

commit 8f7f7f6c4209900ca1a77c7e2015ff3e9c252097
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 29 16:33:18 2012 +0100

    move GIOCondition to gmain.h from giochannel.h

    GIOCondition has uses outside of GIOChannel, so move it to gmain.h.

    https://bugzilla.gnome.org/show_bug.cgi?id=686853

 glib/giochannel.h | 10 ----------
 glib/gmain.h      | 11 +++++++++++
 2 files changed, 11 insertions(+), 10 deletions(-)

commit ed8ec635eb37099d36581b4b66dd24148940ebfa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 29 16:31:46 2012 +0100

    gsource: Make GSource->source_funcs const

    This is the vtable pointer for the source which is usually held in
    static storage.  For our internal sources it points at a vtable which
    the user should really never be modifying.

    Mark it const.

    https://bugzilla.gnome.org/show_bug.cgi?id=686853

 glib/gmain.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e1bee17e947b98f72d3764081333f339099b086a
Author: Yuri Sedunov <aris@altlinux.ru>
Date:   Tue Jan 15 11:05:43 2013 -0500

    gtester: Add #include config.h

    Missed #include "config.h" so, in particular, large file support
    (_FILE_OFFSET_BITS) ignored.

    https://bugzilla.gnome.org/show_bug.cgi?id=691624

 glib/gtester.c | 2 ++
 1 file changed, 2 insertions(+)

commit 38229d47d1996fd046258f09d705d8247bf176ae
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jan 15 15:47:17 2013 +0800

    Revert "Improvde #include order consistency"

    This reverts commit f2e00a07f49d6ad0e8d790396bcdea913592ce33.

    Moving the block up would prevent G_OS_WIN32 being checked correctly
    as
    it is a macro that is defined by including the GLib header(s),
    at least for
    Visual C++ builds.

    https://bugzilla.gnome.org/show_bug.cgi?id=691769

 gobject/glib-genmarshal.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 4ba56f3653df55c187bd29ac6e4ebb4d33f4ba61
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jan 15 15:23:05 2013 +0800

    Bug 688681: Stop using .def files in Visual Studio builds

    Since we are now starting to use __declspec (dllexport) to export the
    public functions during the build of the GLib DLLs (i.e. to
    generate the
    .lib files), we don't want to generate the .def files from the
    .symbols
    files as we did before for a long time.

    This removes from the projects the custom build steps to generate the
    various .def files

    This will also update the pre-configured config.h(.win32.in) to define
    _GLIB_EXTERN appropriately as __declspec (dllexport), as well as
    making its
    entries reflect config.h.in more closely.

 build/win32/vs10/gio.vcxprojin     | 20 --------
 build/win32/vs10/glib.vcxprojin    | 36 --------------
 build/win32/vs10/gmodule.vcxproj   | 20 --------
 build/win32/vs10/gobject.vcxprojin | 20 --------
 build/win32/vs9/gio.vcprojin       | 53 +--------------------
 build/win32/vs9/glib.vcprojin      | 97
 +-------------------------------------
 build/win32/vs9/gmodule.vcproj     | 53 +--------------------
 build/win32/vs9/gobject.vcprojin   | 53 +--------------------
 config.h.win32.in                  | 25 +++++-----
 9 files changed, 16 insertions(+), 361 deletions(-)

commit c4d8eafd00eaed4d712fc7ec206f26d3bb9c1a54
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 15 00:24:27 2013 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 61539f735a92a40597e7575b9ae870973257fccd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 23:52:10 2013 -0500

    2.35.4

 NEWS | 69
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 64 insertions(+), 5 deletions(-)

commit a605b332c5a918006de8f50e9741dd0f33aa1e31
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 23:25:05 2013 -0500

    Dist assert-msg-test.gdb

    And refer to it in srcdir. Otherwise, the test fails mysteriously
    in make distcheck.

 tests/Makefile.am            | 3 ++-
 tests/run-assert-msg-test.sh | 3 +--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 5d42fdd068bddaaf7e42b7aaca2c15e931ebf3c5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 23:24:53 2013 -0500

    visibility: Use a separate CFLAGS variable

    We only want to control the default visibility for our five main
    installable libraries: libglib, libgthread, libgmodule, libgobject,
    libgio.  We should therefore only set -fvisibility=hidden when
    building
    those.

    Use a separate substitution variable for this purpose.

    Using CFLAGS directly leads to some modules built in testcases not
    exporting their symbols (and then the tests fail).  It also affects
    the
    fam file monitoring module.

    Colin had originally done it this way in his visibility patch
    series but
    I failed to understand why so I didn't copy it.  Now I do.

    Also: revert changes made to two testcases in an attempt to work
    around
    this issue.

    https://bugzilla.gnome.org/show_bug.cgi?id=691756

 configure.ac                  |  4 +++-
 gio/Makefile.am               |  3 ++-
 gio/tests/resourceplugin.c    |  8 +++-----
 glib/Makefile.am              |  1 +
 gmodule/Makefile.am           |  1 +
 gobject/Makefile.am           |  2 +-
 gthread/Makefile.am           |  1 +
 tests/libmoduletestplugin_a.c | 20 ++++++++------------
 tests/libmoduletestplugin_b.c | 19 ++++++++-----------
 tests/module-test.c           |  6 ++----
 10 files changed, 30 insertions(+), 35 deletions(-)

commit 7e00f381916cab6ba13f1d430310802cf6b9c726
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 22:47:02 2013 -0500

    Fix module-test in a better way

    Avoid having visibility attribute directly in the code by
    adding a _GLIB_EXTERN-decorated declaration for the exported
    variables.

 tests/libmoduletestplugin_a.c | 3 ++-
 tests/libmoduletestplugin_b.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit d4f0ae2c692f95046e381a2825b839b4816aea86
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 22:22:41 2013 -0500

    Fix distcheck

    With gdbus-testserver now being a compiled program, it no longer
    lives in SRCDIR.

 gio/tests/gdbus-connection-loss.c       | 2 +-
 gio/tests/gdbus-connection-slow.c       | 2 +-
 gio/tests/gdbus-connection.c            | 2 +-
 gio/tests/gdbus-introspection.c         | 2 +-
 gio/tests/gdbus-proxy-well-known-name.c | 4 ++--
 gio/tests/gdbus-proxy.c                 | 4 ++--
 gio/tests/gdbus-threading.c             | 2 +-
 7 files changed, 9 insertions(+), 9 deletions(-)

commit b96499690b0da7f2713e4d5d75b4e375ef01ed2b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 21:31:47 2013 -0500

    Fix up visibility fallout in module-test

 tests/libmoduletestplugin_a.c | 19 +++++++++++--------
 tests/libmoduletestplugin_b.c | 18 ++++++++++--------
 tests/module-test.c           |  6 ++++--
 3 files changed, 25 insertions(+), 18 deletions(-)

commit d1c25d3191214ce6cd289f0756e6027c35cc2075
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 17:21:52 2013 -0500

    Fix the assert-msg test

    gdb is playing games with us, by breaking -x /dev/stdin

 tests/assert-msg-test.gdb    | 3 +++
 tests/run-assert-msg-test.sh | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)

commit ba4a3849c6cd5f14060a540398b0c498ae906bee
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 15:53:37 2013 -0500

    Remove an unused function

 gio/tests/gdbus-test-fixture.c | 9 ---------
 1 file changed, 9 deletions(-)

commit 57041baf58dd4a3aad5ffee804ef8fc9fa15d6af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 14 15:53:13 2013 -0500

    Make the build more quiet

 gobject/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 456d6bb3e14402df58d26c64dadb5317dbf065e6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 11:17:52 2013 -0500

    win32: hide g_win32_app_info_get_type()

    This was in a private header file and was never part of the public
    ABI.
    Hide it again.

    Caught by Dieter Verfaillie.

 gio/gwin32appinfo.h | 1 -
 1 file changed, 1 deletion(-)

commit b7e749fc68eeedf0abc392c00acb8d0bde2352dd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 11:14:53 2013 -0500

    glocal*monitor: export ABI only on UNIX

    Add an #ifdef G_OS_UNIX around the GLIB_AVAILABLE_IN_ALL annotation on
    the _get_type() functions for GLocal{File,Directory}Monitor.

    These symbols are in private header files and are only exported
    so that
    the in-tree file monitoring modules can subclass.  This is only needed
    on UNIX and was therefore never part of the public ABI on Windows.

    Caught by Dieter Verfaillie.

 gio/glocaldirectorymonitor.h | 2 ++
 gio/glocalfilemonitor.h      | 2 ++
 2 files changed, 4 insertions(+)

commit 963243e6b52a7083c1ae152ce92948cbfcd5945f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 11:11:00 2013 -0500

    win32: hide _glib_get_dll_directory again

    This is not part of our public ABI and it's not used from the other
    libraries in GLib, so we should not be exporting it.

    Caught by Dieter Verfaillie.

 glib/glib-private.h | 1 -
 1 file changed, 1 deletion(-)

commit aac826723391950c873682e2b7fb2ee7617a57f8
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Jan 14 11:26:30 2013 +0100

    GParamSpec: Make constructors introspectable

    Commit 282366c3262 unnecessarily (skip)ed all the GParamSpec
    constructors like
    g_param_spec_bool(). Make those introspectable by dropping the
    (skip) and
    adding proper transfer annotations.

    Keep g_param_spec_value_array() skipped as GValueArray is deprecated.

 gobject/gparamspecs.c | 88
 +++++++++++++++++++++++++--------------------------
 1 file changed, 44 insertions(+), 44 deletions(-)

commit 2c13657b0f1d9bd3bb2f6658adc6a410b13f355d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 00:13:00 2013 -0500

    tests: introduce a small hack for visibility

    One of our testcases builds a small giomodule for testing the
    loading of
    modules containing resources.  Unfortunately, this module gets built
    using the same CFLAGS as the rest of GLib, including the visibility
    flags (defaulting to hidden).

    Use "config.h" to get a declaration of _GLIB_EXTERN that will export
    symbols properly and use it to annotate the necessary APIs.

 gio/tests/resourceplugin.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit f8756694cf3883b45d88eca99c013511f7ed0c10
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 14 00:06:26 2013 -0500

    gthread-impl.c: add missing #include "config.h"

    One of the features of our new symbol exporting regime is that
    it forces
    config.h to be included at the top of every .c file.

    This was missed in gthread-impl.c.

    The only reason this wasn't noticed is because nothing in this file is
    being used anymore.  We need those symbols to continue to be exported
    for reasons of ABI backwards compatibility, however.

 gthread/gthread-impl.c | 2 ++
 1 file changed, 2 insertions(+)

commit 59e46c4928243f63072996f6e98dab24d765df05
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 23:43:44 2013 -0500

    kqueue: Reduce G_GNUC_INTERNAL + G_LOCK abuse

    The kqueue file monitoring backend was misusing G_GNUC_INTERNAL
    for want
    of 'static' in a couple of places and also using it to declare a lock
    that was never used at all.

    Fix those up.

 gio/kqueue/kqueue-helper.c  | 4 +---
 gio/kqueue/kqueue-missing.c | 2 +-
 gio/kqueue/kqueue-thread.c  | 4 ++--
 3 files changed, 4 insertions(+), 6 deletions(-)

commit 64e1a9ca50cca461e7c6e2a4eb20a457269b6701
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 23:30:49 2013 -0500

    gio: remove export tags from two private headers

    I got a little bit too excited and added GLIB_AVAILABLE_IN_ALL tags to
    some internal API.

 gio/glocalfileinputstream.h | 3 ---
 gio/glocalfileiostream.h    | 2 --
 2 files changed, 5 deletions(-)

commit 068a119f7401efe68c0fdbfaea86c5e55c0ed7d5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 15:41:03 2013 -0500

    win32: build: stop using .def files

    With visibility now under the control of __declspec(dllexport) we no
    longer need to build .def files or use them for building our various
    .dll files.

    .def files used to be installed (even though it is only really useful
    when creating the .dll or .lib file).  Don't do that anymore either.

    The Makefiles still contain rules to create a .lib file for use with
    Visual Studio and these rules require .def files.  There are special
    requirements to using these rules (like having installed and setup
    Microsoft tools for use during the build) and therefore the problem of
    creating a .def file for use with them is left open to anyone
    willing to
    make the effort.  Many options are available depending on which
    toolchain is in use (dlltool, pexport, gendef, dumpbin.exe, just
    to name
    a few).

    If we can find a free tool for creating .lib files in the future, we
    should probably revisit this issue and add proper support back to our
    build system.

 gio/Makefile.am     | 20 ++------------------
 glib/Makefile.am    | 20 ++------------------
 gmodule/Makefile.am | 19 ++-----------------
 gobject/Makefile.am | 21 +++------------------
 4 files changed, 9 insertions(+), 71 deletions(-)

commit 2e7669f5cc46927602108c328fbbeb846bd09218
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 13:42:06 2012 -0500

    configure.ac: change our visibility policy

    Check for -fvisibility=hidden as a supported CFLAG.

    If it is supported, use it and emit an AC_DEFINE to change the meaning
    of _GLIB_EXTERN to include the GNU attribute for marking symbols as
    public: __attribute((visibility("default"))).

    This will override the public definition of _GLIB_EXTERN for any file
    which does #include "config.h" (forcing all our .c files to do so,
    as a
    side effect).

    If we're on mingw, assume that -fvisibility will work and also
    throw in
    a __declspec(dllexport) for good measure.  This will allow us to move
    away from using a .def file to create the the various DLLs.

    It's possible that there may be compilers that accept
    -fvisibility=hidden but don't accept the GNU attribute for making
    symbols public again -- we will hopefully receive bugs if any of those
    exist.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 configure.ac | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

commit f13d3c075fce46a361ea98fb0c487aa21d4d1673
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 15:34:27 2013 -0500

    win32: visibility fixups

    Add/remove visibility macros according to if symbols were previously
    part of our public win32 API.

 glib/glib-private.h |  2 ++
 glib/gunicode.h     |  2 --
 glib/gwin32.h       | 14 +++++++++++---
 3 files changed, 13 insertions(+), 5 deletions(-)

commit 38359d1796d8bce43fb77c74adaaf664bcf82c21
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 22:57:27 2013 -0500

    gio: hide another leaked symbol

    guint g_menu_model_items_changed_signal leaked out.  Tuck it back in.

 gio/gio.symbols  | 1 -
 gio/gmenumodel.c | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

commit 47c9b1e315824501843880dd20785d97792cb500
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Sun Jan 13 20:49:15 2013 +0100

    gio: add some missing array annotations with their element-type

 gio/gactionmap.c   | 4 ++--
 gio/ginputstream.c | 9 ++++++---
 gio/gsocket.c      | 8 ++++----
 3 files changed, 12 insertions(+), 9 deletions(-)

commit 85997d9eeb0581110c7df9a0fd7febeb27a3ee4d
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Sun Jan 13 20:05:17 2013 +0100

    gio: add missing element-type annotation

 gio/gtlsdatabase.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3bd09b5fa602962b9f0445295984f7e17f8995d5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 14:01:46 2012 -0500

    gmarshal.h: replace "extern" with GLIB_AVAILABLE_IN_ALL

    This was one of the few public header files that was properly
    declaring
    functions as "extern".  Switch it to use GLIB_AVAILABLE_IN_ALL
    instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 gobject/gmarshal.h | 616
 ++++++++++++++++++++++++++++-------------------------
 1 file changed, 330 insertions(+), 286 deletions(-)

commit 4625c138e96bca942c9215132df14d194c884802
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 14:03:22 2012 -0500

    gbacktrace.c: special treatment for a weird symbol

    We have a public symbol 'glib_on_error_halt' that is exported from
    gbacktrace.c without appearing in a header, presumably with the
    intention that people will be able to hit it from their debugger.

    Mark it as GLIB_AVAILABLE_IN_ALL from inside the .c file...

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 glib/gbacktrace.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b91c47682749b7e1455305ec5f99d5f950574a36
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 13:37:45 2012 -0500

    Add a new _GLIB_EXTERN macro for "extern"

    This macro simply evaluates the "extern" unless it has been explicitly
    defined to something else.

    All of the version macros (including the unversioned deprecation
    markers
    and GLIB_AVAILABLE_IN_ALL) now include _GLIB_EXTERN as part of their
    definition.

    G_INLINE has also been modified to use _GLIB_EXTERN where appropriate.

    This macro should never be used outside of the
    gmacros.h/gversonmacros.h
    headers.

    The effect of this patch is that "extern" has now been added to all
    functions declared in installed headers.  Strictly speaking, this is
    something we should have had all along...

    GLIB_VAR and GOBJECT_VAR have also been modified to use _GLIB_EXTERN
    on
    non-Windows, instead of "extern" which they were using before.  The
    eventual goal is to use the normal version/deprecation macros on
    exported variables and drop GLIB_VAR but we need to see how this will
    work on Windows before we go ahead with that.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 glib/gmacros.h        | 16 ++++++++++------
 glib/gtypes.h         |  2 +-
 glib/gutils.h         |  4 ++--
 glib/gversionmacros.h | 38 +++++++++++++++++++-------------------
 gobject/gparamspecs.h |  2 +-
 5 files changed, 33 insertions(+), 29 deletions(-)

commit ba1bdd0708b154396c0e0d0609353db21ab5e6e9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 13 13:13:03 2013 -0500

    add a missing AVAILABLE_IN_2_36 annotation

 gio/gapplicationcommandline.h | 1 +
 1 file changed, 1 insertion(+)

commit 0156092a4203d1c40dcd0df7515fc7eeaebba9ac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 14:04:59 2012 -0500

    various: add GLIB_AVAILABLE_IN_ALL everywhere else

    Add the GLIB_AVAILABLE_IN_ALL annotation to all old functions (that
    haven't already been annotated with the GLIB_AVAILABLE_IN_* macros
    or a
    deprecation macro).

    If we discover in the future that we cannot use only one macro on
    Windows, it will be an easy sed patch to fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 gio/gaction.h                        |   8 +++
 gio/gactiongroup.h                   |  14 +++++
 gio/gappinfo.h                       |  37 ++++++++++++
 gio/gapplication.h                   |  17 ++++++
 gio/gapplicationcommandline.h        |  11 ++++
 gio/gasyncinitable.h                 |   7 +++
 gio/gasyncresult.h                   |   3 +
 gio/gbufferedinputstream.h           |  12 ++++
 gio/gbufferedoutputstream.h          |   7 +++
 gio/gcancellable.h                   |  15 +++++
 gio/gcharsetconverter.h              |   5 ++
 gio/gcontenttype.h                   |  11 ++++
 gio/gconverter.h                     |   3 +
 gio/gconverterinputstream.h          |   3 +
 gio/gconverteroutputstream.h         |   3 +
 gio/gcredentials.h                   |   8 +++
 gio/gdatainputstream.h               |  22 +++++++
 gio/gdataoutputstream.h              |  12 ++++
 gio/gdbusactiongroup.h               |   1 +
 gio/gdbusaddress.h                   |   6 ++
 gio/gdbusauthobserver.h              |   3 +
 gio/gdbusconnection.h                |  41 +++++++++++++
 gio/gdbuserror.h                     |  11 ++++
 gio/gdbusinterface.h                 |   4 ++
 gio/gdbusinterfaceskeleton.h         |  14 +++++
 gio/gdbusintrospection.h             |  31 ++++++++++
 gio/gdbusmenumodel.h                 |   2 +
 gio/gdbusmessage.h                   |  50 ++++++++++++++++
 gio/gdbusmethodinvocation.h          |  18 ++++++
 gio/gdbusnameowning.h                |   5 ++
 gio/gdbusnamewatching.h              |   5 ++
 gio/gdbusobject.h                    |   4 ++
 gio/gdbusobjectmanager.h             |   5 ++
 gio/gdbusobjectmanagerclient.h       |  11 ++++
 gio/gdbusobjectmanagerserver.h       |   8 +++
 gio/gdbusobjectproxy.h               |   3 +
 gio/gdbusobjectskeleton.h            |   7 +++
 gio/gdbusproxy.h                     |  26 +++++++++
 gio/gdbusserver.h                    |   8 +++
 gio/gdbusutils.h                     |   8 +++
 gio/gdesktopappinfo.h                |   7 +++
 gio/gdrive.h                         |  25 ++++++++
 gio/gemblem.h                        |   5 ++
 gio/gemblemedicon.h                  |   6 ++
 gio/gfile.h                          | 109
 +++++++++++++++++++++++++++++++++++
 gio/gfileattribute.h                 |   7 +++
 gio/gfiledescriptorbased.h           |   2 +
 gio/gfileenumerator.h                |  11 ++++
 gio/gfileicon.h                      |   3 +
 gio/gfileinfo.h                      |  72 +++++++++++++++++++++++
 gio/gfileinputstream.h               |   4 ++
 gio/gfileiostream.h                  |   5 ++
 gio/gfilemonitor.h                   |   5 ++
 gio/gfilenamecompleter.h             |   5 ++
 gio/gfileoutputstream.h              |   5 ++
 gio/gfilterinputstream.h             |   4 ++
 gio/gfilteroutputstream.h            |   4 ++
 gio/gicon.h                          |   5 ++
 gio/ginetaddress.h                   |  20 +++++++
 gio/ginetsocketaddress.h             |   4 ++
 gio/ginitable.h                      |   5 ++
 gio/ginputstream.h                   |  15 +++++
 gio/gioerror.h                       |   3 +
 gio/giomodule.h                      |  18 ++++++
 gio/giostream.h                      |  12 ++++
 gio/gloadableicon.h                  |   4 ++
 gio/glocaldirectorymonitor.h         |   1 +
 gio/glocalfileinputstream.h          |   3 +
 gio/glocalfileiostream.h             |   2 +
 gio/glocalfilemonitor.h              |   1 +
 gio/gmemoryinputstream.h             |   4 ++
 gio/gmemoryoutputstream.h            |   6 ++
 gio/gmount.h                         |  24 ++++++++
 gio/gmountoperation.h                |  15 +++++
 gio/gnativevolumemonitor.h           |   1 +
 gio/gnetworkaddress.h                |   7 +++
 gio/gnetworkmonitor.h                |   4 ++
 gio/gnetworkmonitorbase.h            |   2 +
 gio/gnetworkservice.h                |   7 +++
 gio/goutputstream.h                  |  19 ++++++
 gio/gpermission.h                    |  11 ++++
 gio/gpollableinputstream.h           |   5 ++
 gio/gpollableoutputstream.h          |   5 ++
 gio/gpollableutils.h                 |   1 +
 gio/gproxy.h                         |   6 ++
 gio/gproxyaddress.h                  |   7 +++
 gio/gproxyaddressenumerator.h        |   1 +
 gio/gproxyresolver.h                 |   6 ++
 gio/gresolver.h                      |  15 +++++
 gio/gseekable.h                      |   6 ++
 gio/gsettings.h                      |  44 ++++++++++++++
 gio/gsettingsbackend.h               |  12 ++++
 gio/gsimpleaction.h                  |   4 ++
 gio/gsimpleactiongroup.h             |   5 ++
 gio/gsimpleasyncresult.h             |  25 ++++++++
 gio/gsimplepermission.h              |   2 +
 gio/gsocket.h                        |  40 +++++++++++++
 gio/gsocketaddress.h                 |   5 ++
 gio/gsocketaddressenumerator.h       |   4 ++
 gio/gsocketclient.h                  |  31 ++++++++++
 gio/gsocketconnectable.h             |   3 +
 gio/gsocketconnection.h              |   7 +++
 gio/gsocketcontrolmessage.h          |   6 ++
 gio/gsocketlistener.h                |  14 +++++
 gio/gsocketservice.h                 |   5 ++
 gio/gsrvtarget.h                     |   9 +++
 gio/gtcpconnection.h                 |   3 +
 gio/gtcpwrapperconnection.h          |   3 +
 gio/gthemedicon.h                    |   7 +++
 gio/gthreadedresolver.h              |   1 +
 gio/gthreadedsocketservice.h         |   2 +
 gio/gtlsbackend.h                    |   8 +++
 gio/gtlscertificate.h                |   7 +++
 gio/gtlsclientconnection.h           |   9 +++
 gio/gtlsconnection.h                 |  18 ++++++
 gio/gtlsdatabase.h                   |  14 +++++
 gio/gtlsfiledatabase.h               |   2 +
 gio/gtlsinteraction.h                |   5 ++
 gio/gtlspassword.h                   |  11 ++++
 gio/gtlsserverconnection.h           |   2 +
 gio/gunixconnection.h                |   5 ++
 gio/gunixcredentialsmessage.h        |   5 ++
 gio/gunixfdlist.h                    |   8 +++
 gio/gunixfdmessage.h                 |   6 ++
 gio/gunixinputstream.h               |   5 ++
 gio/gunixmounts.h                    |  33 +++++++++++
 gio/gunixoutputstream.h              |   5 ++
 gio/gunixsocketaddress.h             |   7 +++
 gio/gvfs.h                           |   8 +++
 gio/gvolume.h                        |  17 ++++++
 gio/gvolumemonitor.h                 |   7 +++
 gio/gwin32appinfo.h                  |   1 +
 gio/gwin32inputstream.h              |   5 ++
 gio/gwin32outputstream.h             |   5 ++
 gio/gzlibcompressor.h                |   4 ++
 gio/gzlibdecompressor.h              |   3 +
 glib/deprecated/gthread-deprecated.c |   1 +
 glib/garray.h                        |  49 ++++++++++++++++
 glib/gasyncqueue.h                   |  20 +++++++
 glib/gatomic.h                       |  12 ++++
 glib/gbacktrace.h                    |   2 +
 glib/gbase64.h                       |   6 ++
 glib/gbitlock.h                      |   6 ++
 glib/gbookmarkfile.h                 |  40 +++++++++++++
 glib/gbytes.h                        |  14 +++++
 glib/gcharset.h                      |   4 ++
 glib/gchecksum.h                     |  10 ++++
 glib/gconvert.h                      |  21 +++++++
 glib/gdataset.h                      |  15 +++++
 glib/gdate.h                         |  47 +++++++++++++++
 glib/gdatetime.h                     |  47 +++++++++++++++
 glib/gdir.h                          |   6 ++
 glib/genviron.h                      |  11 ++++
 glib/gerror.h                        |  12 ++++
 glib/gfileutils.h                    |  24 ++++++++
 glib/ggettext.h                      |   6 ++
 glib/ghash.h                         |  37 ++++++++++++
 glib/ghook.h                         |  23 ++++++++
 glib/ghostutils.h                    |   5 ++
 glib/giochannel.h                    |  43 ++++++++++++++
 glib/gkeyfile.h                      |  47 +++++++++++++++
 glib/glib-private.h                  |   1 +
 glib/glibintl.h                      |   2 +
 glib/glist.h                         |  30 ++++++++++
 glib/gmain.h                         |  79 +++++++++++++++++++++++++
 glib/gmappedfile.h                   |   6 ++
 glib/gmarkup.h                       |  15 +++++
 glib/gmem.h                          |  16 +++++
 glib/gmessages.h                     |  15 +++++
 glib/gnode.h                         |  26 +++++++++
 glib/goption.h                       |  26 +++++++++
 glib/gpattern.h                      |   6 ++
 glib/gpoll.h                         |   1 +
 glib/gprimes.h                       |   1 +
 glib/gprintf.h                       |   7 +++
 glib/gqsort.h                        |   1 +
 glib/gquark.h                        |   6 ++
 glib/gqueue.h                        |  40 +++++++++++++
 glib/grand.h                         |  16 +++++
 glib/gregex.h                        |  40 +++++++++++++
 glib/gscanner.h                      |  21 +++++++
 glib/gsequence.h                     |  37 ++++++++++++
 glib/gshell.h                        |   4 ++
 glib/gslice.h                        |   6 ++
 glib/gslist.h                        |  28 +++++++++
 glib/gspawn.h                        |  13 +++++
 glib/gstdio.h                        |  19 ++++++
 glib/gstrfuncs.h                     |  45 +++++++++++++++
 glib/gstring.h                       |  31 ++++++++++
 glib/gstringchunk.h                  |   6 ++
 glib/gtestutils.h                    |  45 +++++++++++++++
 glib/gthread.h                       |  16 +++++
 glib/gthreadpool.h                   |  14 +++++
 glib/gtimer.h                        |  11 ++++
 glib/gtimezone.h                     |  10 ++++
 glib/gtree.h                         |  16 +++++
 glib/gunicode.h                      |  63 ++++++++++++++++++++
 glib/gurifuncs.h                     |   4 ++
 glib/gutils.h                        |  28 +++++++++
 glib/gvariant-internal.h             |   2 +
 glib/gvariant-serialiser.h           |   9 +++
 glib/gvariant.h                      | 101
 ++++++++++++++++++++++++++++++++
 glib/gvarianttype.h                  |  30 ++++++++++
 glib/gvarianttypeinfo.h              |  10 ++++
 glib/gversion.h                      |   1 +
 gmodule/gmodule.h                    |  10 ++++
 gobject/gbinding.h                   |  10 ++++
 gobject/gboxed.h                     |  10 ++++
 gobject/gclosure.h                   |  18 ++++++
 gobject/genums.h                     |  14 +++++
 gobject/glib-types.h                 |  17 ++++++
 gobject/gobject.h                    |  59 +++++++++++++++++++
 gobject/gparam.h                     |  29 ++++++++++
 gobject/gparamspecs.h                |  23 ++++++++
 gobject/gsignal.h                    |  38 ++++++++++++
 gobject/gsourceclosure.h             |   2 +
 gobject/gtype.h                      |  57 ++++++++++++++++++
 gobject/gtypemodule.h                |   8 +++
 gobject/gtypeplugin.h                |   5 ++
 gobject/gvalue.h                     |  11 ++++
 gobject/gvaluetypes.h                |  38 ++++++++++++
 221 files changed, 3186 insertions(+)

commit 0dba77d0f4a28671d77222129f219b5961748562
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 13:59:35 2012 -0500

    gioenumtypes.h.template: use GLIB_AVAILABLE_IN_ALL

    glib-mkenums is not currently clever enough to know which version an
    enum type was added in, so just mark all the _get_type() functions as
    available in all versions.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 gio/gioenumtypes.h.template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0a2b58625998680568623e69fd7fcedfd33d04da
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 13:34:55 2012 -0500

    gversionmacros.h: add GLIB_AVAILABLE_IN_ALL

    Add a macro to declare that a particular symbol is available in all
    versions of GLib.

    All newly-added symbols should have proper version macros (like
    GLIB_AVAILABLE_IN_2_36) and this macro is less likely to get used 'by
    accident' for those than one with a name like GLIB_EXTERN or
    GLIB_PUBLIC.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 glib/gversionmacros.h | 1 +
 1 file changed, 1 insertion(+)

commit c219181cb20a57988ed8426be2a5da8acf6aa07c
Author: Henrique Dante de Almeida <hdante@gmail.com>
Date:   Sun Jan 13 14:05:14 2013 -0200

    Add G_GNUC_PRINTF on all functions with format strings

    This allows compilation with clang without errors, even when
    -Wformat-nonliteral is active (as long as there are no real cases of
    non literal formatting).

    https://bugzilla.gnome.org/show_bug.cgi?id=691608

 gio/gdbusauth.c              | 1 +
 gio/gdbusauthmechanismsha1.c | 1 +
 gio/gdbusdaemon.c            | 1 +
 gio/gdbuserror.h             | 4 ++--
 gio/gdbusmessage.c           | 1 +
 gio/gdbusmethodinvocation.h  | 5 +++--
 gio/gsimpleasyncresult.h     | 5 +++--
 gio/gtask.h                  | 2 +-
 glib/gerror.c                | 1 +
 glib/gerror.h                | 2 +-
 glib/gmarkup.c               | 2 ++
 glib/gmarkup.h               | 2 +-
 glib/gmessages.h             | 4 ++--
 glib/gprintf.h               | 8 ++++----
 glib/gstrfuncs.h             | 3 ++-
 glib/gstring.h               | 6 ++++--
 glib/gutils.h                | 3 ++-
 glib/gvariant-parser.c       | 4 ++++
 glib/tests/markup-escape.c   | 1 +
 glib/tests/string.c          | 1 +
 glib/tests/test-printf.c     | 1 +
 21 files changed, 39 insertions(+), 19 deletions(-)

commit 120834db5b1cc735530d2452440ffd8a3b6e48f7
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Jan 13 18:14:11 2013 +0100

    API: Constify g_get_prgname()

    Found by Mike Gorse while via pygobject freeing the value.

    Should have been const according to original commit message.

 glib/gutils.c | 2 +-
 glib/gutils.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 52bfa084c4221d4283b2e1eb7aab8dca246d6921
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Jan 13 17:39:08 2013 +0100

    Updated Galician translations

 po/gl.po | 164
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 88 insertions(+), 76 deletions(-)

commit 0864e3bd6fc17bab3f60b6f0e240efb44b6b5d43
Author: Henrique Dante de Almeida <hdante@gmail.com>
Date:   Sun Jan 13 12:58:12 2013 -0200

    build: Ensure user-set CFLAGS override defaults

    For example, the user should be able disable our default -Werror
    settings.

    https://bugzilla.gnome.org/show_bug.cgi?id=691608

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1738d5f1ef7ade40445aeb296911f9ef59da8a19
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jan 12 17:39:37 2013 -0500

    GInputStream: fix default g_input_stream_skip_async() logic

    g_input_stream_real_skip_async() wants to use read_async() normally,
    but will use skip() in a thread instead if it sees that read_async()
    will end up using threads. Except that the test for "will read_async()
    use threads" never got updated to know about the GPollableInputStream
    support in read_async(), so it was doing the wrong thing in that case.
    Fix.

    Also remove a small bit of pre-GTask cruft noticed nearby.

    https://bugzilla.gnome.org/show_bug.cgi?id=691489

 gio/ginputstream.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit e9661331babcdb19e52c094d94948ce1292b145e
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sun Jan 13 12:02:42 2013 +0100

    Updated Slovenian translation

 po/sl.po | 252
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 134 insertions(+), 118 deletions(-)

commit 12168bd6615f7e5aa7d1ad388a6b4fc0c522015c
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Sat Jan 12 20:18:05 2013 +0200

    Updated Bulgarian translation

 po/bg.po | 1226
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 620 insertions(+), 606 deletions(-)

commit be04560f96b533a1ac591f466a2ad5b428348069
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 12 13:02:31 2013 -0500

    Expand g_type_init release notes

    This is in the light of
    https://bugzilla.gnome.org/show_bug.cgi?id=691077

 README.in | 5 +++++
 1 file changed, 5 insertions(+)

commit 8fe8dcda1e6c3d799a0409ef983811d9c659a3cf
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 11 11:10:15 2013 -0500

    glocalfile: Only check for .hidden files if standard::is-hidden
    is requested

    For OSTree, I use Gio and also really care about performance.  It's
    disturbing to see open('.hidden') all over my straces and such.  At
    the moment I have an explicit set of things to query, as opposed to
    "standard::*", since even before this that also implies an lstat() of
    the parent directory.

    This matches up with what we do for all the other attributes.

    See https://bugzilla.gnome.org/show_bug.cgi?id=587806
    https://bugzilla.gnome.org/show_bug.cgi?id=691558

 gio/glocalfileinfo.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit a1f40adf733b64500b09e0d02d51967b43df9ee5
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jan 10 16:25:15 2013 -0500

    gio-querymodules: Ensure we're linked to GObject

    Since we're dynamically loading objects, after the g_type_init()
    change, we now need to ensure people building with --as-needed don't
    lose the DT_NEEDED on libgobject.

    https://bugzilla.gnome.org/show_bug.cgi?id=691077

 gio/gio-querymodules.c | 3 +++
 1 file changed, 3 insertions(+)

commit f2a5b33270389b741e6ed756bf4d12730f8b392f
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Jan 10 11:16:47 2013 +0000

    G_IO_ERROR_INVALID_DATA: fix docstring typo

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cb1876b4a7e2d1c91fcf461515d5a7933c62c6ff
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Wed Jan 9 16:29:29 2013 +0100

    ipv6_v4mapped: force pass even if we don't speak IPv4

    Some OS (e.g. OpenBSD) do not implement IP v4-mapped addresses. When
    this is the case, then we get a "Connection refused", so force
    the test
    to pass to that further tests can run.

    https://bugzilla.gnome.org/show_bug.cgi?id=686058

 gio/tests/socket.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 615b44c7ca77273b76b986edad16a56752c00bed
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jan 9 10:06:53 2013 -0500

    glib-compile-resources: avoid warnings with
    -Wmissing-field-initializers

    Initialize all the fields of the generated GStaticResource, to avoid
    warnings in packages that build with -Wmissing-field-initializers.

 gio/glib-compile-resources.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fb1fa6747dbb00b57889058abc27869c7a40c555
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Jan 8 14:43:21 2013 +0100

    Updated Spanish translation

 po/es.po | 250
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 128 insertions(+), 122 deletions(-)

commit 6513e656c00550d99235faaa4714db33f12a444c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jan 7 15:41:19 2013 +0000

    configure.ac: replace obsolete AC_CONFIG_HEADER with with
    AC_CONFIG_HEADERS

    The former is an obsolete alias to the latter.
    It may get removed in the future.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7e5390b870c5c6fd2b27d52b8a675efc551d9b7e
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Mon Jan 7 17:44:23 2013 +0530

    Assamese translation updated

 po/as.po | 135
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 73 insertions(+), 62 deletions(-)

commit b3ce0deb6d81bad318fee2f15e73cc4df20d945f
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jan 6 18:56:39 2013 -0500

    tests/gdatetime: add a missing ; on windows

 glib/tests/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1d0687aa814e55def9ffb618310d7e0ae4f591cc
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jan 6 17:12:15 2013 -0500

    gio/tests: fix a few more gdbus-testserver.py references

    that got missed in Matthias's earlier patch

 gio/tests/gdbus-proxy-well-known-name.c | 2 +-
 gio/tests/gdbus-proxy.c                 | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 5eba9784979e0b723c05a45cf767046607e4e759
Author: Nirbheek Chauhan <nirbheek.chauhan@collabora.co.uk>
Date:   Sat Jan 5 12:52:31 2013 +0530

    GFile: Add Btrfs clone ioctl support

    The attached patch adds support for the btrfs "clone" ioctl which
    makes Copy-on-Write reflinks, resulting in cheap O(1) copies when
    source/destination are on the same filesystem. The ioctl itself is
    quite straightforward, and GNU coreutils has had support since 7.5
    (--reflink=auto --sparse=auto).

    The ioctl only operates on regular files and symlinks, and always
    follows symlinks; checks have been added accordingly.

    This patch would be very useful for everyone who uses btrfs
    filesystems (Meego folks for instance). On systems that don't have
    btrfs, or if the the source is not on a btrfs filesystem, the ioctl
    returns EINVAL, and the fallback code is triggered. Hence this will
    cause no problems for non-btrfs users.

    https://bugzilla.gnome.org/show_bug.cgi?id=626497

 configure.ac |   1 +
 gio/gfile.c  | 104
 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 96 insertions(+), 9 deletions(-)

commit f42347d82e3724958d36922a6171c2eb262336cb
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jan 5 13:26:23 2013 -0500

    GMemoryInputStream: fix skip_async()

    a5876e5f made GMemoryInputStream subclassable, but accidentally broke
    read_async() and skip_async() in the process. The immediately
    following e7983495 fixed read_async() (and added a test for it), but
    skip_async() accidentally got... skipped.

    Fix it now and add a test for it.

    Also, GMemoryInputStream's skip_async() was assuming that skip() could
    never fail, which is true of its own implementation, but might not be
    true of a subclass's, so do proper GError handling too.

 gio/gmemoryinputstream.c        |  8 ++++++--
 gio/tests/memory-input-stream.c | 43
 ++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 48 insertions(+), 3 deletions(-)

commit 330c6c116e31628fcd46ee95e7bff51c60be5bab
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Fri Jan 4 21:36:37 2013 +0100

    gio/tests: Drop superfluous dbus-1 dependencies of gdbus-auth

 gio/tests/Makefile.am  | 3 +--
 gio/tests/gdbus-auth.c | 1 -
 2 files changed, 1 insertion(+), 3 deletions(-)

commit c2055f22f4399a23d1c02a94f8b029212e37e162
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 5 11:07:16 2012 -0500

    gtype: disallow adding interfaces after the fact

    Add a check to prevent adding an interface to a class that has already
    had its class_init done.

    This is an incompatible change but it is suspected that there are not
    many users of this functionality.  Two known exceptions are pygobject
    (fixed in bug 686149) and our own testsuite (affected tests have been
    temporarily disabled by this patch).

    Once we confirm that nobody else is using this functionality we can
    remove a rather large amount of code for dealing with this case.

    https://bugzilla.gnome.org/show_bug.cgi?id=687659

 gobject/gtype.c             |  6 ++++++
 gobject/tests/threadtests.c | 20 ++++++++++++--------
 tests/gobject/Makefile.am   |  3 ---
 3 files changed, 18 insertions(+), 11 deletions(-)

commit 125833d4277046efc77aeabe43282514b9f5bc73
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Fri Jan 4 20:37:27 2013 +0100

    gio/tests: Fix make dist

    Missing bit of 32c925427785895ce156f4bb428082e1952d2407

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit efa7b5f1e7d28e10d2c4413fc1626305f46706f5
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Fri Jan 4 20:25:46 2013 +0100

    Revert "gtype: disallow adding interfaces after the fact"

    This reverts commit d6a075b0d8dfe4e4a41f6624ad7032d2163d420c.

 gobject/gtype.c             |  6 ------
 gobject/tests/threadtests.c | 20 ++++++++------------
 tests/gobject/Makefile.am   |  3 +++
 3 files changed, 11 insertions(+), 18 deletions(-)

commit e478b65ea5fe20ea714a4e78be051a8aa7583ece
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 4 08:27:00 2013 -0500

    Improve g_cond_wait docs

    Document that the mutex is locked upon return.
    https://bugzilla.gnome.org/show_bug.cgi?id=691110

 glib/gthread-posix.c | 2 ++
 1 file changed, 2 insertions(+)

commit 5fbdd3aa27a4a0445708a453ffbd935e6905ee2a
Author: Marko Lindqvist <cazfi74@gmail.com>
Date:   Thu Jan 3 19:21:35 2013 -0500

    Remove deprecated AM_PROG_CC_STDC

    Fixes automake 1.13 build.

    https://bugzilla.gnome.org/show_bug.cgi?id=691011

 configure.ac | 1 -
 1 file changed, 1 deletion(-)

commit 101ddfe22f0313c5159bda754697a59b559e7718
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Thu Jan 3 13:34:21 2013 -0500

    In gdbus-auth test, use g_unsetenv(), not g_setenv() with a NULL value

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/tests/gdbus-auth.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 361fe28fb9ebf6841830b7f193671a378554bc9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 3 13:13:50 2013 -0500

    Drop gdbus-testserver.py

    The tests are using the C version of gdbus-testserver now.
    This means we no longer rely on dbus-python for 'make check'.
    https://bugzilla.gnome.org/show_bug.cgi?id=675856

 gio/tests/Makefile.am         |   1 -
 gio/tests/gdbus-testserver.py | 299
 ------------------------------------------
 2 files changed, 300 deletions(-)

commit 663ed23bc5614fb4f40df04a9e949f63cf554e06
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 3 13:12:58 2013 -0500

    Use the C gdbus-testserver in tests

 gio/tests/gdbus-connection-loss.c       | 2 +-
 gio/tests/gdbus-connection-slow.c       | 2 +-
 gio/tests/gdbus-connection.c            | 2 +-
 gio/tests/gdbus-introspection.c         | 2 +-
 gio/tests/gdbus-proxy-well-known-name.c | 2 +-
 gio/tests/gdbus-proxy.c                 | 2 +-
 gio/tests/gdbus-threading.c             | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

commit 416fa3b9efb7b75c781ea26e004ad6183ea16e24
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 3 13:11:58 2013 -0500

    Add a C version of gdbus-testserver.py

    This will let us drop the dbus-python dependency.
    The C version does not 100% reproduce all the hash table
    and array manipulation of the python version, but the tests
    do not rely on it anyway.

 gio/tests/Makefile.am        |   3 +
 gio/tests/gdbus-testserver.c | 889
 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 892 insertions(+)

commit 2652dc13573471a1a20070fdeef0c44eb0aa4f9a
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Thu Jan 3 11:57:21 2013 -0500

    GDBus: Avoid use of libdbus-1 in authentication tests

    This greatly simplifies the test since everything is now in a single
    process and possible bugs / quirks in libdbus-1 will not interfere
    with the tests. On the other hand, we no longer test interoperability
    with libdbus-1. This is somewhat moot, however, since other tests that
    involve a message bus (e.g. GTestDBus users which include most of the
    GDBus test suite itself) will test this.

    Also ensure that we don't pollute existing D-Bus keyrings for the
    DBUS_COOKIE_SHA1 authentication method (e.g. files in the
    ~/.dbus-keyrings directory) by setting the environment variables
    G_DBUS_COOKIE_SHA1_KEYRING_DIR and
    G_DBUS_COOKIE_SHA1_KEYRING_DIR_IGNORE_PERMISSION.

    All in all, this change avoids some thorny issues where the GDBus and
    libdbus-1 implementations disagree on whether an item in the D-Bus
    keyring is still valid (items have an age etc.). In reality, since the
    DBUS_COOKIE_SHA1 authentication method is never used in production,
    this is never hit in production. This bug was, however, frequently hit
    if you just ran the test suite repeatedly for 15 minutes or so.

    Also add TODO items to mention that we currently don't test corner
    cases involving

     - DBUS_COOKIE_SHA1 timeouts
     - libdbus-1 interoperability

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/tests/Makefile.am  |   2 -
 gio/tests/gdbus-auth.c | 304
 +++++++++++++++++++++++++++----------------------
 2 files changed, 165 insertions(+), 141 deletions(-)

commit 03e84f936fd6f4acbcdf671cc6be5b0690ee7ea6
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jan 2 13:00:48 2013 -0500

    GValueArray: clarify the deprecation warnings

    GValueArray as a whole is deprecated in favor of GArray (with GValue
    elements); warnings like "'g_value_array_get_nth' is deprecated: Use
    'g_array_index' instead" are confusing because they suggest that the
    GArray functions can be used with GValueArrays. Make them say "Use
    'GArray' instead" instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=690970

 gobject/gvaluearray.h | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit af27baaaef3510e32104af6fa196336f13dbc5a9
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Wed Jan 2 13:10:31 2013 +0100

    Fix build with --enable-gtk-doc

    https://bugzilla.gnome.org/show_bug.cgi?id=691001

 docs/reference/glib/building.xml | 1 +
 1 file changed, 1 insertion(+)

commit 3e5068c18631afdc3c6a50a82f6e3499ac9bf3ed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 1 15:49:06 2013 -0500

    Add a --with-python option

    The effect is the same as specifying PYTHON=python3, but a
    configure option works better in jhbuild.
    https://bugzilla.gnome.org/show_bug.cgi?id=684103

 configure.ac                     | 11 ++++++++++-
 docs/reference/glib/building.xml |  8 ++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

commit 86610b059463472e01c0001b83ed052a3edca2e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 1 14:06:20 2013 -0500

    Move testgobject to tests/

    And fix it to actually check the right things.

 gobject/Makefile.am              | 3 ---
 tests/Makefile.am                | 6 ++++--
 {gobject => tests}/testgobject.c | 4 ++--
 3 files changed, 6 insertions(+), 7 deletions(-)

commit f2e00a07f49d6ad0e8d790396bcdea913592ce33
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 1 13:54:54 2013 -0500

    Improvde #include order consistency

    This was mostly fixed already, just re-fix a few details here.
    https://bugzilla.gnome.org/show_bug.cgi?id=71704

 gobject/gatomicarray.c    | 4 ++--
 gobject/gclosure.c        | 2 +-
 gobject/glib-genmarshal.c | 9 +++++----
 gobject/gtype.c           | 2 +-
 4 files changed, 9 insertions(+), 8 deletions(-)

commit 7acfdb04ac1af34af26353a2af388adb7e4db844
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Thu Dec 27 20:55:30 2012 +0100

    Annotate GApplication::local_command_line

    Also add some documentation.
    https://bugzilla.gnome.org/show_bug.cgi?id=690670

 gio/gapplication.h | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 5e62827efdf8a6efbf48e5ed88e02ec4e3a40329
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Tue Jul 3 15:14:18 2012 -0400

    gmarkup: Make GMarkupParseContext a boxed type

    At the same time, add a refcount and public ref/unref methods.
    This makes it usable from introspectable.

    https://bugzilla.gnome.org/show_bug.cgi?id=690084

 docs/reference/glib/glib-sections.txt       |  2 ++
 docs/reference/gobject/gobject-sections.txt |  1 +
 glib/glib.symbols                           |  2 ++
 glib/gmarkup.c                              | 44
 +++++++++++++++++++++++++++++
 glib/gmarkup.h                              |  4 +++
 gobject/gboxed.c                            |  1 +
 gobject/glib-types.h                        | 11 ++++++++
 gobject/gobject.symbols                     |  1 +
 8 files changed, 66 insertions(+)

commit 157f80c2440dcc4ff581b2829bc2ce14071a69e2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 1 10:25:07 2013 -0500

    Drop a broken link

    The GSettings migration docs had a link to the no-longer existing
    gsettings-tutorial branch of gnome-utils. Remove it.
    https://bugzilla.gnome.org/show_bug.cgi?id=690043

 docs/reference/gio/migrating-gconf.xml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 0d3da350c608483a12c89334638317d57449e968
Author: Michael Henning <drawoc@darkrefraction.com>
Date:   Sat Dec 29 23:57:23 2012 -0500

    gutils: move G_END_DECLS to the end of gutils.h

    Previously, some declarations near the bottom came after the
    G_END_DECLS, causing linker errors for C++ users that called those
    functions.

    https://bugzilla.gnome.org/show_bug.cgi?id=690902

 glib/gutils.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 81c1fd22bd92454b0f7c97715e11c77eb0451abf
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Dec 31 12:20:07 2012 +0100

    Updated Spanish translation

 po/es.po | 180
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 92 insertions(+), 88 deletions(-)

commit a9f363733ba796b8c2365fc45a616f94bd6463e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 29 00:22:34 2012 -0500

    Fix up the gschema.dtd

    This DTD wasn't syntactically correct, and didn't actually
    describe keys correctly. This change makes it a bit too lax,
    but at least it can be used now.
    https://bugzilla.gnome.org/show_bug.cgi?id=690538

 gio/gschema.dtd | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 12ad403a43763aa4a99a6055c3cccd2677252430
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 29 00:03:09 2012 -0500

    Remove a failing test

    Since we stripped g_credentials_set_pid(), the test for
    g_credentials_get_pid() can't succeed anymore, so remove it.

 gio/tests/credentials.c | 4 ----
 1 file changed, 4 deletions(-)

commit 32c925427785895ce156f4bb428082e1952d2407
Author: Tristan Van Berkom <tristan.van.berkom@gmail.com>
Date:   Thu Dec 20 15:34:22 2012 +0900

    Adding test coverage for GTestDBus activating in-tree services.

    https://bugzilla.gnome.org/show_bug.cgi?id=690543

 configure.ac                                       |   2 +
 gio/tests/Makefile.am                              |   9 +-
 gio/tests/gdbus-test-fixture.c                     | 121
 +++++++++++++++++++++
 gio/tests/services/Makefile.am                     |   2 +
 ...org.gtk.GDBus.Examples.ObjectManager.service.in |   3 +
 5 files changed, 136 insertions(+), 1 deletion(-)

commit e1b99b2ddcf21f5dab26ad74afa6935eaf70028e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Dec 27 23:43:14 2012 -0500

    Move single-include guards inside include guards

    gcc has optimizations for include guards that only work
    if they are outermost in the the header.
    https://bugzilla.gnome.org/show_bug.cgi?id=689810

 gio/gaction.h                    | 6 +++---
 gio/gactiongroup.h               | 6 +++---
 gio/gactiongroupexporter.h       | 6 +++---
 gio/gactionmap.h                 | 6 +++---
 gio/gappinfo.h                   | 6 +++---
 gio/gapplication.h               | 6 +++---
 gio/gapplicationcommandline.h    | 6 +++---
 gio/gasyncinitable.h             | 6 +++---
 gio/gasyncresult.h               | 6 +++---
 gio/gbufferedinputstream.h       | 6 +++---
 gio/gbufferedoutputstream.h      | 6 +++---
 gio/gcancellable.h               | 6 +++---
 gio/gcharsetconverter.h          | 6 +++---
 gio/gcontenttype.h               | 6 +++---
 gio/gconverter.h                 | 6 +++---
 gio/gconverterinputstream.h      | 6 +++---
 gio/gconverteroutputstream.h     | 6 +++---
 gio/gcredentials.h               | 6 +++---
 gio/gdatainputstream.h           | 6 +++---
 gio/gdataoutputstream.h          | 6 +++---
 gio/gdbusactiongroup.h           | 6 +++---
 gio/gdbusaddress.h               | 6 +++---
 gio/gdbusauth.h                  | 6 +++---
 gio/gdbusauthmechanism.h         | 6 +++---
 gio/gdbusauthmechanismanon.h     | 6 +++---
 gio/gdbusauthmechanismexternal.h | 6 +++---
 gio/gdbusauthmechanismsha1.h     | 6 +++---
 gio/gdbusauthobserver.h          | 6 +++---
 gio/gdbusconnection.h            | 6 +++---
 gio/gdbuserror.h                 | 6 +++---
 gio/gdbusintrospection.h         | 6 +++---
 gio/gdbusmessage.h               | 6 +++---
 gio/gdbusmethodinvocation.h      | 6 +++---
 gio/gdbusnameowning.h            | 6 +++---
 gio/gdbusnamewatching.h          | 6 +++---
 gio/gdbusprivate.h               | 6 +++---
 gio/gdbusproxy.h                 | 6 +++---
 gio/gdbusserver.h                | 6 +++---
 gio/gdbusutils.h                 | 6 +++---
 gio/gdrive.h                     | 6 +++---
 gio/gdummyproxyresolver.h        | 6 +++---
 gio/gemblem.h                    | 6 +++---
 gio/gemblemedicon.h              | 6 +++---
 gio/gfile.h                      | 6 +++---
 gio/gfileattribute.h             | 6 +++---
 gio/gfileenumerator.h            | 6 +++---
 gio/gfileicon.h                  | 6 +++---
 gio/gfileinfo.h                  | 6 +++---
 gio/gfileinputstream.h           | 6 +++---
 gio/gfileiostream.h              | 6 +++---
 gio/gfilemonitor.h               | 6 +++---
 gio/gfilenamecompleter.h         | 6 +++---
 gio/gfileoutputstream.h          | 6 +++---
 gio/gfilterinputstream.h         | 6 +++---
 gio/gfilteroutputstream.h        | 6 +++---
 gio/gicon.h                      | 6 +++---
 gio/ginetaddress.h               | 6 +++---
 gio/ginetaddressmask.h           | 6 +++---
 gio/ginetsocketaddress.h         | 6 +++---
 gio/ginitable.h                  | 6 +++---
 gio/ginputstream.h               | 6 +++---
 gio/gioenums.h                   | 6 +++---
 gio/gioerror.h                   | 6 +++---
 gio/giomodule.h                  | 6 +++---
 gio/gioscheduler.h               | 6 +++---
 gio/giostream.h                  | 6 +++---
 gio/giotypes.h                   | 6 +++---
 gio/gloadableicon.h              | 6 +++---
 gio/gmemoryinputstream.h         | 6 +++---
 gio/gmemoryoutputstream.h        | 6 +++---
 gio/gmount.h                     | 6 +++---
 gio/gmountoperation.h            | 6 +++---
 gio/gnativevolumemonitor.h       | 6 +++---
 gio/gnetworkaddress.h            | 6 +++---
 gio/gnetworkmonitor.h            | 6 +++---
 gio/gnetworkservice.h            | 6 +++---
 gio/goutputstream.h              | 6 +++---
 gio/gpermission.h                | 6 +++---
 gio/gpollableinputstream.h       | 6 +++---
 gio/gpollableoutputstream.h      | 6 +++---
 gio/gpollableutils.h             | 6 +++---
 gio/gproxy.h                     | 6 +++---
 gio/gproxyaddress.h              | 6 +++---
 gio/gproxyaddressenumerator.h    | 6 +++---
 gio/gproxyresolver.h             | 6 +++---
 gio/gremoteactiongroup.h         | 6 +++---
 gio/gresolver.h                  | 6 +++---
 gio/gresource.h                  | 6 +++---
 gio/gseekable.h                  | 6 +++---
 gio/gsettings.h                  | 6 +++---
 gio/gsimpleaction.h              | 6 +++---
 gio/gsimpleactiongroup.h         | 6 +++---
 gio/gsimpleasyncresult.h         | 6 +++---
 gio/gsimplepermission.h          | 6 +++---
 gio/gsocket.h                    | 6 +++---
 gio/gsocketaddress.h             | 6 +++---
 gio/gsocketaddressenumerator.h   | 6 +++---
 gio/gsocketclient.h              | 6 +++---
 gio/gsocketconnectable.h         | 6 +++---
 gio/gsocketconnection.h          | 6 +++---
 gio/gsocketcontrolmessage.h      | 6 +++---
 gio/gsocketlistener.h            | 6 +++---
 gio/gsocketservice.h             | 6 +++---
 gio/gsrvtarget.h                 | 6 +++---
 gio/gtask.h                      | 6 +++---
 gio/gtcpconnection.h             | 6 +++---
 gio/gtcpwrapperconnection.h      | 6 +++---
 gio/gtestdbus.h                  | 6 +++---
 gio/gthemedicon.h                | 6 +++---
 gio/gthreadedsocketservice.h     | 6 +++---
 gio/gtlsbackend.h                | 6 +++---
 gio/gtlscertificate.h            | 6 +++---
 gio/gtlsclientconnection.h       | 6 +++---
 gio/gtlsconnection.h             | 6 +++---
 gio/gtlsdatabase.h               | 6 +++---
 gio/gtlsfiledatabase.h           | 6 +++---
 gio/gtlsinteraction.h            | 6 +++---
 gio/gtlspassword.h               | 6 +++---
 gio/gtlsserverconnection.h       | 6 +++---
 gio/gvfs.h                       | 6 +++---
 gio/gvolume.h                    | 6 +++---
 gio/gvolumemonitor.h             | 6 +++---
 gio/gzlibcompressor.h            | 6 +++---
 gio/gzlibdecompressor.h          | 6 +++---
 glib/deprecated/gallocator.h     | 6 +++---
 glib/deprecated/gcache.h         | 6 +++---
 glib/deprecated/gcompletion.h    | 6 +++---
 glib/deprecated/gmain.h          | 6 +++---
 glib/deprecated/grel.h           | 6 +++---
 glib/deprecated/gthread.h        | 6 +++---
 glib/galloca.h                   | 6 +++---
 glib/garray.h                    | 6 +++---
 glib/gasyncqueue.h               | 6 +++---
 glib/gatomic.h                   | 6 +++---
 glib/gbacktrace.h                | 6 +++---
 glib/gbase64.h                   | 6 +++---
 glib/gbookmarkfile.h             | 6 +++---
 glib/gbytes.h                    | 6 +++---
 glib/gcharset.h                  | 6 +++---
 glib/gchecksum.h                 | 6 +++---
 glib/gconvert.h                  | 6 +++---
 glib/gdataset.h                  | 6 +++---
 glib/gdate.h                     | 6 +++---
 glib/gdatetime.h                 | 6 +++---
 glib/gdir.h                      | 6 +++---
 glib/genviron.h                  | 6 +++---
 glib/gerror.h                    | 6 +++---
 glib/gfileutils.h                | 6 +++---
 glib/ggettext.h                  | 6 +++---
 glib/ghash.h                     | 6 +++---
 glib/ghmac.h                     | 6 +++---
 glib/ghook.h                     | 6 +++---
 glib/ghostutils.h                | 6 +++---
 glib/giochannel.h                | 6 +++---
 glib/gkeyfile.h                  | 6 +++---
 glib/glist.h                     | 6 +++---
 glib/gmacros.h                   | 6 +++---
 glib/gmain-internal.h            | 6 +++---
 glib/gmain.h                     | 6 +++---
 glib/gmappedfile.h               | 6 +++---
 glib/gmarkup.h                   | 6 +++---
 glib/gmem.h                      | 6 +++---
 glib/gmessages.h                 | 6 +++---
 glib/gnode.h                     | 6 +++---
 glib/goption.h                   | 6 +++---
 glib/gpattern.h                  | 6 +++---
 glib/gpoll.h                     | 6 +++---
 glib/gprimes.h                   | 6 +++---
 glib/gqsort.h                    | 6 +++---
 glib/gquark.h                    | 6 +++---
 glib/gqueue.h                    | 6 +++---
 glib/grand.h                     | 6 +++---
 glib/gregex.h                    | 6 +++---
 glib/gscanner.h                  | 6 +++---
 glib/gsequence.h                 | 6 +++---
 glib/gshell.h                    | 6 +++---
 glib/gslice.h                    | 6 +++---
 glib/gslist.h                    | 6 +++---
 glib/gspawn.h                    | 6 +++---
 glib/gstrfuncs.h                 | 6 +++---
 glib/gstring.h                   | 6 +++---
 glib/gstringchunk.h              | 6 +++---
 glib/gtestutils.h                | 6 +++---
 glib/gthread.h                   | 6 +++---
 glib/gthreadpool.h               | 6 +++---
 glib/gtimer.h                    | 6 +++---
 glib/gtimezone.h                 | 6 +++---
 glib/gtrashstack.h               | 6 +++---
 glib/gtree.h                     | 6 +++---
 glib/gtypes.h                    | 6 +++---
 glib/gunicode.h                  | 6 +++---
 glib/gurifuncs.h                 | 6 +++---
 glib/gutils.h                    | 6 +++---
 glib/gvariant.h                  | 6 +++---
 glib/gvarianttype.h              | 6 +++---
 glib/gversion.h                  | 6 +++---
 glib/gversionmacros.h            | 6 +++---
 glib/gwin32.h                    | 6 +++---
 gobject/gatomicarray.h           | 6 +++---
 gobject/gbinding.h               | 6 +++---
 gobject/gboxed.h                 | 6 +++---
 gobject/gclosure.h               | 6 +++---
 gobject/genums.h                 | 6 +++---
 gobject/glib-types.h             | 6 +++---
 gobject/gobject.h                | 6 +++---
 gobject/gparam.h                 | 6 +++---
 gobject/gparamspecs.h            | 6 +++---
 gobject/gsignal.h                | 6 +++---
 gobject/gsourceclosure.h         | 6 +++---
 gobject/gtype-private.h          | 6 +++---
 gobject/gtype.h                  | 6 +++---
 gobject/gtypemodule.h            | 6 +++---
 gobject/gtypeplugin.h            | 6 +++---
 gobject/gvalue.h                 | 6 +++---
 gobject/gvaluearray.h            | 6 +++---
 gobject/gvaluetypes.h            | 6 +++---
 216 files changed, 648 insertions(+), 648 deletions(-)

commit 89d48d7800a21db1b94c09644bc68b84cda1940b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 18 14:37:37 2012 -0500

    Add g_application_command_line_get_stdin()

    This returns a GInputStream corresponding to the stdin on the
    commandline that caused this invocation.

    The local case works on both UNIX (GUnixInputStream on stdin) and
    Windows (GWin32InputStream on GetStdHandle(STD_INPUT_HANDLE)).  The
    remote case works only on UNIX (by fd passing over D-Bus).

    https://bugzilla.gnome.org/show_bug.cgi?id=668210

 gio/gapplicationcommandline.c | 46 +++++++++++++++++++++++++++
 gio/gapplicationcommandline.h | 13 +++++---
 gio/gapplicationimpl-dbus.c   | 73
 +++++++++++++++++++++++++++++++++++++------
 gio/gio.symbols               |  1 +
 4 files changed, 119 insertions(+), 14 deletions(-)

commit 3e97776276a3648fac9706d7a82715ab230bfb5d
Author: Mattias Põldaru <mahfiaz@gmail.com>
Date:   Thu Dec 27 16:37:24 2012 +0200

    [l10n] Updated Estonian translation

 po/et.po | 4996
 ++++++++++++++++++++++++++++----------------------------------
 1 file changed, 2285 insertions(+), 2711 deletions(-)

commit 3a7c1594d126d20510eb4f6b769dedc8a68e3834
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Dec 24 22:53:03 2012 +0100

    Updated Galician translations

 po/gl.po | 181
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 92 insertions(+), 89 deletions(-)

commit 53bbf26c17cf0876cdd18ddb77f6f985999a24d4
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Mon Dec 24 17:23:17 2012 +0200

    Updated Greek translation

 po/el.po | 1188
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 606 insertions(+), 582 deletions(-)

commit 74cc23405883ed33d7c42e05044265086d3fb420
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Dec 23 17:38:45 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 1130
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 564 insertions(+), 566 deletions(-)

commit f1a1cccd5a3354407d32e458324ae416cb527925
Author: Peter Mráz <etkinator@gmail.com>
Date:   Sun Dec 23 14:32:58 2012 +0100

    Updated Slovak translation

 po/sk.po | 1362
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 663 insertions(+), 699 deletions(-)

commit a9578b0bb7b5f81bb64ae6f969293c4ad3afc48a
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Dec 23 04:28:23 2012 +0100

    Updated Polish translation

 po/pl.po | 182
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 93 insertions(+), 89 deletions(-)

commit f3ecba5e122ecd535066dd65473488498ee8fa22
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Thu Dec 20 14:24:17 2012 +0200

    Updated Hebrew translation.

 po/he.po | 625
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 314 insertions(+), 311 deletions(-)

commit c284d1c4ad38281f070060da221311f23f4c0eca
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Dec 20 11:08:39 2012 +0100

    Updated Spanish translation

 po/es.po | 296
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 146 insertions(+), 150 deletions(-)

commit 5445b4aeecf87233d54e27fee442359273a3f081
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Thu Dec 20 13:48:11 2012 +0530

    Assamese translation updated

 po/as.po | 507
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 254 insertions(+), 253 deletions(-)

commit 08dce819ccaa63cbc572253da034634b21ddffca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 19 15:20:45 2012 -0500

    Revert "gtestutils: add g_test_trap_subprocess(), deprecate
    g_test_trap_fork()"

    This reverts commit e3a29184d56b3a65664eb8859e61afbc804497c8.

 docs/reference/glib/glib-sections.txt |   5 +-
 glib/glib.symbols                     |   3 -
 glib/gmessages.c                      |   2 +-
 glib/gtestutils.c                     | 429
 ++++++----------------------------
 glib/gtestutils.h                     |  34 +--
 glib/tests/testing.c                  |  91 --------
 6 files changed, 77 insertions(+), 487 deletions(-)

commit 0178402c6d5aee998934db6d4b49fff95dc50c48
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 19 15:20:37 2012 -0500

    Revert "tests: port from g_test_trap_subprocess() to
    g_test_trap_fork()"

    This reverts commit ea06ec80634ff8f22882f3bc92effb10ac294e41.

 gio/tests/gdbus-exit-on-close.c | 133 ++++++------
 gio/tests/gdbus-non-socket.c    |   9 +-
 gio/tests/gdbus-proxy.c         |  20 +-
 gio/tests/gschema-compile.c     |  50 ++---
 gio/tests/gsettings.c           | 439
 +++++++++++++---------------------------
 glib/tests/array-test.c         |  27 ++-
 glib/tests/dataset.c            |  23 +--
 glib/tests/gvariant.c           |  79 +++-----
 glib/tests/logging.c            | 204 ++++++++-----------
 glib/tests/mem-overflow.c       | 143 +++++--------
 glib/tests/option-context.c     | 372 +++++++++++++++-------------------
 glib/tests/scannerapi.c         |  21 +-
 glib/tests/slice.c              |  17 +-
 glib/tests/test-printf.c        | 281 +++++++++++++++----------
 glib/tests/testing.c            | 214 +++++++-------------
 glib/tests/utils.c              |  22 +-
 gobject/tests/param.c           |  54 +----
 tests/Makefile.am               |   1 -
 tests/testglib.c                |  50 ++---
 19 files changed, 884 insertions(+), 1275 deletions(-)

commit 6f15db8c3d3b8c6f800e1408d05f57a133d0e7a1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 19 15:20:31 2012 -0500

    Revert "gtestutils: fix "-p" logic"

    This reverts commit 723a8f55880f1e7bf1b475901ce40e6cd443b72d.

 glib/gtestutils.c    |   2 +-
 glib/tests/testing.c | 125
 ---------------------------------------------------
 2 files changed, 1 insertion(+), 126 deletions(-)

commit 50850fe08c92caafe99f8a1130479b6a63440e44
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 19 15:20:20 2012 -0500

    Revert "tests/option-context: fix under --verbose"

    This reverts commit 80253cd71007975946a084697ccec9891102a3e7.

 glib/tests/option-context.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit f64d6640d4e08bc0a82aa2b13482f48efc1c1229
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 19 15:20:13 2012 -0500

    Revert "tests/protocol: redo a bit"

    This reverts commit 8d9969fe15f2afc0c13b5d20a3103df666d68934.

 glib/tests/protocol.c | 49
 +++++++++++++++++++++++++++++--------------------
 1 file changed, 29 insertions(+), 20 deletions(-)

commit 53a436221fe603686bf40feb49d79a048db44943
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 19 15:20:05 2012 -0500

    Revert "tests/spawn-*.c: fix on Windows"

    This reverts commit 602714a8dae08e395c8834aa059375de7dd877c0.

 glib/tests/Makefile.am           | 2 --
 glib/tests/spawn-multithreaded.c | 4 ++--
 glib/tests/spawn-singlethread.c  | 4 ++--
 3 files changed, 4 insertions(+), 6 deletions(-)

commit 2fe36a22388216a04dfd74a59a72d8636c1098e4
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Nov 8 14:09:23 2012 +0000

    Check that credentials pass through D-Bus on supported platforms

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687920

 gio/tests/gdbus-peer.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 32bfd46c7b193de9eb6794d436f797c49b6a9f68
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Nov 8 14:08:44 2012 +0000

    GCredentials: add a regression test

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687920

 gio/tests/Makefile.am   |   1 +
 gio/tests/credentials.c | 131
 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 132 insertions(+)

commit 8f65536504a0902f1e90696eb18f8c2bd5bc1782
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Nov 8 14:08:24 2012 +0000

    GCredentials: add getter/setter for the Unix process ID

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687920

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gcredentials.c                  | 43
 +++++++++++++++++++++++++++++++++++++
 gio/gcredentials.h                  |  3 +++
 gio/gio.symbols                     |  1 +
 4 files changed, 48 insertions(+)

commit 602714a8dae08e395c8834aa059375de7dd877c0
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 25 13:52:20 2012 -0500

    tests/spawn-*.c: fix on Windows

    Need to append ".exe" to the spawned binary name on Windows

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 glib/tests/Makefile.am           | 2 ++
 glib/tests/spawn-multithreaded.c | 4 ++--
 glib/tests/spawn-singlethread.c  | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

commit 8d9969fe15f2afc0c13b5d20a3103df666d68934
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 25 11:50:09 2012 -0500

    tests/protocol: redo a bit

    Rather than overloading --verbose, just skip the tests that aren't
    supposed to be run in the parent process (so that if you do run the
    toplevel test with --verbose, it doesn't immediately error out).

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 glib/tests/protocol.c | 49
 ++++++++++++++++++++-----------------------------
 1 file changed, 20 insertions(+), 29 deletions(-)

commit 80253cd71007975946a084697ccec9891102a3e7
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 25 11:42:59 2012 -0500

    tests/option-context: fix under --verbose

    We need to always pass G_TEST_TRAP_SILENCE_STDERR/STDOUT, or else
    we can't check that they contained the right text later.

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 glib/tests/option-context.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 723a8f55880f1e7bf1b475901ce40e6cd443b72d
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 25 11:54:31 2012 -0400

    gtestutils: fix "-p" logic

    If you had two tests "/foo/bar" and "/foo/bar/baz", and ran the test
    program with "-p /foo/bar/baz", it would run "/foo/bar" too. Fix that.
    And add a test to tests/testing for it.

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 glib/gtestutils.c    |   2 +-
 glib/tests/testing.c | 125
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 126 insertions(+), 1 deletion(-)

commit ea06ec80634ff8f22882f3bc92effb10ac294e41
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 24 16:34:13 2012 -0500

    tests: port from g_test_trap_subprocess() to g_test_trap_fork()

    (or, in a few cases, to g_test_expect_message())

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 gio/tests/gdbus-exit-on-close.c | 133 ++++++------
 gio/tests/gdbus-non-socket.c    |   9 +-
 gio/tests/gdbus-proxy.c         |  20 +-
 gio/tests/gschema-compile.c     |  50 +++--
 gio/tests/gsettings.c           | 439
 +++++++++++++++++++++++++++-------------
 glib/tests/array-test.c         |  27 +--
 glib/tests/dataset.c            |  23 ++-
 glib/tests/gvariant.c           |  79 +++++---
 glib/tests/logging.c            | 204 +++++++++++--------
 glib/tests/mem-overflow.c       | 143 ++++++++-----
 glib/tests/option-context.c     | 372 +++++++++++++++++++---------------
 glib/tests/scannerapi.c         |  21 +-
 glib/tests/slice.c              |  17 +-
 glib/tests/test-printf.c        | 281 ++++++++++---------------
 glib/tests/testing.c            | 214 +++++++++++++-------
 glib/tests/utils.c              |  22 +-
 gobject/tests/param.c           |  54 ++++-
 tests/Makefile.am               |   1 +
 tests/testglib.c                |  50 +++--
 19 files changed, 1275 insertions(+), 884 deletions(-)

commit e3a29184d56b3a65664eb8859e61afbc804497c8
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 24 15:58:27 2012 -0500

    gtestutils: add g_test_trap_subprocess(), deprecate g_test_trap_fork()

    g_test_trap_fork() doesn't work on Windows and is potentially flaky on
    unix anyway given the fork-but-don't-exec. Replace it with
    g_test_trap_subprocess(), which re-spawns the same program with
    arguments telling it to run a specific (otherwise-ignored) test case.

    Make the existing g_test_trap_fork() unit tests be unix-only (they
    never passed on Windows anyway), and add a parallel set of
    g_test_trap_subprocess() tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 docs/reference/glib/glib-sections.txt |   5 +-
 glib/glib.symbols                     |   3 +
 glib/gmessages.c                      |   2 +-
 glib/gtestutils.c                     | 429
 ++++++++++++++++++++++++++++------
 glib/gtestutils.h                     |  34 ++-
 glib/tests/testing.c                  |  91 ++++++++
 6 files changed, 487 insertions(+), 77 deletions(-)

commit 79fab3e647b77f948d2e946d630dedec9ce19f5f
Author: Daniel Macks <dmacks@netspace.org>
Date:   Sat Dec 1 14:23:01 2012 -0500

    Add missing autoconf test for sysctlbyname()

    uses specific mib[] tokens iff it is available, but configure wasn't
    testing for it to be available.

    https://bugzilla.gnome.org/show_bug.cgi?id=689324

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit 1fec9ac47d157ca28c4efc1c18e5dd98bc39332b
Author: Daniel Macks <dmacks@netspace.org>
Date:   Thu Nov 29 10:33:47 2012 -0500

    Fix constant type to match assigned variable type

    Some compilers assume a literal value is a certain byte-length without
    checking the type to which it is being assigned, giving a compile-time
    warning: a default of 'long' is a mismatch when assigning to a guint64
    when the latter is a 'long long'. Use one of glib's standard macros to
    specify the type of the constant to match the variable type.

    https://bugzilla.gnome.org/show_bug.cgi?id=688829

 glib/tests/utils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 69ad5010e3044d5329d19b0b3099ff0c5e9e1ddc
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 19 09:10:01 2012 -0500

    inotify: fix compile

 gio/inotify/ginotifyfilemonitor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5f1f9cb7d8886a6d8f06e2f67e9674758cd550bd
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Dec 19 11:03:24 2012 +0000

    timezone: Fix byte arithmetic

    Use guint8* instead of gpointer, to avoid warnings and side effects.

    https://bugzilla.gnome.org/show_bug.cgi?id=686128

 glib/gtimezone.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 1d7985aa0adf7c22060470de727484e92f0a0eb9
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 19 16:18:55 2012 -0500

    tests: multiple fixes to run-assert-msg-test.sh

    1) use "../libtool" rather than "libtool" to avoid problems
    with wacky OS X not-actually-libtool

    2) Use libtool on the libtool script, not the binary, so that it
    actually does anything

    3) Don't use "gdb --ex" since it's apparently new-ish/non-portable.

    https://bugzilla.gnome.org/show_bug.cgi?id=684723

 tests/run-assert-msg-test.sh | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit 3a7244bd0ca5e30b1c3199c7995f924cfd231855
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 19 08:22:23 2012 -0500

    Add "Since 2.36" to G_FILE_MONITOR_WATCH_HARD_LINKS doc

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 707bc4a40f48f1a361071a8b8b13d96743e89561
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 18 17:59:14 2009 -0600

    gio + inotify support for hard links

    Add a new GFileMonitorFlag: G_FILE_MONITOR_WATCH_HARD_LINKS.
    When set,
    changes made to the file via another hard link will be detected.

    Implement the new flag for the inotify backend.

    https://bugzilla.gnome.org/show_bug.cgi?id=532815

 gio/gfile.c                            |  19 +-
 gio/gioenums.h                         |   9 +-
 gio/inotify/ginotifydirectorymonitor.c |   2 +-
 gio/inotify/ginotifyfilemonitor.c      |   3 +
 gio/inotify/inotify-helper.c           |  20 +-
 gio/inotify/inotify-path.c             | 323
 ++++++++++++++++++++++++++++-----
 gio/inotify/inotify-path.h             |   2 +-
 gio/inotify/inotify-sub.c              |   4 +-
 gio/inotify/inotify-sub.h              |  11 +-
 9 files changed, 327 insertions(+), 66 deletions(-)

commit e6d45972fc0f75345b7ba19ac3d554cf801ba86a
Author: John Ralls <jralls@ceridwen.us>
Date:   Wed Dec 19 00:40:08 2012 +0000

    Bug 633117: glib fails tests if /etc/localtime is not properly set

 glib/tests/gdatetime.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit c9939b0fc7d831e97e653ace5ca9751d17d3c405
Author: John Ralls <jralls@ceridwen.us>
Date:   Tue Dec 18 15:41:09 2012 -0800

    GTimeZone interval_info: Fix interval 0 per IANA tzfile instructions

    IANA tzfiles don't always put standard time in the 0th t_info. Follow
    their instructions to use the first standard time t_info for
    interval 0.

 glib/gtimezone.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

commit 0f0404af21a6702f394c065ca0de33eb89a5fc48
Author: John Ralls <jralls@ceridwen.us>
Date:   Tue Dec 18 15:40:43 2012 -0800

    test_posix_parse: PST8PDT passes on Unix because it names an IANA
    zone.

 glib/tests/gdatetime.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

commit bdab372379790a9cca07c60ce5fa979a7dfc92ae
Author: John Ralls <jralls@ceridwen.us>
Date:   Mon Dec 17 13:35:10 2012 -0800

    MSWindows TimeZone Support: Refactor and rewrite TZ variable parsing

 glib/gtimezone.c | 619
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 300 insertions(+), 319 deletions(-)

commit 1af37768a533f1f5d039869f329d5a8bcd53d5f2
Author: John Ralls <jralls@ceridwen.us>
Date:   Tue Dec 11 13:42:05 2012 -0800

    Test the TZ-variable parsing functions

 glib/tests/gdatetime.c | 185
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 185 insertions(+)

commit 7d1ae24e19b4eb35c6cea810284fadda58e6d40e
Author: John Ralls <jralls@ceridwen.us>
Date:   Thu Dec 6 17:16:50 2012 -0800

    Implement and test time zone name/abbrev setting for Windows.

 glib/gtimezone.c       | 14 ++++++++++++++
 glib/tests/gdatetime.c |  9 +++++++++
 2 files changed, 23 insertions(+)

commit d12bb7ef7284b49ccdeb81d7ef80b572eb1195d8
Author: John Ralls <jralls@ceridwen.us>
Date:   Tue Dec 4 10:51:48 2012 -0800

    Win32 TimeZone Support: General refactoring

    For code clarity and to pass tests

 glib/gtimezone.c | 530
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 259 insertions(+), 271 deletions(-)

commit 1ef6933cbefe9ceed75b59e9dc4ece49aa6da247
Author: John Ralls <jralls@ceridwen.us>
Date:   Tue Dec 4 11:13:04 2012 -0800

    Add MSWindows timezone names to test new windows support.

 glib/tests/gdatetime.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 1ccd4d60fc6566ca4fcdbf6e961b1cb1cddc7127
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Sat Oct 20 11:06:28 2012 +0800

    GTimeZone: Fix time zones in Windows

    Get time zone information from registry. Use GetTimeZoneInformation()
    instead to get the local time zone if Dynamic DST is not available.

    https://bugzilla.gnome.org/show_bug.cgi?id=683998

 glib/gtimezone.c | 52
 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 49 insertions(+), 3 deletions(-)

commit 206ba07bd99b3d0cb0620e04ed51e4529d1ba6eb
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Mon Oct 15 11:07:16 2012 +0800

    GTimeZone: Parse Windows format for TZ

    Parse the "tzn[+|-]hh[:mm[:ss]][dzn]" format used in Windows for
    environment variable TZ.

    https://bugzilla.gnome.org/show_bug.cgi?id=683998

 glib/gtimezone.c | 265
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 265 insertions(+)

commit 87436e6b3d8a6218578e6ffd63a35e60ebc8a207
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Sat Oct 20 14:10:43 2012 +0800

    GTimeZone: Parse POSIX format for TZ

    Parse the "std offset [dst [offset],start[/time],end[/time]]" (POSIX)
    format used in Unix for environment variable TZ.

    https://bugzilla.gnome.org/show_bug.cgi?id=686128

 glib/gtimezone.c | 341
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 336 insertions(+), 5 deletions(-)

commit 9a4a53c03daf20b7a2f61db87af3b698dac80784
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Sun Oct 21 11:26:21 2012 +0800

    GTimeZone: Add initialization functions for rules

    Add functions to initialize a GTimeZone from rules.

 glib/gtimezone.c | 277
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 277 insertions(+)

commit 9fae921c3e3ecf312e7481f764894ef84add0d76
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Mon Oct 15 10:57:09 2012 +0800

    GTimeZone: Parse more offset formats

    Allow more formats for offset. Parse seconds in offsets too. Make
    offset
    signs optional.

    https://bugzilla.gnome.org/show_bug.cgi?id=686128

 glib/gtimezone.c | 46 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 37 insertions(+), 9 deletions(-)

commit 59f2da17490bca084a988092986d6b28d0342bf3
Author: John Ralls <jralls@ceridwen.us>
Date:   Mon Oct 15 14:32:58 2012 -0700

    Replace zoneinfo pointers with structs

    The approach of sucking a zoneinfo file into a GBytes and working with
    pointers into it might be fast, but it's obtuse and not compatible
    with
    Microsoft Windows.

 glib/gtimezone.c | 349
 +++++++++++++++++++++++++++++++++----------------------
 1 file changed, 211 insertions(+), 138 deletions(-)

commit 489e031f22611720b0259b937c81827b82ba00d6
Author: John Ralls <jralls@ceridwen.us>
Date:   Mon Oct 15 14:19:53 2012 -0700

    Extract function init_zone_from_iana_info

 glib/gtimezone.c | 89
 +++++++++++++++++++++++++++++---------------------------
 1 file changed, 46 insertions(+), 43 deletions(-)

commit 47de8646e2ef6490d930dbb8d1da99687682dcf3
Author: John Ralls <jralls@ceridwen.us>
Date:   Mon Oct 15 14:11:14 2012 -0700

    Extract function zone_info_unix

 glib/gtimezone.c | 82
 +++++++++++++++++++++++++++++++-------------------------
 1 file changed, 45 insertions(+), 37 deletions(-)

commit 5df1edaf70ad3abe45cb599de934b9531b7388a2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 5 11:07:16 2012 -0500

    gtype: disallow adding interfaces after the fact

    Add a check to prevent adding an interface to a class that has already
    had its class_init done.

    This is an incompatible change but it is suspected that there are not
    many users of this functionality.  Two known exceptions are pygobject
    (fixed in bug 686149) and our own testsuite (affected tests have been
    temporarily disabled by this patch).

    Once we confirm that nobody else is using this functionality we can
    remove a rather large amount of code for dealing with this case.

    https://bugzilla.gnome.org/show_bug.cgi?id=687659

 gobject/gtype.c             |  6 ++++++
 gobject/tests/threadtests.c | 20 ++++++++++++--------
 tests/gobject/Makefile.am   |  3 ---
 3 files changed, 18 insertions(+), 11 deletions(-)

commit d04faab3274ae06a318a87b08c499df7a797d39d
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Tue Dec 18 21:32:01 2012 +0100

    gio: Fix build with -Werror=format-security

 gio/gunixvolume.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d1ab41c940aa357c4cd04dd3c66284de3a15e5c4
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Tue Dec 18 21:23:13 2012 +0100

    Revert "gtype: disallow adding interfaces after the fact"

    This reverts commit d6a075b0d8dfe4e4a41f6624ad7032d2163d420c.

 gobject/gtype.c             |  6 ------
 gobject/tests/threadtests.c | 20 ++++++++------------
 tests/gobject/Makefile.am   |  3 +++
 3 files changed, 11 insertions(+), 18 deletions(-)

commit f0f6c8d231b415e5d69575c0c757e10abefdca2b
Author: PHO <pho@cielonegro.org>
Date:   Tue Dec 18 08:33:50 2012 +0900

    gsocket: Work around broken CMSG_FIRSTHDR()

    As RFC 2292 points out, some platforms (e.g. Darwin 9.8.0) provide
    CMSG_FIRSTHDR(msg) which just returns msg.msg_control without first
    checking if msg.msg_controllen is non-zero. We need a workaround for
    such platforms not to let g_socket_receive_message() segfault.

    https://bugzilla.gnome.org/show_bug.cgi?id=690388

 gio/gsocket.c | 57
 ++++++++++++++++++++++++++++++---------------------------
 1 file changed, 30 insertions(+), 27 deletions(-)

commit 780871d2738091f425afa1573bc1bce6969f85e6
Author: Colin Walters <walters@verbum.org>
Date:   Sat Dec 15 09:55:39 2012 -0500

    GOutputStream: Fix a compiler warning

 gio/goutputstream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 07bb8097e535eea27c5130c523f70759fb2ff45d
Author: Dan Winship <danw@gnome.org>
Date:   Sat Dec 15 11:44:59 2012 -0500

    gtask: don't deadlock when tasks block on other tasks

    If tasks block waiting for other tasks to complete then the system can
    end up starved for threads. Avoid this by bumping up max-threads in
    that case.

    This also reverts 7b1f8c58 and reverts max-threads for GTask's
    GThreadPool back to 10.

    https://bugzilla.gnome.org/show_bug.cgi?id=687223

 gio/gtask.c      | 41 ++++++++++++++++++++++++++--
 gio/tests/task.c | 83
 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 114 insertions(+), 10 deletions(-)

commit 2149b29468bb99af3c29d5de61f75aad735082dc
Author: Colin Walters <walters@verbum.org>
Date:   Mon Dec 17 10:47:53 2012 -0500

    Add g_get_num_processors()

    Based on a patch from John Cupitt <jcupitt@gmail.com>

    Useful for thread pools which should scale to number of processors.

    See https://bugzilla.gnome.org/show_bug.cgi?id=687223

    https://bugzilla.gnome.org/show_bug.cgi?id=614930

 docs/reference/glib/glib-sections.txt |  3 ++
 glib/glib.symbols                     |  1 +
 glib/gthread.c                        | 56
 +++++++++++++++++++++++++++++++++++
 glib/gthread.h                        |  3 ++
 glib/tests/spawn-multithreaded.c      | 10 ++++---
 5 files changed, 69 insertions(+), 4 deletions(-)

commit ed5accf16c03cc3ec5d54a457163a747d580b49d
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 2 15:50:35 2012 -0400

    gio: port file/vfs-related classes from GSimpleAsyncResult to GTask

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gdrive.c            |  56 +--
 gio/gfile.c             | 933
 ++++++++++++++++++------------------------------
 gio/gfileenumerator.c   | 184 ++++------
 gio/gfileicon.c         |  67 +---
 gio/gfileinputstream.c  |  80 ++---
 gio/gfileiostream.c     |  13 +-
 gio/gfileoutputstream.c |  80 ++---
 gio/gloadableicon.c     |  64 ++--
 gio/gmount.c            | 105 +++---
 gio/gunixmount.c        | 121 +++----
 gio/gunixvolume.c       | 101 +++---
 gio/gvolume.c           |  44 ++-
 12 files changed, 723 insertions(+), 1125 deletions(-)

commit 669505e354a843efb2e198d4b56e310fa6a69b9a
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 2 15:49:59 2012 -0400

    gio: port basic I/O classes from GSimpleAsyncResult to GTask

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gbufferedinputstream.c  | 168 +++++------
 gio/gbufferedoutputstream.c |  73 ++---
 gio/gdatainputstream.c      | 133 ++++-----
 gio/ginputstream.c          | 412 +++++++++++---------------
 gio/giostream.c             | 177 ++++++------
 gio/gmemoryinputstream.c    |  36 +--
 gio/gmemoryoutputstream.c   |  23 +-
 gio/goutputstream.c         | 686
 +++++++++++++++++++++-----------------------
 gio/gunixinputstream.c      | 110 ++-----
 gio/gunixoutputstream.c     | 103 ++-----
 10 files changed, 771 insertions(+), 1150 deletions(-)

commit 586adb9790a60ed6a8168da351719a93bc0c2e1a
Author: Shantha kumar <shkumar@redhat.com>
Date:   Tue Dec 18 16:48:21 2012 +0530

    Tamil translation updated

 po/ta.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 8a4567aaeba8fb9efc7d968b0d99dff00dc439eb
Author: Shantha kumar <shkumar@redhat.com>
Date:   Tue Dec 18 16:35:48 2012 +0530

    Tamil translation updated

 po/ta.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5eb2e087cee184e48fe0563c3950f6827be35bdd
Author: Shantha kumar <shkumar@redhat.com>
Date:   Tue Dec 18 16:29:08 2012 +0530

    Tamil translation updated

 po/ta.po | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit e3d6bb41c5682fca47fdcd498cbc8a356f84e81f
Author: Shantha kumar <shkumar@redhat.com>
Date:   Tue Dec 18 16:07:10 2012 +0530

    Tamil translation updated

 po/ta.po | 107
 +++++++++++++++++++++++----------------------------------------
 1 file changed, 39 insertions(+), 68 deletions(-)

commit b1eb481e47a135d11aba67047631ce9dd1927d23
Author: Shantha kumar <shkumar@redhat.com>
Date:   Tue Dec 18 16:01:25 2012 +0530

    Tamil translation updated

 po/ta.po | 6350
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3409 insertions(+), 2941 deletions(-)

commit 99d92b1f534a4a607558f26eef9818ec013ea64e
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Dec 18 08:40:39 2012 +0100

    Updated Slovenian translation

 po/sl.po | 1901
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 953 insertions(+), 948 deletions(-)

commit 9061d916058d706c3ff04f633e0158444adfec28
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 17 19:18:13 2012 -0500

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6262a48678c2104617a9d329668e878bbbf1fb7f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 17 14:39:24 2012 -0500

    2.35.3

 NEWS      | 65
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 README.in |  6 ++++++
 2 files changed, 66 insertions(+), 5 deletions(-)

commit c23122b5e9e1933d09389a3e88d8d42de89f6727
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 17 19:14:22 2012 -0500

    Fix distcheck

 build/Makefile-newvs.am      | 2 +-
 build/win32/vs11/Makefile.am | 3 ++-
 gio/Makefile.am              | 5 +++++
 3 files changed, 8 insertions(+), 2 deletions(-)

commit b055c828152b01d4e00182b24dc841136f50b4e1
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Mon Dec 17 14:58:04 2012 +0100

    Fix g_type_add_class_private() name in g_warning

    When g_type_class_get_private is called without calling
    g_type_add_class_private first, a g_warning is issued, but
    the name of the function to call is wrong:
    g_type_class_add_class_private.

    https://bugzilla.gnome.org/show_bug.cgi?id=690348

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit df334d6e00917d2ba8d8e722f9192da65c09827e
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 12 16:39:02 2012 +0100

    gsocket: improve sockopt handling for IPv4-wrapped-IPv6 sockets

    On IPv6 sockets, set both the IPv4 and IPv6 versions of IP socket
    options, in case the socket is (or might become) IPv4-wrapped. (But
    ignore errors when setting the IPv4 version.)

    Similarly, when joining or leaving a multicast group, pick the sockopt
    to use based on the address family of the multicast address rather
    than the address family of the socket.

    https://bugzilla.gnome.org/show_bug.cgi?id=687092

 gio/gsocket.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 72d7d23402ff33c1bb92069829749dba0c509328
Author: PHO <pho@cielonegro.org>
Date:   Mon Dec 17 22:26:38 2012 +0900

    Remove an unneeded escaping in NAMESER_COMPAT_INCLUDE

    In configure.ac, escaping '#' in NAMESER_COMPAT_INCLUDE results in
    the following gio/gnetworking.h, which obviously doesn't compile:

      #include <arpa/inet.h>
      #include <arpa/nameser.h>
      \#include <arpa/nameser_compat.h>

    https://bugzilla.gnome.org/show_bug.cgi?id=690346

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0eb28063a837b25a1ef388410fa656472f1d687d
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Dec 16 20:47:11 2012 +0100

    Updated Spanish translation

 po/es.po | 384
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 191 insertions(+), 193 deletions(-)

commit bb4ced01f69aa4e1e9f49452d0fb37ab9236efc1
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Dec 16 03:44:09 2012 +0100

    Updated Polish translation

 po/pl.po | 1034
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 515 insertions(+), 519 deletions(-)

commit 14ee3bc44849ebec5c87f40ef8d6431e0ddf7733
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Dec 15 00:41:54 2012 +0100

    Updated Galician translations

 po/gl.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b0efb4523455abe6deb0ec6fb05b8baca0b6a56a
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Dec 15 00:40:16 2012 +0100

    Updated Galician translations

 po/gl.po | 921
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 464 insertions(+), 457 deletions(-)

commit 0b2919a93a8deba7d233ccad6222e9eb92d7ccf5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Dec 15 00:28:30 2012 +0800

    Update Visual C++ property sheets

    The last commit (Add a preconfigured gio/gnetworking.h for Windows)
    has to
    be split into two as git am does not like a patch that deals with
    files
    that have different line feeds.

    This updates the property sheets to use the pre-configured
    gio/gnetworking.h during the build process.

    https://bugzilla.gnome.org/show_bug.cgi?id=690163

 build/win32/vs10/glib.props  | 6 +++---
 build/win32/vs9/glib.vsprops | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 4b859e4e7a23e4aaa325770e891b6a73d44cc9fc
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Dec 13 23:45:04 2012 +0800

    Add a preconfigured gio/gnetworking.h for Windows

    Since Windows builds by Visual C++ do not make use of autotools during
    its build process, we need to dist a pre-configured
    gio/gnetworking.h(.win32) for such builds.

    The vs9/vs10 (and therefore vs11) property sheets are updated as well

    https://bugzilla.gnome.org/show_bug.cgi?id=690163

 gio/Makefile.am         |  1 +
 gio/gnetworking.h.win32 | 82
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+)

commit cc3171f6802c909097f9633f3bde7705d39efaa9
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Fri Dec 14 16:54:09 2012 +0100

    docs: Fix return value of g_file_set_attributes_from_info()

    GIO API usually returns FALSE and sets GError when something went
    wrong
    and it was also the case of this method, just being badly documented.

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3c87ab97ffd8735bff78c177e163826484776cd2
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Dec 12 04:49:28 2012 -0500

    gfileenumerator: Add a g_file_enumerator_get_child method

    This is a new convenience method designed to simplify some use
    cases of GFileEnumerator, by making it easy to get the next file
    from a file enumerator.

    https://bugzilla.gnome.org/show_bug.cgi?id=690083

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfileenumerator.c               | 31 +++++++++++++++++++++++++++++++
 gio/gfileenumerator.h               |  3 +++
 gio/gio.symbols                     |  1 +
 gio/tests/live-g-file.c             |  4 ++--
 5 files changed, 38 insertions(+), 2 deletions(-)

commit 6cce4790b7639656c7701a4ed8495ba50abd7c6e
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Dec 12 22:21:17 2012 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 211ed1775dfc514077984d0fea5d2529dcc5036e
Author: Dan Winship <danw@gnome.org>
Date:   Mon Feb 13 21:12:34 2012 -0500

    gsocket: add getsockopt/setsockopt wrappers

    Add g_socket_get_option() and g_socket_set_option(), wrapping
    getsockopt/setsockopt for the case of integer-valued options. Update
    code to use these instead of the underlying calls.

    https://bugzilla.gnome.org/show_bug.cgi?id=623187

 configure.ac                        |  38 ++--
 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gnetworkmonitornetlink.c        |  21 +--
 gio/gsocket.c                       | 356
 ++++++++++++++++++++++--------------
 gio/gsocket.h                       |  13 ++
 gio/gunixconnection.c               |  64 +++----
 7 files changed, 288 insertions(+), 208 deletions(-)

commit b377e69685c99150cf7661e1aa77d60934e00521
Author: Dan Winship <danw@gnome.org>
Date:   Thu Nov 11 09:57:25 2010 -0500

    Add gnetworking.h

    Install a public "gnetworking.h" header that can be used to include
    the relevant OS-dependent networking headers. This does not really
    abstract away unix-vs-windows however; error codes, in particular,
    are incompatible.

    gnetworkingprivate.h now contains just a few internal URI-related
    functions

    Also add a g_networking_init() function to gnetworking.h, which can be
    used to explicitly initialize OS-level networking, rather than having
    that happen as a side-effect of registering GInetAddress.

    https://bugzilla.gnome.org/show_bug.cgi?id=623187

 configure.ac                        | 20 ++++++++-
 docs/reference/gio/gio-docs.xml     |  1 +
 docs/reference/gio/gio-sections.txt |  6 +++
 gio/.gitignore                      |  1 +
 gio/Makefile.am                     |  3 ++
 gio/gcredentials.c                  | 13 +-----
 gio/gdbusauth.c                     |  3 +-
 gio/ginetaddress.c                  | 22 +++-------
 gio/gio.symbols                     |  1 +
 gio/gnetworking.c                   | 79
 +++++++++++++++++++++++++++++++++++
 gio/gnetworking.h.in                | 83
 +++++++++++++++++++++++++++++++++++++
 gio/gnetworkingprivate.h            | 55 +-----------------------
 gio/gresolver.c                     |  6 +--
 gio/gsocket.c                       |  8 ++--
 gio/gunixconnection.c               |  8 +---
 gio/gunixcredentialsmessage.c       | 16 ++-----
 gio/gunixfdlist.c                   |  3 +-
 gio/gunixfdmessage.c                |  3 +-
 gio/gunixsocketaddress.c            |  2 +-
 gio/tests/gdbus-peer.c              |  2 +-
 gio/tests/socket.c                  |  3 +-
 gio/tests/unix-fd.c                 |  2 +-
 22 files changed, 220 insertions(+), 120 deletions(-)

commit 9e90575502e663e5adde201f214c811df08bdf29
Author: Dan Winship <danw@gnome.org>
Date:   Thu Dec 29 11:25:07 2011 -0500

    gio: move resolver utils from gresolver.c to gthreadedresolver.c

    Since there is only one resolver implementation now, we can move the
    resolver utility functions from gresolver.c into gthreadedresolver.c,
    and remove the prototypes from gnetworkingprivate.h.

    https://bugzilla.gnome.org/show_bug.cgi?id=623187

 gio/gnetworkingprivate.h |  34 ---
 gio/gresolver.c          | 555
 -----------------------------------------------
 gio/gthreadedresolver.c  | 499 +++++++++++++++++++++++++++++++++++++++---
 3 files changed, 474 insertions(+), 614 deletions(-)

commit c70072180557c0a897da0d96ef2cf4f5398ddd3b
Author: Colin Walters <walters@verbum.org>
Date:   Tue Dec 11 16:53:48 2012 -0500

    g_unix_open_pipe: Add missing F_SETFD

    Spotted by Ray Strode <rstrode@redhat.com>

    While we're here, microoptimize by skipping the fcntl() calls if flags
    is 0.

    https://bugzilla.gnome.org/show_bug.cgi?id=690069

 glib/glib-unix.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 5baa26be724db9e8bb16e52568a0caca31a0b74b
Author: Colin Walters <walters@verbum.org>
Date:   Mon Dec 10 20:30:44 2012 -0500

    gobject.symbols: Update for g_checksum_get_type()

    See previous commit.

 gobject/gobject.symbols | 1 +
 1 file changed, 1 insertion(+)

commit bf1e63c2aaa0ff3dad75a006576ba8b5daac6559
Author: Colin Walters <walters@verbum.org>
Date:   Mon Dec 10 10:50:30 2012 -0500

    Make GChecksum more fully introspectable

    In 2.34, g_compute_checksum_for_bytes() was added, but this patch
    allows binding users to use the incremental update API; this is
    significantly more efficient than reading entire files into memory.

    https://bugzilla.gnome.org/show_bug.cgi?id=689982

 glib/gchecksum.c     |  8 ++++----
 gobject/gboxed.c     |  1 +
 gobject/glib-types.h | 11 +++++++++++
 3 files changed, 16 insertions(+), 4 deletions(-)

commit afdb2abb13896a3d5caecabd2f7158e8047f9956
Author: Dan Winship <danw@gnome.org>
Date:   Wed Nov 7 10:36:05 2012 -0500

    gio: Don't leak the temp file when g_file_replace() fails or is
    cancelled

    If the temp file still exists at the end of the close operation,
    unlink it.

    https://bugzilla.gnome.org/show_bug.cgi?id=629301

 gio/glocalfileoutputstream.c |   5 ++
 gio/tests/file.c             | 136
 ++++++++++++++++++++++++++++++++++---------
 2 files changed, 113 insertions(+), 28 deletions(-)

commit e218b96a6bf687842834fbfe133e77495049f251
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Dec 7 17:34:52 2012 +0100

    Add g_type_get_type_registration_serial()

    This lets you cache type lookup information and then know when
    the cache information is out of date. In particular, we want this
    in order to be able to cache g_type_from_name() lookups in the Gtk+
    theme machinery.

    https://bugzilla.gnome.org/show_bug.cgi?id=689847

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gobject.symbols                     |  1 +
 gobject/gtype.c                             | 23 +++++++++++++++++++++++
 gobject/gtype.h                             |  3 +++
 4 files changed, 28 insertions(+)

commit d77948eadf39ff4fdc001f679c7628e84e3af461
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Thu Dec 6 16:21:58 2012 -0500

    fileinfo: mark lost+found/ root directory as hidden

    This was reported in bug 689800.

    https://bugzilla.gnome.org/show_bug.cgi?id=689800

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/glocalfile.c     | 40 ++++++++++++++++++++++++++++++++++++++++
 gio/glocalfileinfo.c |  5 +++++
 gio/glocalfileinfo.h |  4 ++++
 3 files changed, 49 insertions(+)

commit 510ba9b4efe1813e24c6dfa7405c3547bf9efdd7
Author: Timothy Arceri <t_arceri@yahoo.com.au>
Date:   Thu Nov 29 10:50:55 2012 +1100

    Support for .hidden files

    https://bugzilla.gnome.org/show_bug.cgi?id=587806

 gio/glocalfileinfo.c | 116
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 115 insertions(+), 1 deletion(-)

commit 6869454103471d383216dc39db09279d61aa2bba
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 13:56:39 2012 -0500

    add two missing version macros

 gio/gsimpleactiongroup.h  | 1 +
 glib/deprecated/gthread.h | 1 +
 2 files changed, 2 insertions(+)

commit 7c9884476085ceb3fc91cd2eb0374543e79a6e56
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 6 13:29:31 2012 -0500

    various: add missing cases of #include "config.h"

 gio/gapplicationimpl-dbus.c    | 2 ++
 gio/gdbusmenumodel.c           | 2 ++
 gio/gioenumtypes.c.template    | 2 ++
 gio/gmenuexporter.c            | 2 ++
 gio/gmenumodel.c               | 2 ++
 gio/gnextstepsettingsbackend.c | 2 ++
 gio/gsimpleactiongroup.c       | 2 ++
 glib/glib-private.c            | 2 ++
 glib/gtimezone.c               | 2 ++
 glib/gvariant-core.c           | 2 ++
 10 files changed, 20 insertions(+)

commit 7523c04b54485f3343a3fb55ada4a8f3d8290860
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Dec 2 12:07:24 2012 -0500

    g_get_home_dir(): honour $HOME

    If the $HOME environment variable is set, prefer that to the entry in
    /etc/passwd.

    This brings us in line with almost every other utility and library on
    UNIX-like systems while avoiding some of the more complicated
    possibilities that have been suggested.

    This incompatible change has been petitioned for quite some time by
    many, and in particular from the Debian world, which carries a patch
    that adds a new G_HOME environment variable with the same meaning as
    this patch now assigns to HOME.

    The primary motivation for the change was to increase the testability
    of
    GLib-based programs from 'make check' types of frameworks: it is now
    possible to set HOME to a temp directory to avoid the testsuite
    modifying the user's real home directory.

    The change also brings us increased compliance with the XDG Base
    Directory Specification.  The specification specifically states
    that the
    default values should be computed based on the HOME environment
    variable, whereas we were basing them on the value from /etc/passwd.

    The change was agreed to by all in attendence at the November 29 Gtk+
    developer meeting.

    https://bugzilla.gnome.org/show_bug.cgi?id=142568

 NEWS          |  9 ++++++++
 glib/gutils.c | 74
 +++++++++++++++++++++++++++++------------------------------
 2 files changed, 46 insertions(+), 37 deletions(-)

commit 28f88cf111eb0c8ac109d8a99560c39eaa71ce01
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Dec 5 20:08:15 2012 +0100

    Updated Spanish translation

 po/es.po | 290
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 147 insertions(+), 143 deletions(-)

commit 1e74e46a00bc4495f620b3c0e639f6c05d7d2389
Author: Colin Walters <walters@verbum.org>
Date:   Fri Nov 30 15:18:01 2012 -0500

    gdbusobjectskeleton: Fix compiler warnings

    The G_OBJECT_WARN_INVALID_PROPERTY_ID() macro uses a local variable
    named "_object"; work around this by using "object" as the variable we
    pass in.

    https://bugzilla.gnome.org/show_bug.cgi?id=689377

 gio/gdbusobjectskeleton.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 33de093b5abf26c42e9b6ead38088afd21e61991
Author: Colin Walters <walters@verbum.org>
Date:   Fri Nov 30 15:22:54 2012 -0500

    gobject: Use local variable names in macros less likely to clash

    At least GDBus had code that had "_object" as a parameter to one of
    its functions, but this clashes with the GObject macro
    G_OBJECT_WARN_INVALID_PROPERTY_ID() which created a local "_object".

    Since many of us cargo cult around copies of objects, let's be
    defensive here and use local variable names less likely to clash with
    application code.

    https://bugzilla.gnome.org/show_bug.cgi?id=689377

 gobject/gobject.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit e97a2f4195fb5bd8d7777651232dc10487a1ed92
Author: Dan Winship <danw@gnome.org>
Date:   Thu Nov 15 22:26:54 2012 -0500

    win32: suppress fatal error dialog box when running tests

    When running a test program (ie, if g_test_init() has been called),
    don't pop up a dialog box when a fatal error occurs. Just print the
    message to stderr and exit.

    https://bugzilla.gnome.org/show_bug.cgi?id=679683

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gmessages.c                      | 14 +++++++++-----
 glib/gtestutils.c                     | 10 ++++++++++
 glib/gtestutils.h                     |  1 +
 4 files changed, 21 insertions(+), 5 deletions(-)

commit ac025007cc571cd767fac8cbd6f937d01773ce28
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Mon Dec 3 15:59:06 2012 +0100

    gsocketlistener: set source object tag before completing the GTask

    Otherwise, the finish() method won't find the source object.

    https://bugzilla.gnome.org/show_bug.cgi?id=689538

 gio/gsocketlistener.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 80c24d36f2525d83e458ebbdf62fdbd085945a02
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Sun Dec 2 15:34:37 2012 +0100

    win32: Fix GDBusDaemon build when glib is built as a static lib

    This makes sure not to ifdef _g_io_win32_get_module() out when glib is
    built as a static lib, and also fixes it to work when DllMain isn't
    available.

    The implementation uses GetModuleHandleEx() which is only available on
    Windows XP and later, so this commit effectively drops the Windows
    2000
    support in glib. Earlier commit 731b4699 already took care of defining
    _WIN32_WINNT to support the Windows XP API.

    https://bugzilla.gnome.org/show_bug.cgi?id=675516

 gio/giomodule.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 4a506290a701a890b4609ac979f8e1d11935a39e
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Fri Sep 14 08:58:04 2012 +0800

    win32: Use AC_CHECK_TOOL to find dlltool

    https://bugzilla.gnome.org/show_bug.cgi?id=684145

 configure.ac      | 1 +
 tests/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit e261b9c0308495ef03a5171fec734323748b599d
Author: Evan Nemerson <evan@coeus-group.com>
Date:   Thu Nov 15 11:52:28 2012 -0800

    gtask: annotate source_object arguments and return values as GObject

    https://bugzilla.gnome.org/show_bug.cgi?id=688419

 gio/gtask.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

commit fe0b77fea8c9e5e5d1dd1cada4c18f17b6c9085a
Author: Mike Gorse <mgorse@suse.com>
Date:   Thu Nov 29 16:51:59 2012 -0600

    Optimize reading strings when deserializing gdbus messages

    Now that we're directly accessing the memory holding a message blob,
    we can access strings directly while reading them. This speeds up
    read_string significantly, since we no longer malloc/memcpy/free.

 gio/gdbusmessage.c | 96
 +++++++++++++++---------------------------------------
 1 file changed, 26 insertions(+), 70 deletions(-)

commit a5f57bad20754b337357e1fba099773b34ed841d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 30 09:03:20 2012 -0500

    g_file_enumerate_children: Fix reference to wrong error code

    This function does in fact return G_IO_ERROR_NOT_DIRETORY, and
    not G_FILE_ERROR_NOTDIR.

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 30cff2a8e07a818a2bd8800549b264b6dec73b89
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Fri Nov 30 17:23:29 2012 +0530

    Assamese translation updated

 po/as.po | 176
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 87 insertions(+), 89 deletions(-)

commit d64691c1fdd0fcf39e106507d30fb69aa672df04
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Nov 30 11:01:53 2012 +0200

    Updated Hebrew translation.

 po/he.po | 161
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 81 insertions(+), 80 deletions(-)

commit e2241c62eebbab6a169fe7ceb4413e8cc778bed7
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Nov 23 10:11:32 2012 +0200

    Updated Hebrew translation.

 po/he.po | 1019
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 514 insertions(+), 505 deletions(-)

commit 936254c386b57ee61ccbba3fac659fc631a9cc9a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Nov 30 09:39:13 2012 +0100

    Don't look for icons called "(null)" if no xdg mime icon

 gio/gcontenttype.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit edf94ba2631b8c4d32e798eaec69ceb89d6b32a8
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Thu Nov 29 17:48:35 2012 +0100

    Fix race condition in gapplication/basic test

    The three processes this test creates need to be executed
    in order, and g_usleep was used to guarantee that.
    However, under heavy load, that is not enough. Instead,
    wait until the children start by making sure they have
    written to stdout before proceeding any further.

    https://bugzilla.gnome.org/show_bug.cgi?id=664627

 gio/tests/gapplication.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit 3e5214c15c2a19b64d74e7142b6cd0d520dddf04
Author: Mike Gorse <mgorse@suse.com>
Date:   Wed Oct 31 19:44:03 2012 -0500

    Use a simple struct when reading and writing gdbus messages

    GData*Streams incur significant overhead, and we do not need all
    of the
    functionality that they provide, since we only ever read from/write to
    memory when handling message blobs, so it is more performant to use a
    simple structure.

    https://bugzilla.gnome.org/show_bug.cgi?id=652650

 gio/gdbusmessage.c | 818
 +++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 600 insertions(+), 218 deletions(-)

commit ccd1fb682050f4ccd9e0b5d1024d02199b7c862b
Author: Juan Pablo Ugarte <juanpablougarte@gmail.com>
Date:   Thu Nov 29 16:12:25 2012 -0300

    Added G_IO_ERROR_BROKEN_PIPE

 gio/gioenums.h | 4 +++-
 gio/gioerror.c | 6 ++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 52c608dd0d2f8a2818c6b1fc36040eeed8f301ab
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 29 09:03:32 2012 -0500

    gio: GLIB_AVAILABLE_IN to more APIs

    Useful on its own, but also for a future patch for symbol visibility.

    https://bugzilla.gnome.org/show_bug.cgi?id=688681

 gio/gactionmap.h       |  4 ++++
 gio/gapplication.h     |  1 +
 gio/gcontenttype.h     |  1 +
 gio/gdesktopappinfo.h  |  6 ++++++
 gio/ginetaddressmask.h |  6 ++++++
 gio/giomodule.h        |  5 +++++
 gio/gmenu.h            | 27 +++++++++++++++++++++++++++
 gio/gmenumodel.h       | 19 +++++++++++++++++++
 gio/gresource.h        |  2 ++
 gio/gsettingsschema.h  |  4 ++++
 gio/gsimpleaction.h    |  1 +
 11 files changed, 76 insertions(+)

commit ce586ba991967b1a663a9082312a45725da6fe5b
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Nov 28 23:25:52 2012 +0100

    Unconditionally use g_content_type_get_symbolic_icon()

    ... and g_content_type_get_generic_icon_name(). The new functions are
    implemented for Win32 since commit dace477c, so we no longer need to
    guard them with G_OS_UNIX.

 gio/gio.symbols      | 2 --
 gio/glocalfileinfo.c | 2 --
 2 files changed, 4 deletions(-)

commit c9affa778e14e7dc44221fa678963e09df744f32
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Nov 28 16:55:12 2012 +0100

    Revert "Fix compilation on Android with the bionic C library"

    This reverts commit cb0ed84d4022e0fba6aaa9e99e258d8d507a90e5.

    It wasn't meant to be pushed yet.

 gio/glocalfileinfo.c               |   2 -
 gio/gresolver.c                    | 137
 -------------------------------------
 gio/gthreadedresolver.c            |   7 --
 gio/tests/gtlsconsoleinteraction.c |  10 +--
 glib/galloca.h                     |   4 +-
 glib/gstrfuncs.c                   |  14 ----
 glib/gutils.c                      |   6 --
 gmodule/gmodule-dl.c               |   4 --
 8 files changed, 2 insertions(+), 182 deletions(-)

commit 97385dbbe82a628a9997ed85e6c9f58dddf334d0
Author: Andoni Morales Alastruey <ylatuya@gmail.com>
Date:   Wed Nov 28 16:34:18 2012 +0100

    Fix duplicated case value for mingw runtimes defining EOVERLFOW
    as EFBIG

 glib/giochannel.c | 2 ++
 1 file changed, 2 insertions(+)

commit cb0ed84d4022e0fba6aaa9e99e258d8d507a90e5
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Nov 28 16:28:28 2012 +0100

    Fix compilation on Android with the bionic C library

 gio/glocalfileinfo.c               |   2 +
 gio/gresolver.c                    | 137
 +++++++++++++++++++++++++++++++++++++
 gio/gthreadedresolver.c            |   7 ++
 gio/tests/gtlsconsoleinteraction.c |  10 ++-
 glib/galloca.h                     |   4 +-
 glib/gstrfuncs.c                   |  14 ++++
 glib/gutils.c                      |   6 ++
 gmodule/gmodule-dl.c               |   4 ++
 8 files changed, 182 insertions(+), 2 deletions(-)

commit 058fa6393e368a2134f18df3296c09eb33d8e951
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Nov 28 16:25:43 2012 +0100

    Protect against strcmp() on NULL strings

 glib/ggettext.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit fca30c3e165df732360e26c685496729dbcfe8b9
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Wed Nov 28 12:09:17 2012 +0100

    g_unix_signal_add_full(): Annotate to shadow g_unix_signal_add()

    Just like g_timeout_add() and friends, we want to hide the
    unintrospectable
    g_unix_signal_add() from GI bindings and present
    g_unix_signal_add_full() as
    GLib.unix_signal_add() to them.

 glib/glib-unix.c | 1 +
 1 file changed, 1 insertion(+)

commit 2b6be7544c5f5a8937f9e62eb796d0489cb46a67
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 28 00:04:45 2012 -0500

    Add new api to the docs

 docs/reference/gio/gio-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 65740f62bfa41836a738267d09fc676744af8edc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 28 00:01:11 2012 -0500

    Fix suprisingly hard-to-spot typo

 gio/gfileinfo.c | 2 +-
 gio/gfileinfo.h | 2 +-
 gio/gio.symbols | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit ed5c17e11f3b37b0725e1ca2f62511338fa23f1b
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 22 08:23:27 2012 -0500

    GMemoryOutputStream: Add new _resizable() constructor usable from
    bindings

    Really, the memory output stream API is too warped around the model
    where it's a fixed size buffer that you've already allocated.  Even in
    C, I find myself always wanting to use it to just accumulate data into
    an arbitrary-sized buffer it allocates.

    Unfortunately, it's also not usable from bindings because it's not
    common to bind g_free() and g_realloc(), but if you just pass
    NULL, you
    get the default of a fixed size, which is useless as per above.

    I am going to use this from a gjs test case, and the GSubprocess test
    cases also will use it.

    https://bugzilla.gnome.org/show_bug.cgi?id=688931

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gmemoryoutputstream.c           | 14 ++++++++++++++
 gio/gmemoryoutputstream.h           |  2 ++
 gio/tests/memory-output-stream.c    |  4 ++--
 5 files changed, 20 insertions(+), 2 deletions(-)

commit 7a5dd54f472790c7ba366d267c637eb203797c14
Author: Bastien Nocera <hadess@hadess.net>
Date:   Tue Nov 27 17:23:08 2012 +0100

    fileinfo: Add missing AVAILABLE macro

    As forgotten in previous patch.

 gio/gfileinfo.h | 1 +
 1 file changed, 1 insertion(+)

commit f635f1fd16d72ba4dc1fe2f1dc1413c773595393
Author: Bastien Nocera <hadess@hadess.net>
Date:   Tue Nov 27 16:59:28 2012 +0100

    fileinfo: Add _get_deletion_date() helper

    For use in gnome-settings-daemon, so that callers don't have
    to parse the deletion date by hand.

 gio/gfileinfo.c | 36 ++++++++++++++++++++++++++++++++++++
 gio/gfileinfo.h |  1 +
 gio/gio.symbols |  1 +
 3 files changed, 38 insertions(+)

commit 3baf256a2c55ffcf2664e72a39821fddb59370e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 25 14:25:59 2012 -0500

    gio: New API for GFile from remote commandline arg

    Add a pair of new APIs: one to GFile to create a new file from a
    commandline arg relative to a given cwd and one to
    GApplicationCommandLine to create a GFile from an arg, relative to the
    cwd of the invoking commandline.

    https://bugzilla.gnome.org/show_bug.cgi?id=689037

 docs/reference/gio/gio-sections.txt |  2 +
 gio/gapplicationcommandline.c       | 32 ++++++++++++++++
 gio/gapplicationcommandline.h       |  4 ++
 gio/gfile.c                         | 76
 +++++++++++++++++++++++++++++--------
 gio/gfile.h                         |  3 ++
 gio/gio.symbols                     |  2 +
 6 files changed, 103 insertions(+), 16 deletions(-)

commit 4e7161ce20364a61db1b6188654c19d9ff83b9d9
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Tue Nov 27 19:21:43 2012 +0530

    Updated Odia Translation with FUEL implementation.

 po/or.po | 325
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 190 insertions(+), 135 deletions(-)

commit b55e1820a9faff5557d99f78bd0a205659afc60d
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 24 15:47:45 2012 -0500

    g_test_expect_message: fix pattern syntax in example code

 glib/gmessages.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 37f369a41eebcebe331f614b12c07cb954f3144c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 25 14:47:53 2012 -0500

    stop using libgthread internally

    The gobject tools (glib-genmarshal and gobject-query) were linking
    against libgthread.  Stop that.

    Also, remove the gthread_INCLUDES internal automake substitution.

 configure.ac        | 9 ++-------
 gobject/Makefile.am | 4 ++--
 2 files changed, 4 insertions(+), 9 deletions(-)

commit 1f005d93853f882cfeac3805644286e4d8a99124
Author: John Ralls <jralls@ceridwen.us>
Date:   Sun Nov 25 16:35:08 2012 +0900

    Bug 681685: Transcoding fails on OSX

    Add aliases for codesets supported by iconv and included in locales.
    Ifdef-out tests in glib/tests/gdatetime.c which fail because on
    OSX only
    ASCII numbers or symbols are returned for the format.

    Even though nl_langinfo does weird things on Darwin in some cases, it
    still acts correctly when LANG/LC_ALL is set to a supported
    locale.codeset.

 glib/libcharset/config.charset | 32 ++++++++++++++++++++++++++++++++
 glib/tests/gdatetime.c         |  8 ++++++++
 2 files changed, 40 insertions(+)

commit ee8080cc0bda9141e323c01b12e812b1ab748e18
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sat Nov 24 19:12:13 2012 +0100

    Add GApplication local_command_line test

    Assert that startup and shutdown are not called if we return TRUE from
    local_command_line

 gio/tests/gapplication.c | 56
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

commit 543bbd8752cf6370897c711afed3caa0663a4850
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Nov 24 13:20:29 2012 -0500

    GApplication: don't shutdown() on failure to start

    If we fail to start (and don't register() or call startup()) then also
    don't call shutdown().  This happens in the case of failing to parse
    commandline arguments, for example.

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit be008ea6e2fd4d6fa38d00b16365b20e7fc2f876
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Nov 24 11:23:22 2012 -0500

    gdatetime: Fix some docs sed damage

 glib/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit afc2294fa84992784945842048a3e8799d73f1a8
Author: Rajesh Ranjan <rranjan@redhat.com>
Date:   Fri Nov 23 14:22:25 2012 +0530

    hindi translation update

 po/hi.po | 873
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 451 insertions(+), 422 deletions(-)

commit 7ed88ac25cbd93e5e15047a42570e1bb3003458d
Author: Rajesh Ranjan <rranjan@redhat.com>
Date:   Fri Nov 23 14:04:34 2012 +0530

    hindi translation update

 po/hi.po | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

commit 6290d5218100bd12d4cf3fdc4087ba0fbb0afa94
Author: Rajesh Ranjan <rranjan@redhat.com>
Date:   Fri Nov 23 14:02:05 2012 +0530

    hindi translation update

 po/hi.po | 876
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 424 insertions(+), 452 deletions(-)

commit 2b7c2107a5478660630666e57d53251c7602135a
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Thu Nov 22 19:41:19 2012 +0100

    Improve i18n documentation

    Clearly explain which gettext functions must be called. It depends
    whether the program is an application or a library.

    https://bugzilla.gnome.org/show_bug.cgi?id=688886

 glib/ggettext.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 276cf6ceeea9489ef1ed23788c3c42dee5fcd72d
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Thu Nov 22 16:56:52 2012 +0100

    configure: Make GNUC visibility attribute test more reliable.

    Using "int main (int argc, char** argv)" in this test causes GCC to
    issue two warnings about unused variable if CFLAGS envvar has
    -Wunused-parameter (or just -Wextra). Those warnings are not related
    to the attribute checking but they can make the test fail anyway.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 73d230bc2500a17f9d7eb605c8c86fad3a878014
Author: Nilamdyuti Goswami <ngoswami@redhat.com>
Date:   Thu Nov 22 21:59:15 2012 +0530

    Assamese translation updated

 po/as.po | 1017
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 548 insertions(+), 469 deletions(-)

commit 7944195b7acadc6061c1e4fac0aad3be11a5bb16
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Thu Nov 22 20:20:05 2012 +0530

    Updated Odia Translation with FUEL implementation.

 po/or.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5089ebefe97447c9cf1dbc6779de24568cd624d2
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Thu Nov 22 20:18:15 2012 +0530

    Updated Odia Translation with FUEL implementation.

 po/or.po | 1897
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 1072 insertions(+), 825 deletions(-)

commit 5ff99924d89896541212c93b0ac80229e7fc6a20
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Wed Nov 14 14:59:42 2012 +0000

    gthread: add AVAILABLE_IN_2_32 annotations

    https://bugzilla.gnome.org/show_bug.cgi?id=688319

 glib/gthread.h | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 4ffa4724383cbb93c4c2fd0fb8d46027a54acde0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 21 17:39:19 2012 -0500

    Add a test for the GAppLaunchContext::launched signal

 gio/tests/appinfo.c | 50
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

commit bace1822d792cd8767156508834237d550888177
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 16 18:24:21 2012 -0500

    GAppLaunchContext: make it possible ot get the effective startup id

    gnome-session needs to know the startup id that was given to
    a started app; this was not available via GAppLaunchContext.
    This commit adds a ::launched signal to get this information.
    At the same time, turn the launch_failed vfunc into a signal
    as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=688497

 gio/gappinfo.c        | 55
 +++++++++++++++++++++++++++++++++++++++++++++------
 gio/gappinfo.h        |  4 +++-
 gio/gdesktopappinfo.c | 14 +++++++++++++
 3 files changed, 66 insertions(+), 7 deletions(-)

commit 7b0c93554be9db2db2cba2cd59bcbebad5077d47
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 21 21:14:26 2012 -0500

    Add new api to exported symbols

 gio/gio.symbols | 3 +++
 1 file changed, 3 insertions(+)

commit 419a1e404007ac7d63788e700ed30b54a5efa711
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 21 21:13:40 2012 -0500

    Add new API to the docs

 docs/reference/gio/gio-sections.txt | 3 +++
 1 file changed, 3 insertions(+)

commit ace7b0fd86430774fc5de2eaee8d6b1b15930c59
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 21 16:15:14 2012 -0500

    Add a test for new GDesktopAppInfo getters

 gio/tests/desktop-app-info.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 4adbc7aa42d75c072cf6946240a82f56247416f6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 16 18:22:45 2012 -0500

    GDesktopAppInfo: add enough api to make autostart implementable

    gnome-session still uses EggDesktopFile, since GDesktopAppInfo is
    missing a handful of APIs that are needed to implement the
    autostart spec. This patch adds the minimum that is required.

    https://bugzilla.gnome.org/show_bug.cgi?id=688497

 gio/gdesktopappinfo.c | 103
 ++++++++++++++++++++++++++++++++++++++++++++------
 gio/gdesktopappinfo.h |   9 +++++
 2 files changed, 101 insertions(+), 11 deletions(-)

commit 563ee093bccca5727908a7c20da2a42f59cb004b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Nov 22 08:59:02 2012 +0800

    build/win32/Makefile.am: Also go into the vs11 subdirectory

 build/win32/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 76cecf061b377d30e5422cdddb1fb9d19c52421d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 19 12:58:55 2012 +0800

    Add autotools scripts to create VS2012 projects

    As the project file format for Visual Studio 2012 is only slightly
    different from Visual Studio 2010 projects, we can provide support for
    building GLib (and other projects) with Visual Studio 2012 with
    relatively
    little effort.  This might change when we eventually get GLib to
    work with
    the Windows 8 (Modern UI/formerly Metro) APIs, but this will
    suffice for
    the time being for people needing to build GLib with Visual Studio
    2012.

    Basically all that needs to be done at 'make dist' is:
    -Copy the .sln/.props/README.txt/.vcxproj files and replace the VS2010
     stuff with VS2012 stuff
    -Copy the .vcxproj.filters as is

 build/Makefile-newvs.am      | 32 ++++++++++++++++++++++++++++++++
 build/win32/vs11/.gitignore  | 30 ++++++++++++++++++++++++++++++
 build/win32/vs11/Makefile.am | 36 ++++++++++++++++++++++++++++++++++++
 configure.ac                 |  1 +
 4 files changed, 99 insertions(+)

commit 269f890474de12f31548ddb66ff9a856b18a9894
Author: Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Date:   Mon Nov 12 17:07:39 2012 +0100

    GObject: Fix code snippet in description of floating reference.

    https://bugzilla.gnome.org/show_bug.cgi?id=688180

 gobject/gobject.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5900d60d0640af59961e87f5315eb1d2f11fad9c
Author: Olivier Blin <olivier.blin@softathome.com>
Date:   Wed Nov 14 19:08:10 2012 +0100

    configure: add missing square bracket in AS_IF for memmove

    This has been broken in commit
    54e31ab4f172bbb28434eafc34c9345a93c9ccf5
    It seems to be the only hunk that was incorrectly converted.

    https://bugzilla.gnome.org/show_bug.cgi?id=688377

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6e2046207a2fe1c013bbf348b87d54a1375dea7a
Author: Eduardo Lima Mitev <elima@igalia.com>
Date:   Fri Nov 16 18:20:09 2012 +0100

    gchecksum: Adds SHA512 support

    https://bugzilla.gnome.org/show_bug.cgi?id=602715

 glib/gchecksum.c      | 317
 +++++++++++++++++++++++++++++++++++++++++++++++++-
 glib/gchecksum.h      |   4 +-
 glib/tests/checksum.c | 192 ++++++++++++++++++++++++++++++
 3 files changed, 511 insertions(+), 2 deletions(-)

commit 5c94a3e89cae9946bab07478c992172eda9c8ca9
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Nov 20 15:50:54 2012 +0100

    Updated Spanish translation

 po/es.po | 815
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 414 insertions(+), 401 deletions(-)

commit 46a92a760b8fc83015ec5016cd0bc8b3ab343325
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Tue Nov 20 08:58:30 2012 +0100

    Add boxed GType for GThread

    https://bugzilla.gnome.org/show_bug.cgi?id=688704

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gboxed.c                            |  2 ++
 gobject/glib-types.h                        | 11 +++++++++++
 gobject/gobject.symbols                     |  1 +
 4 files changed, 15 insertions(+)

commit ca8062a389d88b879da1018c5d2f7429113b9e9e
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Tue Nov 20 11:42:27 2012 +0530

    Updated Kannada Translations

 po/kn.po | 372
 +++++++++++++++++++++++++++------------------------------------
 1 file changed, 157 insertions(+), 215 deletions(-)

commit 51d083010286cb4bdc0d7b0b2323e25a94115087
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Tue Nov 20 00:11:56 2012 +0100

    file-info: Don't leak the filename if thumbnailing failed

    Fixes: https://bugzilla.gnome.org/686895

 gio/glocalfileinfo.c | 1 +
 1 file changed, 1 insertion(+)

commit cdc95d31e61d6ff9425011af7904cb342e4a3a86
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 19 18:20:41 2012 -0500

    *bump*

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 779ed3f0a530f402d522b1eb23c2dd06f70e6413
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 19 16:14:05 2012 -0500

    NEWS

 NEWS | 84
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

commit 824bc48adb464d5360237975fc5369f0b634d9b9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 19 16:10:55 2012 -0500

    Remove two accidentally-exported symbols

    This reverts commit 85976cf91deae6ac7cf1639a187a424ff7296968 and
    properly removes the offending symbols from gio.symbols.

    These two private symbols were found to be exported during Colin's
    recent work cleaning up function visibility (among other things).

    They were never exposed in any header file and I am 100% certain that
    they have never been used by anybody.  They were always private
    -- only
    exposed on the library symbol list.

    This change will cause ABI checking tools to complain that we have
    removed functions, but the change is completely harmless for actual
    applications.

    https://bugzilla.gnome.org/show_bug.cgi?id=687441

 gio/gio.symbols  | 2 --
 gio/gmenumodel.c | 8 ++------
 2 files changed, 2 insertions(+), 8 deletions(-)

commit 5272bc4d67ff6c100ba02b02869db80f51d37c26
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 19 10:28:55 2012 -0500

    Revert "[gobject] set all properties before constructed()"

    This reverts commit 028d4a03f2baa7ca9243a2819f30ffb0d5e137d7.

    I thought that we would be able to get away with this incompatible
    change but it appears to impact far too much existing code.  The only
    thing we can do is revert.

    https://bugzilla.gnome.org/show_bug.cgi?id=688596

 gobject/gobject.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 39150f90e5c34e5402c1a31ed9e71d2e21cfd4c0
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 19 12:38:28 2012 +0800

    Update config.h.win32.in

    Make its entries correspond to the entries in config.h.in, and use
    _strnicmp for strncasecmp on Visual C++.

 config.h.win32.in | 29 ++++++++++++++++++++---------
 1 file changed, 20 insertions(+), 9 deletions(-)

commit 596f96b08db1b99c820e397cb2030fa27e79ff96
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Sat Nov 17 09:44:48 2012 +0100

    gio-kqueue: use O_EVTONLY on MacOS

    MacOS provides the O_EVTONLY flag to open(2) which allow to open
    a file
    for monitoring without preventing an unmount of the volume that
    contains
    it.

    https://bugzilla.gnome.org/show_bug.cgi?id=688518

 gio/kqueue/kqueue-exclusions.c | 5 +++++
 gio/kqueue/kqueue-helper.c     | 4 ++++
 2 files changed, 9 insertions(+)

commit ef8510be09a746dcbc8d470376688820b225c40f
Author: Michael Natterer <mitch@gimp.org>
Date:   Fri Nov 16 18:48:09 2012 +0100

    Bug 673047 - gunicollate is broken on OS X

    Apply slightly modified patch from Camillo Lugaresi which fixes
    gunicollate for OSX >= 10.6. It was totally hilariously broken
    for anyone on 10.6 and later, I dont know if it's now broken
    on 10.5, but better fix it for the vast majority of users.

 glib/gunicollate.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

commit 11e306a759f6c90f4b1da67dbdf5a98ca5809670
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Fri Nov 16 17:33:14 2012 +0100

    Fix a broken link in GConf migration guide

    gnome-utils git repo was moved to archive/ and this broke the link.

 docs/reference/gio/migrating-gconf.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 03ef7ba5abab928c17142f553f86b97d28ecf946
Author: Dan Winship <danw@gnome.org>
Date:   Thu Nov 15 18:18:54 2012 -0500

    win32: re-fix the _utf8 compat function situation

    The previous fix didn't work, because every place within glib that
    used any of the functions also needed to be including win32compat.h.

    So, move the prototypes back to their original headers (but at least
    all in one place at the bottom).

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 docs/reference/glib/Makefile.am |   3 +-
 glib/Makefile.am                |   1 -
 glib/gconvert.c                 |   1 -
 glib/gconvert.h                 |  24 ++++++
 glib/gdir.c                     |   1 -
 glib/gdir.h                     |  10 +++
 glib/genviron.h                 |  12 +++
 glib/gfileutils.h               |  20 +++++
 glib/giochannel.h               |   8 ++
 glib/glib.h                     |   4 -
 glib/gspawn.h                   |  46 +++++++++++
 glib/gutils.h                   |  14 ++++
 glib/gwin32.h                   |  14 ++++
 glib/gwin32compat.h             | 178
 ----------------------------------------
 14 files changed, 149 insertions(+), 187 deletions(-)

commit 834e6e96b355d7b313f59eef3c90a68bc5463365
Author: Paul Menzel <paulepanter@users.sourceforge.net>
Date:   Wed Nov 14 18:49:50 2012 +0100

    docs: Fix spelling of "exceed" in gobject/gtype.c

    https://bugzilla.gnome.org/show_bug.cgi?id=688338

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8bf295bcd8d870997bb067adbddc5636f8bae9cf
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Thu Nov 15 09:31:14 2012 +0100

    gdbus: improve documentation of the GDBusError section

    https://bugzilla.gnome.org/show_bug.cgi?id=688370

 gio/gdbuserror.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 2628dc2c09ea7658aebf810d9db90070e3be301d
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 11 13:07:30 2012 -0500

    gtestutils: don't try to print long doubles

    A few gtestutils function use long double as a type that can (in
    theory) hold any int or any double. But win32 doesn't support long
    doubles in printf, so convert them to ints or doubles first before
    trying to print them.

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 glib/gtestutils.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit aa1418c427ea904e22c9bfe812a569f4aee1e3f7
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 11 13:05:16 2012 -0500

    win32: work around broken winsock prototypes

    Re-#define a few socket functions to work around winsock's prototypes
    having, eg, "int *" rather than "unsigned int *", or "char *" rather
    than "void *".

    (Also fix two places that mistakenly assumed guint==guint32.)

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 gio/gsocket.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit fc3acd88baad368b70f6b263e74c945e15fdc8ef
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 11 11:29:16 2012 -0500

    win32: avoid printf format warnings on nonstandard formats

    glib/tests/test-printf tests some non-standard printf formats on
    Windows, which gcc doesn't recognize, and so complains about. Disable
    those warnings for that test.

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 glib/tests/test-printf.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit d9e8feae7cb60e2e2cb62f0a948f025c09ca8553
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 11 11:21:07 2012 -0500

    win32: make gio/tests/gdbus-proxy.c compile

    win32 doesn't have kill(), so this won't even compile on Windows
    unless that is ifdeffed out. The test probably still doesn't *work*,
    but...

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 gio/tests/gdbus-proxy.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 75d2c1823c56f01db1b2e97bd9287fd70fdcd84d
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 10 11:13:24 2012 -0500

    gvariant-internal.h: fix the include hack

    gvariant-internal.h was defining GLIB_COMPILATION so that it could
    include individual headers, but this broke tests/gvariant on windows
    because setting GLIB_COMPILATION changes the definition of GLIB_VAR,
    causing external variables to not be found. Fix this by having it
    define __GLIB_H_INSIDE__ instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 glib/gvariant-internal.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 468a166711ab78986b3404909c6d9c0cf3633bea
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 10 11:09:18 2012 -0500

    GLocalFile: canonicalize the initial directory separator

    GLocalFile was (in certain situations) translating a path like
    "/foo/bar/baz" to "/foo\bar\baz" on win32. Fix it to make sure the
    initial directory separator gets canonicalized too.

    Fixes gio/tests/g-icon on win32.

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 gio/glocalfile.c | 5 +++++
 1 file changed, 5 insertions(+)

commit f80d8f1e4d583167234d79ace0a3ef7081826317
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 10 11:06:57 2012 -0500

    win32: various fixes to test programs

    Fix a few win32-specific bugs in various tests, and #ifdef out code
    that is UNIX- or Linux-specific that wouldn't be expected to pass on
    Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 glib/tests/fileutils.c  |  2 +-
 glib/tests/gdatetime.c  |  5 ++++-
 glib/tests/keyfile.c    | 13 +++++++++++--
 glib/tests/mappedfile.c |  4 ++++
 glib/tests/uri.c        | 25 +++++++++++++------------
 glib/tests/utils.c      | 17 +++++++++++++++++
 6 files changed, 50 insertions(+), 16 deletions(-)

commit b8c13a01b6bd5601eb3519dd3b20daed4bbc2e72
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 10 10:58:19 2012 -0500

    win32: misc warning fixes

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 gio/gdbusaddress.c                 |  4 +++-
 gio/gdbusauth.c                    |  1 +
 gio/giomodule.c                    |  4 ++++
 gio/gregistrysettingsbackend.c     | 25 +++++++++++++------------
 gio/gsocket.c                      |  6 +-----
 gio/gwin32mount.c                  |  4 ++--
 gio/gwin32volumemonitor.c          | 35
 ++++-------------------------------
 gio/win32/gwin32directorymonitor.c | 23 +++++++++++------------
 glib/gbitlock.c                    |  3 ++-
 glib/gdatetime.c                   |  4 ++--
 glib/giochannel.h                  |  6 ++++++
 glib/giowin32.c                    |  3 ++-
 glib/gkeyfile.c                    |  2 ++
 glib/glib-init.c                   |  4 ++++
 glib/gmain.c                       |  1 +
 glib/gmappedfile.c                 |  2 ++
 glib/gnulib/vasnprintf.c           |  5 ++++-
 glib/gspawn-win32.c                |  2 ++
 glib/gthread-win32.c               |  1 +
 glib/gutils.c                      |  2 +-
 glib/tests/1bit-mutex.c            |  2 ++
 glib/tests/fileutils.c             |  2 +-
 glib/tests/gwakeuptest.c           |  2 +-
 glib/win_iconv.c                   | 14 +++++++-------
 tests/qsort-test.c                 |  4 ++--
 25 files changed, 81 insertions(+), 80 deletions(-)

commit f248c86b0aac6c64bd2cb8e2a0e8814719a4bb0a
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 11 11:32:40 2012 -0500

    win32: move some code into #ifdef G_OS_UNIX

    Fix various bits of code/declarations that are only used by G_OS_UNIX
    but were still visible to G_OS_WIN32.

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 gio/gdbusmessage.c           |  2 ++
 gio/gdbusprivate.c           |  8 +++++++-
 gio/glocaldirectorymonitor.c | 11 ++++++-----
 gio/tests/Makefile.am        |  2 +-
 4 files changed, 16 insertions(+), 7 deletions(-)

commit 731b46990896665a8107535080bb075a6e18b6f7
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 10 10:54:43 2012 -0500

    win32: define _WIN32_WINNT globally

    Rather than defining _WIN32_WINNT only in a handful of files, define
    it in config.h, like we do with _GNU_SOURCE.

    (Also remove a "#define WIN32_LEAN_AND_MEAN" that isn't really all
    that useful.)

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 configure.ac                       | 2 ++
 gio/glocalfile.c                   | 1 -
 gio/gnetworkingprivate.h           | 1 -
 gio/gregistrysettingsbackend.c     | 3 ---
 gio/gtestdbus.c                    | 1 -
 gio/gwin32volumemonitor.c          | 1 -
 gio/win32/gwin32directorymonitor.c | 2 --
 gio/win32/gwinhttpvfs.h            | 1 -
 8 files changed, 2 insertions(+), 10 deletions(-)

commit 3ac6cfaeaadc82ce7d8b9dba7134d5ea7272c70c
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 10 10:51:18 2012 -0500

    win32: prototype _glib_get_dll_directory() and _glib_get_locale_dir()

    Rather than using "extern" declarations of these win32 functions
    everywhere they're needed, just prototype them in glib-private.h.
    (Which also fixes the fact that they weren't prototyped in the files
    where they're defined.)

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 gio/gdbus-tool.c             | 10 ++++++++--
 gio/glib-compile-resources.c |  5 ++++-
 gio/glib-compile-schemas.c   |  5 ++++-
 gio/gresource-tool.c         |  5 ++++-
 gio/gsettings-tool.c         |  5 ++++-
 glib/ggettext.c              |  1 +
 glib/glib-private.h          |  5 +++++
 glib/gspawn-win32.c          |  2 +-
 8 files changed, 31 insertions(+), 7 deletions(-)

commit 08f4f92fedff4821b1cdbab1763f5e3df59ce458
Author: Dan Winship <danw@gnome.org>
Date:   Thu Nov 15 12:24:57 2012 -0500

    win32: add gwin32compat.h, for utf8-renaming compatibility defines

    To avoid -Wmissing-prototype warnings, we need to prototype both the
    original and the _utf8 versions of all of the functions that have had
    _utf8-renaming on Windows. But duplicating all the prototypes is ugly,
    so rather than doing them "in-place", move them all to a new header
    file just for that.

    https://bugzilla.gnome.org/show_bug.cgi?id=688109

 docs/reference/glib/Makefile.am |   3 +-
 glib/Makefile.am                |   1 +
 glib/gconvert.c                 |   1 +
 glib/gconvert.h                 |   9 --
 glib/gdir.c                     |   2 +-
 glib/gdir.h                     |   8 --
 glib/genviron.h                 |   8 --
 glib/gfileutils.h               |  15 ----
 glib/giochannel.h               |   4 -
 glib/glib.h                     |   4 +
 glib/gspawn.h                   |  10 ---
 glib/gutils.h                   |  14 ----
 glib/gwin32.h                   |   7 --
 glib/gwin32compat.h             | 178
 ++++++++++++++++++++++++++++++++++++++++
 gmodule/gmodule.h               |  18 ++--
 15 files changed, 198 insertions(+), 84 deletions(-)

commit c2acbc018269a052eb7546950088a0860e3b1545
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu Nov 15 11:37:20 2012 +0100

    gsocket: fix joining/leaving multicast groups

    Initialize the structure passed to setsockopt to 0 to avoid random
    errors when joining or leaving a multicast group.

    https://bugzilla.gnome.org/show_bug.cgi?id=688378

 gio/gsocket.c | 2 ++
 1 file changed, 2 insertions(+)

commit 49db979922283364238a5c208671591f713ecd78
Author: Michael Natterer <mitch@gimp.org>
Date:   Thu Nov 15 15:23:07 2012 +0100

    Revert "gmain: Add private API to create Unix child watch that
    uses waitid()"

    This reverts commit 93bf37ce1507380f74d4cb4cab6640fc7d2eb7d1.

 configure.ac        |   2 +-
 glib/glib-private.c |   3 +-
 glib/glib-private.h |   3 -
 glib/gmain.c        | 178
 +++++++++++++---------------------------------------
 4 files changed, 45 insertions(+), 141 deletions(-)

commit 6dee874b68548981ae567b553be3c010766e4a25
Author: Michael Natterer <mitch@gimp.org>
Date:   Thu Nov 15 15:22:52 2012 +0100

    Revert "gio: Add private API to create win32 streams from fds"

    This reverts commit 292de8cc5259eb66c40d9a74d85389650ef67747.

 gio/Makefile.am          |  1 -
 gio/giowin32-priv.h      | 43 -----------------------------------------
 gio/gwin32inputstream.c  | 50
 +++++++++++-------------------------------------
 gio/gwin32outputstream.c | 50
 +++++++++++-------------------------------------
 4 files changed, 22 insertions(+), 122 deletions(-)

commit 75de24ca667b0acd82ef736cac1808add81fa637
Author: Michael Natterer <mitch@gimp.org>
Date:   Thu Nov 15 15:22:37 2012 +0100

    Revert "gspawn: support creating pipes with O_CLOEXEC"

    This reverts commit 2054ccad95cfdcf5eccd2ef6847c12039c9678e8.

 glib/gspawn.c | 37 ++++++++++++++++++++++++++-----------
 glib/gspawn.h |  5 +----
 2 files changed, 27 insertions(+), 15 deletions(-)

commit 2aa97e2847246d95cae32c9c061162bfb4af838a
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 15 08:42:36 2012 -0500

    gdbus: Fix some compiler warnings

    Code appears to have been copy/pasted from a bit which used _object,
    but I think it's clearer to always use the "self" parameter anyways.

 gio/gdbusobjectmanagerclient.c | 4 ++--
 gio/gdbusobjectproxy.c         | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit a335fd1de8fc2ab4b26c5fe6055014ea15043fb9
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Wed Nov 14 12:57:42 2012 +0100

    GFileMonitor: Add kqueue(3) support to GIO

    Written by Dmitry Matveev as part of GSoC 2011:
    http://netbsd-soc.sourceforge.net/projects/kqueue4gio/

    This brings native file monitoring support on systems supporting
    kqueue(3)
    (all BSDs) and remove the need to rely on the unmaintained gamin
    software.
    The backend adds GKqueueDirectoryMonitor and GKqueueFileMonitor.

    Some parts rewritten by myself (to prevent needing a configuration
    file).
    Helpful inputs from Colin Walters and Simon McVittie.

    https://bugzilla.gnome.org/show_bug.cgi?id=679793

 configure.ac                         |  12 +
 gio/Makefile.am                      |   6 +
 gio/giomodule.c                      |   6 +
 gio/kqueue/Makefile.am               |  34 ++
 gio/kqueue/dep-list.c                | 521 ++++++++++++++++++++++++++++
 gio/kqueue/dep-list.h                |  69 ++++
 gio/kqueue/gkqueuedirectorymonitor.c | 205 +++++++++++
 gio/kqueue/gkqueuedirectorymonitor.h |  49 +++
 gio/kqueue/gkqueuefilemonitor.c      | 209 ++++++++++++
 gio/kqueue/gkqueuefilemonitor.h      |  51 +++
 gio/kqueue/kqueue-exclusions.c       |  60 ++++
 gio/kqueue/kqueue-exclusions.h       |  28 ++
 gio/kqueue/kqueue-helper.c           | 644
 +++++++++++++++++++++++++++++++++++
 gio/kqueue/kqueue-helper.h           |  37 ++
 gio/kqueue/kqueue-missing.c          | 157 +++++++++
 gio/kqueue/kqueue-missing.h          |  32 ++
 gio/kqueue/kqueue-sub.c              |  79 +++++
 gio/kqueue/kqueue-sub.h              |  50 +++
 gio/kqueue/kqueue-thread.c           | 310 +++++++++++++++++
 gio/kqueue/kqueue-thread.h           |  45 +++
 gio/kqueue/kqueue-utils.c            | 242 +++++++++++++
 gio/kqueue/kqueue-utils.h            |  57 ++++
 22 files changed, 2903 insertions(+)

commit 2054ccad95cfdcf5eccd2ef6847c12039c9678e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Nov 10 13:16:29 2012 -0500

    gspawn: support creating pipes with O_CLOEXEC

    Add a new flag, G_SPAWN_CLOEXEC_PIPES, for creating the stdin/out/err
    pipes with O_CLOEXEC (for the usual reasons).

    https://bugzilla.gnome.org/show_bug.cgi?id=672102

 glib/gspawn.c | 37 +++++++++++--------------------------
 glib/gspawn.h |  5 ++++-
 2 files changed, 15 insertions(+), 27 deletions(-)

commit 292de8cc5259eb66c40d9a74d85389650ef67747
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 22 16:06:10 2012 -0400

    gio: Add private API to create win32 streams from fds

    This will be used by GSubprocess.

    https://bugzilla.gnome.org/show_bug.cgi?id=672102

 gio/Makefile.am          |  1 +
 gio/giowin32-priv.h      | 43 +++++++++++++++++++++++++++++++++++++++++
 gio/gwin32inputstream.c  | 50
 +++++++++++++++++++++++++++++++++++++-----------
 gio/gwin32outputstream.c | 50
 +++++++++++++++++++++++++++++++++++++-----------
 4 files changed, 122 insertions(+), 22 deletions(-)

commit 93bf37ce1507380f74d4cb4cab6640fc7d2eb7d1
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 21 17:09:06 2012 -0400

    gmain: Add private API to create Unix child watch that uses waitid()

    This avoids collecting the zombie child, which means that the PID
    can't be reused.  This prevents possible race conditions that might
    occur were one to send e.g. SIGTERM to a child.

    This race condition has always existed due to the way we called
    waitpid() for the app, but the window was widened when we moved the
    waitpid() calls into a separate thread.

    If waitid() isn't available, we return NULL, and consumers of this
    private API (namely, GSubprocess) will need to handle that.

    https://bugzilla.gnome.org/show_bug.cgi?id=672102

 configure.ac        |   2 +-
 glib/glib-private.c |   3 +-
 glib/glib-private.h |   3 +
 glib/gmain.c        | 178
 +++++++++++++++++++++++++++++++++++++++-------------
 4 files changed, 141 insertions(+), 45 deletions(-)

commit e744a4aa7a5b6e7b0fb3bd9e553b152ce424992c
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Nov 13 14:25:21 2012 +0000

    Remove trailing spaces from expected GMarkup error messages

    Commit 138f4c1 broke the relevant part of 'make check' by changing the
    error messages away from the ones we previously expected. This commit
    updates the expected output to catch up.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=688255
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 glib/tests/markups/fail-5.expected | 2 +-
 glib/tests/markups/fail-6.expected | 2 +-
 glib/tests/markups/fail-7.expected | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit b98a1c8df30f9e24588a48331dacf01e49760549
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 8 09:12:25 2012 -0500

    gmain: Handle case where source id overflows

    0 is not a valid source id, but for long-lived programs that rapidly
    create/destroy sources, it's possible for the source id to overflow.
    We should handle this, because the documentation implies we will.

    https://bugzilla.gnome.org/show_bug.cgi?id=687098

 glib/glib-private.c   |  3 +-
 glib/glib-private.h   |  5 ++-
 glib/gmain.c          | 76 +++++++++++++++++++++++++++++++++++++++++---
 glib/tests/mainloop.c | 87
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 165 insertions(+), 6 deletions(-)

commit 606aa26acf8382ac0abb008838a0bcde12246c63
Author: Paul Menzel <paulepanter@users.sourceforge.net>
Date:   Sun Nov 11 14:48:15 2012 +0100

    gio/*: Fix spelling of determining

    $ sed -i s,determing,determining,g gio/gdrive.c
    $ sed -i s,determing,determining,g gio/gdbusprivate.c

    http://www.merriam-webster.com/dictionary/determining

    For some reason according to `git log --follow` the whole file was
    created during some translation update.

        commit c45b8135046790e13b0d486f605dc62c9a783b16
        Author: Timo Jyrinki <timo@debian.org>
        Date:   Mon Mar 12 11:02:04 2012 +0200

            Finnish translation update from
            http://l10n.laxstrom.name/wiki/Gnome_3.4 translation sprint

 gio/gdbusprivate.c | 2 +-
 gio/gdrive.c       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 9fb3082070a47a19663c3abf0c059639f9893b10
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 11 14:14:04 2012 -0500

    Revert "Return correct value for g_socket_get_available_bytes()
    on Windows and OSX"

    This neither compiles nor does what it's supposed to on Windows.

    This reverts commit 1e598600a16d885a3ca859fe951a5bdd198fd6e7.

 gio/gsocket.c      | 15 ++++-----------
 gio/tests/socket.c | 53
 -----------------------------------------------------
 2 files changed, 4 insertions(+), 64 deletions(-)

commit 4651ec772520c892bf586710ac8e8ed38c515698
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 10 10:37:00 2012 -0500

    .gitignore: ignore .def files (win32 build)

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 2bba1da30674686960571603961e8daed973e5d0
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Fri Nov 9 15:28:36 2012 +0100

    Add caching for the receiver addresses for g_socket_receive_from()

    https://bugzilla.gnome.org/show_bug.cgi?id=668842

 gio/gsocket.c | 85
 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 76 insertions(+), 9 deletions(-)

commit df1e0497928e96fbf6bd0a4d69b60fd19385d4be
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Sun Nov 11 11:36:03 2012 +0100

    Updated Serbian translation

 po/sr.po       | 400
 ++++++++++++++++++++++++++++++---------------------------
 po/sr@latin.po | 400
 ++++++++++++++++++++++++++++++---------------------------
 2 files changed, 416 insertions(+), 384 deletions(-)

commit 4a20aa31b1091462aa9ef842809d53cbd9b285bf
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Nov 10 14:12:30 2012 +0200

    Updated Lithuanian translation

 po/lt.po | 1460
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 730 insertions(+), 730 deletions(-)

commit 1b3e65d5025d2d15a877edc4fb3caf105b6775ee
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Nov 10 10:56:26 2012 +0100

    Updated Galician translations

 po/gl.po | 381
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 191 insertions(+), 190 deletions(-)

commit a8db7314fb194110eb4d9f7964a3eff5516c96c5
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Nov 10 08:58:41 2012 +0100

    Updated Slovenian translation

 po/sl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit de298366e51d58c99ea5f9046eecde886558fb1d
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Nov 10 08:56:38 2012 +0100

    Updated Slovenian translation

 po/sl.po | 412
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 211 insertions(+), 201 deletions(-)

commit 8caf39b59b96396a12d516b553f79f5eade4b096
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 9 22:14:39 2012 -0500

    Add an option to make glib-compile-resources use G_GNUC_INTERNAL

    https://bugzilla.gnome.org/show_bug.cgi?id=687742

 docs/reference/gio/glib-compile-resources.xml | 13 +++++++++++++
 gio/glib-compile-resources.c                  | 26
 ++++++++++++++++----------
 2 files changed, 29 insertions(+), 10 deletions(-)

commit 138f4c1e2f3fdea3168f91fc72cde9fb0b0e602b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 9 22:12:57 2012 -0500

    Remove trailing space from some translated strings

    https://bugzilla.gnome.org/show_bug.cgi?id=687700

 gio/glib-compile-schemas.c | 2 +-
 glib/gmarkup.c             | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 7fd15ee4aee6ec21eb85f8836a5fd66f598a86f4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 9 22:10:10 2012 -0500

    Add plural forms for some translations

    https://bugzilla.gnome.org/show_bug.cgi?id=687698

 glib/gfileutils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1e598600a16d885a3ca859fe951a5bdd198fd6e7
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Oct 24 14:25:01 2012 +0200

    Return correct value for g_socket_get_available_bytes() on Windows
    and OSX

    https://bugzilla.gnome.org/show_bug.cgi?id=686786

 gio/gsocket.c      | 15 +++++++++++----
 gio/tests/socket.c | 53
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 64 insertions(+), 4 deletions(-)

commit b65dac802e4c1bad3b3dd681f35eff52129b6d9e
Author: John Ralls <jralls@ceridwen.us>
Date:   Fri Nov 9 09:22:19 2012 -0800

    Fix poll able streams for Darwin (and probably BSD)


    Darwin's poll doesn't change revents if there are no available
    events, though it returns 0. Initialize the fd.revents to 0 so that
    the test passes.

    That reveals a test failure, though, because with socket streams
    it takes time for an event to pass through the socket. Provide an
    80-usec delay to allow time for the propagation.

 gio/gsocket.c                | 1 +
 gio/gunixinputstream.c       | 1 +
 gio/gunixoutputstream.c      | 1 +
 gio/tests/converter-stream.c | 6 ++++++
 gio/tests/pollable.c         | 3 +++
 5 files changed, 12 insertions(+)

commit 5588d47985073563749066ed18a981b1ff437f14
Author: John Ralls <jralls@ceridwen.us>
Date:   Thu Nov 8 09:52:28 2012 -0800

    Fix compile error about missing prototype

    For g_nextstep_settings_backend_get_type()

 gio/gnextstepsettingsbackend.c | 2 ++
 1 file changed, 2 insertions(+)

commit f1b34cab8af395087e13d1a733bca1959487158f
Author: Dan Winship <danw@gnome.org>
Date:   Fri Nov 9 11:38:08 2012 -0500

    gthreadedresolver: fix a bug in the GTask porting of lookup_records

    We were passing the wrong destroy notify when returning the list of
    records, so it would crash if it got called (ie, if you didn't call
    g_resolver_lookup_records_finish()).

    (Also fix s/targets/records/ throughout the records functions.)

 gio/gthreadedresolver.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

commit edeffe0c870d0716ab0f5a5b8d435ef585c71448
Author: Timothy Arceri <t_arceri@yahoo.com.au>
Date:   Fri Nov 9 23:48:38 2012 +1100

    Use url encoding for trash fileinfo path as per freedesktop trash
    specification

    https://bugzilla.gnome.org/show_bug.cgi?id=687540

 gio/glocalfile.c | 29 +----------------------------
 1 file changed, 1 insertion(+), 28 deletions(-)

commit a07a5f82aafca64872691313e233295e591e7632
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Fri Nov 9 09:32:03 2012 +0100

    GByteArray: Add missing transfer annotations

    Make g_byte_array_new() and g_byte_array_new_take() introspectable
    by adding
    missing transfer annotations to return value.

    Covered by tests in PyGObject.

 glib/garray.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e06268d72e49dd487038043674aa1ee2f419118c
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Fri Nov 9 09:02:22 2012 +0100

    GBytes: Add missing annotations

    Annotate g_bytes_new*()'s data argument to be a guint8 array, as
    introspection clients cannot deal with raw gconstpointers. This makes
    GBytes' behaviour similar to GByteArray whose API already uses guint8.

    Add missing transfer annotation to g_bytes_get_data() to make it
    introspectable.

    This is covered by test cases in PyGObject.

 glib/gbytes.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 8dd70a261df853d86f4944481dc6a18d4c8a62af
Author: John Ralls <jralls@ceridwen.us>
Date:   Thu Nov 8 08:35:23 2012 -0800

    Bug 686185: GDateTime Transcoding fails on OSX

    Better fix than d5df0a10f. Thanks to Christian Persch for pointing
    this
    out.

 glib/tests/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a9eb1907a6451cdfe68f5924b138cfbeebc4dcf1
Author: Emmanuel Pacaud <emmanuel@gnome.org>
Date:   Wed Nov 7 09:58:45 2012 +0100

    Check for PR_GET_NAME

    PR_GET_NAME may not be defined when using an old kernel. Deal with it.

 glib/tests/thread.c | 2 ++
 1 file changed, 2 insertions(+)

commit 753494a25e35bd1f2413bd741f73d60226fcfd14
Author: Colin Walters <walters@verbum.org>
Date:   Tue Nov 6 15:04:47 2012 -0500

    tests/buffered-input-stream: Fix size of parameter passed

    buffer-size is guint, but the public API is gsize for some reason.

    Tested-By: gustavold@linux.vnet.ibm.com

    https://bugzilla.gnome.org/show_bug.cgi?id=687801

 gio/tests/buffered-input-stream.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit d5df0a10f142db8216cb41e38ec23d5729956650
Author: John Ralls <jralls@ceridwen.us>
Date:   Thu Oct 18 10:47:18 2012 -0700

    Skip test_non_utf8_printf() if EUC-JP is aliased to UTF-8

    See https://bugzilla.gnome.org/show_bug.cgi?id=686185
    This skips the test on those systems, like Darwin, which provide the
    ja_JP.eucjp locale but which glib doesn't know how to transcode and
    aliases JIS to UTF-8.

 glib/tests/gdatetime.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b26fb3ae5cc18fa51cd6169f1b3b5c4dd74dab29
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 5 12:22:49 2012 -0500

    Don't call varargs open() through non-varargs type

    open() is probably defined varargs.  Casting a varargs function to an
    equivalent non-varargs type and then calling it is undefined, but
    gfileutils.c was doing exactly that.

    Add some non-varargs wrappers to avoid the problem.

    Problem reported by John Spencer.

    https://bugzilla.gnome.org/show_bug.cgi?id=687600

 glib/gfileutils.c | 42 ++++++++++++++++++++++++++++++++----------
 1 file changed, 32 insertions(+), 10 deletions(-)

commit 77032ea390cfbb1165f57fc6a61b8e4d2055934a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 6 07:41:13 2012 -0500

    belated version bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d6a075b0d8dfe4e4a41f6624ad7032d2163d420c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 5 11:07:16 2012 -0500

    gtype: disallow adding interfaces after the fact

    Add a check to prevent adding an interface to a class that has already
    had its class_init done.

    This is an incompatible change but it is suspected that there are not
    many users of this functionality.  Two known exceptions are pygobject
    (fixed in bug 686149) and our own testsuite (affected tests have been
    temporarily disabled by this patch).

    Once we confirm that nobody else is using this functionality we can
    remove a rather large amount of code for dealing with this case.

    https://bugzilla.gnome.org/show_bug.cgi?id=687659

 gobject/gtype.c             |  6 ++++++
 gobject/tests/threadtests.c | 20 ++++++++++++--------
 tests/gobject/Makefile.am   |  3 ---
 3 files changed, 18 insertions(+), 11 deletions(-)

commit 1af1b2b2bb10b5db27cd43af02f199ebc3f466d7
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Wed Oct 24 16:30:37 2012 +0200

    Box GPollFD to make it introspectable

    https://bugzilla.gnome.org/show_bug.cgi?id=686797

 docs/reference/gobject/gobject-sections.txt |  2 ++
 gobject/gboxed.c                            | 10 ++++++++++
 gobject/glib-types.h                        | 11 +++++++++++
 gobject/gobject.symbols                     |  1 +
 4 files changed, 24 insertions(+)

commit 81b27ffc1cbba85e322fd731e30dfdaad86cbd5e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 5 08:24:30 2012 -0500

    Add a translator comment about 'KB'

    The GLib units policy used to be that 'KB' means 1024 bytes,
    'MB' means
    1024 KB, 'GB' means 1024 MB, etc.

    Those days are over, but we have a deprecated function that still
    works
    that way.  It contains the string "KB", marked for translation, which
    has been a source of confusion for translators on multiple occasions.

    https://bugzilla.gnome.org/show_bug.cgi?id=687516

 glib/gutils.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 2b17e797a43944e38babcac1ba02296cfd81623d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 5 17:22:38 2012 +0800

    gio/gthreadedresolver.c: Fix non-UNIX build

    Move the GError *error declaration up, as that variable is also
    used for
    non-Unix builds.

 gio/gthreadedresolver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8a530463add643890e4a4ec57f80531f5ef39101
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Mon Nov 5 11:33:04 2012 +0530

    Updated gujarati file

 po/gu.po | 311
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 158 insertions(+), 153 deletions(-)

commit c5b9a47facb1cbffafae0c401d6596e2618238d1
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 5 12:31:44 2012 +0800

    Visual C++ 2010 projects: Prepare support for VS2012

    Add the PlatformToolset tag to the project configs so that we can
    use add a
    simple script later to the autotools files to copy the projects
    and change
    the value (v100 -> v110) of that tag (and other simple changes)
    in order
    that we can quickly provide and maintain support for Visual Studio
    2012
    with minimal effort.

    Note that at the moment GLib does not yet support the API/SDK
    requirements
    for Windows 8 Modern UI (formerly known as Metro), but this paves
    the very
    initial step.

 build/win32/vs10/gio.vcxprojin                     |   4 +
 build/win32/vs10/glib-compile-resources.vcxproj    |   4 +
 build/win32/vs10/glib-compile-schemas.vcxproj      | 356
 +++++++++---------
 build/win32/vs10/glib-genmarshal.vcxproj           | 340
 ++++++++---------
 build/win32/vs10/glib.vcxprojin                    |   8 +
 build/win32/vs10/gmodule.vcxproj                   | 402
 +++++++++++----------
 build/win32/vs10/gobject.vcxprojin                 |   4 +
 build/win32/vs10/gresource.vcxproj                 |   4 +
 build/win32/vs10/gsettings.vcxproj                 | 356
 +++++++++---------
 .../win32/vs10/gspawn-win32-helper-console.vcxproj | 344
 +++++++++---------
 build/win32/vs10/gspawn-win32-helper.vcxproj       | 344
 +++++++++---------
 build/win32/vs10/gthread.vcxproj                   | 376
 +++++++++----------
 build/win32/vs10/install.vcxproj                   | 300 +++++++--------
 build/win32/vs10/testglib.vcxproj                  | 340
 ++++++++---------
 14 files changed, 1621 insertions(+), 1561 deletions(-)

commit 8e9279861293384a99778bb55e75ae7e8fa598d8
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Nov 3 18:59:25 2012 -0700

    Add array length annotation to GSignalQuery param_types field

    https://bugzilla.gnome.org/show_bug.cgi?id=687541

 gobject/gsignal.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 05034c0ff1e008ec668197fb4bb01e64b6734849
Author: Peter Mráz <etkinator@gmail.com>
Date:   Sat Nov 3 15:53:48 2012 +0000

    Updated Slovak translation

 po/sk.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f508fbbbd7032a80532b34c74874a764553fb73d
Author: Peter Mráz <etkinator@gmail.com>
Date:   Sat Nov 3 15:52:03 2012 +0000

    Updated Slovak translation

 po/sk.po | 6482
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3488 insertions(+), 2994 deletions(-)

commit 13ae0f1f922defaf21c3a5dbe8d299cddc71170a
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Sat Nov 3 13:52:29 2012 +0100

    Annotate g_filename_to_utf8()

    bytes_read and bytes_written are (out) arguments, and the return
    value must be
    a byte array instead of utf8, as otherwise the function would
    only support
    UTF-8 locales/file names.

 glib/gconvert.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 837db1a026a451f2785be18593bf3fa631acabd6
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 2 15:45:14 2012 +0000

    Fix more warning-addition fallout

    I'm normally a big fan of small atomic commits, but I also want to get
    things done this afternoon...

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687441
    Reviewed-by: Colin Walters <walters@verbum.org>

 tests/child-test.c       |  4 ++--
 tests/iochannel-test.c   |  2 +-
 tests/mainloop-test.c    | 18 +++++++++---------
 tests/module-test.c      |  2 ++
 tests/onceinit.c         |  6 ++++--
 tests/slice-concurrent.c | 17 +++++++++++------
 tests/thread-test.c      |  6 +++---
 tests/threadpool-test.c  |  2 +-
 8 files changed, 33 insertions(+), 24 deletions(-)

commit 733acc23164e4845b6c990c0881290da568d3730
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 2 15:19:32 2012 +0000

    Fix more void prototypes in tests

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687441
    Reviewed-by: Colin Walters <walters@verbum.org>

 tests/gobject/ifaceinherit.c | 4 ++--
 tests/gobject/performance.c  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit eb7dc2bcc61d28ad06e4e7fce781d1f467ce0592
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 2 15:19:20 2012 +0000

    Predeclare more things in tests

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687441
    Reviewed-by: Colin Walters <walters@verbum.org>

 tests/gobject/accumulator.c  | 12 ++++++------
 tests/gobject/defaultiface.c |  1 +
 tests/gobject/deftype.c      |  2 ++
 tests/gobject/dynamictype.c  |  2 ++
 tests/gobject/ifaceinherit.c |  6 ++++++
 tests/gobject/performance.c  |  8 ++++++++
 tests/gobject/references.c   |  1 +
 tests/gobject/singleton.c    |  1 +
 8 files changed, 27 insertions(+), 6 deletions(-)

commit 85976cf91deae6ac7cf1639a187a424ff7296968
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 2 14:54:19 2012 +0000

    Bring back a couple of private-but-extern symbols

    These both existed in 2.34.1, but are not exposed in headers, and were
    meant to be private. Making them static (in commit 84475e43) was
    technically an ABI break, and in particular it causes abicheck.sh
    to fail.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687441
    Reviewed-by: Colin Walters <walters@verbum.org>

 gio/gmenumodel.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 7b1f8c582a699305bdbeadebb5628f54112c7220
Author: Dan Winship <danw@gnome.org>
Date:   Tue Oct 30 15:10:40 2012 -0400

    gtask: bump the max thread pool size up to 100 to avoid
    stalls/deadlocks

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686810 for now.
    https://bugzilla.gnome.org/show_bug.cgi?id=687223 discusses a nicer
    fix for later.

 gio/gtask.c      | 2 +-
 gio/tests/task.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 1afaea333b2f2775d4e5fc6f4de8f9f83f994fd7
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Sun Oct 21 23:38:31 2012 +0100

    Use the FreeBSD credentials-passing code on Debian GNU/kFreeBSD

    The __FreeBSD__ macro means we have both a FreeBSD kernel and FreeBSD
    libc, which isn't the case on GNU/kFreeBSD (GNU libc and userland on
    the FreeBSD kernel), so it predefines a different macro. The kernel
    is what actually matters for credentials-passing, though.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Tested-by: Steven Chamberlain <steven@pyro.eu.org>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=649302
    Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=581750
    Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=631968
    Reviewed-by: Dan Winship <danw@gnome.org>

 gio/gcredentials.c            | 18 +++++++++---------
 gio/gunixcredentialsmessage.c | 12 ++++++------
 2 files changed, 15 insertions(+), 15 deletions(-)

commit ce0022933c255313e010b27f977f4ae02aad1e7e
Author: Colin Walters <walters@verbum.org>
Date:   Mon Oct 29 15:44:16 2012 -0400

    Merge waitpid() from g_spawn_sync into gmain()

    This is preparatory work for a future commit which will add a
    "catchall" waitpid API.  If we don't synchronize here with the worker
    thread, race conditions are possible.

    This also ensures we have an error message if someone adds a child
    watch for a nonexistent pid, etc.  Previously, we'd simply keep
    calling waitpid() getting ECHILD, and ignoring it until the source was
    removed. Now, we g_warning() and fire the source.

    Thirdly, this ensures that the waitpid() call in gmain handles EINTR,
    like the g_spawn_sync() one did.

    https://bugzilla.gnome.org/show_bug.cgi?id=687061

 glib/gmain.c  | 20 ++++++++++++----
 glib/gspawn.c | 76
 +++++++++++++++++++++++++++++++----------------------------
 2 files changed, 56 insertions(+), 40 deletions(-)

commit 0bdf7fecaf1ffc7263d2bc48a87c99f4705138fc
Author: Tim-Philipp Müller <tim@centricular.net>
Date:   Fri Nov 2 13:14:58 2012 +0000

    tests: fix compiler warning in gvariant test

    gvariant.c:3555:1: warning: function declaration isn’t a prototype
    [-Wstrict-prototypes]

 glib/tests/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 28b30caecb8d53c0d41e6a46ef9ba01d2f08e051
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:39:20 2012 -0400

    configure: Enable set of standard -Werror=foo flags

    We're not going to depend on gnome-common (I assume) so this patch
    nicks the systemd macro to test for compiler flags, and uses it to set
    a similar set of -Werror=foo as the gnome-common one does.

    See https://bugzilla.gnome.org/show_bug.cgi?id=608953
    See
    https://mail.gnome.org/archives/desktop-devel-list/2012-July/msg00100.html

    If we're going to be setting more strict compiler flags for GNOME, we
    should really ensure GLib builds with them first, as it's kind of the
    model citizen.

    In particular, you can see several times that downstreams such as
    Debian have come in and fixed -Wformat-security bugs.  We should never
    let those get into tarballs, or even commits.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 configure.ac           |  16 +--
 m4macros/attributes.m4 | 288
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 297 insertions(+), 7 deletions(-)

commit 055aa2b55e192a9c44fb0af07d8c1b3d8ef20b99
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 20:10:46 2012 -0400

    gdateparser: Delete unused debug print function

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 tests/testgdateparser.c | 16 ----------------
 1 file changed, 16 deletions(-)

commit 94ef8dff0d5da861389f12dee592c42936c4dba9
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:43:02 2012 -0400

    gdbusactiongroup: Add prototype for g_dbus_action_group_sync()

    Even private functions that are actually called across compilation
    units should have prototypes.  For g_dbus_action_group_sync(), create
    one in gdbusactiongroup-private.h

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 gio/Makefile.am                |  1 +
 gio/gactiongroupexporter.c     |  2 +-
 gio/gapplicationimpl-dbus.c    |  8 +-------
 gio/gdbusactiongroup-private.h | 37 +++++++++++++++++++++++++++++++++++++
 gio/gdbusactiongroup.c         |  2 +-
 5 files changed, 41 insertions(+), 9 deletions(-)

commit dc4922af219397b18ca4d9d0ba53f0a99b43f3d4
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:40:07 2012 -0400

    test-pipe-unix: Add missing include

    Fixes the build with -Werror=missing-prototypes.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 gio/tests/test-pipe-unix.c | 1 +
 1 file changed, 1 insertion(+)

commit 3686aa0e18cf68167b14ec630bec8ba90a20d720
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:39:09 2012 -0400

    gettext: Add missing include

    Fixes the build with -Werror=missing-prototypes.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 glib/ggettext.c | 1 +
 1 file changed, 1 insertion(+)

commit 4c2a6595889eff44fa5f610e6c69016702100e95
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:38:44 2012 -0400

    gcharset: Add header file for private API

    This fixes the build with -Werror=missing-prototypes.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 glib/Makefile.am       |  1 +
 glib/gcharset.c        |  2 +-
 glib/gcharsetprivate.h | 33 +++++++++++++++++++++++++++++++++
 glib/gconvert.c        |  2 +-
 4 files changed, 36 insertions(+), 2 deletions(-)

commit 488cdb13f60273a944a6b9f0c22e233f43c7e00f
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:38:09 2012 -0400

    gslice: Prototype G_ENABLE_DEBUG function that's part of ABI

    Sadly, g_slice_debug_tree_statistics is conditionally part of the
    public ABI.  We might as well make it conditionally part of the API as
    well, even though this will require people actually using it to

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 glib/gslice.h | 4 ++++
 1 file changed, 4 insertions(+)

commit bd8387f25affe2f5780b57daf4fd3f01daf0c43d
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:37:57 2012 -0400

    g_check_setuid: Include glib-private.h

    Otherwise we fail to build with -Werror=missing-prototypes.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 glib/gutils.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 139892734ebdc012b7a0c4897d89d16b3706fd5f
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:37:38 2012 -0400

    tests/1bitmutex: Hack to build with -Werror=missing-prototypes

    Admittedly, this could probably be better, but it builds.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 glib/tests/1bit-mutex.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 8e59d8602ca5921d78245f5d2b405b517a5e7cf9
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:36:52 2012 -0400

    Use (void) for no parameters, not ()

    This ensures we build with -Werror=missing-parameter-type.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 gio/gresource.c             | 2 +-
 gobject/tests/threadtests.c | 2 +-
 tests/assert-msg-test.c     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 84475e4320347e637ac2fc84c9dc28b1668c8772
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:36:15 2012 -0400

    build: Prototype GType accessors for private classes

    Otherwise we fail to build with -Werror=missing-prototypes.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 gio/gmenumodel.c                      | 4 ++++
 gio/gresourcefile.c                   | 2 ++
 gio/tests/gdbus-peer-object-manager.c | 1 +
 gio/tests/proxy-test.c                | 5 +++++
 gobject/tests/param.c                 | 1 +
 tests/refcount/closures.c             | 1 +
 tests/refcount/properties3.c          | 1 +
 tests/refcount/properties4.c          | 1 +
 8 files changed, 16 insertions(+)

commit 6d88a2f82294ffd6f75436e3f8e72b30fd591a03
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:35:38 2012 -0400

    build: Add missing "static" keyword where it should be used

    Otherwise we fail to build with -Werror=missing-prototypes.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 gio/gdbusactiongroup.c                | 2 +-
 gio/gtestdbus.c                       | 2 +-
 gio/tests/gdbus-peer-object-manager.c | 2 +-
 gio/tests/gdbus-peer.c                | 2 +-
 gio/tests/resources.c                 | 2 +-
 tests/libmoduletestplugin_a.c         | 6 ++++++
 tests/libmoduletestplugin_b.c         | 8 ++++++++
 tests/testgdate.c                     | 3 ++-
 tests/testgdateparser.c               | 3 ++-
 tests/unicode-collate.c               | 4 ++--
 10 files changed, 25 insertions(+), 9 deletions(-)

commit f6da43f56c8d884c477594a787d2d025f67b0784
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:36:41 2012 -0400

    build: Ensure we #include header files for glib-genmarshal code

    Otherwise we fail with -Werror=missing-prototypes.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 gobject/tests/Makefile.am | 2 +-
 tests/gobject/Makefile.am | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 67466b41afc6c5605b441c4955fba372e28975d3
Author: Colin Walters <walters@verbum.org>
Date:   Thu Nov 1 19:40:41 2012 -0400

    build: Don't use C99 declarations

    Since GLib needs to compile with MSVC, we can't use them.  This fixes
    compilation when using -Werror=declaration-after-statement.

    https://bugzilla.gnome.org/show_bug.cgi?id=687385

 gio/tests/gdbus-proxy.c        |  4 ++--
 gio/tests/gdbus-test-codegen.c | 14 +++++++-------
 glib/gthread-posix.c           | 10 ++++++----
 glib/tests/gdatetime.c         |  3 ++-
 4 files changed, 17 insertions(+), 14 deletions(-)

commit 59a24ab5a3ffff7d2cd36a1b392b49cc4024c29d
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Wed Oct 31 14:56:00 2012 +1300

    Use "Returns:" instead of the invalid "@returns" for annotating
    return values.

    https://bugzilla.gnome.org/show_bug.cgi?id=673229

 gio/gvdb/gvdb-reader.c               |  27 ++++++----
 glib/deprecated/gcache.c             |   6 ++-
 glib/deprecated/gcompletion.c        |  20 ++++---
 glib/deprecated/grel.c               |  18 ++++---
 glib/deprecated/gthread-deprecated.c |  23 +++++---
 glib/garray.c                        | 101
 +++++++++++++++++++++++------------
 glib/gdataset.c                      |  19 ++++---
 glib/giochannel.c                    |   5 +-
 glib/giounix.c                       |   6 ++-
 glib/giowin32.c                      |   9 ++--
 glib/glist.c                         |  21 +++++---
 glib/gnode.c                         |   3 +-
 glib/gpattern.c                      |  15 ++++--
 glib/grand.c                         |   6 ++-
 glib/gsequence.c                     |   7 +--
 glib/gslist.c                        |   6 ++-
 glib/gthread.c                       |   3 +-
 glib/gtimer.c                        |   8 +--
 glib/gtree.c                         |   3 +-
 glib/gvariant-parser.c               |   3 +-
 20 files changed, 200 insertions(+), 109 deletions(-)

commit 4447d5ce1117f261e7a2a935cd9a62340d436a74
Author: Colin Walters <walters@verbum.org>
Date:   Thu Oct 25 15:34:29 2012 -0400

    tests/signals: Disable large enumeration value test that is failing
    on PPC64

    Basically due to a combination of va_args semantics around
    signed/unsigned ints, this test case fails on ppc64.  At the moment,
    we have as yet to find any real-world consumer with such a large
    enumeration value.

    Unfortunately, the possible fixes for this are extremely invasive;
    we would have to define a new enum API.

    Given both of these facts, we believe it makes the most sense at the
    current time to simply not test this. If we at a later time determine
    there is such a real-world consumer, we can look at doing the
    necessary fixes.

    https://bugzilla.gnome.org/show_bug.cgi?id=686662

 gobject/tests/signals.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 531be87f24ecb8ad5d8753a79d8fdd894d0e094a
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Wed Oct 31 13:14:06 2012 +0100

    po: Fix Makefile.in.in syntax

    Introduced by cff536c99ed22f83a09a1030c720f1555240390b

 po/Makefile.in.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a773a615b6fc11964ea81356aa2348e1bf116c9e
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Tue Oct 30 17:16:33 2012 +0000

    GNetworkMonitor: add missing apostrophe to docstring

 gio/gnetworkmonitor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 529bf6bd89757eb7046e8a538349ca59a90e2136
Author: Vincent Untz <vuntz@gnome.org>
Date:   Tue Mar 27 16:52:24 2012 +0200

    Add annotations for g_filename_from_uri()

    https://bugzilla.gnome.org/show_bug.cgi?id=672924

 glib/gconvert.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 0d22609fe981aab877dc9f3bbfa3f97a7c4152f2
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Tue Oct 30 13:15:23 2012 +0100

    gmessages: fix minor typo in documentation

 glib/gmessages.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 15a21bd3cd1065a1c9e5378f0cefd99716235e9f
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Tue Oct 30 16:21:42 2012 +0530

    Updated gujarati file

 po/gu.po | 1021
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 500 insertions(+), 521 deletions(-)

commit 311e18abdded1f525725ea6e2c346fb402b2af02
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 29 10:13:40 2012 +0100

    gthread-posix: always use atomic pointer ops

    On platforms where dependent loads can be reordered (alpha) and
    we have
    exotic implementation of pthread_mutex_lock() it could be possible
    that
    our implementation of g_mutex_lock() is unsafe.

    Always use atomic operations to avoid this possibility.

    https://bugzilla.gnome.org/show_bug.cgi?id=686191

 glib/gthread-posix.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit f20ae7fcfdaf9adeac3f73242adb798f1a80ddff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 29 09:09:49 2012 +0100

    g_dbus_connection_export_menu_model(): fix a crash

    Add some extra protection when 'preparing' a group that doesn't yet
    contain any menus.  This can happen if you subscribe to a group that
    doesn't yet exist.

    It was possible to crash any application using
    g_dbus_connection_export_menu_model() by requesting a non-existent
    subscription group over the bus.

    In practice this only happened in races -- where the proxy sees
    a group
    that exists and queries it, but by the time it does, it's already
    gone.

    https://bugzilla.gnome.org/show_bug.cgi?id=687089

 gio/gmenuexporter.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 00f4c12bf97432a50e49749895d2c8174e204907
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Mon Oct 29 10:19:20 2012 -0400

    gmain: Document constraints on waitpid

    Applications that use glib should not invoke waitpid with a first
    argument that is nonpositive, because when such a waitpid is run in
    one thread and glib waits for a subprocess in another, there is a race
    condition, and the former waitpid can reap a process that was intended
    for the latter.  Mention this in the documentation for
    g_child_watch_source_new, and in the diagnostic generated by
    g_spawn_sync when its waitpid fails with errno equal to ECHILD.

    Signed-off-by: Colin Walters <walters@verbum.org>

    http://bugzilla.gnome.org/show_bug.cgi?id=687075

 glib/gmain.c  | 8 ++++----
 glib/gspawn.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit cff536c99ed22f83a09a1030c720f1555240390b
Author: Colin Walters <walters@verbum.org>
Date:   Sun Oct 28 09:46:35 2012 -0400

    mkinstalldirs: Delete from version control

    This is installed by automake.  By maintaining it in git, we create
    merge conflicts as people build with different versions of automake.

    Just use 'mkdir -p' instead in gettext.  Should be portable enough.

    https://bugzilla.gnome.org/show_bug.cgi?id=686839

 Makefile.am       |   5 --
 mkinstalldirs     | 162
 ------------------------------------------------------
 po/Makefile.in.in |  20 ++-----
 3 files changed, 4 insertions(+), 183 deletions(-)

commit d04ac162c10f3a855dbbaea6efe06de9d85aea02
Author: Colin Walters <walters@verbum.org>
Date:   Sat Oct 27 12:28:14 2012 -0400

    README.in: Note undefined behavior with new g_type_init() ->
    ctor change

    https://bugzilla.gnome.org/show_bug.cgi?id=686822

 README.in | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 8911cee350575f7c0b534d97fd10787181c0e542
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Sat Oct 27 12:12:29 2012 +0200

    gio/tests: Fix build with -Werror=format-security

 gio/tests/gdbus-peer-object-manager.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fa523734c7c438944fc3b6f09a40b79d855475ee
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Sat Oct 27 12:10:44 2012 +0200

    gio/tests: Fix linker failure

    Fixes 8c320d0c34ad5b3a31ac4f9024dba358a46ac725

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit d68b4e1d02a06417bfe29494708a29a3d944cf41
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Oct 26 11:12:46 2012 +0200

    gio: No need to specify SOURCES when name matches executable

    Removes some of the duplication from Makefile.am

    https://bugzilla.gnome.org/show_bug.cgi?id=686921

 gio/tests/Makefile.am | 121
 --------------------------------------------------
 1 file changed, 121 deletions(-)

commit 8c320d0c34ad5b3a31ac4f9024dba358a46ac725
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Oct 26 10:42:17 2012 +0200

    gio: Remove LDADD repetition from gio/tests Makefile

    Using a global LDADD for the basic libraries to link.

    https://bugzilla.gnome.org/show_bug.cgi?id=686921

 gio/tests/Makefile.am | 122
 +++++++-------------------------------------------
 1 file changed, 16 insertions(+), 106 deletions(-)

commit fb2d3aacb5998397586ce4523f987dff60a9ca85
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Oct 26 10:30:29 2012 +0200

    gdbus: Allow GDBusObjectManagerClient to work on peer connections

    Allow GDBusObjectManagerClient to work on peer to peer DBus
    connections. Don't require that a unique bus name is available
    for the object manager, if the owned bus name is NULL.

    https://bugzilla.gnome.org/show_bug.cgi?id=686920

 gio/gdbusobjectmanagerclient.c        |  70 ++++---
 gio/tests/.gitignore                  |   1 +
 gio/tests/Makefile.am                 |   3 +
 gio/tests/gdbus-peer-object-manager.c | 364
 ++++++++++++++++++++++++++++++++++
 4 files changed, 406 insertions(+), 32 deletions(-)

commit 7db2ac7b88a4d2211894153212e92ea9db5cacbb
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Fri Oct 26 13:20:29 2012 -0400

    Fix typo in G_TEST_DBUS.

 gio/gtestdbus.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d681b581ff059fdf258b6f91b62cf1e474f2cc71
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Mon Apr 30 22:39:57 2012 -0400

    file-info: catch thumbnail files in large directory as well

    When building the file attribute table info for local files, use
    thumbnail paths in $XDG_CACHE_DIR/thumbnails/large in addition to
    $XDG_CACHE_DIR/thumbnails/normal.

    Failing to do this would cause an application that creates large
    thumbnails by default to never find any value for
    G_FILE_ATTRIBUTE_THUMBNAIL_PATH, with no
    G_FILE_ATTRIBUTE_THUMBNAILING_FAILED set, which might cause the
    application to either think thumbnailing is still in progress, or
    blindly requeue thumbnail operations in a loop.

    Large thumbnails are generally preferred, so we now default to
    the path
    of a large thumbnail (in case both are present).

    https://bugzilla.gnome.org/show_bug.cgi?id=686895

 gio/glocalfileinfo.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

commit 36bf25371ce77d8cea4336f52e7db09e05f23ca5
Author: Colin Walters <walters@verbum.org>
Date:   Thu Oct 25 18:21:59 2012 -0400

    g_unix_signal_source_new: Allow SIGUSR1 and SIGUSR2

    These are user defined, it makes sense to allow watching them.  This
    is needed to port gnome-session and gdm over.

    https://bugzilla.gnome.org/show_bug.cgi?id=686898

 glib/glib-unix.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

commit 1775c46e7a3c45da936bbff97fa241e196910964
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Thu Oct 25 14:55:30 2012 +0200

    GIOChannel: Add missing annotations

    The various read and write methods have several out arguments which
    were not
    previously marked as such. Also, as GIOChannel supports binary data
    with a NULL
    encoding, the buffers need to be uint8 arrays instead of utf8 strings.

 glib/giochannel.c | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

commit a5c5730085cf7739215af1624ebdf403b5c11232
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Thu Oct 25 11:27:39 2012 +0200

    Revert "Box GPollFD to make it introspectable"

    This reverts commit 932f4250b88a50059330a9df8224feeab6b0ffd7.

    This got pushed accidentally and has not been accepted yet. It's
    also not clear
    whether we want this in the first place.

    https://bugzilla.gnome.org/show_bug.cgi?id=686797

 docs/reference/gobject/gobject-sections.txt |  2 --
 gobject/gboxed.c                            | 10 ----------
 gobject/glib-types.h                        | 11 -----------
 gobject/gobject.symbols                     |  1 -
 4 files changed, 24 deletions(-)

commit 932f4250b88a50059330a9df8224feeab6b0ffd7
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Wed Oct 24 16:30:37 2012 +0200

    Box GPollFD to make it introspectable

    https://bugzilla.gnome.org/show_bug.cgi?id=686797

 docs/reference/gobject/gobject-sections.txt |  2 ++
 gobject/gboxed.c                            | 10 ++++++++++
 gobject/glib-types.h                        | 11 +++++++++++
 gobject/gobject.symbols                     |  1 +
 4 files changed, 24 insertions(+)

commit c3f52eae0e283f82a51d84ef3252dd10e36a0657
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Thu Oct 25 07:51:40 2012 +0200

    GIOChannel: Add missing (allow-none) annotations

    g_io_channel_set_line_term() and g_io_channel_set_encoding() can
    get NULL
    arguments, mark them as such.

 glib/giochannel.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 4fb2d737ac69b60d9aef4f06884bb6a69752c607
Author: Colin Walters <walters@verbum.org>
Date:   Tue Oct 23 16:11:33 2012 +0200

    gvariant: Make g_variant_new_from_bytes() public

    Now that GBytes has been made public, we should make
    g_variant_new_from_bytes() public too.

    Add g_variant_get_data_as_bytes() to match.

    https://bugzilla.gnome.org/show_bug.cgi?id=677062

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/glib.symbols                     |  2 ++
 glib/gvariant-core.c                  | 31
 +++++++++++++++++++++++++++++--
 glib/gvariant-core.h                  |  4 ----
 glib/gvariant.h                       |  8 ++++++++
 glib/tests/gvariant.c                 | 32
 ++++++++++++++++++++++++++++++++
 6 files changed, 73 insertions(+), 6 deletions(-)

commit 7d17fd6f61781e73c4304016d09be091d5045145
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 22 22:20:47 2012 +0200

    Release GLib 2.35.1

 NEWS         | 61
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 62 insertions(+), 1 deletion(-)

commit 05756f84187c6ceef2c24ad7535284c691ec4c8a
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Sun Oct 21 13:08:01 2012 +0200

    Fix this cost -> the cost typos

 gio/gdbusintrospection.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit c2a2c4a00bd1b0ab8210e3e1dfc4acaeb56a3e5a
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Oct 20 00:14:37 2012 +0200

    Updated Slovenian translation

 po/sl.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 475edeb2edad68b4bef818deb7ee7db92598397f
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Fri Oct 19 14:34:18 2012 +0200

    Allow slightly too big poll duration in /socket/timed_wait test

    Sometimes the poll duration in the /socket/timed_wait test is slightly
    bigger than the requested 100000, causing failures like:

    GLib-GIO:ERROR:socket.c:620:test_timed_wait:
        assertion failed (poll_duration < 110000): (110057 < 110000)

    Adjust the test to allow some jitter in the "too high" direction.

    https://bugzilla.gnome.org/show_bug.cgi?id=686458

 gio/tests/socket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d906f84a441ad70e42fd6d5eac8837a8a8639aaa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 16 21:07:13 2012 -0400

    GBytes: deal with a corner-case

    When calling g_bytes_unref_to_data on a GBytes with NULL data
    we could end up with double-free or use-after-free issues.
    https://bugzilla.gnome.org/show_bug.cgi?id=686091

 glib/gbytes.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a0a364382333083ddc6376edc4d3cfb8dce0ccff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 16 21:16:50 2012 -0400

    Add a test for the previous fix

    Running tests/bytes with G_SLICE=always-malloc MALLOC_CHECK_=2
    was aborting before.

 glib/tests/bytes.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 654bfcb7ce3b99d6b71ae86f1e0aee33056f70b1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 16 12:29:22 2012 -0400

    GBusNameVanishedCallback: document NULL connection

    @connection can be NULL for this callback.  Document this possibility
    and describe the circumstances.

    https://bugzilla.gnome.org/show_bug.cgi?id=686231

 gio/gdbusnamewatching.h | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 212ffcc574d929ca0715960b4f29a4aab909a251
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 16 12:27:12 2012 -0400

    GMenuExporter: allow NULL bus on _name_vanished

    GBusNameVanishedCallback is called with a NULL GDBusConnection in the
    case that the connection has vanished.  We were doing an assert to
    verify that it was the same as we had exported the menu on and that
    assert was failing.

    https://bugzilla.gnome.org/show_bug.cgi?id=685995

 gio/gmenuexporter.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 2002479c02fa6e468fc3f67ddc663657a52ebde8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 16 09:40:45 2012 -0400

    Add note about g_type_init() to README

 README.in | 5 +++++
 1 file changed, 5 insertions(+)

commit df02fa1e4cc61a2c7f3aafdf1a6534a831f1c0d6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 15 12:01:01 2012 -0400

    Properly deprecate g_type_init()

    Now that all internal users of it are gone.

    https://bugzilla.gnome.org/show_bug.cgi?id=686161

 gobject/gtype.c |  4 ++++
 gobject/gtype.h | 16 ++++++++++------
 2 files changed, 14 insertions(+), 6 deletions(-)

commit 1dc774a653e992e1153fbed16f90097fa8db467f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 15 12:00:51 2012 -0400

    Remove g_type_init() calls

    Very many testcases, some GLib tools (resource compiler, etc) and
    GApplication were calling g_type_init().

    Remove those uses, as they are no longer required.

    https://bugzilla.gnome.org/show_bug.cgi?id=686161

 gio/gapplication.c                             | 4 ----
 gio/gdbus-tool.c                               | 2 --
 gio/gdbusaddress.c                             | 2 --
 gio/gio-querymodules.c                         | 2 --
 gio/glib-compile-resources.c                   | 2 --
 gio/gresource-tool.c                           | 2 --
 gio/gsettings-tool.c                           | 2 --
 gio/tests/actions.c                            | 1 -
 gio/tests/appinfo.c                            | 1 -
 gio/tests/async-close-output-stream.c          | 2 --
 gio/tests/buffered-input-stream.c              | 1 -
 gio/tests/buffered-output-stream.c             | 2 --
 gio/tests/cancellable.c                        | 1 -
 gio/tests/contenttype.c                        | 2 --
 gio/tests/contexts.c                           | 1 -
 gio/tests/converter-stream.c                   | 1 -
 gio/tests/data-input-stream.c                  | 1 -
 gio/tests/data-output-stream.c                 | 1 -
 gio/tests/desktop-app-info.c                   | 1 -
 gio/tests/echo-server.c                        | 2 --
 gio/tests/file.c                               | 2 --
 gio/tests/fileattributematcher.c               | 2 --
 gio/tests/filter-cat.c                         | 2 --
 gio/tests/filter-streams.c                     | 1 -
 gio/tests/g-file-info.c                        | 1 -
 gio/tests/g-file.c                             | 1 -
 gio/tests/g-icon.c                             | 1 -
 gio/tests/gapplication-example-cmdline2.c      | 2 --
 gio/tests/gapplication-example-dbushooks.c     | 2 --
 gio/tests/gapplication.c                       | 2 --
 gio/tests/gdbus-addresses.c                    | 1 -
 gio/tests/gdbus-auth.c                         | 1 -
 gio/tests/gdbus-bz627724.c                     | 1 -
 gio/tests/gdbus-close-pending.c                | 1 -
 gio/tests/gdbus-connection-flush-helper.c      | 2 --
 gio/tests/gdbus-connection-flush.c             | 1 -
 gio/tests/gdbus-connection-loss.c              | 1 -
 gio/tests/gdbus-connection-slow.c              | 1 -
 gio/tests/gdbus-connection.c                   | 1 -
 gio/tests/gdbus-daemon.c                       | 2 --
 gio/tests/gdbus-error.c                        | 1 -
 gio/tests/gdbus-example-export.c               | 2 --
 gio/tests/gdbus-example-objectmanager-client.c | 2 --
 gio/tests/gdbus-example-objectmanager-server.c | 2 --
 gio/tests/gdbus-example-own-name.c             | 2 --
 gio/tests/gdbus-example-peer.c                 | 2 --
 gio/tests/gdbus-example-server.c               | 2 --
 gio/tests/gdbus-example-subtree.c              | 2 --
 gio/tests/gdbus-example-unix-fd-client.c       | 2 --
 gio/tests/gdbus-example-watch-name.c           | 2 --
 gio/tests/gdbus-example-watch-proxy.c          | 2 --
 gio/tests/gdbus-exit-on-close.c                | 1 -
 gio/tests/gdbus-export.c                       | 1 -
 gio/tests/gdbus-introspection.c                | 1 -
 gio/tests/gdbus-message.c                      | 1 -
 gio/tests/gdbus-names.c                        | 1 -
 gio/tests/gdbus-non-socket.c                   | 1 -
 gio/tests/gdbus-peer.c                         | 1 -
 gio/tests/gdbus-proxy-threads.c                | 1 -
 gio/tests/gdbus-proxy-well-known-name.c        | 1 -
 gio/tests/gdbus-proxy.c                        | 1 -
 gio/tests/gdbus-serialization.c                | 1 -
 gio/tests/gdbus-test-codegen.c                 | 1 -
 gio/tests/gdbus-threading.c                    | 1 -
 gio/tests/gmenumodel.c                         | 1 -
 gio/tests/gschema-compile.c                    | 1 -
 gio/tests/gsettings.c                          | 1 -
 gio/tests/httpd.c                              | 2 --
 gio/tests/inet-address.c                       | 1 -
 gio/tests/io-stream.c                          | 1 -
 gio/tests/live-g-file.c                        | 1 -
 gio/tests/memory-input-stream.c                | 1 -
 gio/tests/memory-output-stream.c               | 1 -
 gio/tests/mimeapps.c                           | 1 -
 gio/tests/network-address.c                    | 2 --
 gio/tests/network-monitor.c                    | 2 --
 gio/tests/permission.c                         | 1 -
 gio/tests/pollable.c                           | 1 -
 gio/tests/proxy-test.c                         | 1 -
 gio/tests/proxy.c                              | 2 --
 gio/tests/readwrite.c                          | 1 -
 gio/tests/resolver.c                           | 2 --
 gio/tests/resources.c                          | 1 -
 gio/tests/send-data.c                          | 2 --
 gio/tests/simple-async-result.c                | 1 -
 gio/tests/sleepy-stream.c                      | 1 -
 gio/tests/socket-client.c                      | 2 --
 gio/tests/socket-server.c                      | 2 --
 gio/tests/socket.c                             | 1 -
 gio/tests/srvtarget.c                          | 1 -
 gio/tests/task.c                               | 1 -
 gio/tests/tls-certificate.c                    | 1 -
 gio/tests/tls-interaction.c                    | 1 -
 gio/tests/unix-fd.c                            | 2 --
 gio/tests/unix-streams.c                       | 1 -
 gio/tests/vfs.c                                | 1 -
 gio/tests/volumemonitor.c                      | 2 --
 gio/tests/win32-streams.c                      | 1 -
 gobject/gobject-query.c                        | 2 --
 gobject/gvalue.c                               | 2 --
 gobject/testgobject.c                          | 1 -
 gobject/tests/binding.c                        | 1 -
 gobject/tests/boxed.c                          | 1 -
 gobject/tests/dynamictests.c                   | 1 -
 gobject/tests/enums.c                          | 1 -
 gobject/tests/ifaceproperties.c                | 2 --
 gobject/tests/param.c                          | 1 -
 gobject/tests/properties.c                     | 1 -
 gobject/tests/qdata.c                          | 2 +-
 gobject/tests/reference.c                      | 2 --
 gobject/tests/signals.c                        | 2 --
 gobject/tests/threadtests.c                    | 1 -
 gobject/tests/valuearray.c                     | 2 --
 tests/gio-ls.c                                 | 2 --
 tests/gobject/accumulator.c                    | 1 -
 tests/gobject/defaultiface.c                   | 1 -
 tests/gobject/dynamictype.c                    | 1 -
 tests/gobject/gvalue-test.c                    | 1 -
 tests/gobject/ifacecheck.c                     | 2 --
 tests/gobject/ifaceinherit.c                   | 1 -
 tests/gobject/ifaceinit.c                      | 1 -
 tests/gobject/override.c                       | 1 -
 tests/gobject/paramspec-test.c                 | 1 -
 tests/gobject/performance-threaded.c           | 2 --
 tests/gobject/performance.c                    | 2 --
 tests/gobject/references.c                     | 1 -
 tests/gobject/singleton.c                      | 2 +-
 tests/refcount/closures.c                      | 1 -
 tests/refcount/objects.c                       | 1 -
 tests/refcount/objects2.c                      | 1 -
 tests/refcount/properties.c                    | 1 -
 tests/refcount/properties2.c                   | 3 +--
 tests/refcount/properties3.c                   | 1 -
 tests/refcount/properties4.c                   | 1 -
 tests/refcount/signals.c                       | 1 -
 tests/timeloop-closure.c                       | 2 --
 136 files changed, 3 insertions(+), 189 deletions(-)

commit 7c42ab23b55c43ab96d0ac2124b550bf1f49c1ec
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 15 11:53:25 2012 -0400

    Convert g_type_init() to a ctor

    Move the guts of g_type_init() into a ctor and turn g_type_init()
    itself
    into a do-nothing function.

    g_type_init_with_debug_flags() now ignores its arguments, but it has
    always been possible to achieve the same effect via environment
    variables.

    https://bugzilla.gnome.org/show_bug.cgi?id=686161

 docs/reference/gobject/tut_gtype.xml |   4 +-
 gobject/gtype.c                      | 104
 ++++++++++++++++-------------------
 gobject/gtype.h                      |   1 -
 3 files changed, 50 insertions(+), 59 deletions(-)

commit 691c0b053e0d290db407b539ff63849423e60907
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 15 19:48:44 2012 -0400

    Add missing semicolons to gobject_probes.d

    Pointed out in
    https://bugzilla.gnome.org/show_bug.cgi?id=686119

 gobject/gobject_probes.d | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f923fb330bbf73c3aff8fb2b942e15f8e2246a25
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Sat Oct 6 14:56:36 2012 +0200

    gdbus-testserver: port to pygi

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=685608

 gio/tests/gdbus-testserver.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit e16f82854a64fd3d21656818f39a78ce6e8084af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 15 19:34:36 2012 -0400

    Add return-if-fail checks to g_application_hold/release

    This is our common practice for public API.
    https://bugzilla.gnome.org/show_bug.cgi?id=685208

 gio/gapplication.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 1a20d56a894040e35153591c2d86513d5dddb409
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 15 19:28:28 2012 -0400

    g_settings_bind: use canonical property name

    We were using the user-passed value of the @property argument for
    several purposes in g_settings_bind(): error messages, binding
    uniqueness (ie: one-binding-per-property-per-object) and most
    importantly, connecting to the detailed notify:: signal.

    The user may pass a string like "property_name" when the property's
    canonical name is "property-name".  g_object_class_find_property()
    will
    find the property under these circumstances, but a connection to
    "notify::property_name" will not notice notifies emitted for
    "property-name".

    We can solve this by using the user's string to perform the lookup and
    then using pspec->name for everything after that.

    https://bugzilla.gnome.org/show_bug.cgi?id=684882

 gio/gsettings.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit dace477c92ea3a9111cef73159a6a1fcaaf0f497
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 15 19:22:50 2012 -0400

    Add Win32 versions of some new content type APIs

    This commit adds minimal versions of
    g_content_type_get_symbolic_icon and
    g_content_type_get_generic_icon_name.
    https://bugzilla.gnome.org/show_bug.cgi?id=683642

 gio/gcontenttype-win32.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 93bdc5b3d9989549c60739a8493f6142044daeb6
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Mon Oct 15 06:33:25 2012 +0200

    Updated Danish translation

 po/da.po | 133
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 67 insertions(+), 66 deletions(-)

commit a36028f386708bb10d7c3817b5da5201777dc16c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 13 12:16:32 2012 -0400

    gsignal: really fix closure invalidation

    Commit 66b0d95f0ba1939882368b47b01f93289c42ae07 missed this part
    of the
    patch.

 gobject/gsignal.c | 1 +
 1 file changed, 1 insertion(+)

commit a1e6ecdfebb213c0b2b6c4c89ea6e5a7521fc6d1
Author: Arnel A. Borja <kyoushuu@yahoo.com>
Date:   Fri Oct 12 09:58:05 2012 -0700

    gtimezone: Indentation adn comment fixes

 glib/gtimezone.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 86a8ec047e43e5767604bea5d0b31b65165a8c94
Author: John Ralls <jralls@ceridwen.us>
Date:   Mon Sep 24 10:54:38 2012 -0700

    Bug 631382 - GTimeZone support for zoneinfo version 1

 glib/gtimezone.c | 62
 ++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 42 insertions(+), 20 deletions(-)

commit 6005f1d016244c6c3ca13e36032acd77c04d2640
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Oct 11 20:27:30 2012 +0200

    Updated Norwegian bokmål translation.

 po/nb.po | 223
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 114 insertions(+), 109 deletions(-)

commit a342be71388d8b0248c74ef68dace3744d687cfa
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Tue Oct 9 09:30:06 2012 +0100

    gtestdbus: correct documentation typos

    https://bugzilla.gnome.org/show_bug.cgi?id=685787

 gio/gtestdbus.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit e162fab4c0257997c08e29072b36b9db3992778d
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 2 15:45:24 2012 -0400

    gio/tests: port from GSimpleAsyncResult to GTask

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/tests/cancellable.c            | 75
 ++++++++++++++++++++------------------
 gio/tests/gtlsconsoleinteraction.c | 41 +++++++++++----------
 gio/tests/proxy-test.c             | 69
 +++++++++++++----------------------
 gio/tests/tls-interaction.c        | 30 +++++++--------
 4 files changed, 99 insertions(+), 116 deletions(-)

commit d21309464cbbe3970a08a10d1a1a91ebf279dadb
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 2 15:48:22 2012 -0400

    gio: port networking classes from GSimpleAsyncResult to GTask

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gdummyproxyresolver.c      |  40 ++-----
 gio/gnetworkaddress.c          |  61 +++++-----
 gio/gnetworkmonitor.c          |  25 ++---
 gio/gnetworkservice.c          |  96 ++++++----------
 gio/gproxyaddressenumerator.c  | 128 ++++++++-------------
 gio/gresolver.c                |  21 ++--
 gio/gsocketaddressenumerator.c |  31 ++---
 gio/gsocketclient.c            | 139 +++++++++++------------
 gio/gsocketconnection.c        |  67 ++++-------
 gio/gsocketinputstream.c       |   3 -
 gio/gsocketlistener.c          |  68 ++++-------
 gio/gsocketoutputstream.c      |   3 -
 gio/gsocks4aproxy.c            |  99 ++++++----------
 gio/gsocks5proxy.c             | 169 ++++++++++++++--------------
 gio/gtcpconnection.c           | 107 ++++++------------
 gio/gtlsdatabase.c             | 249
 ++++++++++++++++++-----------------------
 gio/gtlsinteraction.c          |  29 +++--
 gio/gunixconnection.c          |  90 +++++----------
 18 files changed, 563 insertions(+), 862 deletions(-)

commit 130d0fdac0645116adf3e731fd63e6b3f50d6d7b
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 2 15:51:37 2012 -0400

    gio: port GAsyncInitable from GSimpleAsyncResult to GTask

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gasyncinitable.c | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

commit 55e7ca6e1b2c85af72ae5dd70be80abf07f3fa46
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 21 09:19:56 2011 -0500

    gio: deprecate gioscheduler, soft deprecate GSimpleAsyncResult

    Reimplement gioscheduler in terms of GTask, and deprecate the original
    gioscheduler methods. Update docs to point people to GTask rather than
    gioscheduler and GSimpleAsyncResult, but don't actually formally
    deprecate GSimpleAsyncResult yet.

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 docs/reference/gio/gio-docs.xml |   2 +-
 gio/gasyncinitable.c            |  40 +++++------
 gio/gasyncresult.c              |  12 +++-
 gio/gdbusinterfaceskeleton.c    |  40 +++++------
 gio/gfile.c                     |  67 ++++++++-----------
 gio/gfileenumerator.c           |   2 +-
 gio/gioscheduler.c              | 143
 +++++++++++-----------------------------
 gio/gioscheduler.h              |   4 ++
 gio/gsimpleasyncresult.c        |  12 ++--
 9 files changed, 125 insertions(+), 197 deletions(-)

commit b20eec329484d99cdceafab80aa68164709c7868
Author: Dan Winship <danw@gnome.org>
Date:   Tue Oct 11 14:57:35 2011 -0400

    gio: port GThreadedResolver from GSimpleAsyncResult to GTask

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gthreadedresolver.c | 573
 +++++++++++-------------------------------------
 1 file changed, 131 insertions(+), 442 deletions(-)

commit 4aeefa70a10b89b53a3bd1ed305d451f3cc6d2ad
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 5 10:05:50 2011 -0400

    GTask: new GAsyncResult implementation / threaded task manager

    GTask is a replacement for GSimpleAsyncResult and GIOScheduler, that
    also allows for making cancellable wrappers around non-cancellable
    functions (as in GThreadedResolver).

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 docs/reference/gio/gio-docs.xml     |    1 +
 docs/reference/gio/gio-sections.txt |   53 +
 docs/reference/gio/gio.types        |    1 +
 gio/Makefile.am                     |    2 +
 gio/gio.h                           |    1 +
 gio/gio.symbols                     |   31 +
 gio/giotypes.h                      |    1 +
 gio/gtask.c                         | 1805
 +++++++++++++++++++++++++++++++++++
 gio/gtask.h                         |  160 ++++
 gio/tests/.gitignore                |    1 +
 gio/tests/Makefile.am               |    4 +
 gio/tests/task.c                    | 1668
 ++++++++++++++++++++++++++++++++
 12 files changed, 3728 insertions(+)

commit 132c4cee4fa445b7de29711719090d61cd5903c3
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 10 10:02:39 2012 -0400

    ghash.c: fix docs

    A previous commit left an unclosed XML tag. Fix that.

 glib/ghash.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

commit 66b0d95f0ba1939882368b47b01f93289c42ae07
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 8 18:20:24 2012 -0400

    [gsignal] Fix closure invalidation

    If the closure is invalidated we drop the ref on the signal handler
    node, but if the signal is currently being dispatched, the ref
    could be
    held elsewhere.

    Flag that we no longer have an outstanding invalidation handler
    so that
    we don't try to unregister ourselves when the other ref drops.

    Add a testcase that catches this situation.

 gobject/tests/signals.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit fd29b2f356913e05d97cf372b3576bf7c32836e7
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Mon Oct 8 10:03:43 2012 +0200

    gdbus: minor documentation fix in
    g_dbus_interface_skeleton_has_connection()

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685697

 gio/gdbusinterfaceskeleton.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 028d4a03f2baa7ca9243a2819f30ffb0d5e137d7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 8 11:40:00 2012 -0400

    [gobject] set all properties before constructed()

    Move the constructed() call to happen after all of the properties are
    set (not just the construct properties).

    This is an incompatible change but we are making it under the belief
    that it should be safe.  If this change impacts you in a negative way
    please comment on the bug.

    https://bugzilla.gnome.org/show_bug.cgi?id=685733

 gobject/gobject.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 8fd75705f4bf7e9c84683bff2569757cccddd8c3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 8 11:20:07 2012 -0400

    fix g_signal_connect_object() documentation

    g_signal_connect_object() now works properly, so we can remove
    the note
    in the docs about it being broken.

    https://bugzilla.gnome.org/show_bug.cgi?id=118536

 gobject/gobject.c | 22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

commit c15769d30411db7e8de766d7004c90d267ebcabc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 8 11:18:00 2012 -0400

    [gsignal] fix up a crasher in previous commit

    The previous commit introduced a new variable in the Handler
    struct but
    didn't initialise it.  This was causing some tests to crash.

    https://bugzilla.gnome.org/show_bug.cgi?id=118536

 gobject/gsignal.c | 1 +
 1 file changed, 1 insertion(+)

commit d03d26feabc5861fe43d503f5e06d73cee9c6fe8
Author: Matthias Clasen <maclas@gmx.de>
Date:   Wed Jun 23 01:49:24 2004 -0400

    [gsignal] disconnect invalidated closures

    Modify gsignal to automatically disconnect a GClosure that becomes
    invalid (in the g_closure_invalidate() sense).

    Previously, when g_signal_connect_object() was used with a GObject as
    the user_data and that object was destroyed, the handler would
    no longer
    be called but the signal handler was itself was not disconnected (ie:
    the bookkeeping data was kept around).

    The main effect of this patch is that these signal handlers will now
    be automatically disconnected (and fully freed).

    The documentation for g_signal_connect_object() has anticipated this
    change for over 10 years and has advised the following workaround when
    disconnecting signal handlers connected with
    g_signal_connect_object():

     if (g_signal_handler_is_connected (instance, id))
       g_signal_handler_disconnect (instance, id);

    If your code follows this practice then it will continue to work.

    If your code never disconnects the signal handler then it was wasting
    memory before (and this commit fixes that).

    If your code unconditionally disconnects the signal handler then you
    will start to see (harmless) g_critical() warnings about this and you
    should fix them.

    https://bugzilla.gnome.org/show_bug.cgi?id=118536

 gobject/gsignal.c | 66
 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 58 insertions(+), 8 deletions(-)

commit d9730f0e319472750f5b7b8b62743ded86e5eaeb
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Sun Oct 7 20:10:36 2012 -0300

    ghash: Add documentation

 glib/ghash.c | 37 +++----------------------------------
 1 file changed, 3 insertions(+), 34 deletions(-)

commit f15b2b316662c0092f0b7cd567be29cdcacd0c71
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Sep 26 11:36:30 2012 -0300

    glib.py: Remove old debugging code

    This was accidentally copy/pasted from gobject.py

 glib/glib.py | 4 ----
 1 file changed, 4 deletions(-)

commit 7e6fa556ec2c98db583baa29870530bf67d45c7c
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 5 09:32:24 2012 -0400

    GFileMonitor: thread-safety fix for non-default-main-context monitors

    When queuing events to another thread, we need a mutex around
    priv->pending_file_changes and priv->pending_file_change_source.

    https://bugzilla.gnome.org/show_bug.cgi?id=682950

 gio/gfilemonitor.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 05461e5709f81a98547c70c07a48af783e4fd54e
Author: Colin Walters <walters@verbum.org>
Date:   Thu Sep 27 20:11:27 2012 -0400

    codegen: Install Python files in $(datadir)/glib-2.0, rather than
    $(libdir)

    These files are actually architecture-indepdendent; using $(libdir)
    for them means that /usr/bin/gdbus-codegen varies between
    architectures, which is problematic for (mis)uses of multilib.

    See https://bugzilla.redhat.com/show_bug.cgi?id=718404

    https://bugzilla.gnome.org/show_bug.cgi?id=685012

 gio/gdbus-2.0/codegen/Makefile.am      | 4 ++--
 gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit ce06987449660eb4ca0b3ad7ecc5801b4ae2164f
Author: Colin Walters <walters@verbum.org>
Date:   Wed Sep 26 15:44:33 2012 -0400

    codegen: Explicitly close output

    This is just cleaner rather than relying on the GC, and maybe
    if we're lucky it will actually solve a problem.

    https://bugzilla.gnome.org/show_bug.cgi?id=684909

 gio/gdbus-2.0/codegen/codegen_main.py | 2 ++
 1 file changed, 2 insertions(+)

commit eb2f5c1e0f0ffef490334434469fe9fe33d68cf6
Author: Dan Winship <danw@gnome.org>
Date:   Wed Sep 5 09:44:24 2012 -0400

    Add GLIB_VERSION_2_36 and related

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/gversionmacros.h                 | 24 ++++++++++++++++++++++++
 2 files changed, 26 insertions(+)

commit a8a416181c7ceaf44501e84a7fb790b520606a5e
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Wed Oct 3 11:20:51 2012 -0400

    gdbus-codegen: Update tests for new inheritance-semantics for Since

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/tests/test-codegen.xml | 2 --
 1 file changed, 2 deletions(-)

commit fa6a6846303817feb9bbd3f6aa136852c10cd072
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Wed Oct 3 11:07:57 2012 -0400

    gdbus-codegen: make members of an interface inherit the "Since"
    annotation

    This is the expected (and sane) behavior - without this bug-fix you'd
    have to add "Since" to every member of a newly added D-Bus interface.

    Also show-case this in the codegen example.

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 .../gdbus-object-manager-example-sections.txt          |  6 ++++++
 gio/gdbus-2.0/codegen/dbustypes.py                     | 18
 ++++++++++++------
 .../gdbus-example-objectmanager.xml                    | 13 +++++++++++++
 3 files changed, 31 insertions(+), 6 deletions(-)

commit 242dfd617bc1f6ac03363f9bcde7c1edf02fd38a
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jul 8 00:24:58 2012 +0200

    unicode: Add new tests for unicode 6.2

 glib/tests/unicode.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 9524c620bb9a05cb014eaf1d3d66fe47fd7e369e
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jul 7 23:56:18 2012 +0200

    unicode: Update to unicode 6.2.0 beta

 glib/gscripttable.h   |    8 +-
 glib/gunibreak.h      | 1002 +++----
 glib/gunichartables.h |   15 +-
 glib/gunicomp.h       |   62 +-
 glib/gunidecomp.h     | 7443
 +++++++++++++++++++++++++------------------------
 glib/guniprop.c       |   13 +-
 6 files changed, 4375 insertions(+), 4168 deletions(-)

commit 95acb7c0d1411477660fe4d073c7278c59adc019
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jul 7 23:53:23 2012 +0200

    unicode: Add new line breaking class from unicode 6.2

    Regional Indicator (RI) is new in unicode 6.2.

    https://bugzilla.gnome.org/show_bug.cgi?id=684912

 glib/gen-unicode-tables.pl |  1 +
 glib/gunicode.h            | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

commit b0ef1c1fbbbff44d78d4935d84f0a4f2b250dcba
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jul 8 00:21:59 2012 +0200

    unicode: Use g_assert_cmp{int,uint,hex} in tests

    This gives more info when the test goes wrong.

 glib/tests/unicode.c | 57
 +++++++++++++++++++++++++++-------------------------
 1 file changed, 30 insertions(+), 27 deletions(-)

commit 47bc95c0db1d67b1b9d5e06430bb6060d96d67cd
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Oct 3 13:58:04 2012 +0200

    build: Post branch version bump

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ec82f610655f09bda21e9da1ce629762f72570df
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 30 19:24:13 2012 -0400

    Really fix the leak

    Pointed out by Josselin Mouette.

 gio/glib-compile-resources.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7f325939bae0a82f4d0f926f73f1002dbd4a0a11
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 30 14:07:37 2012 -0400

    Fix memory leaks in glib-compile resources

    Based on a patch by Josselin Mouette,
    https://bugzilla.gnome.org/show_bug.cgi?id=685069

 gio/glib-compile-resources.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 7c045e34238b9c9280bc77529f952ae5b8b581f2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 30 13:37:39 2012 -0400

    Correct to docs for g_strcmp0

    Don't promise to return -1 or 1 - we fall back to strcmp which
    does not guarantee this.
    https://bugzilla.gnome.org/show_bug.cgi?id=685037

 glib/gtestutils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f3f3f4a4120f2b828715933797220d3c594af0d1
Author: Žygimantas Beručka <uid0@akl.lt>
Date:   Sun Sep 30 13:01:14 2012 +0300

    Updated Lithuanian translation

 po/lt.po | 1263
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 637 insertions(+), 626 deletions(-)

commit 685259dfea99c16bdd97f596af6548f83cb5669a
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Sep 27 15:31:46 2012 +0200

    Fix gdb script for new quark variable names

    ... and don't spam stderr with exceptions if someone renames things
    again.

    Last but not least, keep the old names as a fallback, so that
    LD_PRELOAD
    with an older libglib still works.

 glib/glib.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 3d45854a580f35e191f89a567328b03009baf22a
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Sep 26 17:47:52 2012 +0800

    Update config.h.win32(.in) and glibconfig.h.win32(.in)

    -Make config.h.win32(.in) have entries that more resembles the
    generated
     config.h.in
    -Move the ALIGNOF_* #define's from glibconfig.h.win32(.in) to
     config.h.win32(.in), where they were supposed to be.

 config.h.win32.in          | 29 +++++++++++++++++++++++++++++
 glib/glibconfig.h.win32.in |  4 ----
 2 files changed, 29 insertions(+), 4 deletions(-)

commit 03658b1d123c69abdbde324b6ce43528e9a9e9cf
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Sep 26 15:42:53 2012 +0800

    Visual C++ property sheet updates

    Make up for the missed GIO headers that need to be installed.

 build/win32/vs10/glib.props  | 4 ++++
 build/win32/vs9/glib.vsprops | 2 ++
 2 files changed, 6 insertions(+)

commit d9b15f85a773fd93fa10b07ef1a08cf314ce4d09
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Wed Sep 26 01:50:49 2012 +0200

    [l10n] Updated Catalan (Valencian) translation

 po/ca@valencia.po | 795
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 399 insertions(+), 396 deletions(-)

commit 51d32b23a4f048f6a380938f081d1504fa8484c7
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Tue Sep 25 08:34:44 2012 +0200

    [l10n] Updated Italian translation.

 po/it.po | 1511
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 801 insertions(+), 710 deletions(-)

commit 89fa960677ec918d8b731ebf8732ab930bfecc5e
Author: Petr Kovar <pkovar@redhat.com>
Date:   Mon Sep 24 18:23:18 2012 +0200

    Update Czech translation

 po/cs.po | 1443
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 795 insertions(+), 648 deletions(-)

commit 9fa86cf2173ed7e1c3cee7865167ef8870d4661b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 22:39:20 2012 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b470097b8baedeb2d021adb1141007edc805e90b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 22:33:21 2012 -0400

    2.34.0

 INSTALL.in   |  5 ++---
 README.in    | 10 ++++++++++
 configure.ac |  4 ++--
 3 files changed, 14 insertions(+), 5 deletions(-)

commit 096b0883fc121ac51e6d95c63faacb78b22e5745
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 21:20:06 2012 -0400

    More updates

 NEWS | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit c44f8f5b9f8ce041b24b6e0851eeded933295c4c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 20:14:27 2012 -0400

    Document g_test_dbus_get_flags

 gio/gtestdbus.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3ff9645a4d5129c18f46ee1fad5f493d976e3510
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 19:55:40 2012 -0400

    Typo fix

 docs/reference/gio/gio-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 580b58c3c0be3422c39925912e2282a917c96c8b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 11:23:29 2012 -0400

    Update GConf migration guide

    Newer intltool makes this much easier. Yay
    https://bugzilla.gnome.org/show_bug.cgi?id=674620

 docs/reference/gio/migrating-gconf.xml | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

commit 6270b3f384e67e2bb0ea2d000e9a1054a64b4569
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 11:16:26 2012 -0400

    Fix g_ptr_array_ref_docs

    https://bugzilla.gnome.org/show_bug.cgi?id=676034

 glib/garray.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 26ecc52073285b4ee66da392e12b9a626116da7b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 11:13:57 2012 -0400

    Clarify g_type_init docs

    Mention that there's no way to undo it.
    https://bugzilla.gnome.org/show_bug.cgi?id=654239

 gobject/gtype.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 1ea6c0d6d44b7ad8eacbc43d16da2e0f32c5aa61
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 10:44:57 2012 -0400

    Update to latest version

    We should really stop shipping this, but I don't want to make
    such a change on the day before a stable release, so I'll just
    update it to avoid noise in diffs.

 mkinstalldirs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 91ff013e7fcd289645b82cf641606893e2d8c81b
Author: Anita Reitere <nitalynx@gmail.com>
Date:   Sun Sep 23 17:44:20 2012 +0300

    Updated Latvian translation

 po/lv.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3632d0000d55f8309409b93fb65a03ce33d8b3b1
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Sun Sep 23 14:43:07 2012 +0200

    [l10n] Updated German translation

 po/de.po | 1435
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 756 insertions(+), 679 deletions(-)

commit 344066e0c196a9396ea1e9c6db4797ce35c7e726
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 02:18:56 2012 -0400

    Fix gio docs

 gio/gappinfo.c        |  2 +-
 gio/gasyncresult.c    | 14 +++++++-------
 gio/gdesktopappinfo.c | 14 +++++++-------
 gio/gfile.c           |  2 +-
 gio/gmenu.h           |  2 +-
 gio/gunixmounts.c     |  5 +++--
 6 files changed, 20 insertions(+), 19 deletions(-)

commit a12c277acb836591c1df625c25a6107756facce2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 01:59:37 2012 -0400

    Fix GRegex docs

 glib/gregex.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 6283f801b0eb1e189295a794f1a2945cb460f2a7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 01:58:44 2012 -0400

    Fix up g_tree_foreach docs

 glib/gtree.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d9f8381aa8f396fd27a5c8faaebb440982bc351c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 01:46:34 2012 -0400

    Fix up docs for GDuplicateFunc

 glib/gdataset.c | 1 +
 glib/gdataset.h | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

commit cc2b1839f59f9b0da3b5a4887fa10f1012968845
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 23 01:18:53 2012 -0400

    Updates

 NEWS | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 1820aa55ab1d4a46cced484e57816b5e7e56920c
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Sun Sep 23 02:27:03 2012 +0530

    Updated kn translation

 po/kn.po | 141
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 70 insertions(+), 71 deletions(-)

commit 814679b61e5c3a2a1e7c1e458ae1ef4c3c012c10
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Sat Sep 22 20:02:44 2012 +0300

    Updated Latvian translation

 po/lv.po | 139
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 72 insertions(+), 67 deletions(-)

commit 3e328a63b8516ae6e0b5dcd43f8dd645a6c37a28
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Sat Sep 22 16:44:50 2012 +0200

    [l10n]Updated Catalan (Valencian) translation

 po/ca@valencia.po | 1211
 ++++++++++++++++++++++++++++++-----------------------
 1 file changed, 694 insertions(+), 517 deletions(-)

commit 378be2a14106f75ad0a0291099dcdc512a322f45
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sat Sep 22 16:44:39 2012 +0200

    [l10n] Updated Catalan translation

 po/ca.po | 1707
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 949 insertions(+), 758 deletions(-)

commit 0d2383999da05444bf55faad56223de3e8f1b236
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Sep 22 15:24:19 2012 +0300

    Updated Hebrew translation.

 po/he.po | 121
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 63 insertions(+), 58 deletions(-)

commit 8a08fde54b70d96b31841382c857b44a6fb6bf9c
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Sat Sep 22 13:00:25 2012 +0300

    Updated Bulgarian translation

 po/bg.po | 989
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 511 insertions(+), 478 deletions(-)

commit 5b8b7419a8f79ab351c67f65523998e21cdff491
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Sat Sep 22 00:21:21 2012 +0530

    Updated kn translation

 po/kn.po | 1723
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 963 insertions(+), 760 deletions(-)

commit 65e2a235af87c59cbfd13707086bc044ff167da1
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Fri Sep 21 15:41:12 2012 -0300

    Updated Brazilian Portuguese Translation

 po/pt_BR.po | 58
 ++++++++++++++++++++++++++++------------------------------
 1 file changed, 28 insertions(+), 30 deletions(-)

commit af3557a74c29c5a8b5d0e0d2a122a8212633f634
Author: Krishnababu Krothapalli <kkrothap@redhat.com>
Date:   Thu Sep 20 16:14:21 2012 +0530

    Updated Telugu Translations

 po/te.po | 734
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 374 insertions(+), 360 deletions(-)

commit 3dd65859a7610b6adfd247c9c6828ed6c614e97f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Sep 18 17:05:49 2012 +0800

    gio: Fix build on Windows

    The newly-introduced functions, g_content_type_get_symbolic_icon() and
    g_content_type_get_generic_icon_name() don't seem to be for Windows,
    at
    least for now.  So filter them out from gio.symbols on Windows.

    Also, glocalfileinfo.c calls g_content_type_get_symbolic_icon() in
    get_icon(), so only build that code when on Unix, for the time being.

    https://bugzilla.gnome.org/show_bug.cgi?id=684278

 gio/gio.symbols      | 2 ++
 gio/glocalfileinfo.c | 2 ++
 2 files changed, 4 insertions(+)

commit 18143b7aef8b105a75ec6ad695f50895353dd0f6
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Wed Sep 19 02:27:16 2012 +0200

    Updated Galician translations

 po/gl.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 01d10600ed14f734d1b0ef8e42eb3f32dd880fee
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Tue Sep 18 18:35:04 2012 +0100

    Updated British English translation

 po/en_GB.po | 73
 +++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 39 insertions(+), 34 deletions(-)

commit 3d6c6ff6af46edc6c45ca25f8e6887f3ef14809a
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Sep 18 16:35:15 2012 +0200

    Updated Spanish translation

 po/es.po | 171
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 88 insertions(+), 83 deletions(-)

commit ce3dddb62200fdcc97cc0aa4ec47400e94d99d36
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 18 10:14:35 2012 -0400

    GApplication: document differences from libunique

    People implementing GApplication often waste a lot of time by
    trying to
    use it as if it were libunique.  Add a note to the docs about the
    difference.

 gio/gapplication.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 2cffb96088918f1d955fa20399b1819322635511
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 18 08:38:04 2012 -0400

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f6463bf095f455426c2e384f8033ba7cbf25a033
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Tue Sep 18 13:13:52 2012 +0530

    Updated Marathi Translations

 po/mr.po | 75
 ++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 40 insertions(+), 35 deletions(-)

commit a336201bf4c5f8b65c4c10261c3b9ee1a9748dfc
Author: Rajesh Ranjan <rranjan@redhat.com>
Date:   Tue Sep 18 13:11:18 2012 +0530

    hindi update

 po/hi.po | 1575
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 894 insertions(+), 681 deletions(-)

commit b004390600189e9b21db2e3ce536b692c224b1aa
Author: Rafael Ferreira <rafael.f.f1@gmail.com>
Date:   Mon Sep 17 23:35:57 2012 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 1466
 +++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 816 insertions(+), 650 deletions(-)

commit b28911499102ec1ca3f6f7f0b31585271634dc5a
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Tue Sep 18 01:21:04 2012 +0200

    Updated Hungarian translation

 po/hu.po | 1667
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 904 insertions(+), 763 deletions(-)

commit a47761a36e0b23b11e4aa991948da17e4f6b17b0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 17 17:53:58 2012 -0400

    GLib 2.33.14

 NEWS         | 57
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 58 insertions(+), 1 deletion(-)

commit c4a20dd6c767b0f91ab1e0a87e3570dbb2ccd47f
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Mon Sep 17 20:29:36 2012 +0400

    Updated Russian translation

 po/ru.po | 115
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 62 insertions(+), 53 deletions(-)

commit db2210203883544d38fb93e80ebf4cccaa2c26a9
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Thu Sep 13 12:13:36 2012 +0200

    gresource tests: fix VPATH builds emitting errors during dependency
    generation

    Adding the --sourcedir option fixes these:
    /path/to/src/gio/tests/test2.gresource.xml: Error on line 5 char 1:
    Failed to locate 'test1.txt' in current directory.
    /path/to/src/gio/tests/test3.gresource.xml: Error on line 5 char 1:
    Failed to locate 'test1.txt' in current directory.
    /path/to/src/gio/tests/test4.gresource.xml: Error on line 5 char 1:
    Failed to locate 'test1.txt' in current directory.
    /path/to/src/gio/tests/test.gresource.xml: Error on line 5 char 1:
    Failed to locate 'test1.txt' in current directory.

 gio/tests/Makefile.am | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 2edbee58f613abfb6ef2bb47529dca178924067d
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Sep 16 23:11:25 2012 +0300

    Updated Lithuanian translation

 po/lt.po | 211
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 108 insertions(+), 103 deletions(-)

commit 1b4e2169ec581378029d357916fe77b4f7173a10
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sun Sep 16 12:20:45 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 74
 +++++++++++++++++++++++++++++++++----------------------------
 po/zh_TW.po | 74
 +++++++++++++++++++++++++++++++++----------------------------
 2 files changed, 80 insertions(+), 68 deletions(-)

commit 262d7cbc7a282850949c117b433e0a1a4a59b9ab
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sun Sep 16 02:09:14 2012 +0200

    Updated Danish translation

 po/da.po | 1589
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 884 insertions(+), 705 deletions(-)

commit b726ec71811c05b55a64e3677ab4dd3d18767fd4
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Sep 15 20:49:54 2012 +0200

    Updated Slovenian translation

 po/sl.po | 123
 ++++++++++++++++++++++++---------------------------------------
 1 file changed, 46 insertions(+), 77 deletions(-)

commit d0b695e2370c440b61503bfc87e513b40195084e
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Sat Sep 15 19:29:25 2012 +0100

    Updated Portuguese translation

 po/pt.po | 73
 ++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 39 insertions(+), 34 deletions(-)

commit ac7dcd810b65054e2796e8581eb7073a2b5d73dd
Author: Seong-ho Cho <darkcircle.0426@gmail.com>
Date:   Sat Sep 15 15:06:39 2012 +0900

    Updated Korean translation

 po/ko.po | 1876
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1011 insertions(+), 865 deletions(-)

commit 87eceb200107ea5437c3a1e5a808c16887ba20e2
Author: Andika Triwidada <andika@gmail.com>
Date:   Sat Sep 15 11:51:46 2012 +0700

    Updated Indonesian translation

 po/id.po | 80
 ++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 43 insertions(+), 37 deletions(-)

commit d2526f509dbbfdcd1e12b0526ab15f235a373436
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Sep 15 01:43:08 2012 +0200

    Updated Galician translations

 po/gl.po | 114
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 58 insertions(+), 56 deletions(-)

commit 80105f173a45690c2332fa64c35b06874ef177d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 14 19:40:24 2012 -0400

    Fix the doc build

 docs/reference/glib/Makefile.am     | 1 +
 docs/reference/glib/programming.xml | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit e21847d9bbdabe8e494360a3181ca58c25bf9261
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Fri Sep 14 19:50:21 2012 +0300

    Updated Greek translation

 po/el.po | 107
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 56 insertions(+), 51 deletions(-)

commit 552d6b4db29ca2b0e3decdd02a7fbe7dd6c64e5e
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Fri Sep 14 13:26:34 2012 +0300

    Updated Belarusian translation.

 po/be.po | 77
 +++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 42 insertions(+), 35 deletions(-)

commit 2e01c0da3ce20eaedd661cdb730a2bd3e6cc3fbe
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Fri Sep 14 09:44:48 2012 +0200

    Update French translation

 po/fr.po | 75
 +++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 41 insertions(+), 34 deletions(-)

commit 7c6ce77dd3bc0ffa4ee7a0d532ba4bffcc812ad2
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Fri Sep 14 09:23:53 2012 +0200

    Updated Serbian translation

 po/sr.po       | 75
 +++++++++++++++++++++++++++++++---------------------------
 po/sr@latin.po | 75
 +++++++++++++++++++++++++++++++---------------------------
 2 files changed, 80 insertions(+), 70 deletions(-)

commit 25e304724125ff4b2fcc29c9a0ee40688620b3f9
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Fri Sep 14 11:53:11 2012 +0530

    Assamese translation updated

 po/as.po | 75
 ++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 40 insertions(+), 35 deletions(-)

commit d47e83676a9c2fb63fd66ca5998902b98469b91f
Author: A S Alam <aalam@users.sf.net>
Date:   Fri Sep 14 07:30:04 2012 +0530

    update Punjabi Translation

 po/pa.po | 774
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 373 insertions(+), 401 deletions(-)

commit 1a8f413555304d137f1fbb602fe1b912954c0c46
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Sep 14 00:53:20 2012 +0200

    Updated Polish translation

 po/pl.po | 105
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 55 insertions(+), 50 deletions(-)

commit d6cbb29f598d677d5fc1c974cba6d9f646cff491
Author: Colin Walters <walters@verbum.org>
Date:   Wed Aug 22 14:26:11 2012 -0400

    CVE-2012-3524: Hardening for being run in a setuid environment

    Some programs attempt to use libglib (or even libgio) when setuid.
    For a long time, GTK+ simply aborted if launched in this
    configuration, but we never had a real policy for GLib.

    I'm not sure whether we should advertise such support.  However, given
    that there are real-world programs that do this currently, we can make
    them safer with not too much effort.

    Better to fix a problem caused by an interaction between two
    components in *both* places if possible.

    This patch adds a private function g_check_setuid() which is used to
    first ensure we don't run an external dbus-launch binary if
    DBUS_SESSION_BUS_ADDRESS isn't set.

    Second, we also ensure the local VFS is used in this case.  The
    gdaemonvfs extension point will end up talking to the session bus
    which is typically undesirable in a setuid context.

    Implementing g_check_setuid() is interesting - whether or not we're
    running in a privilege-escalated path is operating system specific.
    Note that GTK+'s code to check euid versus uid worked historically on
    Unix, more modern systems have filesystem capabilities and SELinux
    domain transitions, neither of which are captured by the uid
    comparison.

    On Linux/glibc, the way this works is that the kernel sets an
    AT_SECURE flag in the ELF auxiliary vector, and glibc looks for it on
    startup.  If found, then glibc sets a public-but-undocumented
    __libc_enable_secure variable which we can use.  Unfortunately, while
    it *previously* worked to check this variable, a combination of newer
    binutils and RPM break it:
    http://www.openwall.com/lists/owl-dev/2012/08/14/1

    So for now on Linux/glibc, we fall back to the historical Unix version
    until we get glibc fixed.

    On some BSD variants, there is a issetugid() function.  On other Unix
    variants, we fall back to what GTK+ has been doing.

    Reported-By: Sebastian Krahmer <krahmer@suse.de>
    Signed-off-by: Colin Walters <walters@verbum.org>

 configure.ac        | 15 ++++++++++++--
 gio/gdbusaddress.c  |  9 +++++++++
 gio/gvfs.c          |  3 +++
 glib/genviron.c     |  1 +
 glib/glib-private.c |  4 +++-
 glib/glib-private.h |  4 ++++
 glib/gutils.c       | 57
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 90 insertions(+), 3 deletions(-)

commit cc3238a9c9f11740cf78f2e7914c93eb8dc7c0e1
Author: William Jon McCann <jmccann@redhat.com>
Date:   Mon Sep 10 15:16:58 2012 -0400

    Add api to get the generic icon name for a mime type

    https://bugzilla.gnome.org/show_bug.cgi?id=683744

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gcontenttype.c                  | 71
 +++++++++++++++++++++++++++----------
 gio/gcontenttype.h                  |  3 ++
 gio/gio.symbols                     |  1 +
 4 files changed, 57 insertions(+), 19 deletions(-)

commit 8d362a14e423fa7293cc6abc58178db98c5427c1
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Thu Sep 13 11:05:59 2012 +0200

    Updated German translation

 po/de.po | 2484
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 1271 insertions(+), 1213 deletions(-)

commit c99acf51d0405500592c36b739faa6bfcdb8181a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Sep 13 10:13:04 2012 +0200

    Fix regression in g_shell_parse_argv()

    The commit in 6e4acf44b3a943906432a2bf55223ac107d8e0c2 broke
    the fallthrough case for '\\' when it changed the '#' case.

    This caused issues like this:
      https://bugzilla.gnome.org/show_bug.cgi?id=683821

    https://bugzilla.gnome.org/show_bug.cgi?id=562907

 glib/gshell.c      | 8 ++++----
 glib/tests/shell.c | 3 ++-
 2 files changed, 6 insertions(+), 5 deletions(-)

commit d6b9df69492deb7f35e5454668dd59ddd0999e2d
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Wed Sep 12 15:49:27 2012 +0530

    Updated Marathi Translations

 po/mr.po | 710
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 339 insertions(+), 371 deletions(-)

commit 47a3b76ac5d35abd9af49b1bcc12b2bf4d239ef7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 11 23:14:39 2012 -0400

    Move GIO-specific information to the GIO docs

 docs/reference/gio/overview.xml     | 105
 +++++++++++++++++++++++++++++++++---
 docs/reference/glib/programming.xml |  58 +-------------------
 2 files changed, 101 insertions(+), 62 deletions(-)

commit fc7dc331130a6c0c31fd29cc02fa508033cc9c74
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 11 22:41:18 2012 -0400

    Add a section about writing GLib applications

    For now, this includes some information about threads and security.

 docs/reference/glib/glib-docs.xml   |  11 +---
 docs/reference/glib/programming.xml | 121
 ++++++++++++++++++++++++++++++++++++
 2 files changed, 124 insertions(+), 8 deletions(-)

commit 6a50dc511ba994b49244b10f232ed1fcb6bfdccb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 11 20:22:26 2012 -0400

    Drop GVFS_INOTIFY_DIAG debug feature

    Just not a good idea to have this in production code.

 docs/reference/gio/overview.xml | 11 ------
 gio/inotify/Makefile.am         |  2 --
 gio/inotify/inotify-diag.c      | 74
 -----------------------------------------
 gio/inotify/inotify-diag.h      | 29 ----------------
 gio/inotify/inotify-helper.c    |  2 --
 5 files changed, 118 deletions(-)

commit 7a0c47843f9319fc247b911540c2f6ba6e0d7bab
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Tue Sep 11 18:55:26 2012 +0530

    Assamese translation updated

 po/as.po | 685
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 336 insertions(+), 349 deletions(-)

commit c9a3cd6d8b3a0ad35b289a862b23e14a9bc59ed5
Author: Thomas Bechtold <thomasbechtold@jpberlin.de>
Date:   Tue Sep 11 07:45:24 2012 +0200

    Fix gdbus connection annotations

    g_dbus_connection_call_with_unix_fd_list_sync () and
    g_dbus_connection_call_sync () should allow None for the
    bus_name parameter.

    https://bugzilla.gnome.org/show_bug.cgi?id=683771

    Signed-off-by: Richard Hughes <richard@hughsie.com>

 gio/gdbusconnection.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 3a7d89a4143c650bd56188ae154fa805462f5e89
Author: Claude Paroz <claude@2xlibre.net>
Date:   Mon Sep 10 11:01:39 2012 +0200

    Updated French translation by Alexandre Franke and Claude Paroz

 po/fr.po | 1466
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 790 insertions(+), 676 deletions(-)

commit 59ad2acfc548d216e17c76d68c504cfd7dabecea
Author: LRN <lrn1986@gmail.com>
Date:   Sun Sep 9 10:49:06 2012 -0400

    gwin32mount.c: Fix syntax error

    Signed-off-by: Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=683641

 gio/gwin32mount.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1a99d0eb997f33c7915779555af2f95b67a77943
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Sun Sep 9 01:30:24 2012 +0100

    Updated Portuguese translation

 po/pt.po | 651
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 330 insertions(+), 321 deletions(-)

commit a9720d149781aa6826eb14c7c5b7d409a5cd9237
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Sat Sep 8 20:40:24 2012 +0200

    Updated Slovenian translation

 po/sl.po | 1729
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 922 insertions(+), 807 deletions(-)

commit 73a100d2ef0c4bf4b201e04e31c90d35a8082a12
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 4 20:54:33 2012 -0400

    G_DEFINE_QUARK: fix up some implementation issues

    https://bugzilla.gnome.org/show_bug.cgi?id=683360

 glib/gquark.h | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

commit 986405c37adcfdfd6d6afd0138ccedf462d51cfd
Author: Marek Černocký <marek@manet.cz>
Date:   Sat Sep 8 11:17:27 2012 +0200

    Updated Czech translation

 po/cs.po | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit fcbc30451ea4e64e0dbe5f5ed356007d0ddbbff1
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Fri Sep 7 18:27:47 2012 +0300

    Updated Belarusian translation.

 po/be.po | 832
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 424 insertions(+), 408 deletions(-)

commit 0c582a0cfcbe39e2d604d11b9a32896999463bc7
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Sep 7 16:52:28 2012 +0300

    Updated Hebrew translation.

 po/he.po | 1047
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 529 insertions(+), 518 deletions(-)

commit e2ca8f1df1a3dd9c817f759925def39c777881e1
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Thu Sep 6 22:34:36 2012 +0200

    Updated Serbian translation

 po/sr.po       | 682
 ++++++++++++++++++++++++++++-----------------------------
 po/sr@latin.po | 682
 ++++++++++++++++++++++++++++-----------------------------
 2 files changed, 670 insertions(+), 694 deletions(-)

commit e6df67abe60654bc65317e05881be317ccbdc03b
Author: Colin Walters <walters@verbum.org>
Date:   Wed Sep 5 09:04:58 2012 -0400

    tests/gvariant: Fix test on big endian architectures

    We need to ensure we get the exact same byte-level GVariant, so
    byteswap on big endian architectures.

    https://bugzilla.gnome.org/show_bug.cgi?id=683384

 glib/tests/gvariant.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 02f143c2d9fa793f872df65441f86bc958d5c731
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Sep 3 21:43:50 2012 +0200

    Box GTimeZone to make it introspectable

    https://bugzilla.gnome.org/show_bug.cgi?id=683167

 docs/reference/gobject/gobject-sections.txt |  2 ++
 gobject/gboxed.c                            |  1 +
 gobject/glib-types.h                        | 10 ++++++++++
 gobject/gobject.symbols                     |  1 +
 4 files changed, 14 insertions(+)

commit f4980c6295c73aa218532cfb6de0e210eac9a3f3
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Wed Sep 5 13:13:54 2012 +0100

    Updated British English translation

 po/en_GB.po | 1490
 +++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 829 insertions(+), 661 deletions(-)

commit 54fa6a0bcfbb175ad30e6285d061336da60befcf
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Wed Sep 5 19:52:32 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 655
 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 655
 ++++++++++++++++++++++++++++++------------------------------
 2 files changed, 662 insertions(+), 648 deletions(-)

commit 9ecbb2dfd3bc022065689c40e6b2930765711bb3
Author: Dirgita <dirgitadevina@yahoo.co.id>
Date:   Tue Sep 4 19:47:46 2012 +0700

    Updated Indonesian translation

 po/id.po | 659
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 333 insertions(+), 326 deletions(-)

commit dad25c48190b3a2817b6586dba8c043f6d8354d5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 3 16:27:19 2012 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 626abfdc108154c3ae149e82580779669fb63881
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 3 15:14:18 2012 -0400

    2.33.10

 NEWS         | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 configure.ac |  2 +-
 2 files changed, 52 insertions(+), 2 deletions(-)

commit 5d915a4a779e566431d0f268b63904d82e62f5bd
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Sep 3 16:18:23 2012 +0200

    Revert "Updated Spanish translation"

    This reverts commit bc036bf9789556f37b2872baaee3c126af7e6e3f.

 po/es.po | 1571
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 791 insertions(+), 780 deletions(-)

commit bc036bf9789556f37b2872baaee3c126af7e6e3f
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Sep 3 16:15:35 2012 +0200

    Updated Spanish translation

 po/es.po | 1571
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 780 insertions(+), 791 deletions(-)

commit d68609f9fd22e0e498f13fc7340075022f94ed48
Author: Dan Winship <danw@gnome.org>
Date:   Mon Sep 3 10:06:13 2012 -0400

    Revert "xdgmime: plug a small leak"

    This reverts commit 4e7031f073db2df7297feab35c9d353b0b3977d8.

    The string actually does get freed somewhere else, at least in some
    cases. Can be looked at again later if this reintroduces a leak.

    https://bugzilla.gnome.org/show_bug.cgi?id=683270

 gio/xdgmime/xdgmime.c | 1 -
 1 file changed, 1 deletion(-)

commit 857ac29c1fd785626281709051e4b3850493418c
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Sep 3 16:06:57 2012 +0200

    Updated Spanish translation

 po/es.po | 731
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 356 insertions(+), 375 deletions(-)

commit 4d1b0d46dbf3f735a8808d66bc2d30baa9bd3947
Author: Dan Winship <danw@gnome.org>
Date:   Mon Sep 3 08:56:10 2012 -0400

    update .gitignore

 gobject/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit beb0f9c15058e2249ffed73747f11298e6949b84
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 24 20:43:54 2012 -0400

    gio/tests: fix leaks

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gio/tests/appinfo.c             |  2 ++
 gio/tests/contexts.c            | 13 ++++++++++++-
 gio/tests/converter-stream.c    |  1 +
 gio/tests/file.c                |  5 ++++-
 gio/tests/live-g-file.c         | 21 +++++++++++++++++----
 gio/tests/memory-input-stream.c |  3 +++
 gio/tests/mimeapps.c            |  1 +
 gio/tests/network-address.c     |  1 +
 gio/tests/network-monitor.c     | 26 +++++++++++++++++++++++++-
 gio/tests/proxy-test.c          | 36 +++++++++++++++++++++++++++---------
 gio/tests/unix-streams.c        |  1 +
 11 files changed, 94 insertions(+), 16 deletions(-)

commit 17bb9d542cea2eeb3cb54cb583f671cf5e005631
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 24 17:11:38 2012 -0400

    gio/tests/cancellable: fix to still work when running slowly

    The test was assuming that all cancelled ops would finish within a
    certain amount of time, but this often failed under valgrind. Instead,
    just run the loop until all of the ops have actually finished.

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gio/tests/cancellable.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 568f7377088ea7836217f0bec917cc77e1210742
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 24 17:11:17 2012 -0400

    gio/tests: port some stuff to g_test_expect_message()

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gio/tests/Makefile.am     |  2 +-
 gio/tests/actions.c       | 78
 +++++++++++++++++++----------------------------
 gio/tests/gdbus-message.c | 50 +++++++++++++++++-------------
 gio/tests/gsettings.c     | 52 +++++++++++++++----------------
 4 files changed, 85 insertions(+), 97 deletions(-)

commit 039ecf2bc613ea5687d1052a87c982163e506451
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 24 17:08:38 2012 -0400

    g_file_copy: plug a leak

    The fallback copy code was leaking the GFileInfo if it didn't have
    G_FILE_ATTRIBUTE_STANDARD_TYPE.

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gio/gfile.c | 1 +
 1 file changed, 1 insertion(+)

commit fa58cef826d8f3b6b3eb0cad230b0421ee35f8a2
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 24 17:06:46 2012 -0400

    GDesktopAppInfo: fix leaks

    g_desktop_app_info_ensure_saved() was leaking the file contents.

    _g_desktop_app_info_launch_uris_internal() was leaking the session bus
    on error.

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gio/gdesktopappinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 4e7031f073db2df7297feab35c9d353b0b3977d8
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 24 17:03:35 2012 -0400

    xdgmime: plug a small leak

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gio/xdgmime/xdgmime.c | 1 +
 1 file changed, 1 insertion(+)

commit 03be681e08dc9e706d2d22df01fd4edb004a7577
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 23 16:53:13 2012 -0400

    gobject/tests: plug leaks

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gobject/tests/signals.c     |  3 +++
 gobject/tests/threadtests.c | 13 ++++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

commit e0cba35d4116c61035a0cbb403d89a04bbdb8963
Author: Dan Winship <danw@gnome.org>
Date:   Mon Aug 27 07:45:08 2012 -0400

    gobject/tests: use g_test_expect_messages()

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 gobject/tests/Makefile.am       |  3 +++
 gobject/tests/ifaceproperties.c | 16 +++++++---------
 gobject/tests/param.c           | 15 +++++++--------
 3 files changed, 17 insertions(+), 17 deletions(-)

commit 7972485ca10ef7b45389832f3d8afcf1372c8991
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Mon Sep 3 10:16:21 2012 +0400

    Updated Russian translation

 po/ru.po | 1522
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 824 insertions(+), 698 deletions(-)

commit 7662dbe82b2a4010418586434756ad75169318b3
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Sep 3 01:20:56 2012 +0200

    Updated Polish translation

 po/pl.po | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit a30f6a6eb82e896d5b1dc0921d1d8256ed7ec546
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 29 00:01:15 2012 -0400

    Add new api to symbol lists and docs

    https://bugzilla.gnome.org/show_bug.cgi?id=682849

 docs/reference/glib/glib-sections.txt       | 3 +++
 docs/reference/gobject/gobject-sections.txt | 4 ++++
 glib/glib.symbols                           | 2 ++
 gobject/gobject.symbols                     | 4 ++++
 4 files changed, 13 insertions(+)

commit d80d70458ad1711f9c1935a58df3eb9e04853464
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 1 00:20:22 2012 -0400

    Add a threaded test for g_object_replace_data

    This is the threaded atomic add test from glib/tests/atomic.c,
    redone using qdata instead of an atomic int to store the values.

 gobject/tests/Makefile.am |  1 +
 gobject/tests/qdata.c     | 93
 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+)

commit 2fa77fb76c452755fe5f2a1ebe10f27583959250
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 28 23:56:01 2012 -0400

    Add some tests for new object data api

    These are non-threaded, but the do test dup and destroy somewhat.

    https://bugzilla.gnome.org/show_bug.cgi?id=682849

 gobject/tests/reference.c | 121
 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 121 insertions(+)

commit 1254ca716bf64ce97f6b47882493411883a41865
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 28 06:45:30 2012 -0400

    Add an atomic compare-and-exchange operation for object data

    This is useful when using object data in thread-safe libraries.

    https://bugzilla.gnome.org/show_bug.cgi?id=682849

 gobject/gobject.c | 175
 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 gobject/gobject.h |  30 ++++++++++
 2 files changed, 204 insertions(+), 1 deletion(-)

commit 06e3a1d71afb66d573b20f17a575c345fb4b697f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 28 06:44:00 2012 -0400

    Add compare-and exchange for data lists

    Also, make it possible to get a 'new ref' on a datalist member
    in a race-free way.
    This is useful when using object data in thread-safe libraries.

    https://bugzilla.gnome.org/show_bug.cgi?id=682849

 glib/gdataset.c | 223
 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 glib/gdataset.h |  17 ++++-
 2 files changed, 214 insertions(+), 26 deletions(-)

commit 18e49c30f02da6d0e10a4dc72760cf3f05303588
Author: Rūdolfs Mazurs <rudolfsm@src.gnome.org>
Date:   Sun Sep 2 16:02:50 2012 +0300

    Updated Latvian translation

 po/lv.po | 2467
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 1281 insertions(+), 1186 deletions(-)

commit b3beac08f592dcdf57181fcbdffd51fd8b9811f7
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Sep 2 15:39:16 2012 +0300

    Updated Lithuanian translation

 po/lt.po | 809
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 388 insertions(+), 421 deletions(-)

commit 2d85894bc5e45b2a50e5a5784a99e4c31beea7ec
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Sep 2 12:25:50 2012 +0200

    Fix gtk-doc for g_app_info_get_supported_types

 gio/gappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 724c8a18464cd3e2fb3547235cf1f82400bbf91e
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Fri Aug 31 11:41:53 2012 +0200

    gdbus-codegen: avoid error when wrong interface is provided to
    --annotate

    If the interface given cannot be matched, `iface_obj' was left
    uninitialized and
    the iface_obj == None check would end up crashing:

    Traceback (most recent call last):
      File "/usr/bin/gdbus-codegen", line 41, in <module>
        sys.exit(codegen_main.codegen_main())
      File "/usr/lib64/gdbus-2.0/codegen/codegen_main.py", line 175,
      in codegen_main
        apply_annotations(all_ifaces, opts.annotate)
      File "/usr/lib64/gdbus-2.0/codegen/codegen_main.py", line 146,
      in apply_annotations
        apply_annotation(iface_list, iface, None, None, None, None,
        key, value)
      File "/usr/lib64/gdbus-2.0/codegen/codegen_main.py", line 64,
      in apply_annotation
        if iface_obj == None:
    UnboundLocalError: local variable 'iface_obj' referenced before
    assignment

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683088

 gio/gdbus-2.0/codegen/codegen_main.py | 1 +
 1 file changed, 1 insertion(+)

commit c270b833a631ef5469d0dce787244ecf56386c5d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 31 23:22:16 2012 -0400

    Fix shell tests

 glib/tests/shell.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit e81ba25d396dd5596e242e22c06bbd71d9e17168
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat Sep 1 10:42:05 2012 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 643
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 326 insertions(+), 317 deletions(-)

commit e2596ba2432a6417df35faa4410f07698c4fbb8a
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Sep 1 13:17:05 2012 +0700

    Updated Vietnamese translation

 po/vi.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 22eaa16b7f9e7fc5c9eee4b58449fbc6639f6ece
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Sep 1 13:16:36 2012 +0700

    po/vi: import from Damned Lies

 po/vi.po | 630
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 302 insertions(+), 328 deletions(-)

commit aefcd5922fff0800460570c6521a7456778c93b4
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Aug 31 21:00:52 2012 +0200

    Updated Galician translations

 po/gl.po | 665
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 337 insertions(+), 328 deletions(-)

commit 55f7061097c3a7e6a381089dab65b9eed642408c
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Aug 20 06:02:31 2012 +0200

    Bump max time in test_method_calls_on_proxy() test

    On slower platforms, the overhead of the 240 D-BUS Sleep calls is
    larger than
    the current maximum of 6 seconds. A run on a Panda board sometimes
    fails with

      ERROR:/build/buildd/glib2.0-2.33.8/./gio/tests/gdbus-threading.c:409:test_method_calls_on_proxy:
      assertion failed (elapsed_msec < 6000): (7365 < 6000)

    Bump maximum time to 8 seconds to be more resilient to this.

    https://bugzilla.gnome.org/show_bug.cgi?id=682222

 gio/tests/gdbus-threading.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8297e8a3a0d63a69fd923219031438698a118759
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Fri Aug 31 11:08:42 2012 +0300

    Updated Greek translation

 po/el.po | 1946
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 1017 insertions(+), 929 deletions(-)

commit eec52a18c029fc4f494e92a59f3cd6665f0f1bbd
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Thu Aug 30 17:59:33 2012 +0200

    Updated Polish translation

 po/pl.po | 639
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 323 insertions(+), 316 deletions(-)

commit 40b4fae42e8c8ad306a1fab93a1e263354fef3d5
Author: William Jon McCann <jmccann@redhat.com>
Date:   Tue Aug 28 19:22:01 2012 -0400

    Add ability to get symbolic icon for content type

    https://bugzilla.gnome.org/show_bug.cgi?id=682101

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gcontenttype.c                  | 79
 ++++++++++++++++++++++++++++---------
 gio/gcontenttype.h                  |  1 +
 gio/gio.symbols                     |  1 +
 gio/glocalfileinfo.c                | 75
 ++++++++++++++++++++++-------------
 5 files changed, 110 insertions(+), 47 deletions(-)

commit a15a071f35f2743451aa98b2b069b7eca975c7ea
Author: William Jon McCann <jmccann@redhat.com>
Date:   Tue Aug 28 18:56:53 2012 -0400

    Add symbolic icon support to gfileinfo

    https://bugzilla.gnome.org/show_bug.cgi?id=682101

 docs/reference/gio/gio-sections.txt |  3 ++
 gio/gfileinfo-priv.h                |  1 +
 gio/gfileinfo.c                     | 58 ++++++++++++++++++++++
 gio/gfileinfo.h                     | 14 ++++++
 gio/gio.symbols                     |  2 +
 gio/glocalfileinfo.c                | 97
 +++++++++++++++++++++++++++++--------
 6 files changed, 154 insertions(+), 21 deletions(-)

commit a2dca48bf75efcc684cfc670b4552a2c5c77d1a2
Author: William Jon McCann <jmccann@redhat.com>
Date:   Tue Aug 28 15:37:43 2012 -0400

    Add symbolic icon support to drive, volume, and mount

    We need symbolic icon support for display in Nautilus.

    https://bugzilla.gnome.org/show_bug.cgi?id=682101

 docs/reference/gio/gio-sections.txt |  5 +++
 gio/gdrive.c                        | 30 ++++++++++++++++
 gio/gdrive.h                        |  4 +++
 gio/gio.symbols                     |  5 +++
 gio/gmount.c                        | 32 +++++++++++++++++
 gio/gmount.h                        |  3 ++
 gio/gunixmount.c                    | 12 +++++++
 gio/gunixmounts.c                   | 71
 +++++++++++++++++++++++++------------
 gio/gunixmounts.h                   |  4 +++
 gio/gunixvolume.c                   | 11 ++++++
 gio/gvolume.c                       | 32 +++++++++++++++++
 gio/gvolume.h                       |  3 ++
 gio/gwin32mount.c                   | 35 +++++++++++++-----
 13 files changed, 217 insertions(+), 30 deletions(-)

commit 88d181ef18b50018d4645870bc6d0a1283177f68
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Wed Aug 29 19:18:45 2012 +0200

    gdbus-tool: Check return value of strrchr()

    Fixes a crash when invoking gdbus like:

    $ gdbus emit --session -o / -s Foo

    https://bugzilla.gnome.org/show_bug.cgi?id=682965

 gio/gdbus-tool.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 5328f760ee80ced5dc44ed9c0e388ee00d7bf42d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Aug 30 17:14:13 2012 +0800

    Update gspawn-win*helper* Visual C++ projects

    Add GLIB_COMPILATION to the preprocessor definitions to fix the build.

 build/win32/vs10/gspawn-win32-helper-console.vcxproj | 8 ++++----
 build/win32/vs10/gspawn-win32-helper.vcxproj         | 8 ++++----
 build/win32/vs9/gspawn-win32-helper-console.vcproj   | 8 ++++----
 build/win32/vs9/gspawn-win32-helper.vcproj           | 8 ++++----
 4 files changed, 16 insertions(+), 16 deletions(-)

commit 6e4acf44b3a943906432a2bf55223ac107d8e0c2
Author: Dominique Leuenberger <dimstar@opensuse.org>
Date:   Fri Aug 17 11:10:41 2012 +0200

    gshell: Fix parsing of comments in command lines.

    Fixes bug 562907

 glib/gshell.c      | 18 ++++++++++++++++++
 glib/tests/shell.c |  2 ++
 2 files changed, 20 insertions(+)

commit 9bca5bb49f0fc0585335abf476b7082e654878b6
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Aug 29 14:46:11 2012 -0400

    appinfo: fix annotations for g_app_info_launch and
    g_app_info_launch_uris

    The files/uris parameters for these functions can be NULL, so we
    need an
    allow-none annotation here.

 gio/gappinfo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6e64ba58b90d1d834a6b5f61acec6755e4b80072
Author: Colin Walters <walters@verbum.org>
Date:   Mon Aug 27 18:30:06 2012 -0400

    Switch all open() calls to use g_open()

    Because it now handles EINTR.  And we should do so.  While most people
    use Linux, which tries very hard to avoid propagating EINTR back up
    into userspace, it can still happen.

    https://bugzilla.gnome.org/show_bug.cgi?id=682833

 gio/glocalfile.c          | 2 +-
 gio/glocalfileinfo.c      | 4 ++--
 gio/gresource-tool.c      | 3 ++-
 gio/tests/gdbus-peer.c    | 2 +-
 gio/tests/pollable.c      | 3 ++-
 glib/giounix.c            | 8 ++------
 glib/gtestutils.c         | 3 ++-
 glib/tests/mappedfile.c   | 5 +++--
 gobject/glib-genmarshal.c | 3 ++-
 9 files changed, 17 insertions(+), 16 deletions(-)

commit 2542b6f60492fadfb21f2c4a29976c3494c7e6c5
Author: Colin Walters <walters@verbum.org>
Date:   Mon Aug 27 18:22:26 2012 -0400

    xdgmime: Handle EINTR in open()

    https://bugzilla.gnome.org/show_bug.cgi?id=682833

 gio/xdgmime/xdgmimecache.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 62570a52b179fc521209444926d7945fc31210a4
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Aug 28 13:15:29 2012 -0400

    gio: don't quote quark names for G_DEFINE_QUARK

 gio/gioerror.c       | 2 +-
 gio/gresolver.c      | 2 +-
 gio/gresource.c      | 2 +-
 gio/gtlsconnection.c | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 4b602940e2c46d9f91acf91f67a6cd0b6ea05e13
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Aug 28 13:15:56 2012 -0400

    glib: don't quote quark names for G_DEFINE_QUARK

 glib/gbookmarkfile.c   | 2 +-
 glib/gconvert.c        | 2 +-
 glib/gfileutils.c      | 2 +-
 glib/giochannel.c      | 2 +-
 glib/gkeyfile.c        | 2 +-
 glib/glib-unix.c       | 2 +-
 glib/gmarkup.c         | 2 +-
 glib/goption.c         | 2 +-
 glib/gregex.c          | 2 +-
 glib/gshell.c          | 2 +-
 glib/gspawn-win32.c    | 4 ++--
 glib/gspawn.c          | 4 ++--
 glib/gthread.c         | 2 +-
 glib/gvariant-parser.c | 2 +-
 14 files changed, 16 insertions(+), 16 deletions(-)

commit daae12710a890b974e57cc806b275248760ce131
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Aug 28 13:14:35 2012 -0400

    gquark: clarify G_DEFINE_QUARK docs about the use of quotes

    Use the term "name" instead of "string" in the documentation, and
    add a
    note explaining double quotes shouldn't be used for the quark name.

 glib/gquark.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 369c7689c24154ac04ac1dd528f99164fafb0541
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 28 05:52:24 2012 -0400

    Add missing includes

 glib/gmarkup.c         | 1 +
 glib/gshell.c          | 1 +
 glib/gspawn-win32.c    | 1 +
 glib/gspawn.c          | 1 +
 glib/gvariant-parser.c | 1 +
 5 files changed, 5 insertions(+)

commit 60d2cb665ef4bc751b4a4a940ec2f336f57b5535
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 27 23:42:12 2012 -0400

    Use G_DEFINE_QUARK for quarks in GIO

 gio/gioerror.c       | 8 ++------
 gio/gresolver.c      | 7 +------
 gio/gresource.c      | 6 +-----
 gio/gtlsconnection.c | 7 +------
 4 files changed, 5 insertions(+), 23 deletions(-)

commit b7d1518ce9f337a7ede1a659de31ff81dafcbac5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 27 23:37:41 2012 -0400

    Fix a typo in a doc comment

 glib/gthread-posix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4f12f7c029d8a4e7eaca633cb7e71c82a08be28d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 27 23:36:42 2012 -0400

    Use G_DEFINE_QUARK for GLib's own quarks

    This commit just deals with glib/.
    gobject/ and gio/ will be handled in separate commits.

 glib/gbookmarkfile.c   | 10 +---------
 glib/gconvert.c        |  6 +-----
 glib/gfileutils.c      |  6 +-----
 glib/giochannel.c      |  7 ++-----
 glib/gkeyfile.c        |  7 +------
 glib/glib-unix.c       |  6 +-----
 glib/gmarkup.c         |  6 +-----
 glib/goption.c         |  7 +------
 glib/gregex.c          | 11 +----------
 glib/gshell.c          |  6 +-----
 glib/gspawn-win32.c    | 13 ++-----------
 glib/gspawn.c          | 13 ++-----------
 glib/gthread.c         |  6 +-----
 glib/gvariant-parser.c | 11 +----------
 14 files changed, 17 insertions(+), 98 deletions(-)

commit 702b44886572c657d552f3ec15e9794acd4265e5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 27 23:34:30 2012 -0400

    Add a G_DEFINE_QUARK macro

    https://bugzilla.gnome.org/show_bug.cgi?id=627240

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gquark.c                         | 12 ++++++++++++
 glib/gquark.h                         | 13 +++++++++++++
 3 files changed, 26 insertions(+)

commit a1ff18582da002c93150d48f70aeab8b340f73ff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 27 23:16:25 2012 -0400

    Put quarks in their own source file

    Just because I'm too lazy to grep every single time for the other
    source file in which the quark code is hiding.

 glib/Makefile.am |   1 +
 glib/gdataset.c  | 299 +----------------------------------------------
 glib/gquark.c    | 347
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 349 insertions(+), 298 deletions(-)

commit 030ebfb93b4c4c4525341ef81f9c548fcc6d8921
Author: Daiki Ueno <ueno@unixuser.org>
Date:   Fri Aug 24 15:43:02 2012 +0900

    gsettings-tool: make list-recursively really recurse

    https://bugzilla.gnome.org/show_bug.cgi?id=682586

 gio/gsettings-tool.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

commit a55298941072697324ac34990ebf455271f1b35b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 23:50:09 2012 -0400

    GFile: Cosmetic doc changes

 gio/gfile.c | 5031
 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 2589 insertions(+), 2442 deletions(-)

commit 0149f44f4a3c8874b8327eddcd58561f5707220a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 18:36:18 2012 -0400

    Fix the GDBusProxy async test

    Patch by Mike Gorse, bug
    https://bugzilla.gnome.org/show_bug.cgi?id=674805

 gio/tests/gdbus-proxy.c | 2 --
 1 file changed, 2 deletions(-)

commit 7e07ea8189547f7e044c418c914c4bc26f9cf6a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 18:35:56 2012 -0400

    Make async permission tests work

 gio/tests/permission.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

commit 375943ea215871c0fe6d1d02e970cb2d71c8445c
Author: Mike Gorse <mgorse@suse.com>
Date:   Thu Apr 26 16:06:34 2012 -0500

    Fix the gdbus-proxy async test

    The async test had several problems:
    - It created a proxy and did not launch a main loop, meaning that its
      callback would usually not get called, or, if it did get called, the
    test harness would have taken down the connection already, causing an
    assertion failure when the proxy had an error.
    - It was dependent on the proxy test to set up the server and
    would fail
      because some properties were modified by that test.

    https://bugzilla.gnome.org/show_bug.cgi?id=674805

 gio/tests/gdbus-proxy.c | 47
 +++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 41 insertions(+), 6 deletions(-)

commit ce976bcac7294e72b3e94dda17fe5dfb157770d4
Author: Colin Walters <walters@verbum.org>
Date:   Mon Aug 27 14:37:21 2012 -0400

    gstdio: Harden g_open() against EINTR

    Noticed by code inspection, when auditing some of my code for EINTR
    handling.

    https://bugzilla.gnome.org/show_bug.cgi?id=682819

 glib/gstdio.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit d54e10632a575963790d50661ae75692bb159b37
Author: Colin Walters <walters@verbum.org>
Date:   Wed Mar 28 13:53:37 2012 -0400

    gvariant: Add tests for exact SHA256 checksums

    I'd like to use GVariant as a data format in my userspace filesystem,
    and having the actual bits be stable means I can reliably compute
    cryptographic checksums.

    This updated patch removes vardict checks, because Ryan wants the
    flexibility to change them in the future.

    https://bugzilla.gnome.org/show_bug.cgi?id=673012

 glib/tests/gvariant.c | 74
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

commit 7936af693477f5b8dfeef4e0d90e6fa4531cf395
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 27 16:12:30 2012 -0400

    GVariantType: gut g_variant_type_check()

    This function is causing an insane amount of wasted time on some
    real-world profiles and it's pretty useless since we already have
    GVariantType (as a type different from a string) for the purpose of
    static type safety.

    Disable it for now.  We can possibly turn this back on again if
    we solve
    bug #544026.

    https://bugzilla.gnome.org/show_bug.cgi?id=679835

 glib/gvarianttype.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit b53e95f3eb98fc7ba1527e225c32bb4ee2892746
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Mon Aug 27 23:39:52 2012 +0530

    Implemented FUEL entries to Assamese translation

 po/as.po | 260
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 130 insertions(+), 130 deletions(-)

commit 1a2c5e155deacb7ebeb8d0ca2c800a97a90a7ab9
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 23 12:48:49 2012 -0400

    glib/tests: fix leaks

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 glib/tests/asyncqueue.c          |   4 +
 glib/tests/bookmarkfile.c        |   3 +-
 glib/tests/checksum.c            |  13 +-
 glib/tests/collate.c             |  15 +-
 glib/tests/cond.c                |   9 +
 glib/tests/convert.c             |   1 +
 glib/tests/dataset.c             |   2 +
 glib/tests/fileutils.c           |   2 +
 glib/tests/gwakeuptest.c         |   1 +
 glib/tests/mainloop.c            |  33 +-
 glib/tests/markup-parse.c        |   3 +-
 glib/tests/option-context.c      |   8 +-
 glib/tests/queue.c               |   6 +-
 glib/tests/regex.c               | 963
 ++++++++++++++++++++-------------------
 glib/tests/spawn-multithreaded.c |   7 +-
 glib/tests/spawn-singlethread.c  |   8 +-
 glib/tests/string.c              |   2 +
 glib/tests/timeout.c             |   6 +-
 glib/tests/unix.c                |   4 +-
 19 files changed, 596 insertions(+), 494 deletions(-)

commit 0c0cdfd9c4a9d57aae0fb50b5e18cab6ba9e1a76
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 23 12:29:36 2012 -0400

    gtestutils: add g_test_add_data_func_full()

    Like g_test_add_data_func(), but includes a GDestroyNotify for the
    test data.

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gtestutils.c                     | 28 ++++++++++++++++++++++++++++
 glib/gtestutils.h                     |  7 +++++++
 4 files changed, 37 insertions(+)

commit 242737822357c9a686df69bdb888b0d42caf1d5c
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 23 12:38:17 2012 -0400

    gmain: remove unix signal watch if its GSourceFunc returns FALSE

    g_unix_signal_watch_dispatch() was ignore the callback's return value.
    Fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 glib/gmain.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 99c7c951d99c180a5f5832d922b4f3f58380a1cd
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 23 12:35:20 2012 -0400

    gmain: don't leak child sources that are destroyed before their
    parents

    A parent source holds refs on its children, so if the child source is
    destroyed, we need to drop that ref. Fix, and reorganize to make this
    all more obvious.

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 glib/gmain.c | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

commit 48a9887eae1058b055994c832b26a8ab9876db57
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 23 12:33:43 2012 -0400

    gmain: free source_lists when freeing GMainContext

    If a context was freed with sources still attached, those sources
    correctly got destroyed, but the corresponding GSourceList structs
    were being leaked.

    https://bugzilla.gnome.org/show_bug.cgi?id=682560

 glib/gmain.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b901aaf6731d836b036aa1cee63087aa3fdc0768
Author: Dan Winship <danw@gnome.org>
Date:   Sun Aug 26 14:40:13 2012 -0400

    Update .gitignores

 gio/tests/.gitignore | 2 ++
 tests/.gitignore     | 1 +
 2 files changed, 3 insertions(+)

commit ac7c050d377f6815534074b855cdf74f02cf96b2
Author: Colin Walters <walters@verbum.org>
Date:   Sat Aug 25 17:13:43 2012 -0400

    docs: Ensure CLEANFILES is set before we use +=

    We need to be defensive about this in the case where gtk-doc.make is
    empty.

 docs/reference/gio/Makefile.am     | 1 +
 docs/reference/glib/Makefile.am    | 1 +
 docs/reference/gobject/Makefile.am | 1 +
 3 files changed, 3 insertions(+)

commit dbad8304ff123f7fe242bdd8a8cfcb7eef8afce6
Author: William Jon McCann <jmccann@redhat.com>
Date:   Fri Aug 24 13:32:25 2012 -0400

    Don't crash if set_app_info is called before adding metadata

    set_mime_type, set_is_private, add_group, set_groups, set_icon, etc
    all added metadata before using it. If set_app_info was called before
    any of those it would crash when trying to access the metadata.

 glib/gbookmarkfile.c | 3 +++
 1 file changed, 3 insertions(+)

commit dbf9f7a2882c240fe48ab441de7e015638686ccc
Author: OKANO Takayoshi <kano@na.rim.or.jp>
Date:   Thu Aug 23 19:15:09 2012 +0900

    [l10n] Update Japanese translation

 po/ja.po | 1174
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 680 insertions(+), 494 deletions(-)

commit 462c48acad4efe9db5afd3c7d8e3e0342a591bea
Author: A S Alam <aalam@users.sf.net>
Date:   Thu Aug 23 07:57:51 2012 +0530

    update Punjabi Translation

 po/pa.po | 1401
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 764 insertions(+), 637 deletions(-)

commit 12494f697ffd2117ec607d62a04c5a97e32e8482
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Aug 22 22:36:15 2012 +0200

    Updated Polish translation

 po/pl.po | 1039
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 585 insertions(+), 454 deletions(-)

commit 0b6fdff05cc10f5e639a39dd4b79e01a025ad2d5
Author: Colin Walters <walters@verbum.org>
Date:   Wed Aug 22 14:48:41 2012 -0400

    Fix regression when TMPDIR/TMP are unset

    We should just be returning /tmp as a default, not calling g_getenv
    ("/tmp") which makes no sense.

    https://bugzilla.gnome.org/show_bug.cgi?id=672329

 glib/gutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ad20e074c4aa6492c5334870515f48c3a23e051c
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Aug 22 10:29:16 2012 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 225
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 116 insertions(+), 109 deletions(-)

commit e77f3ea0d8194e421fc7dd18032622f8b8a85c2e
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Wed Aug 22 09:15:00 2012 +0700

    Updated Vietnamese translation

 po/vi.po | 90
 ++++++++++++++++++++++++++--------------------------------------
 1 file changed, 37 insertions(+), 53 deletions(-)

commit eab38232de82ae19cc3c12a67861e0f1d82191ca
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Wed Aug 22 08:51:44 2012 +0700

    po/vi: imported from Damned Lies

 po/vi.po | 952
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 543 insertions(+), 409 deletions(-)

commit 4a89e2ee7d7a46a52272a6b4197cb3af998d0a49
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Wed Aug 22 00:54:09 2012 +0100

    Updated Portuguese translation

 po/pt.po | 1260
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 715 insertions(+), 545 deletions(-)

commit 221bbd8d76670d00f7b574ac77ca49ef9a9fb4dd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 21 16:32:17 2012 -0400

    *bump*

    thanks rico :)

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a3655be2111ee38839fe2a1fd001923d1d4ad7be
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Aug 21 21:10:16 2012 +0200

    win32: fix tests/sources.c

    "make check" was failing on sys/resource.h not being available on
    win32. Seeing that this test just spews some numbers on stdout
    whithout really testing anything we can safely replace them with
    similar enough numbers by relying on g_get_monotonic_time ().

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682386

 tests/sources.c | 78
 +++++++++++++++++++++++++--------------------------------
 1 file changed, 34 insertions(+), 44 deletions(-)

commit 7518f7a674723ded4cbb32d780c594c5d515af70
Author: Stef Walter <stefw@gnome.org>
Date:   Tue Aug 21 13:26:27 2012 +0200

    Revert "gtlscertificate: Add certificate-bytes and private-key-bytes
    props"

     * In order to add contstruct properties to an abstract base
       calls, and retain ABI stability, the base class must add a
       default implementation of those properties.
     * We cannot add a default implementation of certificate-bytes
       or private-key-bytes since certificate and private-key properties
       are writable on construct-only.

    This reverts commit 541c985869fe9f2c0a858c0a91b4eb60f99d19f0.

    https://bugzilla.gnome.org/show_bug.cgi?id=682081

 gio/gdummytlsbackend.c      |  4 ---
 gio/gtlscertificate.c       | 59
 +++++++++------------------------------------
 gio/tests/gtesttlsbackend.c |  6 -----
 3 files changed, 11 insertions(+), 58 deletions(-)

commit a8c784df58b7af490d0b08e74bd6f1085da692df
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Aug 17 10:55:10 2012 +0200

    gdbus: Fix double free and use after free of object path

     * This occurs when the 'g-object-path' property is read
       on a GDBusObjectSkeleton

    https://bugzilla.gnome.org/show_bug.cgi?id=682075

 gio/gdbusobjectskeleton.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2222b657ded5b0c59999f63ff74534726235d7eb
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Tue Aug 21 19:16:27 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 81
 +++++++++++++++++++++++++++++--------------------------------
 po/zh_TW.po | 81
 +++++++++++++++++++++++++++++--------------------------------
 2 files changed, 78 insertions(+), 84 deletions(-)

commit 0d8a81b722e18092062f83b7fd8c0b3a5f4d613a
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Mon Aug 20 19:46:33 2012 +0200

    mount-op: use gint64 instead of guint64 for time_left and bytes_left

    Since those can be -1, they need to be signed.

    https://bugzilla.gnome.org/show_bug.cgi?id=682284

 gio/gmountoperation.c | 9 +++++----
 gio/gmountoperation.h | 4 ++--
 2 files changed, 7 insertions(+), 6 deletions(-)

commit ac8c13d25c86e62f04bbfb7ac21fc9fb6eb02337
Author: Andika Triwidada <andika@gmail.com>
Date:   Tue Aug 21 13:53:46 2012 +0700

    Updated Indonesian translation

 po/id.po | 90
 +++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 46 insertions(+), 44 deletions(-)

commit ed40bf6715763045457cd6123b3882222c818cde
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 20 18:32:25 2012 -0400

    NEWS, versions, etc.

 NEWS         | 58
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 59 insertions(+), 1 deletion(-)

commit 59394b3e1e3b3907b4dc18de4067e5476b4c1649
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 20 18:32:46 2012 -0400

    Revert the GMarkup attribute collect changes

    We need to have some more discussion on this topic.

    This reverts commits 86329ba44fc7662c0bad37955f0ec980a24be495 and
    8d40389d15544bdc612989157f80380badce52f7.

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 docs/reference/glib/glib-sections.txt |   1 -
 gio/gdbusintrospection.c              | 100 ++++++++--------
 glib/glib.symbols                     |   1 -
 glib/gmarkup.c                        | 218
 +++++++++++-----------------------
 glib/gmarkup.h                        |   9 --
 glib/tests/markup-collect.c           | 125 +++++++------------
 6 files changed, 165 insertions(+), 289 deletions(-)

commit 850680d751812e3d7fbc4052a8c56ad90e20a3fa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 20 17:57:13 2012 -0400

    gmarkup test: fix use of message expect API

 glib/tests/markup-collect.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 56210220a2c86b099ca7757b67a3ef7fb2366d3d
Author: Dan Winship <danw@gnome.org>
Date:   Mon Aug 20 17:26:45 2012 -0400

    tests/protocol: update the messages to reflect G_LOG_DOMAIN being
    set now

 glib/tests/protocol.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit d06c7a911ea28d9d8019b901f71bd12cfa2dd64d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 20 16:25:09 2012 -0400

    g_test_expect_message: add some g_return_if_fail

    NULL domain is not supported and some might expect this to work,
    so make
    sure they don't get the wrong idea...

 glib/gmessages.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 07fadc7932713145ec429394c9ebf2a87bd09b75
Author: Lars Uebernickel <lars.uebernickel@canonical.com>
Date:   Mon Aug 20 14:32:14 2012 +0200

    GMenuModel: add test for the new GMenuItem API

 gio/tests/gmenumodel.c | 68
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

commit 6798fcdd0f3c1b96c3c0e8561ea81e9a05f2005f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Aug 18 14:24:46 2012 -0400

    GMenuItem: add constructor to copy from model

    Add g_menu_item_new_from_model() for constructing a GMenuItem that
    is a
    copy of a menu item that's in a GMenuModel.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gmenu.c                         | 87
 +++++++++++++++++++++++++++++++++++++
 gio/gmenu.h                         |  4 ++
 4 files changed, 93 insertions(+)

commit 99478dd893fab44f3672cbacce3c87b6dec3bb58
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Aug 18 14:20:59 2012 -0400

    GMenuItem: add getter APIs

    GMenuItem has been write-only up to this point.  Add some APIs for
    reading back values as well.

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gio.symbols                     |   3 +
 gio/gmenu.c                         | 118
 ++++++++++++++++++++++++++++++++++++
 gio/gmenu.h                         |  13 ++++
 4 files changed, 137 insertions(+)

commit ad79b0f8efdb72e9c4b337dffa62521e7fa2a89a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Aug 18 14:14:21 2012 -0400

    GMenuModel: remove a type safety bug

    There was a /* XXX */ in the code here to do proper typechecking
    of the
    GVariant in the menu model when using
    g_menu_model_get_item_attribute().
    We have g_variant_check_format_string() now, so use it.

 gio/gmenumodel.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 34653169e5653b95d61c461f088e6016f042d08a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Aug 18 14:12:55 2012 -0400

    GVariant: add g_variant_check_format_string()

    For some time now people have been asking for a way to check for type
    compatibility between GVariant instances and format strings.
    There are
    several APIs inside of GLib itself that would benefit from this.

    This patch introduces a way to do that.

 docs/reference/glib/glib-sections.txt |   1 +
 glib/glib.symbols                     |   1 +
 glib/gvariant.c                       | 104
 ++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |   4 +-
 glib/tests/gvariant.c                 |  54 ++++++++++++++++++
 5 files changed, 163 insertions(+), 1 deletion(-)

commit 6a6b64ef4d9f2985eaf1cb727398019359b4b4f4
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Mon Aug 20 23:10:25 2012 +0300

    Updated Lithuanian translation

 po/lt.po | 1694
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 847 insertions(+), 847 deletions(-)

commit cc24dac3c8edbe2068ba15522bb5d937602082dc
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jul 30 16:38:30 2012 -0400

    glib/tests: use g_test_expect_message()

    Replace some tests that used to use g_test_trap_fork() with
    g_test_expect_message() instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=679556

 glib/tests/Makefile.am      |   1 +
 glib/tests/error.c          |  45 ++++++------
 glib/tests/gvariant.c       |  56 ++++++++-------
 glib/tests/mainloop.c       |  11 ++-
 glib/tests/markup-collect.c |  20 +++---
 glib/tests/strfuncs.c       | 163
 ++++++++++++++++++++++----------------------
 6 files changed, 159 insertions(+), 137 deletions(-)

commit 25ac137c0a47ccc5214dabeaa41da18dac2b0cee
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jul 30 16:05:08 2012 -0400

    gtestutils: add g_text_expect_message()

    Add g_test_expect_message() and g_test_assert_expected_messages(), to
    allow tests of warnings, error messages, return-if-fails, etc.

    https://bugzilla.gnome.org/show_bug.cgi?id=679556

 docs/reference/glib/glib-sections.txt |   4 +
 glib/glib.symbols                     |   2 +
 glib/gmessages.c                      | 466
 +++++++++++++++++++++-------------
 glib/gtestutils.h                     |  10 +
 glib/tests/testing.c                  |  86 +++++++
 5 files changed, 397 insertions(+), 171 deletions(-)

commit 78a8aecbb339f620e87711389f56308c219d443f
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jul 30 15:32:31 2012 -0400

    g_logv: only expand the message once

    Hoist the g_strdup_printf()'ing out of the loop, since the message is
    the same for every handler that gets called.

    https://bugzilla.gnome.org/show_bug.cgi?id=679556

 glib/gmessages.c | 60
 +++++++++++++++++++++++---------------------------------
 1 file changed, 24 insertions(+), 36 deletions(-)

commit f78931c4abf217fce0eca890da411c1c1c983d45
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 1 09:49:10 2012 -0400

    glib/tests/testing, logging: don't use g_test_undefined()

    We are verifying the behavior of the test/logging functions here; this
    is not undefined behavior.

    https://bugzilla.gnome.org/show_bug.cgi?id=679556

 glib/tests/logging.c | 54
 ++++++++++++++++++++--------------------------------
 glib/tests/testing.c | 32 ++++++++++---------------------
 2 files changed, 31 insertions(+), 55 deletions(-)

commit d9f6314f57cad9940938165421c1efc09636147b
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Tue Jul 3 02:04:08 2012 +0200

    win32: add pipe-io-cancel-test

    Test that win32 streams can be cancelled.
    It can even be tested with wine on Linux!

    https://bugzilla.gnome.org/show_bug.cgi?id=679288

 gio/tests/win32-streams.c | 56
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

commit b9b2cf6a666af907d775a871d76b5b6871b4a6bd
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Aug 8 01:02:40 2012 +0200

    win32: add pipe-io-concurrent

    Implement test case suggested by Ryan Lortie on bug:
    https://bugzilla.gnome.org/show_bug.cgi?id=679288

    "There is a potential race here that's really unlikely to happen, but
    here we go: We are trying to read from the same socket in two threads.
    Some data comes. That causes the poll() in both threads (above) to
    finish running. Then the cancellable is checked above. We now find
    ourselves here. Only one thread will read the data. The other will
    block on this function. Then the user may cancel the cancellable while
    we are blocked here, but we will stay blocked...."

 gio/tests/win32-streams.c | 98
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 98 insertions(+)

commit 1c1ba8b5122295651400eed3f3fb3b9f69f0ac47
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Mon Aug 20 15:47:15 2012 +0200

    win32: add pipe-io-overlap-test

 gio/tests/win32-streams.c | 92
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

commit b9d7b80897d79cb43c4a795c7d9d3d9a24e140cc
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Fri Jul 6 00:46:32 2012 +0200

    win32: make gio stream cancellable

    v2:
     - fix cancellation of concurrent readers
     - replace g_assert() usage with g_warn_if_fail()
    v3:
     - fix indentation
     - fix loop code to not leak (silly me)

    https://bugzilla.gnome.org/show_bug.cgi?id=679288

 gio/gasynchelper.c | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

commit 4b5d762d5d73af90de49801ecc1da52d4cd86d6f
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Aug 8 01:08:15 2012 +0200

    win32: handle ERROR_MORE_DATA

    If a named pipe is being read in message mode and the next message is
    longer than the nNumberOfBytesToRead parameter specifies, ReadFile
    returns FALSE and GetLastError returns ERROR_MORE_DATA.

    Since the API doesn't allow to return both a GError and the number of
    bytes read so far, it makes more sense to return nread, and let the
    client call GetLastError() himself to check if ERROR_MORE_DATA.

    The current alternative loses the nread information.

    https://bugzilla.gnome.org/show_bug.cgi?id=679288

 gio/gwin32inputstream.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 23d80a04da43c08f4ea626283607a7546d7a56db
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Mon Jul 2 21:45:41 2012 +0200

    win32: use overlapped events for streams

    Any file handle created with FLAG_OVERLAPPED must have
    ReadFile()/WriteFile() called with an OVERLAPPED structure.
    Failing to do so will give unspecified results, invalid read/write or
    corruption.

    Without FLAG_OVERLAPPED, it is not possible to read and write
    concurrently, even with two seperate threads, created by 2 input and
    output gio streams. Also, only with FLAG_OVERLAPPED may an IO
    operation be asynchronous and thus be cancellable.

    We may want to call ReOpenFile() to make sure the FLAG is set, but
    this API is only available since Vista+.

    According to MSDN doc, adding the OVERLAPPED argument for IO operation
    on handles without FLAG_OVERLAPPED is allowed, and indeed the existing
    test still passes.

    v2:
    - update GetLastError() after _g_win32_overlap_wait_result ()
    - split the unrelated ERROR_MORE_DATA handling

    https://bugzilla.gnome.org/show_bug.cgi?id=679288

 gio/gasynchelper.c       | 28 +++++++++++++++++++++++
 gio/gasynchelper.h       | 11 +++++++++
 gio/gwin32inputstream.c  | 58
 ++++++++++++++++++++++++++++++++++++------------
 gio/gwin32outputstream.c | 53 ++++++++++++++++++++++++++++++++-----------
 4 files changed, 123 insertions(+), 27 deletions(-)

commit 96a0c589eec8e66f0d879c2a0979df6fd2c23dde
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Mon Aug 20 16:41:42 2012 +0200

    gmem.c: array is only paritally filled by memcpy

    The size of the local_data arrray is too large. It should not be
    multiplied by the sizeof guint.

    The memcpy of profile_data to local_data later will only fill a part
    of the
    array.

    Spotted with the PVS-Studio static analyzer

    https://bugzilla.gnome.org/show_bug.cgi?id=681501

 glib/gmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 248cc2c8858a2c60b9aaaa7706ef3a7f5bce84cc
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Aug 20 14:15:39 2012 +0200

    Updated Spanish translation

 po/es.po | 348
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 190 insertions(+), 158 deletions(-)

commit cbf346ce53887e7e40f38c0945f94ff672fa114e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:27:04 2012 -0400

    Remove some more 'the the'

 gio/tests/gdbus-test-codegen.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit efd822bb07c50e68d3cbe4c7f7a3d816a0ab7808
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:26:42 2012 -0400

    Improve test coverage for GSocketConnection

 gio/tests/proxy-test.c | 5 +++++
 1 file changed, 5 insertions(+)

commit cc5d7ccdba6e46548a1e895db1d8dab3409278b8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:26:05 2012 -0400

    Improve test coverage for unix socket addresses

 gio/tests/unix-fd.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 63eaeb223b9b773e055acc1a8fc7637e4a676b82
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:25:37 2012 -0400

    Improve test coverage for resources

 gio/tests/resources.c | 61
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

commit beea8c5c847a7bf46ae77d834ed7cc3fb6822c5c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:25:21 2012 -0400

    Improve test coverage for filter streams

 gio/tests/filter-streams.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

commit b22f4a2dd2c05038f45485b850f3ba04bf28afb9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:25:02 2012 -0400

    Improve test coverage for unix streams

 gio/tests/unix-streams.c | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit 3afec2b87282b25233add6bcdfb9af4657f40ddd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:24:44 2012 -0400

    Improve test coverage for pollable streams

 gio/tests/pollable.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit eeb4951c47d6a869d50590a9a81afbb99f63b5f3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:24:04 2012 -0400

    Improve GSettings test coverage

 gio/tests/gsettings.c              | 81
 +++++++++++++++++++++++++++++++++++++-
 gio/tests/org.gtk.test.gschema.xml |  3 ++
 2 files changed, 83 insertions(+), 1 deletion(-)

commit f89e9deaec3bf279eac5073a30d6d3d7b2a1568b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:23:32 2012 -0400

    Improve GAppInfo test coverage

 gio/tests/appinfo-test.desktop |  8 ++++--
 gio/tests/appinfo.c            | 60
 +++++++++++++++++++++++++++++++++++++++++-
 gio/tests/mimeapps.c           | 21 ++++++++++++---
 3 files changed, 83 insertions(+), 6 deletions(-)

commit 35bf77445bcce900fa6007290ac8226107763b94
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:22:59 2012 -0400

    Add some GInetAddress tests

 gio/tests/Makefile.am    |   4 +
 gio/tests/inet-address.c | 365
 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 369 insertions(+)

commit 867ad1cebc002d881e9e113277e8ea2e03cdaaf1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:22:33 2012 -0400

    Add some GPermission tests

 gio/tests/Makefile.am  |   4 ++
 gio/tests/permission.c | 106
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 110 insertions(+)

commit 2687d921e15e4aead3af4867fcd6220088085d7a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:21:02 2012 -0400

    Cosmetic change

    gtk-doc doesn't need <!-- --> anymore to recognize plural
    forms of links.

 gio/gpollableinputstream.c  | 2 +-
 gio/gpollableoutputstream.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 4dbcd27eeea8181810c8ddefd116ce474bea8496
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 19 02:19:27 2012 -0400

    Make GPermission more forgiving

    It is not great if calling g_permission_acquire on a simple
    permission object just segfaults. This commit arranges for
    this to return a G_IO_ERROR_NOT_SUPPORTED error.

 gio/gpermission.c | 53
 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 50 insertions(+), 3 deletions(-)

commit 4a8740d0d23077cf9be99dfd3cf583ba33595279
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 23:17:47 2012 -0400

    It is 'registered', not 'registred'

 gio/gresource.c  | 12 ++++++------
 gobject/gparam.c |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit e27367f341e56bd951ea4b6fb42ef23cd0598c65
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 23:15:58 2012 -0400

    Exterminate 'the the'

 gio/gdbusprivate.c    |  2 +-
 gio/gioenums.h        |  2 +-
 gio/gproxyaddress.c   |  2 +-
 gio/gzlibcompressor.c |  2 +-
 glib/gmain.c          | 14 +++++++-------
 glib/gmarkup.c        |  2 +-
 glib/gspawn.h         |  2 +-
 gobject/gvalue.h      |  6 +++---
 8 files changed, 16 insertions(+), 16 deletions(-)

commit 96ed9e41f436412dbc0628cf45ecd460e9823089
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:42:10 2012 -0400

    Improve utils test coverage

 glib/tests/utils.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

commit cb8f88ca9fc87a65c7df69164e0ea8a905fc224b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:41:48 2012 -0400

    Improve uri test coverage

 glib/tests/uri.c | 3 +++
 1 file changed, 3 insertions(+)

commit 2c338e21d6f86bad96283d5388991dc4c4b34361
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:41:35 2012 -0400

    Improve strfuncs tests coverage

 glib/tests/strfuncs.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 58c7747c50c98331769bc4d68f341652c42063c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:41:23 2012 -0400

    Improve GRegex test coverage

 glib/tests/regex.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit a7e10fa0b6c1772b8be49f17bb3e1eeb3477c26c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:41:07 2012 -0400

    Improve GPrivate test coverage

 glib/tests/private.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit aad40b89fe0539eede3a66e2fe2fc8b9c8f5c420
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:40:33 2012 -0400

    Improve file utils test coverage

 glib/tests/fileutils.c | 149
 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 148 insertions(+), 1 deletion(-)

commit 6e1d205ad30e9a3c031d0660f909dbed8665dee4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:40:15 2012 -0400

    Improve GError test coverage

 glib/tests/error.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit e181234fe5bbf80be3973d4803bce68887a771c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:39:52 2012 -0400

    Improve atomic ops test coverage

 glib/tests/atomic.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 06d837b6a3ac59f8e997d9f745136d48b85ecb38
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:39:28 2012 -0400

    Improve array test coverage

 glib/tests/array-test.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 373dcaea567281b977e76d812a73d2ee201d2745
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 18 14:38:53 2012 -0400

    Improve threadpool test coverage

 tests/threadpool-test.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit a946892b1e80aabcf33eb9783ce1cacaf6162e97
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Aug 17 23:17:51 2012 +0200

    Updated Galician translations

 po/gl.po | 550
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 276 insertions(+), 274 deletions(-)

commit 2360d04e50d744a6db42a0a24418ecd272b45a8e
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Thu Aug 16 22:06:45 2012 -0400

    Fix problems with CLEANFILES and automake-1.11.1

    Running with automake-1.11.1, a couple fixes are needed
    for CLEANFILES when gtk-doc is not installed.

    (Found with Amazon Linux AMI release 2012.03)

    https://bugzilla.gnome.org/show_bug.cgi?id=682067

 autogen.sh       | 5 ++++-
 glib/Makefile.am | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

commit fdcdcf4f2f7a382d8b8d00842524bbd9aa82d3e0
Author: Krishnababu Krothapalli <kkrothap@redhat.com>
Date:   Fri Aug 17 19:43:40 2012 +0530

    Updated Telugu Translations

 po/te.po | 104
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 47 insertions(+), 57 deletions(-)

commit a53ccea814fa052a7d2aaa543cf2483b4f455cb4
Author: Krishnababu Krothapalli <kkrothap@redhat.com>
Date:   Fri Aug 17 19:22:00 2012 +0530

    Updated Telugu Translations

 po/te.po | 1077
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 628 insertions(+), 449 deletions(-)

commit 2954f70d39198e67ff6a364a4f5c275381af1a75
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Aug 17 19:22:43 2012 +0800

    Fix build on Visual C++

    -glib/gmarkup.c: Use G_VA_COPY() instead of va_copy() as va_copy()
    may not
     be universally available.
    -gio/gtestdbus.c: Include io.h on Windows for close()

 gio/gtestdbus.c | 3 +++
 glib/gmarkup.c  | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit 69124b2dc4587f9c978648e38c548c50352ef930
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Fri Aug 17 12:59:44 2012 +0200

    Updated Serbian translation

 po/sr.po       | 253
 +++++++++++++++++++++++++++++++--------------------------
 po/sr@latin.po | 253
 +++++++++++++++++++++++++++++++--------------------------
 2 files changed, 278 insertions(+), 228 deletions(-)

commit f116437c7e73035a72ce45cb47c4518df604711a
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Fri Aug 17 14:22:32 2012 +0530

    Assamese translation updated

 po/as.po | 318
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 171 insertions(+), 147 deletions(-)

commit 56e9f896c691cb99ebd4f4d20a507760c0f445fa
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Fri Aug 17 12:24:15 2012 +0530

    Updated Marathi Translations

 po/mr.po | 1372
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 780 insertions(+), 592 deletions(-)

commit 86a4fd6fa98de29f7ee05ba655a00e4c42f11756
Author: David King <amigadave@amigadave.com>
Date:   Fri Feb 17 11:15:08 2012 +0000

    docs: Describe GCompletion item memory management

    https://bugzilla.gnome.org/show_bug.cgi?id=600751

 glib/deprecated/gcompletion.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit b13a79aeb45e0630482202372e136ea264a24e5f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 17 01:14:51 2012 -0400

    Adapt schema tests to changed error messages

 gio/tests/gschema-compile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 056d39c9f7e058397beaed7b4f5637857510b4e2
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 29 18:54:58 2012 -0400

    GMappedFile: Add g_mapped_file_get_bytes()

    This is yet another API that has a data/length/refcount combination
    that one might often want to turn into a GBytes.

    https://bugzilla.gnome.org/show_bug.cgi?id=677065

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gmappedfile.c                    | 24 ++++++++++++++++++++++++
 glib/gmappedfile.h                    |  2 ++
 glib/tests/mappedfile.c               | 19 +++++++++++++++++++
 5 files changed, 47 insertions(+)

commit b0d8498ee31ab9e3a0ad4c747d1816dd6d4758f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 17 00:27:10 2012 -0400

    GDateTime: pack the struct better

    Makes a difference in 32bit.

 glib/gdatetime.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 86329ba44fc7662c0bad37955f0ec980a24be495
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 23:41:19 2012 -0400

    gdbus: Use g_markup_collect_known_attributes() in GDBus introspection

    In order to be able to cope with the introspection XML
    from the Telepathy specification, which uses attributes
    like tp:type and tp:name-for-bindings, we need to ignore
    unknown attributes when parsing.
    Closes: https://bugzilla.gnome.org/show_bug.cgi?id=665634

 gio/gdbusintrospection.c | 100
 ++++++++++++++++++++++-------------------------
 1 file changed, 47 insertions(+), 53 deletions(-)

commit 8d40389d15544bdc612989157f80380badce52f7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 23:40:08 2012 -0400

    gmarkup: Add g_markup_collect_known_attributes()

    Add a variant of g_markup_collect_attributes() which will
    ignore unknown attributes (such as those from different XML
    namespaces) when parsing markup, rather than returning
    G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE as g_markup_collect_attributes()
    does.

    Patch by Philip Withnall,
    https://bugzilla.gnome.org/show_bug.cgi?id=665634

 docs/reference/glib/glib-sections.txt |   1 +
 glib/glib.symbols                     |   1 +
 glib/gmarkup.c                        | 218
 +++++++++++++++++++++++-----------
 glib/gmarkup.h                        |   9 ++
 glib/tests/markup-collect.c           | 125 ++++++++++++-------
 5 files changed, 242 insertions(+), 112 deletions(-)

commit 21aff13d22257ae786bbf39bd68f24f448205bfc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 23:23:16 2012 -0400

    Fix 'make report'

    Turns out this doesn't work unless every Makefile.am includes
    Makefile.decl.

 gio/gdbus-2.0/codegen/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 6bee6dbce53310935dce7cb1de73e0b0be36f988
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 23:02:41 2012 -0400

    Miscellaneous string fixes

    Typo and punctuation fixes, and some rewording, based
    on a patch by Philip Withnall, bug
    https://bugzilla.gnome.org/review?bug=628193

 gio/gdbusaddress.c          |  4 ++--
 gio/gdbusmethodinvocation.c |  4 ++--
 gio/gicon.c                 |  2 +-
 gio/glib-compile-schemas.c  | 12 ++++++------
 gio/gsocket.c               |  6 +++---
 gio/gsocketclient.c         |  4 ++--
 gio/gsocks5proxy.c          |  4 ++--
 glib/gregex.c               |  2 +-
 8 files changed, 19 insertions(+), 19 deletions(-)

commit e4dc223e9d1778f21c8267171dd6562ba82634c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 22:47:43 2012 -0400

    Make capitalisation of "UNIX" consistent in translatable strings

    Based on a patch by Philip Withnall, bug
    https://bugzilla.gnome.org/review?bug=628193

 gio/gunixsocketaddress.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 191f09b04409202fc88fc88f5e05c16d4cdfa86c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 22:23:20 2012 -0400

    Change "dash" to "hyphen" in translatable strings

    GSchemas use hyphens, not dashes.
    Patch by Philip Withnall, bug
    https://bugzilla.gnome.org/review?bug=628193

 gio/glib-compile-schemas.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 4e55bebb7aaaf2bdd635db691ad6524dd9e893f8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 22:17:46 2012 -0400

    Fix leak in GWinHttpVfs

    Patch by Ole André Vadla Ravnås, bug
    https://bugzilla.gnome.org/show_bug.cgi?id=627423

 gio/win32/gwinhttpvfs.c | 2 ++
 1 file changed, 2 insertions(+)

commit 6ef1e56479db644cff6717a838a8e63a54ce54da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 22:15:54 2012 -0400

    Fix leak in GFileAttributeInfoList

    Patch by Ole André Vadla Ravnås, bug
    https://bugzilla.gnome.org/show_bug.cgi?id=627423

 gio/gfileattribute.c | 1 +
 1 file changed, 1 insertion(+)

commit bf3262dd935ecbe72374311447de1f1c70a43fcc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 20:18:37 2012 -0400

    GTest: Improve --help output

    https://bugzilla.gnome.org/show_bug.cgi?id=550433

 glib/gtester.c    | 33 +++++++++++++++---------------
 glib/gtestutils.c | 61
 ++++++++++++++++++++++---------------------------------
 2 files changed, 41 insertions(+), 53 deletions(-)

commit 55ca95c2203cb483439aae9b1f282b93f32f621c
Author: David King <amigadave@amigadave.com>
Date:   Fri Feb 17 14:42:58 2012 +0000

    docs: Improve G_GNUC_* documentation

    Mention where the GCC attributes should be placed for functions and
    arguments. Add an example for G_GNUC_UNUSED.

    https://bugzilla.gnome.org/show_bug.cgi?id=326931

 glib/docs.c | 94
 ++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 77 insertions(+), 17 deletions(-)

commit 2ccf64ba59cfcc472a658b036b8a919aa081ea7f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 18:44:41 2012 -0400

    Improve glib-genmarshal man page

    Expand the example in glib-genmarshal.1 to include the actual
    commandline invocations, and update the generated function
    names to match reality.
    https://bugzilla.gnome.org/show_bug.cgi?id=637460

 docs/reference/gobject/glib-genmarshal.xml | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

commit aa50b8aec31df6951070ed9674ab3b14dc6d2759
Author: Colin Walters <walters@verbum.org>
Date:   Thu Aug 16 18:31:02 2012 -0400

    build: Fix the --disable-man case

    The manpage listing needs to be inside the conditional.

 docs/reference/gio/Makefile.am     | 8 +++++---
 docs/reference/glib/Makefile.am    | 8 +++++---
 docs/reference/gobject/Makefile.am | 7 +++++--
 3 files changed, 15 insertions(+), 8 deletions(-)

commit d7e1d51fc94b79dfa4243f3b9aa6eafbe169ed6f
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Tue Aug 14 12:57:43 2012 -0400

    Add tests for g_file_make_directory_with_parents()

    Add tests to catch recent regressions with
    g_file_make_directory_with_parents()

    https://bugzilla.gnome.org/show_bug.cgi?id=680823

 gio/tests/live-g-file.c | 93
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

commit f899358156a34d1b5258d1fcdeb289e7b2bbf233
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Tue Aug 14 11:25:56 2012 -0400

    g_file_make_directory_with_parents: clean up logic

    Simplify logic by only looking at whether we have a GError and
    not also using return codes.

    https://bugzilla.gnome.org/show_bug.cgi?id=680823

 gio/gfile.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

commit 5291190f46614c9e1491599af345f9c41c74967e
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Tue Aug 14 11:20:16 2012 -0400

    g_file_make_directory_with_parents(): fix a corner case

    If g_file_get_parent() unexpectedly failed, we could return
    FALSE but with no error.

    https://bugzilla.gnome.org/show_bug.cgi?id=680823

 gio/gfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 732470a3594351ffc3d085a755271844c462e9c8
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Tue Aug 14 11:00:14 2012 -0400

    g_file_make_directory_with_parents: refix error propagation

    The patch from b0bce4ad triggered segfaults - see:

     http://redmine.yorba.org/issues/5656

    We were clearing the error before dereferencing it in the next
    go-around of the while loop - this wasn't necessary.

    https://bugzilla.gnome.org/show_bug.cgi?id=680823

 gio/gfile.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit b60168a5f5b4bcfa8f8ed175cd18a0cfaea96063
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 8 10:01:47 2012 -0400

    Remove man page placeholder generation

    I don't see a good reason for this - if man page generation is
    disabled, man pages are not produced, and things like 'make dist'
    will fail. That is simpler and better.

    https://bugzilla.gnome.org/show_bug.cgi?id=681336

 docs/reference/gio/Makefile.am     | 15 +--------------
 docs/reference/glib/Makefile.am    | 15 +--------------
 docs/reference/gobject/Makefile.am | 15 +--------------
 3 files changed, 3 insertions(+), 42 deletions(-)

commit 4cd5a63f12357b6ed6314cfed237965dba0aaeae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 8 09:57:48 2012 -0400

    Clean up man pages on 'clean'

    Follow the automake heuristic that says "if 'make' created it,
    'make clean' should remove it".

    https://bugzilla.gnome.org/show_bug.cgi?id=681336

 docs/reference/gio/Makefile.am     | 2 +-
 docs/reference/glib/Makefile.am    | 2 +-
 docs/reference/gobject/Makefile.am | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit ce531302cd3b562a284da24ef425108d3466a7fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 8 09:55:29 2012 -0400

    Make --enable-man and --enable-gtk-doc independent

    Previously, --enable-man --disable-gtk-doc would silently skip
    man page generation, because we didn't even desdend into
    docs/reference.
    Fix this by always going there.

    https://bugzilla.gnome.org/show_bug.cgi?id=681336

 docs/Makefile.am | 2 --
 1 file changed, 2 deletions(-)

commit 317d91d06bc3bcdef91f98a7a75489977aa154e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 16 17:21:03 2012 -0400

    Fix an example

    Pointed out by Chandni Verma in
    https://bugzilla.gnome.org/show_bug.cgi?id=682025

 docs/reference/glib/gvariant-varargs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f8a5fc2e2e548e72526b4d69f1c04a78030e47d4
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed Aug 15 02:45:10 2012 +0900

    Revert "Use upstream gettext instead the glib one"

    Commited by mistake
    This reverts commit e930e3b3aac2fe4d62996d8033121a40153f2da3.

 autogen.sh        |   4 -
 configure.ac      |  15 ++-
 gio/Makefile.am   |   1 -
 glib/Makefile.am  |   1 -
 po/Makefile.in.in | 280
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po/Makevars       |  66 -------------
 6 files changed, 293 insertions(+), 74 deletions(-)

commit 6b201748b5f71f74af02ba8c01fd4c53750f910a
Author: Sebastian Geiger <sbastig@gmx.net>
Date:   Thu Aug 9 23:01:29 2012 +0200

    compiling.xml: Add note and fix gcc example

    Because of the '--as-needed' default option
    for the linker, the linking will fail, if the
    file name appears after any of the options or
    the pkg-config invocation.

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681854

 docs/reference/glib/compiling.xml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit e930e3b3aac2fe4d62996d8033121a40153f2da3
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon May 16 13:23:47 2011 +0100

    Use upstream gettext instead the glib one

 autogen.sh        |   4 +
 configure.ac      |  15 +--
 gio/Makefile.am   |   1 +
 glib/Makefile.am  |   1 +
 po/Makefile.in.in | 280
 ------------------------------------------------------
 po/Makevars       |  66 +++++++++++++
 6 files changed, 74 insertions(+), 293 deletions(-)

commit f92a3525f79ecb53d470c00797b71c12860eb05b
Author: Dirgita <dirgitadevina@yahoo.co.id>
Date:   Mon Aug 13 06:04:31 2012 +0700

    Updated Indonesian translation

 po/id.po | 6031
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3358 insertions(+), 2673 deletions(-)

commit ddfcfa66ae602c11ce9c4bfc426a79d668653278
Author: Colin Walters <walters@verbum.org>
Date:   Tue Aug 7 17:26:43 2012 -0400

    build: Switch back to using AS_IF for conditionals

    See https://bugzilla.gnome.org/show_bug.cgi?id=674483

    https://bugzilla.gnome.org/show_bug.cgi?id=681413

 configure.ac | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

commit e5ad42c6127e0c4c3c5c6567e137305fbeee4fbc
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Tue Aug 7 13:36:35 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 183
 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 183
 ++++++++++++++++++++++++++++++------------------------------
 2 files changed, 180 insertions(+), 186 deletions(-)

commit 541c985869fe9f2c0a858c0a91b4eb60f99d19f0
Author: Stef Walter <stefw@gnome.org>
Date:   Mon Aug 6 18:20:48 2012 +0200

    gtlscertificate: Add certificate-bytes and private-key-bytes props

     * These properties contain the same data as certificate and
       private-key, but as GBytes

    https://bugzilla.gnome.org/show_bug.cgi?id=681319

 gio/gdummytlsbackend.c      |  4 +++
 gio/gtlscertificate.c       | 59
 ++++++++++++++++++++++++++++++++++++---------
 gio/tests/gtesttlsbackend.c |  6 +++++
 3 files changed, 58 insertions(+), 11 deletions(-)

commit 69dd29296e2ff691f7d305ad7686d9c2e0d6e158
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 6 16:20:36 2012 -0400

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6b43310ef41cde26978c261cf1c0e2715adf732d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 6 15:56:26 2012 -0400

    GLib 2.33.8

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b55a2a2005cd45932bda56810aecbc5ac784fb4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 6 12:08:21 2012 -0400

    Don't use GIO in GTestDBus setup

    Using GIO here may cause the gvfs module to be loaded, which
    in turn gets onto the session bus to talk to gvfsd - not ideal
    if you are trying to control the session bus life cycle. Instead,
    just use old-fashioned glib file utils.

 gio/gtestdbus.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

commit 197ebb3be4fe01ac5da536157a9b6951f2871d01
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 6 12:08:04 2012 -0400

    More updates

 NEWS | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit cc80ae321fdfdcc90596940c8161861d25b20eed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 6 11:55:59 2012 -0400

    Solaris build fix for GIO

    Solaris/OpenSolaris/OpenIndiana define FIONREAD in sys/filio.h.
    This commit adds a configure check for this header, and includes
    it conditionally in gio/gsocket.c.

    Patch by Fabian Groffen, bug 675524.

 configure.ac  | 2 +-
 gio/gsocket.c | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

commit bd883f8dc75f056c2b25e941fb09422dc5786bbe
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 13:03:38 2012 -0500

    gio/tests/g-icon.c: fix some path checks on win32

    Some of the tests needed to be modified to use G_DIR_SEPARATOR_S
    rather than hardcoded "/"s.

    https://bugzilla.gnome.org/show_bug.cgi?id=669331

 gio/tests/g-icon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 291853bea3881a7eeb0f2c56946d3a1c0ef38c95
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 12:42:10 2012 -0500

    gicon: make g_icon_new_for_string() recognize win32 paths

    (but for compatibility, make it still recognize unix paths on win32
    too)

    https://bugzilla.gnome.org/show_bug.cgi?id=669331

 gio/gicon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 26f1e0938eeb61c7f93b651aa316e33f3b0d6292
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 11:35:26 2012 -0500

    gio/tests/file: skip the file monitor tests if using GPollFileMonitor

    test_create_delete() assumes that if it creates a file and then
    immediately deletes it, that the file monitor will notice this and
    record it as a create followed by a delete. But that won't work with
    GPollFileMonitor, which will just think nothing changed. So skip the
    test in that case.

    https://bugzilla.gnome.org/show_bug.cgi?id=669331

 gio/tests/file.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit 2793b39ea3de4fdac5cf154c7a12ac7ba82657d2
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 11:12:02 2012 -0500

    gio/tests/g-file.c: fix some path checks on win32

    Some of the tests needed to be modified to use G_DIR_SEPARATOR_S
    rather than hardcoded "/"s.

    https://bugzilla.gnome.org/show_bug.cgi?id=669331

 gio/tests/g-file.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 5c91af7e41443252857cdcf6fe0f0dabdc0b5250
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 11:10:50 2012 -0500

    glocalfile: fix g_file_get_parse_name() on win32

    When getting the parse name for a file: URI on win32, we were not
    translating "\" to "/", resulting in incorrect output.

    https://bugzilla.gnome.org/show_bug.cgi?id=669331

 gio/glocalfile.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

commit b2ddbd8f556c41f4d076c4cc4788684a9c84e7a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 6 11:03:42 2012 -0400

    Plug a minor memory leak in GDBusObjectProxy

    As pointed out by Patrick Ohly in bug 680505,
    GDBusObjectProxy was forgetting to free its object_path.

 gio/gdbusobjectproxy.c | 2 ++
 1 file changed, 2 insertions(+)

commit be7095980e90a8d8e76e678dc085423d2717c3bd
Author: David Rothlisberger <david@rothlis.net>
Date:   Mon Jul 16 13:12:15 2012 +0100

    gobject docs: Remove confusing acronym

    In the wikipedia disambiguation page[1] the only entry that even
    remotely makes sense in this context is "and so on". Google searches
    for "aso memory management" and "aso garbage collection" don't yield
    anything relevant.

    [1] http://en.wikipedia.org/wiki/ASO

    https://bugzilla.gnome.org/show_bug.cgi?id=679996

 docs/reference/gobject/tut_gobject.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bcda26a504c58d5ef5c13032c6c29cf3c56c226e
Author: David Rothlisberger <david@rothlis.net>
Date:   Mon Jul 16 10:57:46 2012 +0100

    gobject docs: Remove incorrect reference to signals docs

    The chapter on signals comes after this chapter, not before (see
    "tut_gobject.xml" in docs/reference/gobject/gobject-docs.xml).

    https://bugzilla.gnome.org/show_bug.cgi?id=679996

 docs/reference/gobject/tut_gobject.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 10474aca34f8adf7258294d678e56525b7570c70
Author: Brian Koning <gnome.brkoning@gmail.com>
Date:   Mon Jul 23 11:04:45 2012 -0400

    Remove extra newline chars in local
    g_application_command_line_print/err

    The extra newline chars in the local
    implementation of g_application_command_line_print and
    g_application_command_line_printerr() cause an unwanted newline
    after printed strings. This patch removes the newline chars to make
    the functions consistent with their documentation.

    https://bugzilla.gnome.org/show_bug.cgi?id=680459

 gio/gapplicationcommandline.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 151b198b93764ac69b5c067afe9fbf7c6c4acea4
Author: Pavel Vasin <rat4vier@gmail.com>
Date:   Mon Jul 16 15:57:26 2012 +0400

    GDBusActionGroup: hold ref until async init done

    to avoid use-after-free if GDBusActionGroup was finalized

    https://bugzilla.gnome.org/show_bug.cgi?id=679509

 gio/gdbusactiongroup.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit b2d848e3cb83fb096d6337be701cf834defa56b9
Author: Pavel Vasin <rat4vier@gmail.com>
Date:   Sun Jul 15 14:34:53 2012 +0400

    gio/tests/actions: test for bug679509

 gio/tests/actions.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit a74749d354a9d5458f664eb67691901e13bfe738
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 6 08:51:40 2012 -0400

    Deprecated GSlice config API

    This was marked as 'internal debugging' in the headers, and
    should have never been made public. As a first step to repair
    this, deprecate it.

    https://bugzilla.gnome.org/show_bug.cgi?id=680831

 glib/gslice.h      | 4 ++++
 glib/tests/slice.c | 3 +++
 2 files changed, 7 insertions(+)

commit 0b8662635df3e35aacb7d2e7cef517c47869c6ec
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 6 08:49:30 2012 -0400

    configure.ac: Use AS_HELP_STRING throughout

    https://bugzilla.gnome.org/show_bug.cgi?id=680831

 configure.ac | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

commit 49b35f093034af6ff14df4df2073a6111614c9d0
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Aug 3 21:51:08 2012 +0200

    gtlscertificate: Don't confuse certificate and public key in docs

     * A certificate sorta acts as a public key, but more specifically
       it contains a public key (in its subjectPublicKeyInfo) field.
     * Documentation was confusing and could have read like the
       certificate and certificate-pem properties were returning the
       public key part of the certificate.

    https://bugzilla.gnome.org/show_bug.cgi?id=681158

 gio/gtlscertificate.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit 278fe0c67f1d3a8731356fdda0e0adfb633cd7c4
Author: Stef Walter <stefw@gnome.org>
Date:   Tue Jul 31 16:47:45 2012 +0200

    gchecksum: Add g_compute_checksum_for_bytes()

     * Add a GBytes based version of g_compute_checksum_for_data()
     * Add appropriate tests

    https://bugzilla.gnome.org/show_bug.cgi?id=680912

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gchecksum.c                      | 30 +++++++++++++++++++++++
 glib/gchecksum.h                      |  5 ++++
 glib/glib.symbols                     |  1 +
 glib/tests/checksum.c                 | 45
 +++++++++++++++++++++++++++++++----
 5 files changed, 78 insertions(+), 4 deletions(-)

commit dd2ecf7488190d7ffd7912f6bf81da3560ad3976
Author: Stef Walter <stefw@gnome.org>
Date:   Fri Aug 3 18:19:36 2012 +0200

    checksum: Use functions instead of macros when building tests

     * No need for hard to debug and maintain macros here.

    https://bugzilla.gnome.org/show_bug.cgi?id=681151

 glib/tests/checksum.c | 65
 +++++++++++++++++++++++++++++----------------------
 1 file changed, 37 insertions(+), 28 deletions(-)

commit 0f6a092cc5a1cc82a02b23e9daa15159319f929c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Apr 17 12:59:11 2012 +0100

    Make gtk-doc not a hard dependency of GLib

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674314

 autogen.sh       | 10 ++++++----
 configure.ac     |  7 ++++++-
 docs/Makefile.am |  2 ++
 3 files changed, 14 insertions(+), 5 deletions(-)

commit 10fc00b38515bc322d5e497d61a50165b04c3c8d
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Wed Apr 25 14:21:06 2012 +0200

    gclosure: do not copy and leak when generically marshalling return
    value

    https://bugzilla.gnome.org/show_bug.cgi?id=674800

 gobject/gclosure.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 24b9f61ee4b8b7bc755b84398207112c18b4121f
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Thu Jul 19 16:38:59 2012 +0200

    tests: add check for leaking signal return value

    https://bugzilla.gnome.org/show_bug.cgi?id=674800

 tests/refcount/Makefile.am |  5 ++++-
 tests/refcount/signals.c   | 26 ++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

commit 13a1154b4cf664e486df9fa6a76d279b8090c49e
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Thu Jul 19 16:38:06 2012 +0200

    tests: make refcount signals test slightly valgrind cleaner

 tests/refcount/signals.c | 4 ++++
 1 file changed, 4 insertions(+)

commit f1a13b895d71fb9523c65591a7ebb7a8bad0a4d9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 4 17:49:53 2012 -0400

    NEWS updates for 2.33.8

 NEWS | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit 08dd0f246a17c5e1fd78ae19c18f52905c47fdbc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 3 00:36:25 2012 +0200

    docs: Improve man page consistency

    Make Options sections refsect1 instead of refsect2, and use
    uppercase for argument names. Also add a product name, and
    shorten some argument names.

 docs/reference/gio/gdbus-codegen.xml          |  21 +-
 docs/reference/gio/gdbus.xml                  |  29 ++-
 docs/reference/gio/gio-querymodules.xml       |  14 +-
 docs/reference/gio/glib-compile-resources.xml |  83 ++++---
 docs/reference/gio/glib-compile-schemas.xml   |  29 ++-
 docs/reference/gio/gresource.xml              |  17 +-
 docs/reference/gio/gsettings.xml              |  17 +-
 docs/reference/glib/glib-gettextize.xml       |  23 +-
 docs/reference/glib/gtester-report.xml        |  18 +-
 docs/reference/glib/gtester.xml               |  33 ++-
 docs/reference/gobject/glib-genmarshal.xml    | 237 ++++++++++---------
 docs/reference/gobject/glib-mkenums.xml       | 315
 +++++++++++++-------------
 docs/reference/gobject/gobject-query.xml      |  41 ++--
 13 files changed, 506 insertions(+), 371 deletions(-)

commit d241978412144650e73e9b635cf1869f8d4da2b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 3 00:33:34 2012 +0200

    docs: Improve man page generation

    Use $(AM_V_GEN) for generating man pages, and set some parameters
    for the XSL stylesheets. Among other things, don't generate AUTHORS
    and COPYRIGHT sections.

 docs/reference/gio/Makefile.am     | 10 +++++++++-
 docs/reference/glib/Makefile.am    | 10 +++++++++-
 docs/reference/gobject/Makefile.am | 10 +++++++++-
 3 files changed, 27 insertions(+), 3 deletions(-)

commit 9f9ab640306da52127935bd8eab82a1a8dcaaf89
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 2 23:52:46 2012 +0200

    Rework the man page configury

    Default to generate man pages if the required tools and
    stylesheets are found. Error out if --enable-man is given
    but tools or stylesheets are missing.

 configure.ac | 49 +++++++++++++++++++++++++++++++++++++------------
 1 file changed, 37 insertions(+), 12 deletions(-)

commit e2470ec6db5230c183a4879b5f0c687b699614e9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 2 23:51:52 2012 +0200

    docs: Don't put links in section titles

 gio/gsettingsschema.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6ddf40f301439c01bec24344694074bd9ba5f016
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Aug 1 10:41:02 2012 +0200

    gtlscertificate: Add g_tls_certificate_is_same() function

     * Certificate equality in PKIX in general is equality between
       the DER encoding of the certificates.

    https://bugzilla.gnome.org/show_bug.cgi?id=681116

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gtlscertificate.c               | 37
 +++++++++++++++++++++++++++++++++++++
 gio/gtlscertificate.h               |  4 ++++
 4 files changed, 43 insertions(+)

commit b913b0c29ed7269a1684ec15f27b59a8ad2ef5e4
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Aug 1 14:22:53 2012 +0200

    gtlsdatabase: Don't complain if no callbacks for async functions

    https://bugzilla.gnome.org/show_bug.cgi?id=681118

 gio/gtlsdatabase.c | 7 -------
 1 file changed, 7 deletions(-)

commit aaf6ac8321065b9a81f96070d629bd72b589dfde
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Fri Aug 3 13:35:05 2012 +0530

    Updated gujarati file

 po/gu.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c0b3a656c78c1f14c146464aa50697990db8b88b
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Fri Aug 3 13:32:12 2012 +0530

    Updated gujarati file

 po/gu.po | 6025
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3285 insertions(+), 2740 deletions(-)

commit 800ca21e555e5e9fe1f07a4a8473d6d24ada6301
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Wed Aug 1 11:57:22 2012 -0400

    GDBusError: Fix up G_STATIC_ASSERT guidance

    This was reported in bug 680994.

    https://bugzilla.gnome.org/show_bug.cgi?id=680994

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/gdbuserror.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit b3f96373372771744a5ade73b2e897ec32365182
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 25 14:41:04 2012 -0400

    gthreadpool: set default max_unused_threads and max_idle_time values

    GThreadPool defaulted to 0 for max_unused_threads (meaning thread-pool
    threads would exit immediately if there was not already another task
    waiting for them), and 0 for max_idle_time (meaning unused threads
    would linger forever, though this is only relevant if you changed
    max_unused_threads).

    However, GIOScheduler changed the global defaults to 2 and 15*1000,
    respectively, arguing that these were more useful defaults. And they
    are, so let's use them.

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gioscheduler.c | 6 ------
 glib/gthreadpool.c | 9 +++++----
 2 files changed, 5 insertions(+), 10 deletions(-)

commit 26056558be4656ee6e891a4fae5d4198de7519cf
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jul 30 08:06:57 2012 -0400

    gmain: allow g_source_get_context() on destroyed sources

    g_source_get_context() was checking that the source wasn't destroyed
    (since a source doesn't hold a ref on its context, and so
    source->context might point to garbage in that case). However, it's
    useful to be allowed to call g_source_get_context() on a source that
    is destroyed-but-currently-running.

    So instead, let g_source_get_context() return the context whenever
    it's non-NULL, and clear the source->context of any sources that are
    still in a context's sources list when the context is freed. Since
    sources are only removed from the list when the source is freed (not
    when it is destroyed), this means that now whenever a source has a
    non-NULL context pointer, then that pointer is valid.

    This also means that g_source_get_time() will now return-if-fail
    rather than crashing if it is called on a source whose context has
    been destroyed.

    Add tests to glib/tests/mainloop to verify that g_source_get_context()
    and g_source_get_time() work on destroyed sources.

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 glib/gmain.c          | 15 ++++++++++++---
 glib/tests/mainloop.c | 14 ++++++++++++--
 2 files changed, 24 insertions(+), 5 deletions(-)

commit 6881e743ee37eff154326ef5e0510651c0a14ac4
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jul 29 13:06:53 2012 -0400

    glib/tests/mainloop: test g_source_get_time()

    Verify that

      - g_source_get_time() does not change within a single callback
        (even if the real time does)

      - g_source_get_time() does not change between different callbacks in
        the same mainloop iteration

      - g_source_get_time() does change between iterations if the real
        time did.

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 glib/tests/mainloop.c | 105
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)

commit b0bce4ad41937dabf7e5c94dcce3caf4e88f3f97
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Mon Jul 30 13:33:05 2012 +0200

    g_file_make_directory_with_parents: Fix error propagation

    When creating a directory fails for some reason other than
    the parent not existing, don't clear the error before we try
    to propagate it.

    To reproduce, run 'ostadmin init' on /ostree or otherwise try to
    run the function on a directory with a parent directory where the
    current user is not allowed to write.

    https://bugzilla.gnome.org/show_bug.cgi?id=680823

 gio/gfile.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d7829ced532a5ffba4c56772a7a4b24e3e228651
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jul 30 05:11:08 2012 -0400

    GFile: Note semantics of g_file_delete()

    Particularly for someone programming on Unix, this helps them
    understand that we will unlink symbolic links, and not follow them.

 gio/gfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 14a1c20177eab4d584b29cbd6fe5933f4b2af4de
Author: Colin Walters <walters@verbum.org>
Date:   Sat Jul 28 09:30:22 2012 -0400

    GFile: Add g_file_delete_async()

    This looks like it was stubbed out but not implemented; the vtable
    entry dates to commit 3781343738de4abddf56982325a77bd70a98cd26 which
    is just alex's initial merge of gio into glib.

    I was working on some code that wants an asynchronous rm -rf
    equivalent, and so yeah, this is desirable.

    https://bugzilla.gnome.org/show_bug.cgi?id=680760

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gfile.c                         | 118
 ++++++++++++++++++++++++++++++++++++
 gio/gfile.h                         |  27 +++++++--
 gio/gio.symbols                     |   2 +
 gio/tests/file.c                    |  43 +++++++++++++
 5 files changed, 188 insertions(+), 4 deletions(-)

commit 6b6bef753f2e8f01e01fc8e8f099edcebc9ff8b6
Author: Colin Walters <walters@verbum.org>
Date:   Sun Jul 29 09:29:03 2012 -0400

    Add .dir-locals.el to tell Emacs users not to use tabs for C

    Requested by Ryan.

    https://bugzilla.gnome.org/show_bug.cgi?id=680787

 .dir-locals.el | 1 +
 1 file changed, 1 insertion(+)

commit c3154cc48eab8bb3ee6afc661d04cc919d6f9543
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Jul 30 02:42:30 2012 +0200

    Updated Galician translations

 po/gl.po | 344
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 180 insertions(+), 164 deletions(-)

commit 8abfe528b75c6aab3a46ec02c4dcca05fceca83b
Author: Andrej Žnidaršič <andrej.znidarsic@gmail.com>
Date:   Sun Jul 29 13:11:18 2012 +0200

    Updated Slovenian translation

 po/sl.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit ad4f780cb427c1c37c0b0d87fac867285926eb16
Author: Lionel Landwerlin <llandwerlin@gmail.com>
Date:   Fri Jul 27 14:52:17 2012 +0200

    glib: fix locale detection on android

    g_utf8_strup() tries to call setlocale() before starting to compute
    the length of its first argument. Calling setlocale() can return NULL
    (as specified in the man page), and obviously that happens on android.

    https://bugzilla.gnome.org/show_bug.cgi?id=680704

 glib/guniprop.c | 3 +++
 1 file changed, 3 insertions(+)

commit 3339a395c298a64a9a6056b80230cc1381a6406a
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Wed Jul 25 10:33:27 2012 +0200

    Updated Serbian translation

 po/sr.po       | 1283
 ++++++++++++++++++++++++++------------------------------
 po/sr@latin.po | 1249
 ++++++++++++++++++++++++++----------------------------
 2 files changed, 1191 insertions(+), 1341 deletions(-)

commit 72824f2af2a6ae01ede471ef987ee60b9f7cd047
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Tue Jul 24 22:39:15 2012 +0300

    Updated Hebrew translation.

 po/he.po | 1120
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 611 insertions(+), 509 deletions(-)

commit 3bb53b14530116eeac1e6bcaabf7a28edb74e877
Author: Tobias Endrigkeit <tobiasendrigkeit@googlemail.com>
Date:   Mon Jul 23 22:11:53 2012 +0200

    [l10n] Updated German translation

 po/de.po | 300
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 160 insertions(+), 140 deletions(-)

commit 0830e10e6f6dab02afdc39b61d9611d7330edad1
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Jul 23 11:42:22 2012 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 388
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 196 insertions(+), 192 deletions(-)

commit 003e7a70e80d508458c7a9d4cc76b84a1eb35f94
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jul 20 10:40:56 2012 -0400

    Revert unintential IAPI break for g_key_file_load_from_data()

    The old (length) annotation actually wasn't being read.  Changing
    it to an array was telling g-i that it was an array of utf8, which
    is clearly not true.

    We *could* add (element-type guint8), but that would change it to a
    byte array, as opposed to the original utf8 version.

    Just removing the annotation should bring us back to where we
    were, which was fine.

    https://bugzilla.gnome.org/show_bug.cgi?id=680310

 glib/gkeyfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1ae7c7d982b3f461dcab178b3d20a04aaa9d9d72
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Jul 19 23:15:59 2012 +0800

    gio/Makefile.am: Filter out gcontenttype.c for MSVC builds

    gcontenttype.c was split into gcontenttype.c and gcontenttype-win32.c
    in commit 32192ee9 ("Split gcontenttype.c"), so we don't want
    to include
    gcontenttype.c in the Visual C++ build as it is no longer a source
    file
    meant for Windows.

    Thanks to Thomas H.P. Anderson for pointing this out.

 gio/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 23a2136fb5dd860a57a9bd46e61099ea4da99447
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 19 06:37:59 2012 -0400

    Check for PR_SET_NAME

    Bug 680148 claims that PR_SET_NAME may not be defined when
    using an old kernel. Deal with it.

 glib/gthread-posix.c | 2 ++
 1 file changed, 2 insertions(+)

commit 4c255d4602b4c6f65031588ff30342c36e250567
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 19 06:32:29 2012 -0400

    Be more careful when using xlocale

    Bug 680074 shows that we may end up in situations where only
    some of the xlocale functions we need are available. Rather than
    trying to find the minimal set of required functions for each
    use, define a global USE_XLOCALE and only use any xlocale functions
    if we have a full set.

 glib/gstrfuncs.c | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

commit dd098405ad4f7ad2a0029cbfc340ca2e7e2b5633
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 19 06:20:10 2012 -0400

    Cosmetic: Fix up line endings

    Somehow a few ^M sneaked in here.

 glib/gstrfuncs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 2357f67b1b7a9448d78e8606f10b472c595c7c90
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 18 15:08:44 2012 -0400

    gmain: handle child sources being destroyed before parent

    Fix a crash when a child source is destroyed before its parent. Also,
    add a test case for this and the previous fix.

 glib/gmain.c          | 23 ++++++++++--------
 glib/tests/mainloop.c | 65
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 78 insertions(+), 10 deletions(-)

commit ee6e66cb4483d82fcb0657d13faebf844258c70b
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 18 14:19:36 2012 -0400

    g_source_add_child_source: sync blocked state

    Child sources are supposed to be blocked when their parents are, so
    when adding a source to a blocked source, block the child too. Fixes a
    warning when unblocking the parent.

 glib/gmain.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 2855b827da44144c76b72d8cfec9599a835df4ea
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jul 17 16:21:03 2012 -0400

    gio/tests/converter-stream: add a new test, rename an old one

    Add a test that the decompressor input streams handle truncated data
    correctly. (They do; I wrote the test thinking there was a bug there,
    but there isn't.)

    Also, rename the "corruption" tests to "roundtrip", since "corruption"
    makes it sound like we're testing how the converters deal with
    corrupted data, as opposed to merely testing that they don't corrupt
    data themselves. And fix the bug reference.

 gio/tests/converter-stream.c | 112
 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 83 insertions(+), 29 deletions(-)

commit 09c18537f4e8b3ede066339cc23b76df8a4fc2cc
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jul 17 13:17:01 2012 -0400

    g_cancellable_source_new: don't use a file descriptor

    Rather than implementing GCancellableSource by polling on its fd,
    implement it by just waking its GMainContext up from the "cancelled"
    signal handler, thereby helping to reduce file descriptor usage.
    Suggested by Ryan Lortie.

    https://bugzilla.gnome.org/show_bug.cgi?id=680121

 gio/gcancellable.c | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

commit 0e37822e10626859bcc6cb0452f1c0832e6990fa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 17 14:23:08 2012 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ffefa544d68972cf5cc7099eb015c35630c5314d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 17 13:50:58 2012 -0400

    More updates

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit a0b71839ee27eec27d8b9da24d25c153d6273f42
Author: Stef Walter <stefw@gnome.org>
Date:   Tue Jul 17 18:34:16 2012 +0200

    GIOScheduler: Fix access after free in "cancelled" handler

     * GCancellable can be "cancelled" more than once if
       g_cancellable_reset() is called.
     * Don't assume that because the "cancelled" signal fired
       it won't fire again.

    https://bugzilla.gnome.org/show_bug.cgi?id=680111

 gio/gioscheduler.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e97a4c7e5ef205dea08928f64ee5ba7e222e3b9b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 17 13:00:00 2012 -0400

    2.33.6

    https://bugzilla.gnome.org/show_bug.cgi?id=680111

 NEWS         | 14 ++++++++++++++
 configure.ac |  2 +-
 2 files changed, 15 insertions(+), 1 deletion(-)

commit d90ad1805552aab969f316a1de687efdb71e27fe
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jul 17 09:12:39 2012 -0400

    GAsyncInitable: partially revert the init_finish changes

    g_async_initable_real_init_finish() was previously handling all
    GSimpleAsyncResults, even if they weren't created by
    g_async_initable_real_init_async(), and libnm-glib accidentally relied
    on that behavior. So remove the g_simple_async_result_is_valid()
    check.

 gio/gasyncinitable.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit cd8ec3359b4b8afd5cce48bf218ecd793f8064eb
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Sun Jul 15 19:10:43 2012 +0200

    GVariantType: Add (constructor) annotation for some constructors.

    This are mistaken by g-ir-scanner as GVariantType's methods, because
    they take a GVariantType* as a first parameter.

    https://bugzilla.gnome.org/show_bug.cgi?id=679968

 glib/gvarianttype.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 1b3578ec0beb19639e21c08e560a4fdb010a438a
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jul 16 16:42:49 2012 +0200

    Updated Spanish translation

 po/es.po | 441
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 231 insertions(+), 210 deletions(-)

commit bfbfbec91e10ea7f34e43a5d263031abb914dec6
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Mon Jul 9 04:12:02 2012 +0200

    win32: g_getenv() should return "" if variable exists and empty

    On Windows, GetEnvironmentVariable() returns 0 for empty variables.
    Checking GetLastError() == ERROR_ENVVAR_NOT_FOUND helps make a
    difference between a variable that does not exist or an empty one
    which should return "".

    https://bugzilla.gnome.org/show_bug.cgi?id=679617

 glib/genviron.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 6007a4b0b109855f8521ba93ed10b3a1d2bf77f2
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Mon Jul 9 03:54:55 2012 +0200

    win32: fix g_get_environ()

    The current code create the strv array incorrectly, it is too big and
    leaves invalid holes. This may result in crashes when freeing the
    returned value.

    https://bugzilla.gnome.org/show_bug.cgi?id=679617

 glib/genviron.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 11819933e2d0b8833dfd7a0173f66be989a5a914
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 16 06:01:55 2012 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d48bd70853496c5a835e0d3a83136ef23ea778c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 15 20:36:10 2012 -0400

    More updates

 NEWS | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit f81c2c753ab0f6cc71866cd3e387a2e2dc857d60
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Sun Jul 15 12:27:03 2012 +0300

    Updated Belarusian translation.

 po/be.po | 1106
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 620 insertions(+), 486 deletions(-)

commit ef4bbecce76505abc5ba143f57bae4cba0a76f16
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Jul 15 01:23:25 2012 +0200

    Updated Polish translation

 po/pl.po | 192
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 101 insertions(+), 91 deletions(-)

commit 160da82e3943e2a42685d72f54dddb11db80458c
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Jul 14 13:51:12 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1127
 ++++++++++++++++++++++++++++++++++-------------------------
 po/zh_TW.po | 1127
 ++++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 1298 insertions(+), 956 deletions(-)

commit c182ee1f7189ea2f547e1af6498b27bd501397fc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 13 17:37:37 2012 -0400

    Fix GModule documentation a bit

    The documentation for g_module_make_resident was for some reason
    in the doc comment for g_module_name.

    https://bugzilla.gnome.org/show_bug.cgi?id=679813

 gmodule/gmodule.c | 16 +++++++++++++---
 gmodule/gmodule.h |  2 ++
 2 files changed, 15 insertions(+), 3 deletions(-)

commit 34b2125edff9d4ce1dc6e2e84e5a816ee14b4791
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 13 17:37:12 2012 -0400

    Fix doc build

 glib/gregex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3201bcd1b278f335669972cbd991c3a6778a040e
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Fri Jul 13 17:53:45 2012 +0530

    Assamese translation updated

 po/as.po | 447
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 227 insertions(+), 220 deletions(-)

commit 97676046f2764ace8d0ac65df092046044841ac0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 12 23:40:43 2012 -0400

    Update NEWS

 NEWS | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit d9af4259f779a4e88d9d47a9e99944ad785f4190
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed Jul 11 19:41:58 2012 +0200

    win32: fix build g_spawn_check_exit_status() with mingw

    With mingw, only gspawn-win32.c is compiled, but it is missing some
    new symbols.

    https://bugzilla.gnome.org/show_bug.cgi?id=679691

 glib/gspawn-win32.c | 25 +++++++++++++++++++++++++
 glib/gspawn.c       | 10 ----------
 2 files changed, 25 insertions(+), 10 deletions(-)

commit ce1b50bf2afbbcfd6c560feed00de2df50b7dfba
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Thu Jul 12 16:09:57 2012 +0200

    GRegex, GConvert: Add some missing annotations.

    Also, removed pointless (allow-none) return annotation.

    https://bugzilla.gnome.org/show_bug.cgi?id=679762

 glib/gconvert.c |  6 +++---
 glib/gregex.c   | 15 +++++++++------
 2 files changed, 12 insertions(+), 9 deletions(-)

commit 99f26ab08f777040230fdd81423d1220722cef2f
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Jul 11 20:25:59 2012 -0400

    mount-operation: add a Since tag to the show-unmount-progress signal

 gio/gmountoperation.c | 2 ++
 1 file changed, 2 insertions(+)

commit 44375ad7c595884c091056a1955d08a1975c5516
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Jul 6 15:41:47 2012 -0400

    mount-operation: add show-unmount-progress signal

    The actual implementation will be in gvfs.

    https://bugzilla.gnome.org/show_bug.cgi?id=676111

 gio/gmountoperation.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 gio/gmountoperation.h |  6 +++++-
 2 files changed, 51 insertions(+), 1 deletion(-)

commit 37fbd702d54a471781e853acaf805e0f508fbd3a
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Thu Jul 12 02:38:20 2012 +0300

    Updated Greek translation

 po/el.po | 819
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 456 insertions(+), 363 deletions(-)

commit eda1735029e01d6391fe8a4cde6c5688727c8183
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Tue Jul 10 11:38:34 2012 +0200

    GDBusNodeInfo: remove a spurious for loop

    https://bugzilla.gnome.org/show_bug.cgi?id=679671

 gio/gdbusintrospection.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 6f23c33831f69ef111d22491586d1dfdd8ca3693
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Tue Jul 10 11:37:56 2012 +0200

    GDBusNodeInfo: the XML string must contain exactly one node element

    Make the documentation clear about this.

    https://bugzilla.gnome.org/show_bug.cgi?id=679671

 gio/gdbusintrospection.c | 3 +++
 1 file changed, 3 insertions(+)

commit f7abd3ce130ae3a6da8502c2dce8d773d7514464
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 10 11:27:22 2012 -0400

    Add g_spawn_check_exit_status()

    Many (if not "almost all") programs that spawn other programs via
    g_spawn_sync() or the like simply want to check whether or not the
    child exited successfully, but doing so requires use of
    platform-specific functionality and there's actually a fair amount of
    boilerplate involved.

    This new API will help drain a *lot* of mostly duplicated code in
    GNOME, from gnome-session to gdm.  And we can see that some bits even
    inside GLib were doing it wrong; for example checking the exit status
    on Unix, but ignoring it on Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=679691

 docs/reference/glib/glib-sections.txt |   1 +
 gio/gdbusaddress.c                    |  29 +-------
 gio/gdesktopappinfo.c                 |   4 +-
 gio/glib-compile-resources.c          |  14 ++--
 gio/tests/gdbus-connection-slow.c     |   9 +--
 gio/tests/gdbus-connection.c          |   2 +-
 glib/glib.symbols                     |   2 +
 glib/gmain.c                          |  12 ++--
 glib/gmain.h                          |   8 ++-
 glib/gspawn.c                         | 128
 +++++++++++++++++++++++++++++++---
 glib/gspawn.h                         |  13 ++++
 11 files changed, 158 insertions(+), 64 deletions(-)

commit 82d914d808c616d14d489c0272c6d5afc4bfbd5a
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 10 11:09:52 2012 -0400

    gio: add g_async_result_is_tagged()

    Rather than doing a two step
    first-check-the-GAsyncResult-subtype-then-
    check-the-tag, add a GAsyncResult-level method so that you can do them
    both at once, simplifying the code for "short-circuit" async return
    values where the vmethod never gets called.

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gasyncresult.c                  | 29 +++++++++++++++++++++++++++++
 gio/gasyncresult.h                  |  7 +++++++
 gio/gbufferedinputstream.c          |  9 ++-------
 gio/gfileenumerator.c               | 11 +++--------
 gio/ginputstream.c                  | 27 ++++++---------------------
 gio/gio.symbols                     |  1 +
 gio/giostream.c                     |  9 ++-------
 gio/goutputstream.c                 | 27 ++++++---------------------
 gio/gresolver.c                     | 13 ++++---------
 gio/gsimpleasyncresult.c            |  8 ++++++++
 11 files changed, 69 insertions(+), 73 deletions(-)

commit f8532a13e2054e649f75ca2a58e01604be05549e
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 10 09:00:45 2012 -0400

    gio: Add g_async_result_legacy_propagate_error()

    Finish deprecating the "handle GSimpleAsyncResult errors in the
    wrapper function" idiom (and protect against future GSimpleAsyncResult
    deprecation warnings) by adding a "legacy" GAsyncResult method
    to do it in those classes/methods where it had been traditionally
    done.

    (This applies only to wrapper methods; in cases where an _async
    vmethod explicitly uses GSimpleAsyncResult, its corresponding _finish
    vmethod still uses g_simple_async_result_propagate_error.)

    https://bugzilla.gnome.org/show_bug.cgi?id=667375
    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gasyncinitable.c                |   8 +-
 gio/gasyncresult.c                  |  42 ++++++++
 gio/gasyncresult.h                  |   4 +
 gio/gbufferedinputstream.c          |   5 +-
 gio/gdrive.c                        |  44 +++------
 gio/gfile.c                         | 189
 ++++++++++--------------------------
 gio/gfileenumerator.c               |  16 ++-
 gio/gfileinputstream.c              |   9 +-
 gio/gfileiostream.c                 |  13 +--
 gio/gfileoutputstream.c             |   9 +-
 gio/ginputstream.c                  |  15 +--
 gio/gio.symbols                     |   1 +
 gio/giostream.c                     |   5 +-
 gio/gloadableicon.c                 |  10 +-
 gio/gmount.c                        |  48 +++------
 gio/goutputstream.c                 |  24 +++--
 gio/gresolver.c                     |  24 ++---
 gio/gvolume.c                       |  24 ++---
 19 files changed, 180 insertions(+), 311 deletions(-)

commit 538b2f106de78b7dfeac2a98f3d5594ed0ed2ade
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jun 11 13:44:19 2012 -0400

    gio: handle GSimpleAsyncResult errors in _finish vmethods

    Originally, the standard idiom with GSimpleAsyncResult was to handle
    all errors in the _finish wrapper function, so that vmethods only had
    to deal with successful results. But this means that chaining up to a
    parent _finish vmethod won't work correctly. Fix this by also checking
    for errors in all the relevant vmethods. (We have to redundantly check
    in both the vmethod and the wrapper to preserve compatibility.)

    https://bugzilla.gnome.org/show_bug.cgi?id=667375
    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gasyncinitable.c       | 19 ++++++++-----------
 gio/gbufferedinputstream.c |  3 +++
 gio/gfile.c                | 42
 +++++++++++++++++++++++++++++++++++++++++-
 gio/gfileenumerator.c      |  8 ++++++++
 gio/gfileinputstream.c     |  3 +++
 gio/gfileoutputstream.c    |  7 +++++--
 gio/ginputstream.c         | 12 ++++++++++++
 gio/giostream.c            |  5 +++++
 gio/gloadableicon.c        |  3 +++
 gio/goutputstream.c        | 16 ++++++++++++++++
 10 files changed, 104 insertions(+), 14 deletions(-)

commit a98d26c9bbd40b5d00d5a1536402c9196534087c
Author: Dan Winship <danw@gnome.org>
Date:   Tue Apr 17 09:55:33 2012 -0400

    GFile: remove some unnecessary code

    The "mainloop_barrier" in copy_async_thread() is unnecessary, since
    the g_simple_async_result_complete_in_idle() will be queued after all
    of the g_io_scheduler_job_send_to_mainloop_async()s, and sources with
    the same priority will run in the order in which they were queued.

    https://bugzilla.gnome.org/show_bug.cgi?id=661767

 gio/gfile.c | 15 ---------------
 1 file changed, 15 deletions(-)

commit 4749878f9102d40d072bb5c838f2dd2e8d61d417
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Mon Jul 9 18:17:01 2012 +0200

    goptions: use G_N_ELEMENTS instead of nitems

 glib/goption.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 5a85fe0e37504cea13fe8a587691f72373b18830
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 9 12:43:50 2012 -0400

    GVariant: fix string validation

    String validation was done by checking if the string was valid
    utf8 and
    ensuring that the first non-utf8 character was the last character (ie:
    the nul terminator).

    No check was actually done to make sure that this byte actually
    contained a nul, however, so it was possible that you could have a
    string like "hello\xff" with length 6 that would correctly validate.

    Fix that, and test it.

 glib/gvariant-serialiser.c | 11 ++++++++++-
 glib/tests/gvariant.c      |  1 +
 2 files changed, 11 insertions(+), 1 deletion(-)

commit 3b0f1cc432b546c538d82036bd1a655489d11f35
Author: Stef Walter <stefw@gnome.org>
Date:   Sat May 5 12:51:16 2012 +0200

    Fix up GObject interface documentation

     * Document how to override interfaces already implemented
       in a base class, and also call those base class implementations
       from a derived reimplementation.
     * Don't recomend people use base_init() style functions to
       initialize interface signals and properties, use default_init()
       aka class_init() instead (as G_DEFINE_INTERFACE() uses).
     * The above solves the interface init called multiple times
       problem, so remove some needless naysaying about that.
     * Document default_init() in the interface initialization discussion
     * Linkify more stuff.
     * Remove some crud and typos

    https://bugzilla.gnome.org/show_bug.cgi?id=675504

 docs/reference/gobject/tut_gtype.xml | 143 ++++++++++++-----
 docs/reference/gobject/tut_howto.xml | 303
 ++++++++++++++++++++++++-----------
 2 files changed, 309 insertions(+), 137 deletions(-)

commit 2cf9608d4892690c16332c27b3f5de0276d2f569
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Jul 9 15:05:04 2012 +0200

    Updated Galician translations

 po/gl.po | 403
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 238 insertions(+), 165 deletions(-)

commit f9a6a97470583417a26619b5da3d56097a15c6dd
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Sun Jul 8 19:23:18 2012 +0200

    OpenBSD: explicitely define nitems

    nitems is never guaranteed to be defined in sys/params.h as it
    is meant
    to be defined within a protected ifdef __KERNEL condition.

 glib/goption.c | 4 ++++
 1 file changed, 4 insertions(+)

commit a511a706de048dcc779eb09d85f3d2e9329d68cd
Author: Torsten Schönfeld <kaffeetisch@gmx.de>
Date:   Mon May 3 20:33:50 2010 +0200

    gio: Add type macros for GFileAttributeInfoList and
    GFileAttributeMatcher

    https://bugzilla.gnome.org/show_bug.cgi?id=616892

 gio/gfileattribute.h | 4 +++-
 gio/gfileinfo.h      | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

commit c09bf3e6b935d5e5ef0ecf2bb88788537c3ebecd
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Sat Jul 7 17:10:46 2012 -0400

    gdbus-codegen: improve casting a tiny wee bit

    The in commit b79fbc5c3fc8d7093919dde2dc244d26a97596c3 for fixing
    -Wstrict-aliasing warnings was a little too brutal, make it a bit
    better.

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/gdbus-2.0/codegen/codegen.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 53b3175cfabe78b6ce3403f38d59addb218cb61b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 28 23:20:39 2012 +0200

    regex: Add new GRegexError code from PCRE 8.31

 glib/gregex.c      | 3 +++
 glib/gregex.h      | 7 +++++--
 glib/tests/regex.c | 1 +
 3 files changed, 9 insertions(+), 2 deletions(-)

commit 2188a5e59c512668dc3c76607fb8ccad4910cc3c
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 28 23:21:16 2012 +0200

    regex: Enable fixed test

    This problem was fixed in PCRE 8.31, so uncomment the test.

 glib/tests/regex.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 94578330109eb7fb1588c0d0d0bb526bfb0ce9b6
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 14 22:15:27 2012 +0200

    regex: Import PCRE 8.31

    https://bugzilla.gnome.org/show_bug.cgi?id=679193

 glib/pcre/pcre.h             |   10 +-
 glib/pcre/pcre_compile.c     |  195 ++--
 glib/pcre/pcre_dfa_exec.c    |  225 +++--
 glib/pcre/pcre_exec.c        |  331 +++++--
 glib/pcre/pcre_fullinfo.c    |    4 +
 glib/pcre/pcre_globals.c     |    4 +
 glib/pcre/pcre_internal.h    |   43 +-
 glib/pcre/pcre_jit_compile.c | 2028
 +++++++++++++++++++++++++++---------------
 glib/pcre/pcre_study.c       |   15 +-
 glib/pcre/pcre_tables.c      |  292 +++---
 glib/pcre/ucp.h              |    9 +-
 glib/update-pcre/ucp.patch   |   55 +-
 12 files changed, 2087 insertions(+), 1124 deletions(-)

commit f66052fc87caada2552f651e9a21f1daac86b2a1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 6 17:27:54 2012 -0400

    GVariant: support comparing booleans

    g_variant_compare() is documented as working on booleans but somehow
    this case was missed.  Add it and test it.

    Problem discovered by Charles Kerr.

 glib/gvariant.c       | 4 ++++
 glib/tests/gvariant.c | 5 +++++
 2 files changed, 9 insertions(+)

commit b79fbc5c3fc8d7093919dde2dc244d26a97596c3
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Fri Jul 6 13:45:09 2012 -0400

    gdbus-codegen: neuter warnings when using -Wstrict-aliasing

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/gdbus-2.0/codegen/codegen.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit d728eae85fbcefb66f9bfc41a52cf315ef84d667
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Fri Jul 6 13:43:05 2012 -0400

    gdbus-codegen: don't shadow variable

    This avoids a warning when building with -Wshadow

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/gdbus-2.0/codegen/codegen.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit ed492a5de2a217c08bccd4032b1122fba2f25c6f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 6 13:43:17 2012 -0400

    GSettings: be more careful about keys names with /

    Prevent attempts to access keys ending with slashes that exist in the
    schema file as references to child schemas.

    Also: don't emit change signals for these same keys.

 gio/gsettings.c       | 20 ++++++++++++++++----
 gio/gsettingsschema.c |  2 +-
 2 files changed, 17 insertions(+), 5 deletions(-)

commit 52a6d7022af6dfc597bae97fdabcaf2d24855126
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Fri Jul 6 19:11:26 2012 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 750
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 414 insertions(+), 336 deletions(-)

commit ee9aae5dcfe8dd1956e78a52c4e8c53c0f7861fe
Author: Dan Winship <danw@gnome.org>
Date:   Thu Apr 26 14:08:22 2012 -0400

    Clarify the GLIB_VERSION_MIN_REQUIRED/MAX_ALLOWED docs

    https://bugzilla.gnome.org/show_bug.cgi?id=674898

 glib/gversionmacros.h | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

commit 40f0f66151c09a02b6355c7da02af081c30dd586
Author: Dan Winship <danw@gnome.org>
Date:   Thu Apr 26 11:08:23 2012 -0400

    Deal with GLIB_VERSION_MIN_REQUIRED/MAX_ALLOWED being a "future" value

    If GLIB_VERSION_MIN_REQUIRED or GLIB_VERSION_MAX_ALLOWED was defined
    to a future value, we were essentially treating it as
    GLIB_VERSION_0_0. Fix to treat it as being in the future instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=674898

 glib/gversionmacros.h | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit 4ac0d78d5ddde773b7abf05e4c5e128a8acb835d
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 29 17:58:41 2012 -0400

    GString: Tweak documentation, add g_string_free_to_bytes()

    The docs for GString should really mention GByteArray, and what makes
    it different.  Drop the comparison to Java which is dated and actually
    inaccurate (because StringBuffer operates on Unicode).

    While we're here, add g_string_free_to_bytes(), which further
    complements the spread of GBytes-based API.  For example, one can
    create a buffer using GString, then send it off via
    g_output_stream_write_bytes().

    https://bugzilla.gnome.org/show_bug.cgi?id=677064

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gstring.c                        | 48
 ++++++++++++++++++++++++++++++-----
 glib/gstring.h                        |  3 +++
 glib/tests/string.c                   | 21 +++++++++++++++
 5 files changed, 68 insertions(+), 6 deletions(-)

commit d72116d8b7c802895be6b02093342fd9e770813d
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Fri Jul 6 09:19:48 2012 -0400

    gdbus-codegen: Don't generate invalid GObject property names

    For a D-Bus property with name "Type" (fairly common), we used to
    generate a GObject property with name "type-" and C accessors
    get_type_() (to avoid clashing with the GType getter), set_type_()
    (for symmetri).

    However, the rules for GObject property names are fairly rigid and
    specifically prohibit names ending in a dash.

    Therefore change things so the chosen GObject property name is "type"
    but preserve the naming rules for the C getter and setter (for the
    same reasons: avoiding name clashing and symmetri).

    This change does break the API of generated code (but only on the
    GObject property level, the C symbols are not changed) but strictly
    speaking the behavior was undefined since "type-" was an invalid
    GObject property name.

    Also add a test case for this.

    Bug 679473.

    https://bugzilla.gnome.org/show_bug.cgi?id=679473

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/gdbus-2.0/codegen/dbustypes.py |  3 ++-
 gio/tests/gdbus-test-codegen.c     | 28 ++++++++++++++++++++++++++++
 gio/tests/test-codegen.xml         |  4 ++++
 3 files changed, 34 insertions(+), 1 deletion(-)

commit 2a87010831db5d4c18905103e9e7d804546552bf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Mar 7 12:54:04 2012 +0000

    Constify collect and lcopy strings in GTypeValueTable

    This avoids warnings when creating idiomatic value tables, like:

      static const GTypeValueTable _clutter_shader_float_value_table = {
        clutter_value_init_shader_float,
        clutter_value_free_shader_float,
        clutter_value_copy_shader_float,
        clutter_value_peek_pointer,
        "ip",
        clutter_value_collect_shader_float,
        "pp",
        clutter_value_lcopy_shader_float
      };

    Because the strings are literals. And, really: nobody should be using
    allocated values for the collection and lcopy strings.

    https://bugzilla.gnome.org/show_bug.cgi?id=671545

 gobject/gtype.h           | 4 ++--
 gobject/gvaluecollector.h | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

commit ab4cc22ba5d7a1a9ee72eaccd171ac1fc82bfb5c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 5 22:25:49 2012 -0400

    Improve the g_dir_read_name documentation

    This function can return NULL in error cases as well. Document
    this, and explain how to discriminate the cases.
    https://bugzilla.gnome.org/show_bug.cgi?id=639771

 glib/gdir.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit f416ece1039f65ce77df6983a872950c82877e37
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Jul 4 04:25:41 2012 +0200

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 04af05fd1f648aca3e2aa805df5a376a992a04d3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 3 21:14:41 2012 -0400

    Drop unneeded includes

 gio/gcharsetconverter.c | 1 -
 gio/glocalfileinfo.c    | 1 -
 gio/gwin32appinfo.c     | 2 +-
 3 files changed, 1 insertion(+), 3 deletions(-)

commit 32192ee9e4210a12b76ee5cbfbb8b6f2d957d3e9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 3 21:13:32 2012 -0400

    Split gcontenttype.c

    Instead of a giant #if G_OS_WIN32 #else #endif around the entire
    file, just split it into gcontenttype.c and gcontenttype-win32.c.

 gio/Makefile.am          |   5 +-
 gio/gcontenttype-win32.c | 378
 +++++++++++++++++++++++++++++++++++++++++++++++
 gio/gcontenttype.c       | 353
 +------------------------------------------
 3 files changed, 382 insertions(+), 354 deletions(-)

commit af3b1674cd65e1d650fb82bc93483391b99feb50
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Tue Jul 3 20:04:05 2012 +0200

    win32: fix build after bug 674452

 gio/gcontenttype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d7fa1c7839dfeb482f549ca9bb3ab7027e9994a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 3 15:40:35 2012 -0400

    GObject docs fixup

 docs/reference/gobject/Makefile.am          |  1 +
 docs/reference/gobject/gobject-sections.txt | 29
 +++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)

commit 72660997bc0b0ee81095b85911992db3c644e5da
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Tue Jul 3 21:22:16 2012 +0200

    glib/deprecated: Fix some version typos

 glib/deprecated/gthread-deprecated.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit be249ac6ae461b2f8c3995d7311033f82738827a
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Tue Jul 3 21:01:17 2012 +0530

    Assamese translation updated

 po/as.po | 388
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 238 insertions(+), 150 deletions(-)

commit 45c48bffdd3e684470be38a03dea466f78e184bd
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Tue Jul 3 16:55:12 2012 +0300

    Updated Bulgarian translation

 po/bg.po | 316
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 187 insertions(+), 129 deletions(-)

commit 489b947c3be8ea892d415ac1b623e5bfc3445439
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Jul 2 13:41:32 2012 +0100

    Fix the 'Since' tag for G_SOURCE_{REMOVE,CONTINUE}

    The Since tag for these was saying 2.28 but it was actually added in
    2.31. It looks like all of the Since tags list stable version numbers
    so this patch bumps that up to 2.32.

    https://bugzilla.gnome.org/show_bug.cgi?id=679258

 glib/gmain.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 938c28b36bf7090c654802d877d76f404d783799
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Jul 2 17:56:54 2012 +0200

    regex: Require PCRE 8.13

    Bump the required version for external PCRE to 8.13, to fix the build
    with external PCRE.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b5b1179d3fc04d4ec4fd03e4df852ac7c02d4e00
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jul 2 17:34:59 2012 +0200

    Updated Spanish translation

 po/es.po | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

commit 4b787aa31d8e71d108cbf0a61db3dd7805cf2205
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jul 2 17:29:02 2012 +0200

    Updated Spanish translation

 po/es.po | 373
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 229 insertions(+), 144 deletions(-)

commit 1519d6b894c95968fdd13a2004cf0c9d97efe7bd
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jul 2 17:24:45 2012 +0200

    Fixed a a «big bug» in a string ;-)

 glib/gregex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7483315f83cac1f54fd72c331e6eff0781b8560f
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 17 22:51:44 2012 +0200

    regex: Fix unicode othercasing

    Reorder the toupper/tolower calls when othercaseing, so this
    function is bug-for-bug compatible with the pcre internal tables.

    https://bugzilla.gnome.org/show_bug.cgi?id=678273

 glib/pcre/pcre_tables.c | 4 ++--
 glib/tests/regex.c      | 6 ++++++
 2 files changed, 8 insertions(+), 2 deletions(-)

commit a2f54a3408fcf45cae991b6886f4495fdae1f5ac
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 14 22:04:05 2012 +0200

    regex: Add FIRSTLINE compile flag

    This option exists since PCRE 6.0.

 glib/gregex.c      | 2 ++
 glib/gregex.h      | 5 ++++-
 glib/tests/regex.c | 3 +++
 3 files changed, 9 insertions(+), 1 deletion(-)

commit e99e34f65f6cf66feaccde29e480965d525586ae
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 23:24:07 2012 +0200

    regex: Add NOTEMPTY_ATSTART match option

    Since PCRE 8.00 it supports a variant of PCRE_NOTEMPTY that works
    similarly except that it only applies to the start of the matched
    string
    but permits empty matches further in.

 glib/gregex.c      | 32 +++++++++++++++++---------------
 glib/gregex.h      | 32 ++++++++++++++++++--------------
 glib/tests/regex.c | 15 +++++++++++++--
 3 files changed, 48 insertions(+), 31 deletions(-)

commit 1171215014bb9406ff8ae1ea91b1c251b4e7d71b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 22:50:52 2012 +0200

    regex: Add PARTIAL_HARD match option

    Since PCRE 8.00 it supports a new partial matching method
    PCRE_PARTIAL_HARD.

 glib/gregex.c      | 21 +++++++++++++++++----
 glib/gregex.h      |  9 ++++++++-
 glib/tests/regex.c | 11 +++++++++--
 3 files changed, 34 insertions(+), 7 deletions(-)

commit 0a2967030af2a5cce9fd6ae916a535f26239bcd3
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 20:12:11 2012 +0200

    regex: Add JavaScript compat mode

    Since PCRE 7.7, there's a flag that changes the behaviour to be more
    JavaScript compatible. Since it's no effort to expose it, just do so.

 glib/gregex.c      | 52
 ++++++++++++++++++++++++++++++++--------------------
 glib/gregex.h      |  8 +++++++-
 glib/tests/regex.c |  1 +
 3 files changed, 40 insertions(+), 21 deletions(-)

commit e5550a24db48ce6f67b0f3b8df9dc467087c941b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 18:11:49 2012 +0200

    regex: Don't leak internal PCRE options

    g_regex_get_compile_get_compile_flags() and g_regex_get_match_flags()
    were leaking PCRE flags that don't exist in the corresponding
    public GRegexCompileFlags and GRegexMatchFlags; this change masks
    these internal flags.

 glib/gregex.c      | 36 +++++++++++++++++++++------
 glib/tests/regex.c | 73
 +++++++++++++++++++++++++++++++++++++-----------------
 2 files changed, 78 insertions(+), 31 deletions(-)

commit 26d91ddc08b41533a6952014fd9c19c80865e840
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 16:44:52 2012 +0200

    regex: Add BSR_ANYCRLF and BSR_ANY match options

    These flags override the compile option at match time. They use
    PCRE_BSR_ANYCRLF
    and PCRE_BSR_UNICODE, resp., which make \R match only CR, LF and CRLF,
    or any
    Unicode newline character or character sequences, resp.

 glib/gregex.c |  6 +++++-
 glib/gregex.h | 13 ++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

commit 88ac3839f5d3d8d05ea7ea391209dff378866f57
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 16:44:10 2012 +0200

    regex: Add BSR_ANYCRLF compile option

    When this flag is set, \R only matches CR, LF and CRLF.

 glib/gregex.c | 4 +++-
 glib/gregex.h | 7 ++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

commit 86a04a05e6b697361c58b1577c52b4a713bf18d3
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 16:42:50 2012 +0200

    regex: Fix newline definition for system PCRE

    While we PCRE_BSR_UNICODE is the default in the internal PCRE,
    that may
    not be true for the system one. Force the PCRE_BSR_UNICODE flag on it.

 glib/gregex.c      | 6 ++++++
 glib/tests/regex.c | 3 ++-
 2 files changed, 8 insertions(+), 1 deletion(-)

commit 91ba8ae1560d4132e4ed2631b8e69684c3c863d3
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 16:07:04 2012 +0200

    regex: Don't return from inside a g_once_init_enter/leave block

    When using the system PCRE, and it was compiled with incompatible
    options,
    the code was returning from inside a g_once_init_enter/leave block
    without
    calling g_once_init_leave().

 glib/gregex.c | 36 ++++++++++++++++--------------------
 1 file changed, 16 insertions(+), 20 deletions(-)

commit 69a12e3275c6e068929d2ed69ba1af87df0f851b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 15:57:15 2012 +0200

    regex: Add accessor for PCRE_INFO_HASCRORLF

    This flag is new in PCRE 7.3, and checks whether there is an explicit
    CR or LF reference in the pattern.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gregex.c                         | 21 +++++++++++++++++++++
 glib/gregex.h                         |  1 +
 glib/tests/regex.c                    | 11 +++++++++++
 5 files changed, 35 insertions(+)

commit 7ada9765160ce8a41fae0a0e0435ad00a8037601
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 15:36:11 2012 +0200

    regex: Remove message for unused error code

    Since PCRE 7.3 the PCRE_ERROR_NULLWSLIMIT error is not returned
    anymore.

 glib/gregex.c | 2 --
 1 file changed, 2 deletions(-)

commit 592531019ede1c6d48304ba8babce0a5470d16d7
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 15:26:02 2012 +0200

    regex: Add NEWLINE_ANYCRLF match option

    This PCRE option is new in PCRE 7.1.

 glib/gregex.c | 38 ++++++++++++++++++++------------------
 glib/gregex.h | 31 +++++++++++++++++++------------
 2 files changed, 39 insertions(+), 30 deletions(-)

commit c8c049b177dc40c0242409389ddccfa59ba88953
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 15:23:37 2012 +0200

    regex: Add NEWLINE_ANYCRLF compile option

    The PCRE_NEWLINE_ANYCRLF option is new in PCRE 7.1. With it set,
    the only
    only newline sequences recognised are CR, LF and CRLF.

 glib/gregex.c      |  4 +++-
 glib/gregex.h      | 21 ++++++++++++++-------
 glib/tests/regex.c |  2 --
 3 files changed, 17 insertions(+), 10 deletions(-)

commit 7e8b5ea442f235f5e272b0fe7a4768bf897b6aad
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 14:48:51 2012 +0200

    regex: Assert that our flags values are the same as PCRE's

    We rely on those flags having the same values as PCRE's (so we
    can pass
    them right through), so assert this at compile time.

 glib/gregex.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 03611f7c0670ea14eedbc121972aed7ce60bb9ee
Author: Simon Feltman <s.feltman@gmail.com>
Date:   Wed Jun 13 23:20:17 2012 -0700

    Updated codegen to work with python3.

    Most changes were just replacing usage of "has_key" with "in".
    Also updated the sorting function which was simplified and
    changed to a "key" function instead of "cmp" (which is no longer
    supported in python3. Verified everything builds with
    python 2.7 and 3.

    https://bugzilla.gnome.org/show_bug.cgi?id=678066

 gio/gdbus-2.0/codegen/codegen.py         | 15 +++++----------
 gio/gdbus-2.0/codegen/codegen_docbook.py |  8 +++-----
 gio/gdbus-2.0/codegen/codegen_main.py    |  4 ++--
 gio/gdbus-2.0/codegen/parser.py          | 22 +++++++++++-----------
 gio/gdbus-2.0/codegen/utils.py           | 17 +++++------------
 5 files changed, 26 insertions(+), 40 deletions(-)

commit 6d5484b2962c2a365983e8a37295f298909bca00
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Jun 8 01:08:10 2012 +0200

    regex: Handle PCRE_ERROR_RECURSIONLOOP

    Was missing from the error conversion routine.

 glib/gregex.c | 2 ++
 1 file changed, 2 insertions(+)

commit 7e5615138af8a5044bb5adac0804a59073d4cb69
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Jun 6 21:55:01 2012 +0200

    regex: Update GRegexError with newer PCRE error codes

    Update the GRegexError enum with new PCRE errors up to PCRE 8.30.

    https://bugzilla.gnome.org/show_bug.cgi?id=677579

 glib/gregex.c      | 145
 +++++++++++++++++++++++++++++++++++------------------
 glib/gregex.h      |  40 +++++++++++++--
 glib/tests/regex.c |  51 +++++++++++++++++--
 3 files changed, 181 insertions(+), 55 deletions(-)

commit 3be1d864d838a9015866656764c0a615f63f63ec
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 18:22:44 2012 +0200

    regex: Simplify regex compile tests

    Use a macro instead of repeating the same code over and over again.

 glib/tests/regex.c | 106
 +++++++++++------------------------------------------
 1 file changed, 22 insertions(+), 84 deletions(-)

commit 20ab7e2aea955e4a70be43cbb6e4237afd98bf7b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 7 19:53:17 2012 +0200

    regex: Deprecate an obsolete error code

    G_REGEX_ERROR_DEFINE_REPETION is dead and never raised by PCRE.

 glib/gregex.c | 3 ---
 glib/gregex.h | 2 +-
 2 files changed, 1 insertion(+), 4 deletions(-)

commit d9e8d3e0f0fc00435b161dd3dfb1b8727922ba00
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Jun 6 21:54:08 2012 +0200

    regex: Fix PCRE error code conversion

    Use the shifted error codes for comparisions.

    https://bugzilla.gnome.org/show_bug.cgi?id=677578

 glib/gregex.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 3173fca9cc520785f82e602fe830c220c2d1820f
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Jun 30 09:55:26 2012 +0700

    Updated Vietnamese translation

 po/vi.po | 103
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 64 insertions(+), 39 deletions(-)

commit 7ddefe3f4b2221147bd77f362760e8fb00f7e624
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Jun 30 09:42:53 2012 +0700

    po/vi: import from Damned Lies

 po/vi.po | 661
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 362 insertions(+), 299 deletions(-)

commit 64bfbc2cf074de087c4e195d6409af9c24dc2f28
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 29 13:47:15 2012 -0400

    GOptionContext: Don't show headings without options

    If the only entry in the main group is for the rest args,
    don't bother printing "Application Options".

 glib/goption.c              |  2 ++
 glib/tests/option-context.c | 27 ++++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

commit 08cfcdc81add6f6f2247b1cc82d2c15ad27001f0
Author: Johan Dahlin <johan@gnome.org>
Date:   Fri Jun 29 11:59:23 2012 -0300

    Use the same Python as we found in configure

    Don't assume /usr/bin/python is python 2.x, on newer Ubuntu versions
    it's actually python 3.x.

 gio/gdbus-2.0/codegen/Makefile.am      | 2 +-
 gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit df319ca49ca1e8caff1a4f17e8e53628b33b8d56
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Thu Jun 28 17:44:14 2012 +0300

    Updated Greek translation

 po/el.po | 94
 +++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 49 insertions(+), 45 deletions(-)

commit d023b81a7a261782f2c88df7751f3476bd802b99
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Wed Jun 27 16:30:38 2012 +0200

    Fix /contenttype/guess test

    After fixing bug 674452 this test case now reliably fails, as "ABC
    abc" is text
    and definitively not PowerPoint. It previously worked as
    g_content_type_guess()
    was reading beyond the boundary of the data due to specifying -1
    as data
    length.

    Update that test case to expect a PO template instead, and add two
    more with a
    definitive PO template syntax and some binary data. We do not
    currently have a
    MIME magic for PowerPoint, so we cannot actually detect it with
    certainty, but
    at least make sure that the returned MIME type is correct.

    https://bugzilla.gnome.org/show_bug.cgi?id=678941

 gio/tests/contenttype.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

commit c35106fcc4a736a2cdd3566042da15216dea415b
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jun 28 15:38:06 2012 +0200

    Fix the mimetype default fix

    We need to ignore the defaults.list item only when there
    was a mimetype handler found in a previous mimetype, not
    if one was found for the same mimetype as the one that
    is listed in defaults.list (same for the new-style defaults).

 gio/gdesktopappinfo.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit f14c0112d07832b0ae4c75fd8d348e8f15d131d1
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jun 28 14:50:37 2012 +0200

    Fix default app lookup wrt parent types and defaults.list

    There was an issue when looking up the default handler
    for a type where a supertype was listed in defaults.list.
    We would pick the default for the parent type even if
    there was a handler for the more specific type.

    In the case of the new-style defaults marking (
    "Default Applications" in mimeapps.list) we were already
    checking for a more specific handler befor using a default,
    but we also need to do a similar check for the defaults.list
    case.

    https://bugzilla.gnome.org/show_bug.cgi?id=678944

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1ae30806403e556c8297a16a25a18687d9e80f89
Author: Stef Walter <stefw@gnome.org>
Date:   Thu Jun 28 14:41:39 2012 +0200

    GTlsInteraction: Fix incorrect locking of mutex

     * Fix incorrect locking of mutex in
     g_tls_interaction_invoke_ask_password()

    https://bugzilla.gnome.org/show_bug.cgi?id=678758

 gio/gtlsinteraction.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 139c1ce9884a91be167ab9d48d3c4b0df89dd112
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Wed Jun 27 09:25:37 2012 +0200

    gio/tests/contenttype: Call g_content_type_guess() with valid data len

    g_content_type_guess() requires specifying a valid data length. Fixes
    a
    segfault when running the test.

    Also add an explicit check for this and return XDG_MIME_TYPE_UNKNOWN
    when
    data_size is specified as -1, to avoid crashing.

    https://bugzilla.gnome.org/show_bug.cgi?id=674452

 gio/gcontenttype.c      | 8 ++++++++
 gio/tests/contenttype.c | 4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)

commit 95f29687e14423ca541cac1c00137375b935168d
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Wed Jun 27 11:46:28 2012 +0200

    /mainloop/timeouts test: Reduce race condition

    Due to load, particular traits of the architecture, or other
    circumstances, the
    /mainloop/timeouts sometimes manages to call the "every
    100 ms" timer loop only 9 times in 1050 ms.

    This is an inherent race-condition in the test; allow it some slack
    and accept
    9 times as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=678959

 glib/tests/mainloop.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 240ef2b9e830f2aa92356368902bec813f3c1ef8
Author: Philipp Kern <pkern@debian.org>
Date:   Wed Jun 27 10:57:50 2012 +0200

    valuetransform: Fix definition of ulong_bool

    On big endian 64 bit machines such as s390x, an uint is too small
    to hold a
    ulong_bool; it needs to be an actual ulong.

    https://bugzilla.gnome.org/show_bug.cgi?id=678949
    http://bugs.debian.org/662057

 gobject/gvaluetransform.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c5e5e95a217dc43a70bd998fce16ed93225e0cfd
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Wed Jun 27 07:17:40 2012 +0300

    Updated Bulgarian translation

 po/bg.po | 391
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 203 insertions(+), 188 deletions(-)

commit 72af44cb1249f02cbe56376a751e3ae6d3b39ea8
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Tue Jun 26 18:32:29 2012 +0200

    Allow slightly too small poll duration in /socket/timed_wait test

    Sometimes the poll duration in the /socket/timed_wait test is
    slightly lower
    than the requested 100000, causing failures like

    ERROR:/build/buildd/glib2.0-2.33.2/./gio/tests/socket.c:619:test_timed_wait:
      assertion failed (poll_duration > = 100000): (99240 >= 100000)
    FAIL

    Adjust the test to also allow some jitter in the "too small"
    direction, similar
    to the already existing span for "slightly too large".

    https://bugzilla.gnome.org/show_bug.cgi?id=678881

 gio/tests/socket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d6aa3b3bdd9f0fe1d9f2d2eed1d881bc189bcfe8
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 25 20:46:28 2012 -0400

    GTestDBus: Don't call into gvfs

    https://bugzilla.gnome.org/show_bug.cgi?id=678808

 gio/gtestdbus.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 55bac5da0ada8f46824a4d565cdd8ea7e3774a47
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 11 13:08:13 2012 -0400

    GMainContext: reorganize source list to avoid O(n) behavior

    Rather than having a single priority-ordered list of GSources, store a
    list of queues of each priority level. This means that adding a source
    is now O(n) in the number of unique priority levels currently being
    used, rather than O(n) in the total number of sources.

    https://bugzilla.gnome.org/show_bug.cgi?id=619329

 glib/gmain.c | 154
 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 126 insertions(+), 28 deletions(-)

commit aaaaab91de10445a178e8183a95d98189249e868
Author: Dan Winship <danw@gnome.org>
Date:   Fri Jun 22 22:21:05 2012 -0400

    gmain: add GSourceIter

    add an explicit iterator for GMainContext sources

    https://bugzilla.gnome.org/show_bug.cgi?id=619329

 glib/gmain.c | 154
 +++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 92 insertions(+), 62 deletions(-)

commit 8e65c304315a7f54addd9c2771d20eca007f9d6a
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jun 23 12:01:40 2012 -0400

    gmain: rename some variables for clarity

    https://bugzilla.gnome.org/show_bug.cgi?id=619329

 glib/gmain.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit 532f463eaf48d6a560977fd64479cfa05433162e
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 11 10:22:45 2012 -0400

    gmain: child sources must always have same priority as parent

    A child source does not have a priority of its own; it must have the
    same priority as its parent. Enforce this in
    g_source_set_priority_unlocked().

    https://bugzilla.gnome.org/show_bug.cgi?id=619329

 glib/gmain.c | 3 +++
 1 file changed, 3 insertions(+)

commit d981d79a4291f76373f7f0e3abec762977133e27
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 30 12:15:04 2011 -0400

    GSource: initialise ->priv on construct

    For efficiency, we waited until setting up child sources to allocate
    ->priv.  Simplify things a bit by allocating it from the start.

    https://bugzilla.gnome.org/show_bug.cgi?id=619329

 glib/gmain.c | 39 ++++++++++++++-------------------------
 1 file changed, 14 insertions(+), 25 deletions(-)

commit 56de38da7dc4ffd1c60c336211806e345dbcaf42
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 24 09:48:10 2012 -0400

    tests: add a timing test for adding lots of GSources

    https://bugzilla.gnome.org/show_bug.cgi?id=619329

 tests/.gitignore  |   1 +
 tests/Makefile.am |   2 +
 tests/sources.c   | 189
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 192 insertions(+)

commit 4780ee5d4a6057312abee9a8fcaad45a9897fe0e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 25 23:23:36 2012 -0400

    glib/: gtk-doc cleanup

 docs/reference/glib/glib-overrides.txt | 5 +++++
 glib/docs.c                            | 3 +++
 glib/gkeyfile.c                        | 2 +-
 glib/gunicode.h                        | 2 +-
 4 files changed, 10 insertions(+), 2 deletions(-)

commit 130c249eacfba3b77ec110880661386e7945b898
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 25 19:37:05 2012 -0400

    Fix previous commit

 gio/tests/actions.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b837cdde69fa39ed10aaf8791ab656ad41dedeb0
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 25 18:14:10 2012 -0400

    gio/tests/actions: Plug a memory leak

 gio/tests/actions.c | 1 +
 1 file changed, 1 insertion(+)

commit b65194e8dfd3d9c3fabb16a189c0b326c175f9d5
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 25 17:05:45 2012 -0400

    GIOScheduler: Disconnect from cancellable after job completes

    This was causing crashes when a cancellable was canceled after the job
    had completed.

    https://bugzilla.gnome.org/show_bug.cgi?id=678576

 gio/gioscheduler.c | 49 ++++++++++++++++++++++---------------------------
 1 file changed, 22 insertions(+), 27 deletions(-)

commit 03f2f3b0027e9239fc501539b1c16aefaee863d6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 25 16:55:31 2012 -0400

    *bump*

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a5ed95c9ad973e30c1c1938c55ffe60f4a14dab7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 25 16:29:53 2012 -0400

    GLib 2.33.3

 NEWS         | 44 ++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 45 insertions(+), 1 deletion(-)

commit 115ca3d8970ca32d824a201a9cc8f1fb24f3155e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 25 10:37:51 2012 -0400

    Revert "GIOScheduler: Avoid constant iteration over pending job list"

    This reverts commit 2839297686a9305b4fa909b93c337ef1d1a5e94b.

    Conflicts:

            gio/gioscheduler.c

    https://bugzilla.gnome.org/show_bug.cgi?id=678576

 gio/gioscheduler.c | 41 ++++++++++++++++++++++++++---------------
 1 file changed, 26 insertions(+), 15 deletions(-)

commit 1354ef25402e0d340aa52521a5f51b1fb387705c
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Mon Jun 25 18:29:01 2012 +0200

    GDbusActionGroup: always set strict when _query_action fails

 gio/gdbusactiongroup.c | 1 +
 1 file changed, 1 insertion(+)

commit 4b66dc1ca6657171d7d9b45568b3479653a525f8
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Jun 25 00:01:07 2012 +0200

    Updated Galician translations

 po/gl.po | 367
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 191 insertions(+), 176 deletions(-)

commit bea994199379f4e09091b030c46fd922b304d0d2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 23 20:55:51 2012 -0400

    Mark utf8 performance tests as such

 glib/tests/utf8-performance.c | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

commit c5561ff6992bfbf2b92af401bc6f96317514b4a3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 23 17:58:51 2012 -0400

    Remove a few redundant ;s

 gio/gdbusobjectmanagerclient.c | 2 +-
 gio/gresourcefile.c            | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 02eed18a4e745b4b4a0f0d5d2892faaecbd2c23d
Author: Phil Clayton <phil.clayton@lineone.net>
Date:   Tue Jun 12 16:09:19 2012 +0100

    Add missing annotation to GDBusConnection::closed

    Add annotation (allow-none) to the parameter error.

    https://bugzilla.gnome.org/show_bug.cgi?id=677952

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 90f70099d86dbf6c249137f9fbaead1df8002f6e
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Thu May 31 23:48:35 2012 +0100

    Update the comment in gmarshal.list

    The current note makes it look like the marshaller code generation has
    been deprecated in favour of the libffi-based generic marshaller; this
    is not the case, so we should probably clarify the point a bit.

    https://bugzilla.gnome.org/show_bug.cgi?id=677235

 gobject/gmarshal.list | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 1c6070a6792b78f44df9746ee96116cbbcc4dd40
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 23 17:51:11 2012 -0400

    Add a test for G_USER_DIRECTOR_DESKTOP

    Based on a patch by Marc-Antoine Perennou,
    https://bugzilla.gnome.org/show_bug.cgi?id=676594

 glib/tests/utils.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 53b48dfd3bce21fc6b52128859b01329efa10d52
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 17 22:51:44 2012 +0200

    regex: Fix unicode othercasing

    The old _pcre_ucp_othercase() function was wrong in returning
    NOTACHAR (0xffffffff) for characters that aren't changed by upper-
    and lower-casing. This led to PCRE internally using incorrect (or
    at least inefficient) character classes when using G_REGEX_CASELESS.

    E.g. [Z-\x{100}] turned into:

    [Z\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{39c}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{fffe}\x{178}z-\x{101}]

    instead of the expected and efficient

    [Z\x{39c}\x{178}z-\x{101}]

    https://bugzilla.gnome.org/show_bug.cgi?id=678273

 glib/pcre/pcre_tables.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

commit 22e9f72a8e23c9469c2891e48e082be664429dac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 23 17:30:10 2012 -0400

    Add a note of caution to the g_slist_delete_link() docs

 glib/gslist.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 905184b3ef04ea6068bd115111354cebe34d3bbc
Author: Sasi Bhushan Boddepalli <sasi@swecha.net>
Date:   Sat Jun 23 10:16:28 2012 +0530

    Updated Telugu Translation

 po/te.po | 540
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 305 insertions(+), 235 deletions(-)

commit 991d07d66a8b111131181a8db15abbb042ee7c6d
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 11:10:00 2012 -0400

    GIOScheduler: Use a GList, not GSList for jobs

    In general, code using g_slist_delete_link() is broken, because it
    potentially requires an O(n) traversal.  Just switch to GList in this
    case.

    The performance hit here was exacerbated by the fact that we were
    holding a mutex that needed to be accessed by all threads.

    https://bugzilla.gnome.org/show_bug.cgi?id=678576

 gio/gioscheduler.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 2839297686a9305b4fa909b93c337ef1d1a5e94b
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 10:20:20 2012 -0400

    GIOScheduler: Avoid constant iteration over pending job list

    The iteration over the list (while holding a mutex) was a serious
    performance hit for asynchronous I/O.  We can just use
    g_cancellable_connect().

    https://bugzilla.gnome.org/show_bug.cgi?id=678576

 gio/gioscheduler.c | 41 +++++++++++++++--------------------------
 1 file changed, 15 insertions(+), 26 deletions(-)

commit a8ddd52a45ccf1e9a6aa6b5d873e12eda3a205df
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 15:44:16 2012 -0400

    GRand: Check return value of fopen directly

    This doesn't fix anything, it should just silence some static analysis
    tools.

 glib/grand.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 01d8d43d0b66f349a38075a3ebfd82fc9bed084a
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 15:37:39 2012 -0400

    gspawn: Abort if we can't open /dev/null

    This really "shouldn't happen", but if we have an assertion here, it
    will help static analysis tools know we're not hitting undefined
    state.

 glib/gspawn.c | 2 ++
 1 file changed, 2 insertions(+)

commit 7d622157f055d9fb0ae3686f2b7a4fd1952af258
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 15:33:51 2012 -0400

    tests/unix: Ensure buffer is NUL terminated

 glib/tests/unix.c | 1 +
 1 file changed, 1 insertion(+)

commit 56411bb67807cb5306f495d41276fe6855cdcee7
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 12:12:53 2012 -0400

    gsignal: Properly handle NULL nodes

 gobject/gsignal.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit ccd30d6816564db42b2ce13afc6bdf32274206e8
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 12:12:33 2012 -0400

    gresourcefile.c: Remove stray semicolon

 gio/gresourcefile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c1ada372e968db4c5ccdc684d21b2a3e53514b85
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 12:08:05 2012 -0400

    gmenu: Remove stray semicolon in g_menu_clear_item()

 gio/gmenu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 598c3d233a560c10133b9a8a426ae87288a98584
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 12:06:34 2012 -0400

    tests: Add missing initializer for return value

 gio/tests/test-pipe-unix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f626cb3c16e415a78e21c7b1009e0fb9851fa3b4
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 12:05:39 2012 -0400

    tests: Add missing va_end()

 gio/tests/gapplication.c | 2 ++
 1 file changed, 2 insertions(+)

commit eef6f0add83c9a82b7544b519f292a90d9356a74
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 12:00:04 2012 -0400

    gfileutils: Remove extra fclose()

    This is a regression introduced by:
    commit 6ac8e6108cf15884e28fe1ecd3042dfce0e11dfd
    Author: Matthias Clasen <mclasen@redhat.com>
    Date:   Tue Jun 14 10:12:46 2011 -0400

        Don't leak resources in error cases

 glib/gfileutils.c | 1 -
 1 file changed, 1 deletion(-)

commit e756bef2e3b93a09b38a4f793a7b7265584457c8
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Jun 22 13:44:29 2012 +0200

    Updated Spanish translation

 po/es.po | 61
 ++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 32 insertions(+), 29 deletions(-)

commit 8ed955ceba9868bff43bdd591a36c12294735ab2
Author: Stef Walter <stefw@gnome.org>
Date:   Sun May 13 07:44:57 2012 +0200

    gresolver: More robust parsing of DNS responses

     * Handle truncated responses, and invalid names

    https://bugzilla.gnome.org/show_bug.cgi?id=675966

 gio/gresolver.c | 199
 ++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 134 insertions(+), 65 deletions(-)

commit 49e50757076b589bd21274221b3f69f7b2b785f3
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Thu Jun 21 23:39:14 2012 -0400

    Add g_dbus_object_manager_server_is_exported()

    Returns whether a GDBusObjectSkeleton is exported on a
    GDBusObjectManagerServer.

    https://bugzilla.gnome.org/show_bug.cgi?id=678539

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdbusobjectmanagerserver.c      | 34
 ++++++++++++++++++++++++++++++++++
 gio/gdbusobjectmanagerserver.h      |  2 ++
 gio/gio.symbols                     |  1 +
 4 files changed, 38 insertions(+)

commit aae1633d0f0c75b7d9c2dd7b8c10eb279f70fc0d
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 21 18:32:06 2012 -0400

    GUnixVolumeMonitor: Make use of new g_list_copy_deep()

 gio/gunixvolumemonitor.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

commit 2fd6eb7e1cfc878d011ec0b7e58c5e696186516e
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Thu Jun 21 12:23:23 2012 -0300

    Adds g_list_copy_deep and g_slist_copy_deep

    They make a full (deep) copy of a list.

    In contrast with g_[s]list_copy(), these functions take a function
    as a argument
    to make a copy of each list element, in addition to copying the list
    container itself.

    The functions g_[s]list_copy() were reimplemented to just call the
    new functions
    with NULL as the function argument, which will behave like current
    implementation.

    https://bugzilla.gnome.org/show_bug.cgi?id=675024

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/glib.symbols                     |  2 ++
 glib/glist.c                          | 48
 ++++++++++++++++++++++++++++++++---
 glib/glist.h                          |  7 +++++
 glib/gslist.c                         | 48
 ++++++++++++++++++++++++++++++++---
 glib/gslist.h                         |  6 +++++
 glib/tests/list.c                     | 29 +++++++++++++++++++++
 7 files changed, 136 insertions(+), 6 deletions(-)

commit e0f4b2b03b877e0360f56836ebfe454aa3a9dca5
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jun 21 15:13:06 2012 -0400

    gio/tests/proxy-test: fix cleanup

    make sure the proxy threads are in the "waiting for a connection"
    state when we do the final cleanup, or else there are race conditions
    involving which thread processes the GCancellable cancellation first.

 gio/tests/proxy-test.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit e9ec1ad0689dfbb1121e1c5fe5b1aedbe2de568f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 21 06:11:58 2012 -0400

    Install bash completion files in /usr/share/

    The bash-completion code nowadays expects completion files to
    be installed in  /usr/share/bash-completion/completions, and
    expects them to be named like the command they are completing
    for.

    https://bugzilla.gnome.org/show_bug.cgi?id=677782

 gio/Makefile.am                                            | 8 ++++----
 gio/{gdbus-bash-completion.sh => completion/gdbus}         | 0
 gio/{gresource-bash-completion.sh => completion/gresource} | 0
 gio/{gsettings-bash-completion.sh => completion/gsettings} | 0
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 80b6074aa27815e3c824f1e01ccb2431b03feec4
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jun 20 10:14:01 2012 -0400

    gio/tests/pollable: add can_poll() assertions

    Assert that socket streams and socket/pipe-based unix streams are
    pollable, and file-based unix streams are not.

    https://bugzilla.gnome.org/show_bug.cgi?id=677770

 gio/tests/pollable.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

commit 7d0db042234165678f5dfafef3dd96d3af97b56c
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jun 18 15:31:47 2012 -0400

    gdbus: fix generated code to not warn under -Wfloat-equal

    https://bugzilla.gnome.org/show_bug.cgi?id=678333

 gio/gdbus-2.0/codegen/codegen.py | 11 +++++++++--
 gio/tests/gdbus-test-codegen.c   | 31 +++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 2 deletions(-)

commit 599d1a430e787f7cda929b8b0188a01f39453e66
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jun 20 10:19:14 2012 +0800

    msvc_recommended_pragmas.h: Re-enable C4819 warnings

    Apparently the C4819 warnings appear due to a bug on Visual C++
    on DBCS
    locales, so re-enable this.

    Add a note in the Visual C++ Readme.txt's regarding this.

 build/win32/vs10/README.txt | 7 +++++++
 build/win32/vs9/README.txt  | 7 +++++++
 msvc_recommended_pragmas.h  | 3 ---
 3 files changed, 14 insertions(+), 3 deletions(-)

commit 7cf38c6ad76f5b343614bba9d31f683b7edb0620
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Tue Jun 19 18:51:26 2012 +0530

    Assamese translation reviewed

 po/as.po | 1397
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 717 insertions(+), 680 deletions(-)

commit 98f201b73b4ba5b5dfd86ebcd524ea8f73855174
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 19 16:35:26 2012 +0800

    Bug 678332-gio/gconverterinputstream.c: Fix build

    Apparently the previous change to this file broke GCC builds, so
    fix that.

 gio/gconverterinputstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 875854411a4ea5fdd1d9217d7856858d89090cb9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 19 12:04:28 2012 +0800

    Bug 678332-GIO: Fix build on Windows/non-GCC

    -gconverterinputstream.c: Avoid GCCism by not using non-standard
    pointer
     arithmetic on void*, but do a cast to char * as that seems to be
     what the
     variable was used for.
    -gtestdbus.c: Don't include unistd.h unconditionally, and use
    g_usleep()
     instead of usleep(), as usleep() is not universally available.

 gio/gconverterinputstream.c | 2 +-
 gio/gtestdbus.c             | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 08a6f8d27f8d6c059f4c074680218f6bc66f8174
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jun 18 17:09:56 2012 +0800

    build/win32/vs9/glib.vsprops: Cosmetics

    Make it more consistent accross the board by using CopyDir as the
    output/"install" folder.

 build/win32/vs9/glib.vsprops | 514
 ++++++++++++++++++++++---------------------
 1 file changed, 259 insertions(+), 255 deletions(-)

commit b81d7886525ea7d53a0bf7f8e845827eea5cf912
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Jun 18 07:39:23 2012 +0200

    Fix g_utf8_validate() out argument transfer mode

    The "end" argument is unusual in g_utf8_validate(): it's not a
    classic out
    argument which gets allocated by the called function, but merely
    points into
    one of its input arguments. Thus it is "transfer none".

    https://bugzilla.gnome.org/show_bug.cgi?id=672889

 glib/gutf8.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a1da843cb48de1ef080c20b1c8ebc9bc88688ce6
Author: Dan Winship <danw@gnome.org>
Date:   Sat Jun 16 10:38:45 2012 -0400

    docs: fix an example

 docs/reference/gio/gdbus-codegen.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit defa25f3d00619947720be0bcda2357bd43e718f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 15 18:53:09 2012 -0400

    GKeyFile: Deal better with blank lines

    There is no need to store a has_trailing_blank_line boolean for
    each group, we can just check this at the time we assemble the data.

    This fixes a problem without roundtrips where we would sometimes
    add an extra blank line between groups.

    The testcase here is inspired by
    https://bugzilla.gnome.org/show_bug.cgi?id=677817

 glib/gkeyfile.c      | 12 +++---------
 glib/tests/keyfile.c | 26 ++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 9 deletions(-)

commit d0c8895a073625ce87bf1604b9ab72cc7e15c616
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 15 15:16:13 2012 -0400

    GWakeup: Avoid extraneous wakeups

    We were checking the wrong number here, and waking up unnecessarily.
    https://bugzilla.gnome.org/show_bug.cgi?id=678052

 glib/gmain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a5b3729ab447dd93ba337fa916067d5af2419dc
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Fri Jun 15 14:41:20 2012 +0200

    Improve g_find_program_in_path documentation

    Document that g_find_program_in_path returns a newly-allocated string

 glib/gutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3647a3dcaaf0c877d0ea9398bbf5d9846a3cacfb
Author: Tom Tryfonidis <tomtryf@gmail.com>
Date:   Fri Jun 15 13:15:48 2012 +0300

    Updated Greek translation

 po/el.po | 1533
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 733 insertions(+), 800 deletions(-)

commit 211d50ac7418cd05d8a7828fca388c127e02308a
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Jun 14 13:48:29 2012 +0200

    Updated Spanish translation

 po/es.po | 142
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 77 insertions(+), 65 deletions(-)

commit a090a3680b093e7473cc5e760bdf3454f8ca9e9e
Author: Khaled Hosny <khaledhosny@eglug.org>
Date:   Wed Jun 13 21:00:44 2012 +0200

    Updated Arabic translation

 po/ar.po | 5639
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 2991 insertions(+), 2648 deletions(-)

commit ee19ddcb1423814edc76aa03dd3c2252e9f722b4
Author: William Jon McCann <jmccann@redhat.com>
Date:   Mon Apr 30 12:51:25 2012 -0400

    Update to use XDG cache home for thumbnails

    https://bugzilla.gnome.org/show_bug.cgi?id=675168

 gio/glocalfileinfo.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit e5d4af10a344eaa5eee72390858ee3cf374f35ad
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 13 14:43:29 2012 -0400

    Improve GTimeZone test coverage

 glib/tests/gdatetime.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

commit 5ff95679b805f7cc78f0579546700b6d48a35e0d
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jun 13 17:33:01 2012 +0200

    glib-compile-resources: Forward errors from spawned processes

    We just grab stderr from gdk-pixbuf-to-csource and xmllint and include
    it in the error message. It's the best we can do.

 gio/glib-compile-resources.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

commit 6c1276eb5fcc19921d0a0584aee140bccc3f8488
Author: Stefan Sauer <ensonic@users.sf.net>
Date:   Tue Jun 12 20:22:39 2012 +0200

    gtype: make these cases fatal.

    Otherwise we crash with a null-ptr deref in g_object_newv and ever
    there we
    should not return null, as we're saying that object creation will
    not return
    null.

 gobject/gtype.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 0866e1ede967e513f09bfb47166d76005e0486b2
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 12 07:09:53 2012 -0400

    update .gitignore

 gio/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 14eb3d3590b5c08626c4901b16e9695747d43188
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 12 07:08:26 2012 -0400

    gunixoutputstream: add missing can_poll() implementation

    https://bugzilla.gnome.org/show_bug.cgi?id=677770

 gio/gunixoutputstream.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b9ec5699cd27334fdc605875bb0eeb818de64d4a
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Tue Jun 12 10:35:52 2012 +0200

    Remove trailing commas from enums

 gio/gioenums.h | 2 +-
 glib/gspawn.h  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 6f1c4f7f056eddcbf884659ff68240c0784003c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 11 10:24:03 2012 -0400

    Correct the docs for g_time_zone_adjust_time

    March 13, 2010 is very ordinary.
    March 14, 2010 is the special day.

 glib/gtimezone.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f47de7ec2c9f79edbb3e03f3112aa8cd1d286309
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 11 10:23:42 2012 -0400

    Improve GTimeZone test coverage

 glib/tests/gdatetime.c | 66
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

commit d4f885478542ad7356b44e2a9965dc1081ea80dc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 11 07:19:42 2012 -0400

    Cosmetic changes

 tests/gio-test.c       | 25 ++++---------------------
 tests/iochannel-test.c | 18 +++++++-----------
 2 files changed, 11 insertions(+), 32 deletions(-)

commit 6ee10762b5194076a7a9db80d41dbb3aa14fe287
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 11 07:19:14 2012 -0400

    Improve GOptionContext test coverage

 glib/tests/option-context.c | 111
 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 109 insertions(+), 2 deletions(-)

commit c5dabac47a3613e742ebfc0c4dec4f91ab796ae8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 11 07:18:29 2012 -0400

    Fix a typo

    It is 'entries', not 'entires'.

 glib/goption.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3e706ef88b3b433f777e552c85339b901314deaa
Author: David Zeuthen <zeuthen@gmail.com>
Date:   Fri Jun 8 13:30:48 2012 -0400

    GDBusProxy: Treat org.freedesktop.systemd1.Masked error as non-fatal

    This is useful otherwise we'll fail if a systemd service is
    masked. See bug 677718 for details.

    https://bugzilla.gnome.org/show_bug.cgi?id=677718

    Signed-off-by: David Zeuthen <zeuthen@gmail.com>

 gio/gdbusproxy.c | 34 ++++++++++++++++++++++++++--------
 1 file changed, 26 insertions(+), 8 deletions(-)

commit ea826d7facabbcd05b8343554acc808275881009
Author: Daniel Macks <dmacks@netspace.org>
Date:   Wed Jun 6 22:40:26 2012 -0400

    Fix path to aclocal in output message

    datadir is defined in terms of datarootdir by default in configure
    (datadir='${datarootdir}' with ${datarootdir} not expanded), so
    defining datadir must happen *after* datarootdir is defined in the
    glib-gettextize shell script. Otherwise ${datarootdir} is null when it
    is expanded at runtime.

    https://bugzilla.gnome.org/show_bug.cgi?id=518309

 glib-gettextize.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9e1d4da14d8e69fb60da1a9733ac1d58d0dcd8b2
Author: Martin Jansa <Martin.Jansa@gmail.com>
Date:   Wed Jun 6 21:38:28 2012 -0400

    configure: Add --disable-libelf option

    See
    http://git.openembedded.org/openembedded-core/tree/meta/recipes-core/glib-2.0/glib-2.0/nolibelf.patch?id=1f73485a143f0aa6cd87636f3d36a7d1dfc40a3b

    Signed-off-by: Colin Walters <walters@verbum.org>

 configure.ac | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 032e8dabd15133952c7c4f9da05605380b17f79f
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Wed Jun 6 19:44:39 2012 +0200

    gdbus: Implement g_dbus_connection_get_last_serial()

    This patch brings an ability to retrieve serial number of the last
    message sent within the current thread.

    https://bugzilla.gnome.org/show_bug.cgi?id=676825

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdbusconnection.c               | 49 ++++++++++++++++++++
 gio/gdbusconnection.h               |  4 ++
 gio/gio.symbols                     |  1 +
 gio/tests/gdbus-connection.c        | 90
 +++++++++++++++++++++++++++++++++++++
 5 files changed, 145 insertions(+)

commit 7ccfa9ce4b2352277448f66a138cc028f5fe57c8
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 6 07:15:48 2012 -0400

    tests/spawn-multithreaded: Decrease parallelism to avoid crashing
    on OS X

    https://bugzilla.gnome.org/show_bug.cgi?id=677527

 glib/tests/spawn-multithreaded.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f3ff037bd147b7d86f23108660a2fe71df5268a6
Author: Daniel Macks <dmacks@netspace.org>
Date:   Tue Jun 5 19:20:13 2012 -0400

    Pass -framework sub-flag without embedded whitespace

    The "-framework" linker flag takes a second word as a parameter. If
    they are passed separated with whitespace, some flag-handling routines
    may not know to keep the two words together as a single unit. Use
    -Wl,, to pass multiple words without embedded whitespace.

    https://bugzilla.gnome.org/show_bug.cgi?id=566994

 configure.ac    | 4 ++--
 gio/Makefile.am | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 4690d85607da879e50746db64ea99a273823c25e
Author: Daniel Macks <dmacks@netspace.org>
Date:   Tue Jun 5 14:16:24 2012 -0400

    configure: Require libelf 0.8.12

    Older versions don't have the required API.

    (Commit message written by Colin Walters <walters@verbum.org>)

    https://bugzilla.gnome.org/show_bug.cgi?id=673253

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e4a8f12e770e9483e2b7bf965711a22fad134444
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Tue Jun 5 18:50:36 2012 +0200

    g_dbus_gvariant_to_gvalue(): Add missing out annotation

 gio/gdbusutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bdf1660e2856a22aeca6b5927b5756119d6526ec
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 4 13:17:47 2012 -0400

    GLib 2.33.2

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e8c5bd2bb0047677223849c2d516df8bd37606e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 3 13:18:39 2012 -0400

    Updates for 2.33.2

 NEWS | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

commit 3e1b972c933bc4a01e8d05f1bb6c6df1ad816579
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 4 06:00:45 2012 -0400

    Improve GResource test coverage

 gio/tests/resources.c | 112
 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 109 insertions(+), 3 deletions(-)

commit c7de2dd0e39bf9ef5641490b25c8a6eb17b7863a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 4 06:00:03 2012 -0400

    Improve GSocketAddress test coverage

 gio/tests/unix-fd.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

commit 721366d0883c39ad31027f0f406ffca9485408ed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 4 05:59:46 2012 -0400

    Improve GNetworkMonitor test coverage

 gio/tests/network-monitor.c | 150
 ++++++++++++++++++++++++++++++--------------
 1 file changed, 103 insertions(+), 47 deletions(-)

commit 4ad5210b353b685dce0aae9bd7331838f6cc5f92
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 4 05:59:27 2012 -0400

    Improve GIcon test coverage

 gio/tests/g-icon.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 3129bac14c6ac5e991127f8cc51810c28306bbad
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 3 21:37:32 2012 -0400

    Formatting cleanups

 gio/gvfs.c | 96
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 49 insertions(+), 47 deletions(-)

commit eeb5140ad2b318fd5f6a7c02efbd0b33859975c2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 3 19:51:47 2012 -0400

    Improve GMenu test coverage

 gio/tests/gmenumodel.c | 64
 ++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 57 insertions(+), 7 deletions(-)

commit 0a1079d171439d89cd1c825d20c7d766ab3573b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 3 19:51:20 2012 -0400

    Improve GApplication test coverage

 gio/tests/basic-application.c |  1 +
 gio/tests/gapplication.c      | 45
 +++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 44 insertions(+), 2 deletions(-)

commit 642e89f35678c687d45c204ad095b58f785d6c91
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 3 19:51:05 2012 -0400

    Improve GActionGroup test coverage

 gio/tests/actions.c | 134
 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 123 insertions(+), 11 deletions(-)

commit a53a1b65b59577e6332509789a062c6038a085a8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 3 19:50:54 2012 -0400

    Improve GIcon test coverage

 gio/tests/g-icon.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 26a1056bde7f6ef97963b1a4b42d3da3027f555f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 3 16:30:58 2012 -0400

    Expand GAppInfo tests

 gio/tests/appinfo.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 51e6edf08b34120e1bb88a28785f3b5e59e1a2b3
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Sun Jun 3 13:36:14 2012 +0200

    Updated French translation

 po/fr.po | 324
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 182 insertions(+), 142 deletions(-)

commit ce5bd68e26d0e67c24313076b7f634f1dcac81b9
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Tue May 22 21:56:10 2012 +0200

    glib: fix g_reload_user_special_dirs_cache

    We handle a special case for G_USER_DIRECTORY_DESKTOP
    when we init the values but drop it when we reload them.
    Fix this by preferring old values to NULL

    https://bugzilla.gnome.org/show_bug.cgi?id=676594

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

 glib/gutils.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 2e31166f6a005d2af724942ec3e8f58cecb3a756
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu May 31 15:29:31 2012 +0200

    Updated Spanish translation

 po/es.po | 50 +++++++++++++++++++++++++-------------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

commit 4f04247a1964457a7493f23d786486df449b3e08
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu May 31 13:19:37 2012 +0200

    Updated Spanish translation

 po/es.po | 207
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 102 insertions(+), 105 deletions(-)

commit 69e12cd3d56ae43b188a278b807e517961627ada
Author: Dan Winship <danw@gnome.org>
Date:   Wed May 30 08:30:27 2012 -0400

    GConverterInputStream: fix an edge case

    Reading from a GConverterInputStream with both input_buffer and
    converted_buffer non-empty would return bogus data (the data from
    converted_buffer would essentially get skipped over, though the
    returned nread reflected what the count would be if it hadn't been).

    This was never noticed before because (a) it can't happen if all of
    your reads are at least as large as either the internal buffer size or
    the remaining length of the stream (which covers most real-world use),
    and (b) it can't happen if all of your reads are 1 byte (which covers
    most of tests/converter-test). (And (c) it only happens for some
    converters/input streams.) But this was happening occasionally in
    libsoup when content-sniffing a gzipped response, because the
    SoupContentSnifferStream would first read 512 bytes (to sniff), and
    then pass through larger reads after that.

    Fixed and added a test to converter-test.

    https://bugzilla.gnome.org/show_bug.cgi?id=676478

 gio/gconverterinputstream.c  |   1 +
 gio/tests/converter-stream.c | 163
 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 164 insertions(+)

commit 0fd9863abe218c002327ea993089476a793a99e6
Author: Christian Persch <chpe@gnome.org>
Date:   Tue May 29 19:10:57 2012 +0200

    build: Add missing AM_V_GEN to silence the build

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4979c1d075e08bcdc7a6569afae2052dac5eea81
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 5 16:52:28 2012 +0200

    application: Add dbus register/unregister hooks

    When the application is using its D-Bus backend, it is useful to
    be able
    to export extra D-Bus objects at the right time, i.e. *before*
    the application
    tries to own the bus name. This is accomplished here by adding a hook
    in GApplicationClass for this; and a corresponding hook that will
    be called
    on unregistration to undo whatever the register hook did.

    Bug #675509.

 gio/gapplication.c                         | 36 +++++++++++
 gio/gapplication.h                         | 10 ++-
 gio/gapplicationimpl-dbus.c                | 15 ++++-
 gio/tests/Makefile.am                      |  4 ++
 gio/tests/gapplication-example-dbushooks.c | 99
 ++++++++++++++++++++++++++++++
 5 files changed, 162 insertions(+), 2 deletions(-)

commit f642209ef4c7f13f5ff03ca3c315cd237f8f26bb
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sun May 27 22:40:44 2012 +0100

    gobject: Document notify signal deduplication with freeze/thaw

    Expand the documentation for g_object_[freeze|thaw]_notify() to
    explain that
    it deduplicates “notify” signals emitted by frozen objects,
    so that at most
    one signal is emitted per property.

    https://bugzilla.gnome.org/show_bug.cgi?id=676937

 gobject/gobject.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 1637f08ed146bca89049301495a49d8873c2957e
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon May 28 14:57:02 2012 +0200

    Updated Slovenian translation

 po/sl.po | 313
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 164 insertions(+), 149 deletions(-)

commit ae421c9f6ca58ba18494619dc89ed1d2b60948eb
Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Date:   Fri Apr 27 10:02:54 2012 +0200

    Link to gvariant-format-strings-pointers in getter API

    https://bugzilla.gnome.org/show_bug.cgi?id=674777

 glib/gvariant.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

commit 175864b83c076f6b74a822e75990ab3a15ab73bc
Author: Colin Walters <walters@verbum.org>
Date:   Sat May 26 11:53:14 2012 -0400

    gappinfo: Fix uninitialized-variable gcc warning

 gio/gappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 151e37816bea6101523cf7dddab4ea1ce55ec909
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 25 09:22:06 2012 -0400

    Annotate API introduced for 2.34 with GLIB_AVAILABLE_IN_2_34

    https://bugzilla.gnome.org/show_bug.cgi?id=676816

 gio/gdbusauthobserver.h | 1 +
 gio/gresolver.h         | 3 +++
 2 files changed, 4 insertions(+)

commit 1cc7162c9560796829db457f7ea5fdd218a0ae46
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 25 08:59:09 2012 -0400

    Annotate API introduced for 2.32 with GLIB_AVAILABLE_IN_2_32

    https://bugzilla.gnome.org/show_bug.cgi?id=676816

 gio/gactiongroup.h         |  1 +
 gio/gactiongroupexporter.h |  2 ++
 gio/gactionmap.h           |  3 +--
 gio/gappinfo.h             |  3 +++
 gio/gapplication.h         |  2 ++
 gio/gdbusactiongroup.h     |  1 +
 gio/gdbusinterface.h       |  1 +
 gio/gdrive.h               |  1 +
 gio/gfile.h                |  1 +
 gio/gfileinfo.h            |  1 +
 gio/ginetaddressmask.h     |  3 +++
 gio/ginetsocketaddress.h   |  2 ++
 gio/gmenu.h                |  2 ++
 gio/gmenuexporter.h        |  2 ++
 gio/gnetworkmonitor.h      |  2 ++
 gio/gnetworkmonitorbase.h  |  2 ++
 gio/gremoteactiongroup.h   |  3 +++
 gio/gresource.h            | 17 +++++++++++++++++
 gio/gsettings.h            |  2 ++
 gio/gsettingsschema.h      |  7 +++++++
 gio/gsimpleasyncresult.h   |  1 +
 gio/gsocket.h              | 11 +++++++++++
 gio/gsocketconnection.h    |  4 ++++
 gio/gunixconnection.h      |  4 ++++
 gio/gunixmounts.h          |  1 +
 gio/gvolume.h              |  1 +
 26 files changed, 78 insertions(+), 2 deletions(-)

commit a9637126465fba06c1fc73cc70eb5f683ad4e4b3
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 25 08:42:50 2012 -0400

    Annotate API introduced for 2.30 with GLIB_AVAILABLE_IN_2_30

    I didn't do this comprehensively, since there's a lot of it, mainly
    due to the GDBus object manager stuff, but anyone trying to use
    that would fail fast due to lack of the gdbus code generator.

    My main goal was to get API additions to existing classes like
    g_data_input_stream_read_line_utf8(), as well as the lower level new
    API like glib-unix.h.

    https://bugzilla.gnome.org/show_bug.cgi?id=676816

 gio/gaction.h          | 1 +
 gio/gdatainputstream.h | 2 ++
 gio/gdbusconnection.h  | 3 +++
 glib/gatomic.h         | 4 ++++
 glib/gfileutils.h      | 3 +++
 glib/ghash.h           | 1 +
 glib/ghmac.h           | 9 +++++++++
 glib/glib-unix.h       | 6 ++++++
 glib/gunicode.h        | 1 +
 glib/gutils.h          | 2 ++
 glib/gvariant.h        | 2 ++
 gobject/glib-types.h   | 4 ++++
 12 files changed, 38 insertions(+)

commit 9c86e1168cad8ae2c2642ffd487d4f6319e1dc04
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Sat May 26 10:34:53 2012 +0200

    gio: fix symbol name

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

 gio/gio.symbols | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 800d6ff1115b27bf0e9cce818a0511048e2f1cc5
Author: Dan Winship <danw@gnome.org>
Date:   Thu Apr 5 09:19:17 2012 -0400

    gio: add GBytes-based input/output stream methods

    Using a caller-supplied buffer for g_input_stream_read() doesn't
    translate well to the semantics of many other languages, and using a
    non-refcounted buffer for read_async() and write_async() makes it
    impossible to manage the memory correctly currently in
    garbage-collected languages.

    Fix both of these issues by adding a new set of methods that work with
    GBytes objects rather than plain buffers.

    https://bugzilla.gnome.org/show_bug.cgi?id=671139

 docs/reference/gio/gio-sections.txt |   6 ++
 gio/ginputstream.c                  | 174
 ++++++++++++++++++++++++++++++++++++
 gio/ginputstream.h                  |  16 ++++
 gio/gio.symbols                     |   6 ++
 gio/goutputstream.c                 | 157
 ++++++++++++++++++++++++++++++++
 gio/goutputstream.h                 |  16 ++++
 gio/tests/memory-input-stream.c     |  26 ++++++
 gio/tests/memory-output-stream.c    |  27 ++++++
 8 files changed, 428 insertions(+)

commit 4b456635e422ea620bfb3feeddac12a7045bd43b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu May 24 17:51:35 2012 +0200

    Revert "application: Don't print a critical warning here"

    This reverts commit 1541478bac6fed26bcb77ebae5e50bb7a76954f7.

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ee1965b888d070428b88bbcde989e98ce63a5fe4
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 5 17:29:44 2012 +0200

    application: Save a few bytes in the library

    There's really no need to put useless whitespace into the .so.

 gio/gapplicationimpl-dbus.c | 48
 ++++++++++++++++++++++-----------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

commit 1541478bac6fed26bcb77ebae5e50bb7a76954f7
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 5 17:26:34 2012 +0200

    application: Don't print a critical warning here

    It's a runtime error, not a programming error.

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9217309a5cd1eb59c7881939cdb58bd48e27097e
Author: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Date:   Tue May 22 20:38:52 2012 +0200

    glib: fix build

    Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>

 glib/genviron.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 481191f118a8f8e6505917a985e531137796d8ac
Author: Christian Persch <chpe@gnome.org>
Date:   Sun May 20 00:01:35 2012 +0200

    gspawn: Add GSpawnFlag to use the PATH from envp

    Add a G_SPAWN_SEARCH_PATH_FROM_ENVP flag to GSpawnFlags so that
    g_spawn_async() etc use the PATH variable from the passed-in child
    environment to search for the executable.
    If both this flag and the G_SPAWN_SEARCH_PATH flag are set, the
    child environment is searched first and only falls back to the
    PATH from the process environment if it is unset.

    Bug #676398.

 glib/gspawn.c | 48 ++++++++++++++++++++++++++++++++++++------------
 glib/gspawn.h |  6 +++++-
 2 files changed, 41 insertions(+), 13 deletions(-)

commit 6969b63827a302604a0566c8889feed33a25d842
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 19 23:59:01 2012 +0200

    environ: Allow NULL envp

    https://bugzilla.gnome.org/show_bug.cgi?id=676397

 glib/genviron.c          | 31 ++++++++++++++++++++-----------
 glib/tests/environment.c | 20 ++++++++++++++++++++
 2 files changed, 40 insertions(+), 11 deletions(-)

commit 44d4990442532dd067ca670a3a4b18109ee6b02c
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 18 10:39:05 2012 -0400

    GMemoryOutputStream: Add API to return data as a GBytes

    Matches the corresponding additions to GMemoryInputStream.

    https://bugzilla.gnome.org/show_bug.cgi?id=672102

 gio/gio.symbols                  |  1 +
 gio/gmemoryoutputstream.c        | 28 ++++++++++++++++++++++++++++
 gio/gmemoryoutputstream.h        |  3 +++
 gio/tests/memory-output-stream.c | 38
 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 70 insertions(+)

commit 1bedf248794fe5cf9dad5e40c18329e79f9d855e
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 17 14:36:15 2012 -0400

    GMemoryInputStream: Add API to accept GBytes

    And s/Chunk/GBytes/ internally.  GBytes is really a perfect match for
    GMemoryInputStream.

    https://bugzilla.gnome.org/show_bug.cgi?id=672102

 gio/gio.symbols          |   2 +
 gio/gmemoryinputstream.c | 107
 ++++++++++++++++++++++++++++++-----------------
 gio/gmemoryinputstream.h |   6 +++
 3 files changed, 76 insertions(+), 39 deletions(-)

commit 6e32f0a6018ab26b2a14c184752913d6f2ecad40
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Thu May 17 06:43:54 2012 +0200

    gio: The tmpl parameter to g_file_new_tmp can be NULL

    Fixes: https://bugzilla.gnome.org/676208

 gio/gfile.c | 1 -
 1 file changed, 1 deletion(-)

commit 7cadf4f15f952457b5a5440d24d1a93e0a99cdde
Author: Dan Winship <danw@gnome.org>
Date:   Wed Mar 21 09:22:38 2012 -0400

    g_utf8_validate: @str shouldn't end up annotated as utf8

    In order for this function to have any point, it has to be possible to
    pass non-UTF-8 data to it, so annotate @str as being array-of-guint8
    instead of utf8.

    https://bugzilla.gnome.org/show_bug.cgi?id=672548

 glib/gutf8.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8df2b96a6910aa557a6db2b1b5e618f3ace70f11
Author: Dan Winship <danw@gnome.org>
Date:   Fri May 18 12:18:23 2012 -0400

    proxy-test: work even when the upstream DNS lies

    Rather than depending on the host's DNS configuration to properly
    return an error for a non-existent hostname, just substitute in
    a dummy GResolver implementation that does it for us.

 gio/tests/proxy-test.c | 60
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

commit 555cd1923fae52a145d527904f4efc0fc6298585
Author: Dan Winship <danw@gnome.org>
Date:   Fri May 18 08:49:05 2012 -0400

    g_app_info_launch_default_for_uri: don't use GFile if we don't have to

    GFile doesn't handle some "real" URIs, so check if there's a default
    handler for the URI scheme first, and only use g_file_new_for_uri()
    and g_file_query_default_handler() if not. Eg, this fixes the case of
    opening http URIs with "%2F" in the path.

    https://bugzilla.gnome.org/show_bug.cgi?id=666386

 gio/gappinfo.c | 36 ++++++++++++++++++++++++++----------
 1 file changed, 26 insertions(+), 10 deletions(-)

commit 0e6d9df35c948d5e65eae0edb6652a9cce88f557
Author: Holger Berndt <hb@gnome.org>
Date:   Thu May 17 22:24:10 2012 +0200

    Document that g_app_info_create_from_commandline() does unquoting
    according to fd.o

    https://bugzilla.gnome.org/show_bug.cgi?id=676277

 gio/gdesktopappinfo.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 17e95c59c9f7b1cd023aabb3645c70b9f1f37577
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 17 13:48:21 2012 -0400

    gnetworkmonitornetlink: don't leak the list of networks

    https://bugzilla.gnome.org/show_bug.cgi?id=676265

 gio/gnetworkmonitornetlink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0ecbb0a4045877936d872fb8aaedd49baa4d89ef
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 10 13:29:39 2012 -0400

    g_clear_pointer: work around gcc helpfulness

    gcc gets upset when we do "((GDestroyNotify) destroy) (_p)" because
    it's non-portable. But we don't care; we already know glib wouldn't
    work on any platform where different pointer types have different
    calling conventions. So tweak the code to avoid the warning.

    https://bugzilla.gnome.org/show_bug.cgi?id=674634

 glib/gmem.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 787f8087836804c903f8271699e576544426e023
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 17 00:44:36 2012 -0400

    gsettings: add reset-recursively to bash completion

    https://bugzilla.gnome.org/show_bug.cgi?id=675832

 gio/gsettings-bash-completion.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 431d3adacdd640141f83a6c3496760adc6aba5eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 17 00:41:33 2012 -0400

    Improve libelf configure check

    system libelf is not sufficient for glib (lacks elf_getshdrstrndx and
    elf_getshdrnum) so let's make sure we don't define HAVE_LIBELF

 configure.ac | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit aded15c9d10dbf3ec218e25793e3467240585511
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Mon Mar 19 21:17:32 2012 +0530

    glib: fix memory leaks in gutils, protocol, and strfuncs tests

    https://bugzilla.gnome.org/show_bug.cgi?id=672329

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 glib/gutils.c         | 26 ++++++++++++++++++++------
 glib/tests/protocol.c |  6 +++++-
 glib/tests/strfuncs.c | 42 +++++++++++++++++++++++++++++++++---------
 3 files changed, 58 insertions(+), 16 deletions(-)

commit 447a25ea50af2349d313c10c46b61104ce4c0391
Author: Dan Winship <danw@gnome.org>
Date:   Wed May 16 12:00:44 2012 -0400

    update .gitignore

 gio/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 0417ddab6fbd2f1cddbb9218e0e300e04da2eda5
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sat Apr 14 19:34:00 2012 +0200

    GAppInfo: add a mechanism to query supported content types

    This essentially adds an accessor for the MimeType field in desktop
    files,
    to retrieve the list of all mime types supported by an application.
    The interface though is part of GAppInfo, so it could be implemented
    in the future by other backends.

    https://bugzilla.gnome.org/show_bug.cgi?id=674111

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gappinfo.c                      | 31 +++++++++++++++++++++++++++++++
 gio/gappinfo.h                      |  4 ++++
 gio/gdesktopappinfo.c               | 13 +++++++++++++
 gio/gio.symbols                     |  1 +
 gio/tests/appinfo-test.desktop      |  1 +
 gio/tests/appinfo.c                 | 16 ++++++++++++++++
 7 files changed, 67 insertions(+)

commit e011d2c92162d25a6e6d5f67d462edfeb4af3d7a
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jan 3 14:47:56 2010 -0500

    Add g_type_ensure() and use it rather than playing games with volatile

    https://bugzilla.gnome.org/show_bug.cgi?id=605976

 docs/reference/gobject/gobject-sections.txt |  1 +
 gio/gicon.c                                 | 10 +++----
 gio/ginetaddress.c                          |  4 +--
 gio/giomodule.c                             | 38
 ++++++++++++-------------
 gio/gresolver.c                             |  5 +---
 gio/gsocket.c                               |  4 +--
 gio/gsocketconnection.c                     |  6 ++--
 gio/gsocketcontrolmessage.c                 |  8 ++----
 gio/gunixconnection.c                       |  5 +---
 gobject/gobject.symbols                     |  1 +
 gobject/gtype.c                             | 43
 +++++++++++++++++++++++++----
 gobject/gtype.h                             |  2 ++
 12 files changed, 72 insertions(+), 55 deletions(-)

commit 2a4235d0f3fe3b3fb007385ee59082c0987158ce
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Tue May 15 17:38:44 2012 +0200

    gfile: add g_return_if_fail to g_file_make_directory_with_parents()

 gio/gfile.c | 2 ++
 1 file changed, 2 insertions(+)

commit 5a57144d5749efaf3b5e752db9b041597d4b062f
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 4 10:03:12 2012 -0400

    gfile: Plug memory leak in g_file_make_directory_with_parents()

    The logic here is pretty twisted, but basically we were leaking a ref
    for each non-existent parent.  The clearest way to fix this was to
    move to more explicit refcounting logic; when a variable is pointing
    to an object, it holds a ref.

    https://bugzilla.gnome.org/show_bug.cgi?id=675446

 gio/gfile.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

commit d5d3c7b3a4830a12e155e949345cfc9109236786
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 14 16:18:26 2012 -0400

    Cover some malloc corner cases in tests

 glib/tests/utils.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit 215844b3a64fae95b24e464fe87ab6c3b5cd8daa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 13 01:52:37 2012 -0400

    Add a test for g_clear_pointer

 glib/tests/utils.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit e153c8c58b7643d8d823b7a199c3efb19fea3985
Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
Date:   Sun May 13 19:22:24 2012 +0900

    [l10n] Update Japanese translation

 po/ja.po | 637
 ++++++++++++++++-----------------------------------------------
 1 file changed, 155 insertions(+), 482 deletions(-)

commit e3eb137bbb2ebeede6156424e3e0a1aeb8973614
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 13 00:46:39 2012 -0400

    Use non-deprecated api in tests

    https://bugzilla.gnome.org/show_bug.cgi?id=660851

 glib/tests/rec-mutex.c | 4 ++--
 glib/tests/rwlock.c    | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 77695437b319c8e1a918c8b3ab892ba8a63fbf63
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed May 2 12:53:27 2012 -0400

    gkeyfile: Fix annotations for g_key_file_load_from_data

    https://bugzilla.gnome.org/show_bug.cgi?id=675309

 glib/gkeyfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ebc3b928a39e8895719a5795a14e13c2cdf3c8bd
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Thu May 10 09:35:03 2012 -0700

    docs: reference g_menu_item_new in gmenu convenience menuitem API

 gio/gmenu.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 748f44b12f25717a45477a6e2e74bf6abc7951ba
Author: Christian Kirbach <Christian.Kirbach@googlemail.com>
Date:   Tue May 8 19:16:14 2012 +0200

    [l10n] Updated German translation

 po/de.po | 177
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 95 insertions(+), 82 deletions(-)

commit 1b29ea3663501a407b82d83792d47d0941df13b2
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Tue May 8 16:49:53 2012 +0200

    Set GLIB_VERSION_MAX_ALLOWED to GLIB_VERSION_CUR_STABLE by default

 glib/gversionmacros.h | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 744f36bb0685e35aac5fcfcf37cb1e1c9c45786e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue May 8 15:12:42 2012 +0100

    version macros: Make MIN_REQUIRED the current stable version

    So that deprecation warnings will come into effect starting from the
    stable release, instead of the next.

 glib/gversionmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fb63c73bbe213f5c1ac7ecafdf298c3cb8de23c3
Author: Jiro Matsuzawa <jmatsuzawa@gnome.org>
Date:   Tue May 8 20:24:53 2012 +0900

    [l10n] Update Japanese translation

 po/ja.po | 6155
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3275 insertions(+), 2880 deletions(-)

commit a365684bf086742763b098feddaf5525bc9581c0
Author: Michael Olbrich <m.olbrich@pengutronix.de>
Date:   Mon May 7 10:33:44 2012 +0200

    configure.ac: more AS_IF

    It looks like JH_CHECK_XML_CATALOG has some prerequisite as well

    Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>

    https://bugzilla.gnome.org/show_bug.cgi?id=674483

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 54e31ab4f172bbb28434eafc34c9345a93c9ccf5
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 3 15:18:11 2012 -0400

    configure: Use AS_IF almost everywhere

    Not doing so is an evil trap, sadly.  This patch has been
    compile-checked on Fedora 16, and I've verified that the generated
    config.status and config.h is exactly the same.

    https://bugzilla.gnome.org/show_bug.cgi?id=674483

 configure.ac | 246
 ++++++++++++++++++++++++++++-------------------------------
 1 file changed, 118 insertions(+), 128 deletions(-)

commit e30823d93ff643c82d4037c2cf0f509e347f49de
Author: Michael Olbrich <m.olbrich@pengutronix.de>
Date:   Thu May 3 08:44:12 2012 +0200

    configure.ac: use AS_IF

    This way any prerequisites for e.g. AC_CHECK_HEADER are always
    executed
    before the 'if'.

    Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>

    https://bugzilla.gnome.org/show_bug.cgi?id=674483

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7ba899701566c5941ba93bcd31e0b7ae70a7e69d
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Sun May 6 11:35:01 2012 +0400

    Updated Russian translation

 po/ru.po | 57 +++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 35 insertions(+), 22 deletions(-)

commit ed1f10bc1c149ac6c317b80b3ba46fda6b545a4e
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Thu May 3 15:00:14 2012 +0200

    docs: Fix typo in G_DEFINE_DYNAMIC_TYPE_EXTENDED example.

 gobject/gtypemodule.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5aa38ae9fb8eed894dcd37baa154967aae7f6c45
Author: Marek Černocký <marek@manet.cz>
Date:   Fri May 4 09:30:06 2012 +0200

    Updated Czech translation

 po/cs.po | 223
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 140 insertions(+), 83 deletions(-)

commit 486d563049a789b0a2f45f1b5564eaf66294f083
Author: Christian Persch <chpe@gnome.org>
Date:   Wed May 2 20:14:52 2012 +0200

    application: Clarification about 'primary instance'

    For non-unique applications, the 'primary instance' is the current
    instance.

 gio/gapplication.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f7b61c72b4f2fef3ab21b51b9660973452d22f8d
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Wed May 2 12:00:03 2012 +0300

    Updated Greek translation

 po/el.po | 6433
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3408 insertions(+), 3025 deletions(-)

commit 874355de53e7ea7009860c0b67094d919a5daa6f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed May 2 11:10:23 2012 +0800

    Fix GIO/GObject Visual C++ projects

    -Make up for the missed DLL_EXPORT-it's actually needed for all
    GLib DLL
     builds, omitting this caused problems to surface due to recent
     works to
     make GDBus work on Windows.
    -Also use the FFI_BULIDING macro for GObject builds as the suggessted
     workaround for using static LibFFI builds (as we do now)-please see
     ffi.h(.in). This will fix the build of GObject against LibFFI 3.0.11,
     but it is probable that this will change at some point for LibFFI.

 build/win32/vs10/gio.vcxprojin     | 8 ++++----
 build/win32/vs10/gobject.vcxprojin | 8 ++++----
 build/win32/vs9/gio.vcprojin       | 8 ++++----
 build/win32/vs9/gobject.vcprojin   | 8 ++++----
 4 files changed, 16 insertions(+), 16 deletions(-)

commit 83f04afa0b8b66d200ccdc17ac6f5cd0e17b1c15
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 1 12:57:00 2012 -0400

    GLib 2.33.1

 NEWS | 78
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

commit 774074f99bcc6237290e5252faf24581d7fe9932
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 1 13:48:52 2012 -0700

    slice-color test: don't use non-existent macro

    G_GUINT64_MODIFIER doesn't exist, but G_GINT64_MODIFIER does (and will
    be the same as is needed for unsigned).

 tests/slice-color.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b31d872081a70817dc036043fef05cd950c4e86f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 1 13:23:09 2012 -0700

    tests: temporarily disable GDBus async proxy test

    It has never worked properly and, with the new GDBus testing stuff,
    it's
    occasionally failing.

    https://bugzilla.gnome.org/show_bug.cgi?id=672248

 gio/tests/gdbus-proxy.c | 2 ++
 1 file changed, 2 insertions(+)

commit 56ca8add1088385a874fdb371a6d490926109710
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 1 15:40:15 2012 -0400

    contenttype test: don't pass -1 as length

    g_content_type_guess() takes a gsize, not a gssize, and -1 does
    not mean
    "I am passing a NULL terminated string".

 gio/tests/contenttype.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 8db824e00b69302dafed9ceddd6f34abf5202516
Author: Michael Biebl <biebl@debian.org>
Date:   Tue May 1 18:42:12 2012 +0200

    configure: Reset LIBS after ELF check

    If action-if-found is not specified, AC_CHECK_LIB will append
    the library
    to LIBS. As we don't want to link everything against libelf,
    reset LIBS
    after doing the checks.

 configure.ac | 2 ++
 1 file changed, 2 insertions(+)

commit eb5381b8622eda26b6bd86dbac39bd9ed86bf730
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 30 12:20:54 2012 -0400

    GApplication: add accessor for DBus information

    Provide public access to the GDBusConnect and object path that
    GApplication is using.  Prevents others from having to guess these
    things for themselves based on the application ID.

    https://bugzilla.gnome.org/show_bug.cgi?id=671249

 docs/reference/gio/gio-sections.txt |  3 ++
 gio/gapplication.c                  | 65
 ++++++++++++++++++++++++++++++++++++-
 gio/gapplication.h                  |  5 +++
 gio/gapplicationimpl-dbus.c         | 11 +++++++
 gio/gapplicationimpl.h              |  6 ++++
 gio/gio.symbols                     |  2 ++
 6 files changed, 91 insertions(+), 1 deletion(-)

commit 16f92a33aca1161aab3669f39b32f5c8f09fb433
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 3 11:31:05 2012 -0500

    GApplication: allow null application_id

    GApplication application ID is now permitted to be NULL, in which case
    G_APPLICATION_NON_UNIQUE will be implicitly enabled.

    https://bugzilla.gnome.org/show_bug.cgi?id=671249

 gio/gapplication.c          | 57
 +++++++++++++++++++++++++++------------------
 gio/gapplicationimpl-dbus.c |  6 +++++
 gio/gioenums.h              |  9 +++----
 3 files changed, 45 insertions(+), 27 deletions(-)

commit d959ace72cd07bebe0d87d483613b3285bb3c4f4
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Mon Apr 30 21:54:22 2012 +0200

    Updated French translation

 po/fr.po | 171
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 93 insertions(+), 78 deletions(-)

commit cbf06d8fa94672496d170c65ed9c328816e7eee0
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Apr 30 17:02:06 2012 +0200

    g_clear_pointer: use the same static checks than g_clear_object
    in glib-2-32

 glib/gmem.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 19ac408650ffbbff55fa01fe0968242abb7eacc3
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Apr 30 16:14:24 2012 +0200

    Updated Galician translations

 po/gl.po | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit cf4582fb81108b879f5d017a7b25f26ec2328b6a
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Mon Apr 30 15:41:08 2012 +0200

    l10n: Updated Italian translation

 po/it.po | 319
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 169 insertions(+), 150 deletions(-)

commit 7d4d0668b37476a1dc0f088574e7292fdac7c17c
Author: Dan Winship <danw@gnome.org>
Date:   Mon Apr 30 06:54:05 2012 -0400

    Update gio/tests/.gitignore

 gio/tests/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit c37273dccb183c98ee45f164117f515e4efbff06
Author: Dan Winship <danw@gnome.org>
Date:   Mon Apr 30 06:31:20 2012 -0400

    fix warnings

 gio/gdbusdaemon.c                 |  1 -
 gio/gtestdbus.c                   |  2 +-
 gio/tests/buffered-input-stream.c |  2 +-
 glib/goption.c                    |  1 -
 tests/gobject/defaultiface.c      |  3 +--
 tests/gobject/dynamictype.c       |  3 +--
 tests/gobject/ifaceinit.c         |  2 ++
 tests/slice-color.c               |  7 ++++---
 tests/slice-test.c                |  2 +-
 tests/threadpool-test.c           | 16 +++++++++++-----
 10 files changed, 22 insertions(+), 17 deletions(-)

commit c5285b3abafe2d28f99e0dd0981deee49fa401f1
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Apr 30 10:16:16 2012 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 143
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 98 insertions(+), 45 deletions(-)

commit a7bde137c3b66ca1857332fd3a702e80d457731d
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Sat Apr 28 10:11:25 2012 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 375
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 197 insertions(+), 178 deletions(-)

commit fd3ec4df87ce05f364799b7eb8b0219420d755c4
Author: Dan Winship <danw@gnome.org>
Date:   Fri Apr 27 09:27:38 2012 -0400

    Fix several recently-introduced bugs in g_output_stream_write_async()

    g_output_stream_write_async() was not initializing the newly-added
    members of the WriteData structure, causing various problems.

    Also, g_input_stream_read_async() was now leaking its cancellable. Fix
    that as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=674612

 gio/ginputstream.c  | 12 ++++++++++--
 gio/goutputstream.c | 15 +++++++++++++--
 2 files changed, 23 insertions(+), 4 deletions(-)

commit 00285b7517a63a243a5b61b738de5eea957ae767
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Apr 23 17:57:56 2012 +0200

    Add g_clear_pointer()

    Also reimplement g_clear_object() using g_clear_pointer()

    https://bugzilla.gnome.org/show_bug.cgi?id=674634

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gmem.c                           | 39
 +++++++++++++++++++++++++++++++++++
 glib/gmem.h                           | 18 ++++++++++++++++
 gobject/gobject.c                     | 13 +-----------
 gobject/gobject.h                     | 14 +------------
 6 files changed, 61 insertions(+), 25 deletions(-)

commit 3f816dc5d14ce64f89c5e8b16ac7d8c1f3542b0d
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Mon Apr 16 23:00:01 2012 +0200

    GAppInfo: overwrite the DISPLAY only if it is set in the launch
    context

    If the launch context is a GAppLaunchContext, and not a
    GdkAppLaunchContext, then g_app_launch_context_get_display will return
    NULL because the get_display virtual method is undefined. The DISPLAY
    might still be inherited from the parent process, in which case
    overwriting it with NULL breaks the launch.

    This is a regression introduced in:
    de834bed306565c0652050665eafff4dfcdf0d8b

    Fixes: https://bugzilla.gnome.org/672786

 gio/gdesktopappinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 6219767f61fe7b402c9db8fbdaf57ab8ffb25681
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Thu Apr 26 15:29:12 2012 +0300

    Updated Hebrew translation.

 po/he.po | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

commit 79724bf80c414a06f3caf1f2ff614bb3c44a8ba3
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 26 10:05:41 2012 +0200

    Dist gio/dbus-daemon.xml and fix dependency for builddir != srcdir

 gio/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 063ec9a75d6f70b45a8e51653608a6e40f948b3c
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 25 14:47:01 2012 -0400

    build: Fix 'make dist' regression

    Commit f084b603771f78126bc0b07229a1574b76e776bb incorrectly set
    DIST_SUBDIRS for the toplevel Makefile.am.  In general actually we
    don't need to set it, because modern automake automatically sets
    it by looking at conditionals for SUBDIRS.

    Tested-by: Rico Tzschichholz <ricotz@t-online.de>

    https://bugzilla.gnome.org/show_bug.cgi?id=667806

 gio/Makefile.am     | 3 ---
 glib/Makefile.am    | 6 +-----
 gobject/Makefile.am | 3 ---
 3 files changed, 1 insertion(+), 11 deletions(-)

commit 87cc77a1985efa18bcd8fc3318c90d8557ae9129
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 25 10:44:55 2012 -0400

    gsocket: test if family is <= 0, not < 0

    If all members of GSocketFamily are supported on the platform, then
    all of its values will be positive, and so the enum might become
    unsigned, in which case testing for "family < 0" might cause warnings.
    But we want to return an error if family == 0 (aka
    G_SOCKET_FAMILY_INVALID) anyway, so just tweak the test accordingly.

    https://bugzilla.gnome.org/show_bug.cgi?id=674592

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 56bcba11dd2d2b679efeebcf78f0f5736ba311e1
Author: Michael Olbrich <m.olbrich@pengutronix.de>
Date:   Wed Apr 25 09:46:35 2012 +0200

    make sure configure fails if AC_CHECK_ALIGNOF cannot detect the
    alignment

    When cross-compiling with gcc >= 4.5 AC_CHECK_ALIGNOF fails to
    detect the
    correct alignment. Without a previous AC_CHECK_TYPE for the same
    type, the
    alignment is silently set to '0'.
    This makes sure that configure fails and reports the problem.

    Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>

    https://bugzilla.gnome.org/show_bug.cgi?id=674483

 configure.ac | 3 +++
 1 file changed, 3 insertions(+)

commit b053f990c91eff334aec8db9519846a041a98999
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Apr 24 16:39:21 2012 +0200

    win32: More srcdir != builddir fixing

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 62905cda0b42163bbd582278260f659f94e4d2bf
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Apr 24 14:53:49 2012 +0200

    win32: Fix build with srcdir != builddir

    Missed this part in the last commit

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 88bfc9b289e2b40bd7bff94dcdb06eb0b7b53f67
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Apr 24 14:03:38 2012 +0200

    win32: Fix build of gdbus-daemon-generated.[ch]

    gdbus-daemon-generated.[ch] failed to build because it depended
    on gdbus-2.0/codegen/gdbus-codegen which was build during the
    SUBDIRS part
    of the build, however SUBDIRS are done *after* processing
    BUILT_SOURCES,
    and these files are in BUILT_SOURCES.

    The fix is simple, instead of running the gdbus-codegen code we
    run the gdbus-codegen.in code, which works fine for uninstalled
    execution.

    I also removed Makefile from the dependencies to avoid rebuilding
    the file
    in tarballs, as Makefiles are written at configure time. We should
    be able to
    ship the prebuilt files in the tarballs.
    When running uninstalled

 gio/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2c0756ea0e118deece4b797d15c2462db48191ed
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Tue Apr 24 07:28:43 2012 +0300

    Updated Bulgarian translation

 po/bg.po | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

commit 02be039a6cc41bc0e65a336ad76b4c5b14e00e22
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Apr 24 00:29:07 2012 +0200

    Updated Galician translations

 po/gl.po | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

commit 810a296d4244f061f037445f39b8900fb67ba3e8
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Apr 24 00:03:33 2012 +0800

    Visual C++ projects: Clean/fix up

    Clean/fix up the Preprocessor Definitions for the various projects,
    where
    we purge out the unneeded macros and add _DEBUG to the Debug builds of
    various projects that somehow lacked this.

    This will also fix the GIO build under Visual C++ 2008, as the
    _DEBUG macro
    in the release builds will cause a debug entry to appear in its
    manifest
    file during the build, which will cause GIO-using applications to fail
    to run on systems not running Visual C++/Studio 2008 due to its
    embedding
    of a badly-generated manifest file.

 build/win32/vs10/gio.vcxprojin                       |  8 ++++----
 build/win32/vs10/glib-genmarshal.vcxproj             |  8 ++++----
 build/win32/vs10/glib.vcxprojin                      | 16
 ++++++++--------
 build/win32/vs10/gmodule.vcxproj                     |  8 ++++----
 build/win32/vs10/gobject.vcxprojin                   |  8 ++++----
 build/win32/vs10/gspawn-win32-helper-console.vcxproj |  4 ++--
 build/win32/vs10/gspawn-win32-helper.vcxproj         |  4 ++--
 build/win32/vs10/gthread.vcxproj                     |  8 ++++----
 build/win32/vs9/gio.vcprojin                         |  8 ++++----
 build/win32/vs9/glib-genmarshal.vcproj               |  8 ++++----
 build/win32/vs9/glib.vcprojin                        | 16
 ++++++++--------
 build/win32/vs9/gmodule.vcproj                       |  8 ++++----
 build/win32/vs9/gobject.vcprojin                     |  8 ++++----
 build/win32/vs9/gspawn-win32-helper-console.vcproj   |  4 ++--
 build/win32/vs9/gspawn-win32-helper.vcproj           |  4 ++--
 build/win32/vs9/gthread.vcproj                       |  8 ++++----
 16 files changed, 64 insertions(+), 64 deletions(-)

commit 58f0173149d5be9a7fc0810e4bcf7a2fafde1a7f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 23 08:19:29 2012 -0400

    Add tests for signal convenience api

 gobject/tests/signals.c | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

commit e62102dbc5bd9f6fe905775fc19aea894ef7f8d4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 23 08:19:06 2012 -0400

    Add tests for toggle reference and qdata

 gobject/tests/reference.c | 148
 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 148 insertions(+)

commit 8b618eb7f1eec1632c164053097f3e41150782ce
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 23 08:17:40 2012 -0400

    Improve test coverage in gobject/tests

    This is just making sure that we execute property getters/setters.

 gobject/tests/dynamictests.c | 3 +++
 gobject/tests/properties.c   | 9 +++++++++
 2 files changed, 12 insertions(+)

commit 87832242023e593751b20f6fa90235b32cfe5d4c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 23 08:16:50 2012 -0400

    Add some directory getter tests

 glib/tests/utils.c | 94
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)

commit 1089a0a9f6987b7b1aa8f3f9e4def1b92cdfd11c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 23 08:16:23 2012 -0400

    Improve GOptionContext test coverage

 glib/tests/option-context.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

commit 6214977260f22b41f0e2e407c7fa2a5a3bed5084
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Apr 23 11:40:33 2012 +0200

    Updated Spanish translation

 po/es.po | 141
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 74 insertions(+), 67 deletions(-)

commit a44e80198340d7169197fe7627868383dc4df06c
Author: Maciej Piechotka <uzytkownik2@gmail.com>
Date:   Thu Mar 29 02:08:41 2012 +0200

    Make GDataOutputStream implement GSeekable

    https://bugzilla.gnome.org/show_bug.cgi?id=673034

 gio/gdataoutputstream.c        | 108 ++++++++++++++++++++++-
 gio/tests/data-output-stream.c | 194
 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 299 insertions(+), 3 deletions(-)

commit 43895e3089ec1ac7af2f77530fe91678b58a3501
Author: Maciej Piechotka <uzytkownik2@gmail.com>
Date:   Thu Mar 29 01:50:41 2012 +0200

    Make GBufferedOutputStream implement GSeekable

    https://bugzilla.gnome.org/show_bug.cgi?id=673034

 gio/gbufferedoutputstream.c        | 132 ++++++++++++++++++++++++-
 gio/tests/buffered-output-stream.c | 195
 +++++++++++++++++++++++++++++++++++++
 2 files changed, 324 insertions(+), 3 deletions(-)

commit 90739baec071f4bba19558a3e08a9f330f78070e
Author: Maciej Piechotka <uzytkownik2@gmail.com>
Date:   Wed Mar 28 14:12:44 2012 +0200

    Make GBufferedInputStream implement GSeekable

    https://bugzilla.gnome.org/show_bug.cgi?id=673034

 gio/gbufferedinputstream.c        | 138
 ++++++++++++++++++++++++++++++++++++--
 gio/tests/buffered-input-stream.c |  86 ++++++++++++++++++++++++
 2 files changed, 220 insertions(+), 4 deletions(-)

commit 86abe5163fb2fe08ae886b2decc18ba9318b974c
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Mon Apr 23 12:12:27 2012 +0400

    Updated Russian translation

 po/ru.po | 1480
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 779 insertions(+), 701 deletions(-)

commit a151c97106948c6bd21b0e2a71b7c18b1f106ce9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 23 00:35:37 2012 -0400

    Make the child source test work

    On my machine, this test was failing, because the timeout source
    for quitting the inner mainloop was triggering repeatedly. Avoid
    that by explicitly returning G_SOURCE_REMOVE from the callback.

 glib/tests/mainloop.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit d18a9caf0310c2c6f98e04e15c7a8ca8280846e1
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Apr 23 02:45:08 2012 +0100

    docs: Use latest docbook dtd: 4.5

 .../gdbus-object-manager-example-docs.xml                             |
 4 ++--
 docs/reference/gio/migrating-gdbus.xml                                |
 4 ++--
 docs/reference/glib/building.xml                                      |
 4 ++--
 docs/reference/glib/changes.xml                                       |
 4 ++--
 docs/reference/glib/compiling.xml                                     |
 4 ++--
 docs/reference/glib/cross.xml                                         |
 4 ++--
 docs/reference/glib/regex-syntax.xml                                  |
 4 ++--
 docs/reference/glib/resources.xml                                     |
 4 ++--
 docs/reference/glib/running.xml                                       |
 4 ++--
 docs/reference/gobject/tut_gobject.xml                                |
 4 ++--
 docs/reference/gobject/tut_gsignal.xml                                |
 4 ++--
 docs/reference/gobject/tut_gtype.xml                                  |
 4 ++--
 docs/reference/gobject/tut_howto.xml                                  |
 4 ++--
 docs/reference/gobject/tut_intro.xml                                  |
 4 ++--
 docs/reference/gobject/tut_tools.xml                                  |
 4 ++--
 15 files changed, 30 insertions(+), 30 deletions(-)

commit ee44211f1a44e58bb7c3d93aed6eeee4863d5263
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Apr 22 21:56:07 2012 +0100

    docs: rename *-docs.sgml to *-docs.xml

    We are using xml docbook nowadays

 docs/reference/gio/gio-docs.xml                        |  4 ++--
 docs/reference/glib/Makefile.am                        | 18
 +++++++++---------
 docs/reference/glib/{building.sgml => building.xml}    |  0
 docs/reference/glib/{changes.sgml => changes.xml}      |  0
 docs/reference/glib/{compiling.sgml => compiling.xml}  |  0
 docs/reference/glib/{cross.sgml => cross.xml}          |  0
 docs/reference/glib/{glib-docs.sgml => glib-docs.xml}  | 18
 +++++++++---------
 .../glib/{regex-syntax.sgml => regex-syntax.xml}       |  0
 docs/reference/glib/{resources.sgml => resources.xml}  |  0
 docs/reference/glib/{running.sgml => running.xml}      |  0
 docs/reference/gobject/Makefile.am                     |  2 +-
 .../gobject/{gobject-docs.sgml => gobject-docs.xml}    |  4 ++--
 12 files changed, 23 insertions(+), 23 deletions(-)

commit 3ea31fc0f1d81affaf655f550899fa16cb59201a
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Apr 23 01:36:49 2012 +0100

    docs: Add index to new api added in 2.34

 docs/reference/gio/gio-docs.xml          | 4 ++++
 docs/reference/glib/glib-docs.sgml       | 4 ++++
 docs/reference/gobject/gobject-docs.sgml | 4 ++++
 3 files changed, 12 insertions(+)

commit 14a7781873317e24b55984173e2bedf6eaaf0917
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Apr 23 01:15:26 2012 +0100

    docs: Fix "Since" markup

 glib/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2a37bc0dc6cc013d01836b45c2eea6b1bd6d80e5
Author: Dan Winship <danw@gnome.org>
Date:   Sun Apr 22 15:18:50 2012 -0400

    gio: add a proxy test program

    Test GProxy, GProxyResolver, GProxyAddress, and
    GProxyAddressEnumerator, plus GSocketClient's proxy-resolving
    codepaths.

 gio/tests/Makefile.am  |    4 +
 gio/tests/proxy-test.c | 1077
 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1081 insertions(+)

commit bcaa0a3820dae0ce10fc8329b10b7c963447e6d3
Author: Dan Winship <danw@gnome.org>
Date:   Sat Apr 21 00:25:53 2012 -0400

    gio: Add more information to GProxyAddress

    Add two new methods to GProxyAddress for recovering information about
    the destination URI that the proxy was created for (and modify
    GProxyAddressEnumerator to set that information when creating the
    GProxyAddress).

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gproxyaddress.c                 | 116
 +++++++++++++++++++++++++++++++++---
 gio/gproxyaddress.h                 |   5 ++
 gio/gproxyaddressenumerator.c       |  54 ++++++++++-------
 5 files changed, 152 insertions(+), 27 deletions(-)

commit 8c7025e72320775f915cdd776e09c7cbecd648ac
Author: Dan Winship <danw@gnome.org>
Date:   Sun Apr 22 15:20:14 2012 -0400

    gio: fix error handling in async case of GProxyAddressEnumerator

    In the async case, a failed DNS lookup was causing the proxy
    resolution to bail out immediately, rather than just moving on to the
    next potential proxy (which might not need us to do the DNS lookup
    beforehand). Fix that.

 gio/gproxyaddressenumerator.c | 95
 ++++++++++++++++++++++++++-----------------
 1 file changed, 58 insertions(+), 37 deletions(-)

commit 3cf987e660d0b32e44b2be67352db65f14342f6a
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Apr 22 15:34:12 2012 +0200

    Updated Galician translations

 po/gl.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 2a5763c412b624cb70fdc858431b5292ff5312e0
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Apr 22 11:13:21 2012 +0200

    Updated Spanish translation

 po/es.po | 147
 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 90 insertions(+), 57 deletions(-)

commit 1e73a200a6fd13b36c52cf783521ac5a256cec56
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Apr 22 11:41:51 2012 +0300

    Updated Hebrew translation.

 po/he.po | 371
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 207 insertions(+), 164 deletions(-)

commit ecdaf357fe230baefefd45ebd3000ab7c37869ac
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Sun Apr 22 09:07:34 2012 +0300

    Updated Bulgarian translation

 po/bg.po | 147
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 94 insertions(+), 53 deletions(-)

commit 2adf6b3d6b975130f41fcbbd66ea348d8a10c0e6
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Apr 21 16:30:59 2012 +0200

    Updated Galician translations

 po/gl.po | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

commit 8ebea8263402dd4a5778c2febbd4ef891eddd88c
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Apr 21 12:46:49 2012 +0200

    Updated Slovenian translation

 po/sl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 68629ceb4fab5393448ab4688320eace56d11790
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sat Apr 21 12:39:22 2012 +0200

    Updated Slovenian translation

 po/sl.po | 180
 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 110 insertions(+), 70 deletions(-)

commit 5d7e9bfbbd7f993922b09577d775822f63ea5640
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Sat Apr 21 09:26:24 2012 +0200

    Updated Serbian translation

 po/sr.po       | 349
 ++++++++++++++++++++++++++++++++-------------------------
 po/sr@latin.po | 349
 ++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 392 insertions(+), 306 deletions(-)

commit 88f73eef540d107210a0f52de81cb1a2c87cb5d6
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Apr 20 20:50:26 2012 +0200

    Updated POTFILES.in

 po/POTFILES.in | 2 ++
 1 file changed, 2 insertions(+)

commit 755c1311958f256d60daeb548d1ba4d235d2783b
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Apr 20 17:22:55 2012 +0200

    Updated Spanish translation

 po/es.po | 130
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 73 insertions(+), 57 deletions(-)

commit 515a454c39b81f61565f7b41ff26aad7a133f853
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Apr 20 15:12:48 2012 +0200

    Updated Galician translations

 po/gl.po | 120
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 67 insertions(+), 53 deletions(-)

commit 5fb44f70dcac16ff6f13d3d36c330ddd617a5d97
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Apr 20 10:23:34 2012 +0200

    win32: Implement _g_dbus_get_machine_id using machine guid

    This is what libdbus uses, so we're compatible.

 gio/gdbusprivate.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

commit dccce383670592f12510019e92ea91a618a1810c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Apr 18 17:09:37 2012 +0200

    win32: Support autolaunching dbus daemon

 gio/Makefile.am    |   8 ++
 gio/gdbusaddress.c | 306
 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 312 insertions(+), 2 deletions(-)

commit bd148e127a5863de4aef260cd879e0eda370c711
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Apr 18 16:25:29 2012 +0200

    Add _g_io_win32_get_module to get the gio HMODULE

 gio/giomodule-priv.h | 4 ++++
 gio/giomodule.c      | 6 ++++++
 2 files changed, 10 insertions(+)

commit 74214e2997e51fd96842aac2eee049e6b81a4595
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 19 11:01:24 2012 +0200

    GTestDBus: Allow to specify the dbus-daemon binary

    The env var G_TEST_DBUS_DAEMON lets you change dbus-daemon to
    whatever you want. This is useful to test with gdbus-daemon

 gio/gtestdbus.c | 3 +++
 1 file changed, 3 insertions(+)

commit 0d8b1b14d2d56c92b2b783798a9552eb75d77a29
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Apr 16 10:16:47 2012 +0200

    Add gdbus-daemon test app

 gio/tests/Makefile.am    |  4 +++
 gio/tests/gdbus-daemon.c | 72
 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)

commit 25581738a8d5ee7db2a6d9ebd908d59b2837cd70
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Apr 16 10:16:04 2012 +0200

    Add GDBusDAaemon, an implementation of a message bus

    This is mostly complete, sans support for activation. However, its
    not as picky as the libdbus implementation in terms like validation
    and limits checking, nor is it as tested.

    Its can be useful to test gdbus if dbus-daemon is not availible, but
    its main reason for existance is to implement a default session bus
    on win32 so that e.g. GApplication is guaranteed to work.

 gio/.gitignore      |    1 +
 gio/Makefile.am     |   17 +-
 gio/dbus-daemon.xml |   76 +++
 gio/gdbusdaemon.c   | 1752
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gdbusdaemon.h   |   19 +
 5 files changed, 1864 insertions(+), 1 deletion(-)

commit b38f1c7aff0bb7388993973f4d8516b95ad593ba
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Apr 20 14:31:05 2012 +0200

    resourcefile: Set display name

    Fixes resource filenames not being printed in CSS warnings for GTK.

    https://bugzilla.gnome.org/show_bug.cgi?id=674345

 gio/gresourcefile.c | 1 +
 1 file changed, 1 insertion(+)

commit 289e3b9143fe9bd27657ed277dd7ea2e1a690aa3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 19 17:13:52 2012 -0400

    More beautiful fix

    A comma on a line by itself is too ugly to stand.

 gio/gtestdbus.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit bf8a4ed099b53dc1b952b7c3b2ef38c45dbd359e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 19 17:06:49 2012 -0400

    Bump version to 2.33.1

    This avoids triggering the 'too new' warning from 2.34 API.

 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit bb78753a661f7149fc0ac85cfdbf10f9f7e9fc42
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 19 20:46:08 2012 +0200

    Fix non-win32 build error in my recent commit

 gio/gtestdbus.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 6d51527ba0fe7cece9d1f61466076d332bc7fbac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 19 13:25:26 2012 -0400

    Revert "tests: fix test on windows"

    This reverts commit 79361eede240e9591891290c22cd072ccddb78a3.

    Just commenting out a test without an explanation does not
    look right to me. This needs at the minimum a link to a
    bug report or an explanation for why the behaviour is platform
    dependent. If the test was just wrong, it needs to be removed,
    not commented out. If there is a bug in the win32 implementation,
    it needs to be fixed.

 glib/tests/fileutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 21e049b2539d492cd4e959e5c962245d33adf8ca
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 19 18:12:23 2012 +0200

    Tests: Move dbus specific tests to if HAVE_DBUS_DAEMON

    These used to only be built on unix, but if you have dbus-daemon on
    win32 we should really build them there too.

 configure.ac          |  3 +++
 gio/tests/Makefile.am | 16 +++++++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

commit 234ddf131b43b0f99ce26489993dd0a13abb50ab
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 19 18:11:47 2012 +0200

    Fix test building on win32

 gio/tests/gdbus-connection-slow.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 58e613bfc7cf566a391c62245e4c5e895fcc7873
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 19 13:49:52 2012 +0200

    GTestDBus: Make work on win32

    Win32 doesn't have things like fork so the existing code has no way
    of working. Instead we swap it all out for a custom implementation
    on win32.

 gio/gtestdbus.c | 64
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 62 insertions(+), 2 deletions(-)

commit 79361eede240e9591891290c22cd072ccddb78a3
Author: Andoni Morales Alastruey <ylatuya@gmail.com>
Date:   Thu Apr 19 15:02:34 2012 +0200

    tests: fix test on windows

 glib/tests/fileutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit af7dc168f65453305e2cd8f63b0daaa3c441927c
Author: Andoni Morales Alastruey <ylatuya@gmail.com>
Date:   Thu Apr 19 15:12:48 2012 +0200

    test: only check for defined errors

 glib/tests/fileutils.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

commit 0d9a7f2117ff821d576ec54dee724b69907fa7a0
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Apr 18 16:24:44 2012 +0200

    Remove ununsed include

 gio/tests/gdbus-connection.c | 1 -
 1 file changed, 1 deletion(-)

commit 82aecce30131e275dff73f23ee91e7c40a9b3f03
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Apr 17 15:50:53 2012 +0200

    gdbus: Escape nonce files in dbus addressess

    Otherwise the colon in c:\blah made for trouble

 gio/gdbusserver.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 2414d7d6a197e0c4b184607160d6cd8a378df177
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Apr 17 15:50:01 2012 +0200

    Fix build on win32

    Some errnos don't exist on win32

 glib/tests/fileutils.c | 2 ++
 1 file changed, 2 insertions(+)

commit b77af49b0a921a8695a8b856264df3152a9c3689
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Apr 16 10:18:44 2012 +0200

    Fix race in gdbus-connection test

    We need to flush the AddMatches before even connecting to the bus,
    or we
    risk missing the NameOwnerChanged from the new connections.

 gio/tests/gdbus-connection.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

commit ff92fe95935b38eaacedb287f6600df000ed1c1a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Apr 16 09:55:29 2012 +0200

    Support initial underscores in dbus codegen namespace

    Before these were considered lowercase and thus got duplicated.

 gio/gdbus-2.0/codegen/utils.py | 7 +++++++
 1 file changed, 7 insertions(+)

commit 415a8d81f6fc52d7314517f36bd03f0cbad27dd5
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Wed Apr 18 23:28:17 2012 +0200

    Use GTestDBus in all GDBus unit tests

    To make port easier, this rewrites dbus-sessionbus.c using a
    GTestDBus singleton internally.

    https://bugzilla.gnome.org/show_bug.cgi?id=672985

 gio/tests/actions.c                     |   2 -
 gio/tests/gapplication.c                |  23 +--
 gio/tests/gdbus-auth.c                  |   5 -
 gio/tests/gdbus-bz627724.c              |   6 +-
 gio/tests/gdbus-connection-loss.c       |  13 +-
 gio/tests/gdbus-connection-slow.c       |   7 +-
 gio/tests/gdbus-connection.c            |  23 +--
 gio/tests/gdbus-exit-on-close.c         |  12 +-
 gio/tests/gdbus-export.c                |  13 +-
 gio/tests/gdbus-introspection.c         |  21 +--
 gio/tests/gdbus-names.c                 |  14 +-
 gio/tests/gdbus-peer.c                  |   2 -
 gio/tests/gdbus-proxy-threads.c         |  14 +-
 gio/tests/gdbus-proxy-well-known-name.c |  11 +-
 gio/tests/gdbus-proxy.c                 |  15 +-
 gio/tests/gdbus-sessionbus.c            | 325
 ++------------------------------
 gio/tests/gdbus-sessionbus.h            |  12 +-
 gio/tests/gdbus-test-codegen.c          |  11 --
 gio/tests/gdbus-tests.c                 | 106 -----------
 gio/tests/gdbus-tests.h                 |  25 ---
 gio/tests/gdbus-threading.c             |  11 --
 gio/tests/gmenumodel.c                  |   3 -
 22 files changed, 65 insertions(+), 609 deletions(-)

commit 95bf3d1194a42aa0933e2d1dba26ba57395613fc
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Wed Apr 18 23:21:13 2012 +0200

    Add GTestDBus object

    This is a helper to write unit tests using a private dbus-daemon.

    https://bugzilla.gnome.org/show_bug.cgi?id=672985

 docs/reference/gio/gio-docs.xml     |   4 +
 docs/reference/gio/gio-sections.txt |  18 +
 docs/reference/gio/gio.types        |   2 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  10 +
 gio/gioenums.h                      |  12 +
 gio/giotypes.h                      |   2 +
 gio/gtestdbus.c                     | 693
 ++++++++++++++++++++++++++++++++++++
 gio/gtestdbus.h                     |  74 ++++
 10 files changed, 818 insertions(+)

commit 2e3d50631ff05d28ed5bdae97d1becc4c6b5e078
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Fri Apr 6 14:51:09 2012 +0200

    Add private _g_bus_get_singleton_if_exists() function

    This is used by g_test_dbus_down() to ensure the GDBusConnection
    gets disposed, but not create one if the singleton already got
    disposed.

    https://bugzilla.gnome.org/show_bug.cgi?id=672985

 gio/gdbusconnection.c | 19 +++++++++++++++++++
 gio/gdbusprivate.h    |  3 +++
 2 files changed, 22 insertions(+)

commit 98569e53e3678ab906bfcd3a8c624ea3d74d643f
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 18 13:48:27 2012 -0400

    Revert "Add a private copy of gio/tests/gdbus-tests.c,h to gio/"

    This reverts commit 07bbc87615c6c0d6a525f40c2bffad2c11e400d2.

 gio/Makefile.am   |   1 -
 gio/gdbus-tests.c | 268
 ------------------------------------------------------
 gio/gdbus-tests.h | 145 -----------------------------
 3 files changed, 414 deletions(-)

commit 26d4da2352bea3024a90b7fe0d1b1ed4c1b5e979
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 18 13:48:09 2012 -0400

    Revert "Add private _g_bus_get_singleton_if_exists() function"

    This reverts commit f8a8e9039889c090fb3323e195730b9e460396e4.

 gio/gdbusconnection.c | 19 -------------------
 gio/gdbusprivate.h    |  3 ---
 2 files changed, 22 deletions(-)

commit a6f83d73e59cc2ab0353ff3edf38d27185852581
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 18 13:47:51 2012 -0400

    Revert "Add GTestDBus object"

    This reverts commit 1b5f70b5b035019ba28da6a5db6eff8122e17ae7.

 docs/reference/gio/gio-docs.xml         |   4 -
 docs/reference/gio/gio-sections.txt     |  18 -
 docs/reference/gio/gio.types            |   2 -
 gio/Makefile.am                         |   2 -
 gio/gio.h                               |   1 -
 gio/gio.symbols                         |  10 -
 gio/gioenums.h                          |  15 -
 gio/giotypes.h                          |   2 -
 gio/gtestdbus.c                         | 650
 --------------------------------
 gio/gtestdbus.h                         |  82 ----
 gio/tests/actions.c                     |   2 +
 gio/tests/gapplication.c                |  23 +-
 gio/tests/gdbus-auth.c                  |   5 +
 gio/tests/gdbus-bz627724.c              |   6 +-
 gio/tests/gdbus-connection-loss.c       |  13 +-
 gio/tests/gdbus-connection-slow.c       |   7 +-
 gio/tests/gdbus-connection.c            |  20 +-
 gio/tests/gdbus-exit-on-close.c         |  12 +-
 gio/tests/gdbus-export.c                |  13 +-
 gio/tests/gdbus-introspection.c         |  11 +-
 gio/tests/gdbus-names.c                 |  13 +-
 gio/tests/gdbus-peer.c                  |   2 +
 gio/tests/gdbus-proxy-threads.c         |  10 +-
 gio/tests/gdbus-proxy-well-known-name.c |  11 +-
 gio/tests/gdbus-proxy.c                 |  11 +-
 gio/tests/gdbus-sessionbus.c            | 325 +++++++++++++++-
 gio/tests/gdbus-sessionbus.h            |  12 +-
 gio/tests/gdbus-test-codegen.c          |  11 +
 gio/tests/gdbus-threading.c             |  11 +
 gio/tests/gmenumodel.c                  |   3 +
 30 files changed, 469 insertions(+), 838 deletions(-)

commit 9dce93514eb80cd54c2c02db3abf50f2d5a34fb0
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 18 13:33:00 2012 -0400

    GMenuModel: Don't leak GDBusConnection in test

    See https://bugzilla.gnome.org/show_bug.cgi?id=672985#c89

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gmenumodel.c | 1 +
 1 file changed, 1 insertion(+)

commit 1b5f70b5b035019ba28da6a5db6eff8122e17ae7
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Wed Apr 18 08:50:07 2012 +0200

    Add GTestDBus object

    This is a helper to write unit tests using a private dbus-daemon.

    session_bus_up/down() are now just wrappers around a GTestDBus
    singleton.

    https://bugzilla.gnome.org/show_bug.cgi?id=672985

 docs/reference/gio/gio-docs.xml         |   4 +
 docs/reference/gio/gio-sections.txt     |  18 +
 docs/reference/gio/gio.types            |   2 +
 gio/Makefile.am                         |   2 +
 gio/gio.h                               |   1 +
 gio/gio.symbols                         |  10 +
 gio/gioenums.h                          |  15 +
 gio/giotypes.h                          |   2 +
 gio/gtestdbus.c                         | 650
 ++++++++++++++++++++++++++++++++
 gio/gtestdbus.h                         |  82 ++++
 gio/tests/actions.c                     |   2 -
 gio/tests/gapplication.c                |  23 +-
 gio/tests/gdbus-auth.c                  |   5 -
 gio/tests/gdbus-bz627724.c              |   6 +-
 gio/tests/gdbus-connection-loss.c       |  13 +-
 gio/tests/gdbus-connection-slow.c       |   7 +-
 gio/tests/gdbus-connection.c            |  20 +-
 gio/tests/gdbus-exit-on-close.c         |  12 +-
 gio/tests/gdbus-export.c                |  13 +-
 gio/tests/gdbus-introspection.c         |  11 +-
 gio/tests/gdbus-names.c                 |  13 +-
 gio/tests/gdbus-peer.c                  |   2 -
 gio/tests/gdbus-proxy-threads.c         |  10 +-
 gio/tests/gdbus-proxy-well-known-name.c |  11 +-
 gio/tests/gdbus-proxy.c                 |  11 +-
 gio/tests/gdbus-sessionbus.c            | 325 +---------------
 gio/tests/gdbus-sessionbus.h            |  12 +-
 gio/tests/gdbus-test-codegen.c          |  11 -
 gio/tests/gdbus-threading.c             |  11 -
 gio/tests/gmenumodel.c                  |   3 -
 30 files changed, 838 insertions(+), 469 deletions(-)

commit f8a8e9039889c090fb3323e195730b9e460396e4
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Fri Apr 6 14:51:09 2012 +0200

    Add private _g_bus_get_singleton_if_exists() function

    This is used by g_test_dbus_down() to ensure the GDBusConnection
    gets disposed, but not create one if the singleton already got
    disposed.

    https://bugzilla.gnome.org/show_bug.cgi?id=672985

 gio/gdbusconnection.c | 19 +++++++++++++++++++
 gio/gdbusprivate.h    |  3 +++
 2 files changed, 22 insertions(+)

commit 07bbc87615c6c0d6a525f40c2bffad2c11e400d2
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Tue Apr 17 19:33:11 2012 +0200

    Add a private copy of gio/tests/gdbus-tests.c,h to gio/

    https://bugzilla.gnome.org/show_bug.cgi?id=672985

 gio/Makefile.am   |   1 +
 gio/gdbus-tests.c | 268
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gdbus-tests.h | 145 +++++++++++++++++++++++++++++
 3 files changed, 414 insertions(+)

commit c70a4030dd55fae4555e374bd7fe421fd36f3e22
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Apr 18 09:27:04 2012 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 177
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 88 insertions(+), 89 deletions(-)

commit b3f814883f460ec9b309552a501652ecdecfb2dc
Author: Alexandre Rostovtsev <tetromino@gentoo.org>
Date:   Sun Apr 15 22:57:25 2012 -0400

    Do not detect GNUstep as Cocoa

    GNUstep also installs Foundation/Foundation.h

    https://bugzilla.gnome.org/show_bug.cgi?id=674172

    Signed-off-by: William Hua <william@attente.ca>

 configure.ac | 3 +++
 1 file changed, 3 insertions(+)

commit a147004b83ee48265e266e33da7656a3a09c7edb
Author: William Hua <william@attente.ca>
Date:   Tue Apr 17 23:49:47 2012 -0400

    Use Cocoa header for Cocoa test instead of Foundation.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7f5f47ae15268a1dd96fabd360eb25e712724ac4
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 17 17:51:01 2012 -0400

    gdbus-codegen: Don't leak stuff in tests

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-test-codegen.c | 108
 +++++++++++++++++++++++++----------------
 1 file changed, 67 insertions(+), 41 deletions(-)

commit eedb6d8366a9cf4e638fe34ebdca17b387e41ce5
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 17 17:50:40 2012 -0400

    GDBusObjectProxy: Don't leak connection

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectproxy.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3964e708e9a4eb7c23c0aa651ccf8bc7a57cbbf0
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 17 17:48:08 2012 -0400

    GDBusObjectManagerClient: Don't leak object proxy when handling
    D-Bus signal

    It's g_object_unref(), not g_object_ref(). Ugh.

    Therefore, use g_clear_object().

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectmanagerclient.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 3b9791cca63f78e39fdbcb8596c4b8a4e84fa937
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Apr 17 19:48:59 2012 +0200

    Updated POTFILES.in

 po/POTFILES.in | 2 ++
 1 file changed, 2 insertions(+)

commit 00ee06e6a332d1415baf5533e34f05a83d64cb02
Author: Dan Winship <danw@gnome.org>
Date:   Sat Feb 4 16:46:29 2012 -0500

    gio: use GPollable* to implement fallback read_async/write_async

    If a GInputStream does not provide a read_async() implementation, but
    does implement GPollableInputStream, then instead of doing
    read-synchronously-in-a-thread, just use
    g_pollable_input_stream_read_nonblocking() and
    g_pollable_input_stream_create_source() to implement an async read in
    the same thread. Similarly for GOutputStream.

    Remove a bunch of existing read_async()/write_async() implementations
    that are basically equivalent to the new fallback method.

    https://bugzilla.gnome.org/show_bug.cgi?id=673997

 gio/gbufferedinputstream.c  | 195
 --------------------------------------------
 gio/gbufferedoutputstream.c | 108 ------------------------
 gio/ginputstream.c          |  71 +++++++++++++++-
 gio/gmemoryinputstream.c    |  57 -------------
 gio/gmemoryoutputstream.c   |  62 --------------
 gio/goutputstream.c         |  66 ++++++++++++++-
 gio/gsocketinputstream.c    |  91 ---------------------
 gio/gsocketoutputstream.c   | 111 +++----------------------
 gio/gunixinputstream.c      | 143 ++------------------------------
 gio/gunixoutputstream.c     | 135 ------------------------------
 10 files changed, 150 insertions(+), 889 deletions(-)

commit 82ec4dcaed8107d436f76c45ec30645715b6dbef
Author: Dan Winship <danw@gnome.org>
Date:   Mon Feb 6 15:08:08 2012 -0500

    gio: implement GPollableInput/OutputStream in more stream types

    Implement GPollableInputStream in GMemoryInputStream and
    GConverterInputStream, and likewise implement GPollableOutputStream in
    the corresponding output streams.

    https://bugzilla.gnome.org/show_bug.cgi?id=673997

 gio/gconverterinputstream.c  | 130 +++++++++++++++++++++++---
 gio/gconverteroutputstream.c | 119 ++++++++++++++++++++----
 gio/gmemoryinputstream.c     |  41 ++++++++-
 gio/gmemoryoutputstream.c    |  40 +++++++-
 gio/tests/converter-stream.c | 214
 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 508 insertions(+), 36 deletions(-)

commit 111ba203c2440a5d7d8a14b043213b78d54752ae
Author: Dan Winship <danw@gnome.org>
Date:   Sat Feb 11 17:22:49 2012 -0500

    gpollableutils: utility functions for pollable stream implementations

    Move g_pollable_source_new() here from gpollableinputstream.c, add
    g_pollable_source_new_full(), and add some new methods to do either
    blocking or nonblocking reads depending on a boolean argument.

    https://bugzilla.gnome.org/show_bug.cgi?id=673997

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  14 +-
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   6 +-
 gio/gpollableinputstream.c          | 103 -----------
 gio/gpollableinputstream.h          |   3 -
 gio/gpollableutils.c                | 350
 ++++++++++++++++++++++++++++++++++++
 gio/gpollableutils.h                |  65 +++++++
 9 files changed, 435 insertions(+), 110 deletions(-)

commit 7e95777a6a46ef40b1a175e95136942b4eed4d75
Author: Dan Winship <danw@gnome.org>
Date:   Sun Apr 1 14:47:19 2012 -0400

    gio: minor GPollableInputStream / GPollableOutputStream fixes

    Make g_pollable_input_stream_read() and
    g_pollable_output_stream_write() look a little bit more like the
    non-pollable versions in terms of error handling, etc. Also, use the
    read_fn and write_fn virtual methods directly rather than calling
    g_input_stream_read()/g_output_stream_write(), to avoid problems with
    re-entrancy involving the "pending" flag.

    Also belatedly add single-include guards to the header files.

    https://bugzilla.gnome.org/show_bug.cgi?id=673997

 gio/gpollableinputstream.c  | 41
 +++++++++++++++++++++++++++++++----------
 gio/gpollableinputstream.h  |  8 ++++++--
 gio/gpollableoutputstream.c | 41
 +++++++++++++++++++++++++++++++----------
 gio/gpollableoutputstream.h |  8 ++++++--
 4 files changed, 74 insertions(+), 24 deletions(-)

commit adea9fb25210f2d04bcf2453c18847fb965927f7
Author: Dan Winship <danw@gnome.org>
Date:   Tue Apr 17 11:46:50 2012 -0400

    GConverterInputStream: fix an infinite loop when fill_buffer returns
    an error

    The loop was using a GConverterResult variable where it meant to use a
    gssize, and since GConverterResult was ending up as an unsigned type,
    this meant the (res < 0) check always failed.

 gio/gconverterinputstream.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 2ef1a8ef05410ee724f7ad577db57bd11e6c51c2
Author: Hannes Mueller <h.c.f.mueller@gmx.de>
Date:   Sat Feb 4 10:06:35 2012 +0100

    avoid warning in gutils.h when using gcc with -Wconversion

    Old solution to avoid warning with gcc flag -Wconversion does not
    work with gcc >=4.3 since the behaviour for that flag has been
    changed, ref. http://gcc.gnu.org/wiki/NewWconversion. Now cast for
    __builtin_clzl is required, which itself is declared to return int.

    https://bugzilla.gnome.org/show_bug.cgi?id=619026

 glib/gutils.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit be6955a008396cd234f53361459c9fcf91576fdc
Author: Sasi Bhushan <sasi@swecha.net>
Date:   Tue Apr 17 15:45:05 2012 +0530

    Updated Telugu Translation

 po/te.po | 214
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 108 insertions(+), 106 deletions(-)

commit bb6807ae254936ef95679e6b18b87e19ae90da1f
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Tue Apr 17 06:28:41 2012 +0300

    Updated Bulgarian translation

 po/bg.po | 180
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 90 insertions(+), 90 deletions(-)

commit f93c999706ed2dcb24ff7f942cf25c4f4a8ea786
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Apr 17 01:11:08 2012 +0200

    Updated Galician translations

 po/gl.po | 183
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 93 insertions(+), 90 deletions(-)

commit 8869de3857210a243419589a4a1c8357b40c7b02
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Nov 17 15:18:50 2011 +0100

    gdbus-codegen: Avoid warnings in generated code

    Initialising a "gchar *" struct member from a string literal may
    produce
    a warning; add an explicit cast to fix that.

    Bug #664275.

 gio/gdbus-2.0/codegen/codegen.py | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 5ef34e5f11b4f71a66615b6506108ee540cc3420
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Apr 9 15:34:10 2012 +0200

    resources: compiler: Fix resources on big endian architectures

    Resources are always little endian, so the gvdb is byteswapped. When
    looking
    up the value, it would return a new byteswapped variant, making
    the data
    returned from do_lookup() invalid once that variant is unref'd. Since
    byteswapping doesn't matter for the "ay" data anyway, just use
    gvdb_table_get_raw_value() instead and only byteswap the length
    and flag
    values.

    https://bugzilla.gnome.org/show_bug.cgi?id=673409

 gio/gresource.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit cf619cffb77b6792f344b517bb4fc46afe0690f5
Author: Wolfgang Stöggl <c72578@yahoo.de>
Date:   Mon Apr 16 22:37:30 2012 +0200

    [l10n] Updated German translation

 po/de.po | 87
 +++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 45 insertions(+), 42 deletions(-)

commit 8da60fa91adca38a0f3c792397bbf89e179b2634
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon Apr 16 22:24:41 2012 +0200

    Updated Slovenian translation

 po/sl.po | 245
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 124 insertions(+), 121 deletions(-)

commit 4553caa37a9f4bf73a2af364e592d3d128b32474
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Apr 16 21:19:23 2012 +0200

    Updated Polish translation

 po/pl.po | 104
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 52 insertions(+), 52 deletions(-)

commit 3ac2930e1aabeca7dac7a2570cba24591d97e0d2
Author: Colin Walters <walters@verbum.org>
Date:   Mon Apr 16 13:55:02 2012 -0400

    tests: Fix race conditions in mainloop/invoke test

    1) The test was using GCond incorrectly (it always needs a
       state variable)
    2) The state assertion was racing with the thread; just delete it.
       All we're really trying to test here is that the invoke runs by the
       time the thread is gone, and the function has an assertion that
       it runs in the correct thread.

    https://bugzilla.gnome.org/show_bug.cgi?id=674213

 glib/tests/mainloop.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 3054ecf10943575381dfea2513936567be51dd73
Author: Colin Walters <walters@verbum.org>
Date:   Mon Apr 16 11:50:05 2012 -0400

    tests/mainloop: Add a test for recursive child sources

    https://bugzilla.gnome.org/show_bug.cgi?id=669260

 glib/tests/mainloop.c | 57
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

commit bdbb5313408013d0877aa76352fa4a14015841c5
Author: Dan Winship <danw@gnome.org>
Date:   Fri Apr 13 11:44:34 2012 -0400

    tests/mainloop: add a test for child sources

    https://bugzilla.gnome.org/show_bug.cgi?id=669260

 glib/tests/mainloop.c | 98
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 98 insertions(+)

commit a49568ceccb133c5a99524f3fdb842f0c05eb0b3
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 11 15:21:17 2012 -0400

    gmain: block child sources when blocking the parent

    When blocking a source that has child sources, we need to consider the
    children blocked as well. Otherwise they will still trigger repeatedly
    in an inner loop started from the parent source's callback.

    https://bugzilla.gnome.org/show_bug.cgi?id=669260

 glib/gmain.c | 35 +++++++++++++++++++++++++++++------
 1 file changed, 29 insertions(+), 6 deletions(-)

commit b3b32be1e1a7dab2467456b73bf8cbf5f64f2cbf
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Sat Apr 14 15:48:13 2012 +0300

    Only build gmenumodel test on unix

    It depends on gdbus-sessionbus.c which only builds on unix.

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aacd3469a595f32627691f1a7d5baf1ffbcc9527
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Sat Apr 14 15:40:17 2012 +0300

    tests/fileutils: Fix Windows build

 glib/tests/fileutils.c | 2 ++
 1 file changed, 2 insertions(+)

commit 6bbfa4ee141e89c0961b6d12aa54876e49482fcd
Author: Chandan Kumar (ciypro) <chandankumar.093047@gmail.com>
Date:   Mon Apr 16 20:50:21 2012 +0530

    Updated HINDI translation

 po/hi.po | 309
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 145 insertions(+), 164 deletions(-)

commit 0f57e5c70ce33d8ee21a2ae8565bd980689ab0c2
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Mon Apr 16 10:45:12 2012 -0400

    tests/date: force English locale running the GDateTime tests

    The parsing test needs to make some assumption about the locale
    representation of the string to be parsed, so we need to explicitly
    override the locale here.

 glib/tests/date.c | 1 +
 1 file changed, 1 insertion(+)

commit 01c5cdb50d73ffe205cd42b6e096d249d6428b14
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Apr 16 16:31:29 2012 +0200

    Updated Spanish translation

 po/es.po | 210
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 106 insertions(+), 104 deletions(-)

commit db4a635963480d27eb2b87264b12b50afb6266d7
Author: Petr Kovar <pkovar@redhat.com>
Date:   Mon Apr 16 15:57:21 2012 +0200

    Update Czech translation

 po/cs.po | 169
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 85 insertions(+), 84 deletions(-)

commit 666374c16f3d8118fe3422839d22ca32af69e4d0
Author: Stef Walter <stefw@gnome.org>
Date:   Wed Apr 4 17:13:10 2012 +0200

    Add support for MX, TXT, NS and SOA records to GResolver

     * Add resolver functions for looking up DNS records of
       various types. Currently implemented: MX, TXT, SOA, SRV, NS
     * Return records as GVariant tuples.
     * Make the GSrvTarget lookups a wrapper over this new
       functionality.
     * Rework the resolver test so that it has support for
       looking up MX, NS, SOA, TXT records, and uses GOptionContext

    https://bugzilla.gnome.org/show_bug.cgi?id=672944

 docs/reference/gio/gio-sections.txt |   4 +
 gio/gio.symbols                     |   4 +
 gio/gioenums.h                      |  43 ++++
 gio/gnetworkingprivate.h            |  10 +-
 gio/gresolver.c                     | 469
 +++++++++++++++++++++++++++++++++---
 gio/gresolver.h                     |  35 ++-
 gio/gthreadedresolver.c             | 118 +++++----
 gio/tests/resolver.c                | 281 +++++++++++++++++++--
 8 files changed, 862 insertions(+), 102 deletions(-)

commit cec17df59810b6f321d0b43027f3b90e4b1ba18c
Author: Petr Kovar <pkovar@redhat.com>
Date:   Mon Apr 16 15:21:17 2012 +0200

    Update Czech translation

 po/cs.po | 361
 +++++++++++++++++++++++++--------------------------------------
 1 file changed, 143 insertions(+), 218 deletions(-)

commit b17085dcb9cbf13a55a11ad4bff718e8d3c5d54e
Author: Yinghua Wang <wantinghard@gmail.com>
Date:   Mon Apr 16 14:06:56 2012 +0800

    update Simplified Chinese (zh_CN) translation

 po/zh_CN.po | 320
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 162 insertions(+), 158 deletions(-)

commit 6d19f11c89db11cd5bb3637c83261b6316b150df
Author: Rafał Mużyło <galtgendo@o2.pl>
Date:   Sun Apr 15 11:17:07 2012 -0400

    configure: Fix typo in ELF check

    Signed-off-by: Colin Walters <walters@verbum.org>

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4b98c512df9102086f9c6babb04fed3533b73925
Author: Colin Walters <walters@verbum.org>
Date:   Thu Apr 12 13:54:55 2012 -0400

    build: When cross compiling, don't require host binaries if tests
    are not enabled

    These binaries are now only used by the test suite.  glib-genmarshal
    *used* to be required to generate marshallers, but isn't anymore now
    that we use libffi (via g_cclosure_marshal_generic).

    https://bugzilla.gnome.org/show_bug.cgi?id=667806

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f084b603771f78126bc0b07229a1574b76e776bb
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jan 13 10:09:10 2012 -0500

    build: Add --disable-modular-tests build option

    This patch solves two problems:

    First, it allows builders to optionally cut the circular dependency
    between dbus and glib by disabling the modular tests (just like how
    the tests can be disabled in dbus).

    Second, the tests are entirely pointless to build if cross-compiling.

    It also moves us slightly closer to the long term future we want where
    the tests are a separate ./configure invocation and run against the
    INSTALLED glib, not the one in the source tree. This would allow us to
    run the tests constantly, not just when glib is built.

    https://bugzilla.gnome.org/show_bug.cgi?id=667806

 Makefile.am         |  7 ++++++-
 configure.ac        | 19 +++++++++++++------
 gio/Makefile.am     |  7 ++++++-
 glib/Makefile.am    |  8 +++++++-
 gobject/Makefile.am |  8 +++++++-
 5 files changed, 39 insertions(+), 10 deletions(-)

commit 366c39b6420c4cd23653a0e7d798d5f34e556392
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Sun Apr 15 00:27:04 2012 +0400

    Updated Russian translation

 po/ru.po | 1388
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 678 insertions(+), 710 deletions(-)

commit 1e2ca7646400f5f3a4464bbac3f50852dbf4e4cf
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Apr 13 16:06:16 2012 -0400

    fileinfo: document the correct type for trash::orig-path

    The correct type for this attribute, as set by GVfs, is
    G_FILE_ATTRIBUTE_TYPE_BYTE_STRING (which is the correct type for file
    paths anyway).

    https://bugzilla.gnome.org/show_bug.cgi?id=674074

 gio/gfileinfo.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6a9341d851030eac3cd20eb5b91a02d1db3c7006
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 14 12:40:57 2012 -0400

    GDBusAuth: Handle when no there is no auth observer present

    I obviously fucked up when adding the ::allow-mechanism signal, sorry.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9d1fe7db23c14440c64a3878c9461162b948826
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 11 23:34:08 2012 -0400

    Check that auth methods work and interoperate with libdbus-1

    See https://bugzilla.gnome.org/show_bug.cgi?id=673943

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/Makefile.am  |   7 ++
 gio/tests/gdbus-auth.c | 292
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 299 insertions(+)

commit 9496565a4cf3cc175929a3d184cb5dc6023f62ec
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 14 12:29:30 2012 -0400

    GSocketControlMessage: Don't warn about unknown messages

    If we do this, the tests added in bug 673943 will cause warnings.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gsocketcontrolmessage.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit ce81bd87c5fdd54126ceb81c17fea7c914833c3e
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 11 23:30:48 2012 -0400

    GDBusAuthObserver: Add a way to control what authentication mechanisms
    to use

    This is related to https://bugzilla.gnome.org/show_bug.cgi?id=673943
    but also useful in a lot of other contexts.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdbusauth.c                     | 40 +++++++++++++++++-------
 gio/gdbusauth.h                     |  1 +
 gio/gdbusauthobserver.c             | 62
 +++++++++++++++++++++++++++++++++++++
 gio/gdbusauthobserver.h             |  3 ++
 gio/gdbusconnection.c               |  1 +
 gio/gio.symbols                     |  1 +
 7 files changed, 97 insertions(+), 12 deletions(-)

commit bb7f3e0cbd89d0a55630e02dba562303c038a445
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Apr 5 23:26:12 2012 +0200

    GDesktopAppInfo: add an accessor for StartupWMClass

    Components using GIO to do window to application matching can
    use that field to retrieve potential candidates.

    https://bugzilla.gnome.org/show_bug.cgi?id=673659

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdesktopappinfo.c               | 26 +++++++++++++++++++++++++-
 gio/gdesktopappinfo.h               |  2 ++
 gio/gio.symbols                     |  1 +
 gio/tests/appinfo-test.desktop      |  2 ++
 gio/tests/appinfo.c                 | 15 +++++++++++++++
 6 files changed, 46 insertions(+), 1 deletion(-)

commit 79013634abe3a627d867f7054aaedb453b83d831
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Mon Apr 9 20:27:24 2012 +0200

    Add version macros for 2.34

    This marks the start of the new development cycle, and opens the
    window for API additions.

    https://bugzilla.gnome.org/show_bug.cgi?id=673659

 glib/gversionmacros.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 55bbb9fc69856fff853e4f464ac0813e247e78d2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 13 19:54:42 2012 -0400

    Bump version

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2b6cf583d264c101c72f4f7554925a0612b58e08
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 13 19:53:42 2012 -0400

    2.32.1

 NEWS | 9 +++++++++
 1 file changed, 9 insertions(+)

commit c1a83a4ac8b0e45bd176ff1334f58ae2d5c33ad2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 13 18:51:23 2012 -0400

    Fix distcheck

    I forgot to dist a test script, and forgot to look for it
    in srcdir instead of builddir.

 glib/tests/Makefile.am          | 3 ++-
 glib/tests/spawn-singlethread.c | 5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 9375212311382679344649b66d5161b25af02724
Author: Christian Kirbach <Christian.Kirbach@googlemail.com>
Date:   Fri Apr 13 19:39:19 2012 +0200

    [l10n] Updated German translation

 po/de.po | 302
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 152 insertions(+), 150 deletions(-)

commit baf0ebf7b233f05359f59dbee8d73fa15ef09407
Author: Dan Winship <danw@gnome.org>
Date:   Fri Apr 13 11:43:09 2012 -0400

    tests/mainloop: fix a race condition

    Rather than depending on the machine's speed/load, just interlock
    between the two threads properly.

 glib/tests/mainloop.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit e0aa0ae8a2b8a8989447673a7323434040ec7bd0
Author: Dan Winship <danw@gnome.org>
Date:   Fri Apr 13 11:42:39 2012 -0400

    tests/mainloop: use g_assert_cmpint(), for better error messages

 glib/tests/mainloop.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 50aed1cc8f5cfc18d389c5e1c059368482fba56d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 13 09:31:08 2012 -0400

    Make the markup-parse test independent of the locale

    I added a setlocale call, because we need it for Unicode to
    come out right; but I forgot to fix the locale, so we now
    fail when comparing error messages to the expected (English)
    result. Correct this by setting LANG explicitly to en_US.utf-8.

    https://bugzilla.gnome.org/show_bug.cgi?id=669285

 glib/tests/markup-parse.c | 1 +
 1 file changed, 1 insertion(+)

commit 5e0be9e9e2a3ed3b84fe3ce8d4d560220bd78811
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Fri Apr 13 13:27:39 2012 +0100

    Updated British English translation

 po/en_GB.po | 289
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 147 insertions(+), 142 deletions(-)

commit e13fc585354508cb28dd08b7d3f44f5744cfa461
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Fri Apr 13 13:22:46 2012 +0300

    GResource docs: fix typo

 gio/gresource.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 192892b52cbd13d4d3a09c1ca09c5ccdfe76d359
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 12 20:04:32 2012 -0400

    GSettings docs: clarify what is a good path

    Add an explicit note to the docs about choosing paths based on domain
    names, not ones like "/apps/", "/desktop/" or "/system/".

 gio/gsettings.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 6560b37450cd19c4a7c7b690e279fe97b7bfdcaa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 12 19:55:34 2012 -0400

    glib-compile-schemas: warn about bad dconf paths

    For quite some time the recommended usage of GSettings and dconf has
    been to use paths like /org/gnome/example/.  Use of /apps/ has spilled
    over from GConf and is continuing to make its way into a number of
    applications as they port.

    glib-compile-schemas will now warn about these types of paths being
    used.  This generates a lot of noise, but hopefully it will reduce the
    number of ported applications making this mistake.

 gio/glib-compile-schemas.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 386f0f29fd3dc8e39f49b50ae496c6b1feb3b0a1
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 12 16:50:20 2012 +0200

    Fall back to SO_PEERCRED if credentials passing fails

    Turns out libdbus doesn't send struct ucred credentials on linux, but
    just relies on the SO_PEERCRED support. However, gdbus does send, and
    expect to recieve a ucred credential. So, when libdbus talks to a
    gdbus server the authentication fails to send the credentials.

    We fix this by falling back to g_socket_get_credentials() if we don't
    get any credential messages.

 gio/gunixconnection.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit ec91ed00f14c70cca9749347b8ebc19d72d9885b
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 12 16:43:49 2012 +0200

    Detect "empty" socket credentials on Linux

    Linux uses struct ucred to pass over socket credentials. Historically
    this has always worked in recievemsg, if SO_PASSCRED was set on
    the socket,
    even if the remote side didn't pass any credits. But this change
    broke that:

    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=16e5726269611b71c930054ffe9b858c1cea88eb;hp=a9e9fd7182332d0cf5f3e601df3e71dd431b70d7

    However, it doesn't actually fail getting the credentials, it
    just returns
    an "empty" one, as initialized by cred_to_ucred() at:

    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=net/core/sock.c;h=b29ab61b029cf7f76fda992ecfcb8dcaa06b0483;#l756

    So, we detect this and fail the credentials reading.

    This actually happened in real life with gdbus acting as a server, as
    gdbus expected an ucred but libdbus didn't send one.

 gio/gunixcredentialsmessage.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 69d929e67fd44d9a20c64064cc7e06f5d3cead82
Author: William Hua <william@attente.ca>
Date:   Wed Apr 11 23:25:09 2012 -0400

    Be more precise about Carbon v. Cocoa.

 configure.ac                   | 14 ++++++++++++++
 gio/Makefile.am                |  7 ++-----
 gio/giomodule.c                |  2 +-
 gio/gsettingsbackendinternal.h |  2 +-
 4 files changed, 18 insertions(+), 7 deletions(-)

commit ebe30ef463f5fd2f011a3386c8e95aff7a42ab22
Author: OKANO Takayoshi <kano@na.rim.or.jp>
Date:   Thu Apr 12 09:30:05 2012 +0900

    [l10n] Update Japanese translation

 po/ja.po | 430
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 215 insertions(+), 215 deletions(-)

commit 47692845c0a062a76f99b5de125c5eafa4556847
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Apr 11 16:41:48 2012 +0300

    gio-2.0.pc: Avoid full path to executables

    Instead of using full path in glib_compile_schemas and
    glib_compile_resources variables, rely on having the executables in
    PATH.

    This fixes the cross-compiling case where we cannot execute the
    binaries
    for target system. Instead of executing the target system's
    binaries, we
    need to use the native versions installed on the build host. The
    easiest
    way to find the native executables is to just pick them up from PATH.

    In addition, this brings gio-2.0.pc in line with glib-2.0.pc -- the
    latter has historically only listed the executable name and not
    the full
    path.

    https://bugzilla.gnome.org/show_bug.cgi?id=673911

 gio-2.0.pc.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 5739d896f8d3bf9883d4f5e4b7553a617a1c751a
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Wed Apr 11 02:05:00 2012 -0400

    Don't use fast enumeration in old version of Mac OS.

    Signed-off-by: William Hua <william@attente.ca>

 gio/gnextstepsettingsbackend.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 51a2661da647d6ad5610a98bbdb8c805f822265b
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Wed Apr 11 01:44:29 2012 -0400

    Link with Foundation framework on OSX.

    Signed-off-by: William Hua <william@attente.ca>

 gio/Makefile.am | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 92654b5035966e36a3b17d4a8a7db74d857f3acf
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Wed Apr 11 14:53:22 2012 +0200

    Updated French translation

 po/fr.po | 176
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 90 insertions(+), 86 deletions(-)

commit 708f82735ddade84ebd82106aa921fcb04c8c01f
Author: Chandan Kumar (ciypro) <chandankumar.093047@gmail.com>
Date:   Wed Apr 11 16:25:22 2012 +0530

    Updated HINDI translation

 po/hi.po | 1051
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 586 insertions(+), 465 deletions(-)

commit 53accb95c017f21761d550dddc92c8d8bf5f2d58
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Apr 11 12:41:51 2012 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 228
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 116 insertions(+), 112 deletions(-)

commit e1cabfd3f2c294d5fc7c79135d1bb284b456c0d1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 10 23:52:30 2012 -0400

    Updates

 NEWS | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit e448f206e6473b5eb17b2296d90a5876eb5f34a0
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Tue Apr 10 23:12:29 2012 +0200

    [l10n]Updated Catalan (Valencian) translation

 po/ca@valencia.po | 187
 ++++++++++++++++++++++++++++--------------------------
 1 file changed, 96 insertions(+), 91 deletions(-)

commit 1083b28fb98daed0318eadbc26fdde3201c7ca0a
Author: Jordi Serratosa <jordis@softcatala.cat>
Date:   Tue Apr 10 23:12:23 2012 +0200

    [l10n] Fixes on Catalan translation

 po/ca.po | 249
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 122 insertions(+), 127 deletions(-)

commit c037879bd1424dce4e897635d829327b21e86e69
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Fri Apr 6 10:03:29 2012 +0100

    gdbus: test case for 673612

    When presented with an array of empty arrays of 8-byte-aligned types,
    GDBus would incorrectly apply the 8-byte alignment when reading back.

    https://bugzilla.gnome.org/show_bug.cgi?id=673612

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-serialization.c | 60
 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 59 insertions(+), 1 deletion(-)

commit 113f4abb67620696f63d61d1f22a5be635332b7c
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Tue Apr 10 13:20:09 2012 +0100

    GDBusMessage: do not align for grandchildren of empty arrays.

    D-Bus arrays are serialized as follows:

    1. align to a 4-byte boundary (for the length)
    2. uint32: the length of the serialized body in bytes
    3. padding for the alignment of the body type (not included in
    the length)
    4. the body.

    Note that 3. is a no-op unless the body type is an 8-byte aligned type
    (uint64, int64, double, struct, dict_entry), since you are always on a
    4-byte boundary from aligning and writing the length.

    So, an empty aax (that is, an array containing zero arrays of int64)
    is serialized as follows:

    1. align to a 4-byte boundary
    2. length of the contents of this (empty) array, in bytes (0)
    3. align to a 4-byte boundary (the child array's alignment
    requirement)
    4. there is no body.

    But previously, GDBus would recurse in step three to align not
    just for
    the type of the child array, but for the nonexistent child array's
    contents. This only affects the algorithm when the grandchild type has
    8-byte alignment and the reader happened to not already be on
    an 8-byte
    boundary, in which case 4 bytes were spuriously skipped.

    https://bugzilla.gnome.org/show_bug.cgi?id=673612

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c | 151
 +++++++++++++++++++++++++----------------------------
 1 file changed, 72 insertions(+), 79 deletions(-)

commit e28d3ef92197eb2e2a6a3a5627dcfaf475021e7e
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Tue Apr 10 12:58:52 2012 +0100

    GDBusMessage: print more debug info about alignment

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ce5710121961d0a7dfc1b5f83577e485560fa8c8
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Tue Apr 10 20:06:51 2012 +0300

    Updated Hebrew translation.

 po/he.po | 254
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 129 insertions(+), 125 deletions(-)

commit 6620b305a7eae8b59303b3858c25b3f9b9e5fc2d
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Tue Apr 10 11:06:03 2012 +0200

    Updated Serbian translation

 po/sr.po       | 183
 +++++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 183
 +++++++++++++++++++++++++++++----------------------------
 2 files changed, 184 insertions(+), 182 deletions(-)

commit 825fdfdc9a7ad9a64ca2ea9184b7c7db397d37f8
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Mon Apr 9 20:07:13 2012 -0300

    gclosure: Support return values of GVariants

    https://bugzilla.gnome.org/show_bug.cgi?id=673803

 gobject/gclosure.c | 3 +++
 1 file changed, 3 insertions(+)

commit c39d6954d3219472b3e9187bb86931051d313582
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Mon Apr 9 15:47:29 2012 -0400

    tests: always use four digit years for date parsing tests

    Or some system with different locale settings might get confused
    whether
    a two digit year is to be parsed with regard to the current century or
    as an absolute year.

 glib/tests/date.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 3b079daf9de2a293ad272ca997cd9dd06f072d8e
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Mon Apr 9 21:52:10 2012 +0300

    Updated Lithuanian translation

 po/lt.po | 196
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 99 insertions(+), 97 deletions(-)

commit 390f02fca0a3f79e7349bf12bdf30cba5ceae448
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Apr 9 17:24:00 2012 +0200

    Updated POTFILES.skip

 po/POTFILES.skip | 1 +
 1 file changed, 1 insertion(+)

commit 72aca9db1de2fc897e85d47ada1674af9b96c9b4
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Apr 8 21:56:22 2012 +0200

    Updated Galician translations

 po/gl.po | 210
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 107 insertions(+), 103 deletions(-)

commit ee29e496841d3b56689e826eba9ec0e7ca7f91bc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:23:16 2012 -0400

    binding: Improve test coverage

 gobject/tests/binding.c | 3 +++
 1 file changed, 3 insertions(+)

commit fb0951e67aa8f650f76d6e9bddf4f93c42c57735
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:21:50 2012 -0400

    spawn: Improve test coverage

    Add a test that excercises the script execution code.
    Unfortunately, much of this code only runs in the forked
    child, and therefore its execution does not get caught
    by gcov.

 glib/tests/echo-script          |  1 +
 glib/tests/spawn-singlethread.c | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

commit b87e7ca7291929d405deaec23368165638255504
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:21:27 2012 -0400

    mainloop: Improve test coverage

 glib/tests/mainloop.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 43806fca693cb2b12d6f50b0ec38f5e2ed8022c5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:20:46 2012 -0400

    settings: Improve test coverage

 gio/tests/gsettings.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 3072e7afee287a32d44b1113fd341f7ae64b77e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:20:10 2012 -0400

    gdbusserver: Improve test coverage

 gio/tests/gdbus-peer.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

commit 26145b97088428444182bcd3c1371c9e27bcb375
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:19:20 2012 -0400

    icon: Improve test coverage

 gio/tests/g-icon.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit a8c869e9458087220df7e0194c3981032e8caed4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:17:32 2012 -0400

    contenttype: Improve test coverage

    Excercise more parts of the guessing machinery.
    These tests rely on the mime database being present.

 gio/tests/contenttype.c | 70
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

commit 1e2cf010e7de9041c38a2ea4bb29807086720f76
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:17:04 2012 -0400

    networkaddress: Improve test coverage

 gio/tests/network-address.c | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

commit 5632e9fc9cc588d4846cb40e88194d025f758412
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 8 10:15:29 2012 -0400

    networkaddress: Fix userinfo parsing in uris

    The code that is checking the userinfo part was accidentally
    given a pointer to the end of the userinfo, so it was not
    checking the right portion of the string at all.

 gio/gnetworkaddress.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 2a1ea40920b3a65420e085c3828da9e406e7afa0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:32:36 2012 -0400

    utils: Improve test coverage

    Add a test for some of our gettext variants.

 glib/tests/utils.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit 5951295937feffcb9b9671c20f3f07a6df4fd984
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:28:42 2012 -0400

    fileutils: Improve test coverage

    Add tests for corner cases of g_path_get_basename, and
    for the errno-to-file-error conversion.

 glib/tests/fileutils.c | 59
 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 56 insertions(+), 3 deletions(-)

commit 550b69b963dd63360b762172073490b49167ff70
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:28:04 2012 -0400

    sort: Improve test coverage

    Test the code paths that sort 'large' items.

 glib/tests/sort.c | 33 ++++++++++++++++++++++++++++++++-
 1 file changed, 32 insertions(+), 1 deletion(-)

commit 06015064b8766bbc3efbc38ed2a62703322ca173
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:27:15 2012 -0400

    date: Improve test coverage

    Add tests that exercise g_date_order, g_date_compare, g_date_clamp,
    and more of the date parsing functions.

 glib/tests/date.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

commit cbeecdc4ae5e25e94e694f0503e42386572c5a25
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:23:47 2012 -0400

    convert: Improve test coverage

    Add a test that excercises the 'no conversion' code path.
    This uncovered that we don't treat errno properly in this path,
    and as a consequence, the returned error code is unreliable.

 glib/tests/convert.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 7d489acecc4d3e293660d59a942e686776d6b2b4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:22:13 2012 -0400

    collate: Improve test coverage

    Add some strings that exercise the non-ASCII parts of our
    collation support.

 glib/tests/collate.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6a57bf12433e241a82a7646cde33b5297bc86d3a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:21:09 2012 -0400

    Make the dbus menu tests independent from the session bus

    With this change,
    DBUS_SESSION_BUS_ADDRESS= make check
    succeed here.

 gio/tests/Makefile.am  |  1 +
 gio/tests/gmenumodel.c | 16 ++++++++++++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

commit d036960d3058825625bc595896306f53e787e408
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 7 11:20:01 2012 -0400

    ifdef out some unused code

    Nothing wrong with leaving debug spew in the code, but we should
    not build it if it is not used.

 gio/tests/gdbus-connection.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

commit fca9c7a2c73a0c12154b28dff71b90b09f0e0c22
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Apr 8 13:13:53 2012 +0200

    Updated Polish translation

 po/pl.po | 194
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 99 insertions(+), 95 deletions(-)

commit 4becf835b7a2739e727aa0bf272a8b5c0b67b36c
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Sat Apr 7 20:58:19 2012 +0300

    Updated Bulgarian translation

 po/bg.po | 208
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 106 insertions(+), 102 deletions(-)

commit 5ce66bed3df43b8fe0a2b2b973f7b1b097ee80ac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 6 21:22:17 2012 -0400

    Formatting cleanup

 gio/gresource.c | 405
 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 202 insertions(+), 203 deletions(-)

commit 8db4b949b8fa4577ecff0289776a5c098c575cc5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 6 20:50:34 2012 -0400

    Always use '/' in test paths

    It does not make much sense to use a platform-dependent
    directory separator in these strings, since they are not
    filesystem paths.

    https://bugzilla.gnome.org/show_bug.cgi?id=673216

 glib/gtestutils.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit e52cf810426600fde8b92dc44482b9e19680dc43
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 6 20:41:19 2012 -0400

    Don't return values from void functions

    Sun CC does not take that lightly.

 gio/gactionmap.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit d0b429af482d759f33b82002362ecd8630edc943
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 6 19:15:53 2012 -0400

    Revert "GDesktopAppInfo: add an accessor for StartupWMClass"

    This reverts commit 3ccc4cf91d4ee20df4207f04d3344ee33f1b5c94.

 docs/reference/gio/gio-sections.txt |  1 -
 gio/gdesktopappinfo.c               | 23 +----------------------
 gio/gdesktopappinfo.h               |  1 -
 gio/gio.symbols                     |  1 -
 gio/tests/appinfo-test.desktop      |  2 --
 gio/tests/appinfo.c                 | 15 ---------------
 6 files changed, 1 insertion(+), 42 deletions(-)

commit 3ccc4cf91d4ee20df4207f04d3344ee33f1b5c94
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Apr 5 23:26:12 2012 +0200

    GDesktopAppInfo: add an accessor for StartupWMClass

    Components using GIO to do window to application matching can
    use that field to retrieve potential candidates.

    https://bugzilla.gnome.org/show_bug.cgi?id=673659

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdesktopappinfo.c               | 23 ++++++++++++++++++++++-
 gio/gdesktopappinfo.h               |  1 +
 gio/gio.symbols                     |  1 +
 gio/tests/appinfo-test.desktop      |  2 ++
 gio/tests/appinfo.c                 | 15 +++++++++++++++
 6 files changed, 42 insertions(+), 1 deletion(-)

commit a81a0622027a21b71ba11677933f07b646cca151
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 4 10:21:24 2012 -0400

    gchecksum: fix strict-aliasing warnings in the MD5 code

    https://bugzilla.gnome.org/show_bug.cgi?id=673191

 glib/gchecksum.c | 39 +++++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 18 deletions(-)

commit 0c14f2b8a77f93489255147258f3bf9439c6f06d
Author: Sasi Bhushan <sasi@swecha.net>
Date:   Thu Apr 5 19:23:08 2012 +0530

    Updated Telugu Translation

 po/te.po | 370
 +++++++++++++++++++++++++--------------------------------------
 1 file changed, 147 insertions(+), 223 deletions(-)

commit 265526288958bfe576b02e4d3a2a5cf7d4ea60a5
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Apr 3 13:20:01 2012 +0200

    Fix malformed GTK-Doc comment blocks: remove repeated comment blocks.

    gio/gproxyresolver.h: GProxyResolver already documented in
    gio/giotypes.h
    gio/gtlsbackend.h: GTlsBackend already documented in gio/gtlsbackend.c
    gio/gtlsclientconnection.h: GTlsClientConnection already documented
    in gio/gtlsclientconnection.c
    gio/gtlsconnection.h: GTlsConnection already documented in
    gio/gtlsconnection.c
    gio/gunixconnection.h: GTcpConnection already documented in
    gio/giotypes.h
    glib/gversion.h: GLIB_CHECK_VERSION already documented in
    glib/gversion.c

    Found these thanks to the improved gobject-introspection
    GTK-Doc comment block/annotation parser.
    See https://bugzilla.gnome.org/show_bug.cgi?id=672254

    https://bugzilla.gnome.org/show_bug.cgi?id=673385

 gio/gproxyresolver.h       |  5 -----
 gio/gtlsbackend.c          |  5 +++--
 gio/gtlsbackend.h          | 10 ----------
 gio/gtlsclientconnection.h |  8 --------
 gio/gtlsconnection.h       |  8 --------
 gio/gunixconnection.h      |  7 -------
 glib/gversion.h            | 22 ----------------------
 7 files changed, 3 insertions(+), 62 deletions(-)

commit ce7f1a07890e081675f1522595e7a1b519bb6f5e
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Apr 3 10:56:29 2012 +0200

    Fix malformed GTK-Doc comment blocks: don't confuse GTK-Doc parsers.

    Found these thanks to the improved gobject-introspection
    GTK-Doc comment block/annotation parser.
    See https://bugzilla.gnome.org/show_bug.cgi?id=672254

    https://bugzilla.gnome.org/show_bug.cgi?id=673385

 gio/gdbusmessage.c | 26 +++++++++++++-------------
 glib/giochannel.c  |  2 +-
 gobject/gparam.h   |  2 +-
 3 files changed, 15 insertions(+), 15 deletions(-)

commit 0183c1f8a158834e5bfb601d4a207a8cff0b2b62
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Apr 3 20:17:00 2012 +0200

    Fix malformed GTK-Doc comment blocks: invalid parameters and tags.

    Found these thanks to the improved gobject-introspection
    GTK-Doc comment block/annotation parser.
    See https://bugzilla.gnome.org/show_bug.cgi?id=672254

    https://bugzilla.gnome.org/show_bug.cgi?id=673385

 gio/gremoteactiongroup.c | 2 +-
 glib/gasyncqueue.c       | 4 ++--
 glib/gmem.c              | 1 -
 gobject/gtype.c          | 2 +-
 4 files changed, 4 insertions(+), 5 deletions(-)

commit fefe5d9a20756d58f4207ae26553d65d54037b20
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Mon Apr 2 17:03:56 2012 +0200

    Fix malformed GTK-Doc comment blocks: correct struct name.

    Found these thanks to improved gobject-introspection GTK-Doc
    comment block/annotation parser from:
    https://bugzilla.gnome.org/show_bug.cgi?id=672254

    https://bugzilla.gnome.org/show_bug.cgi?id=673385

 gio/giotypes.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a058c1c13e379d4dbe17741231ec9d3f482daf55
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Mon Apr 2 17:02:15 2012 +0200

    Fix malformed GTK-Doc comment blocks: mutliline annotations are
    invalid.

    Found these thanks to improved gobject-introspection GTK-Doc
    comment block/annotation parser from:
    https://bugzilla.gnome.org/show_bug.cgi?id=672254

    https://bugzilla.gnome.org/show_bug.cgi?id=673385

 glib/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 60fb0f5ea8e05174971dfca0e6c1dae35f816b9e
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Mon Apr 2 17:01:32 2012 +0200

    Fix malformed GTK-Doc comment blocks: unmark non GTK-Doc comment
    block.

    Found these thanks to improved gobject-introspection GTK-Doc
    comment block/annotation parser from:
    https://bugzilla.gnome.org/show_bug.cgi?id=672254

    https://bugzilla.gnome.org/show_bug.cgi?id=673385

 gio/strinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8e740f726faf659df912c0c496eb5de80f1695ad
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Mon Apr 2 17:16:35 2012 +0200

    Fix malformed GTK-Doc comment blocks: add missing colons.

    Found these thanks to improved gobject-introspection GTK-Doc
    comment block/annotation parser from:
    https://bugzilla.gnome.org/show_bug.cgi?id=672254

    https://bugzilla.gnome.org/show_bug.cgi?id=673385

 gio/gdesktopappinfo.c | 2 +-
 gio/gfile.c           | 2 +-
 gio/gfileinfo.c       | 2 +-
 gio/gmountoperation.c | 2 +-
 gio/gproxyaddress.c   | 8 ++++----
 glib/gmem.c           | 2 +-
 glib/gqueue.c         | 2 +-
 glib/gscanner.c       | 2 +-
 glib/gtestutils.c     | 4 ++--
 glib/gurifuncs.h      | 2 +-
 10 files changed, 14 insertions(+), 14 deletions(-)

commit 6bd47498a043ed52db0ecb2989e9d9157924c82c
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Thu Apr 5 15:25:42 2012 +0300

    Updated Belarusian translation.

 po/be.po | 201
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 103 insertions(+), 98 deletions(-)

commit 24fa2ee53c62a22b7e9f5504f7242a5d847ba87b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Apr 5 15:46:34 2012 +0800

    gobject/tests/signals.c: Remove C99ism

    Declare variables in start of block.

 gobject/tests/signals.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 63673da5eb5ba313f92ee06daf9df8aff6aa0a11
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Apr 5 15:45:38 2012 +0800

    Update GLib Visual C++ projects

    Some of the bundled PCRE source files are removed as they are
    not needed
    anymore (please see commit e7c0f10e), so don't include them in
    the projects

 build/win32/vs10/glib.vcxproj.filtersin |  9 ---------
 build/win32/vs10/glib.vcxprojin         | 30
 ------------------------------
 build/win32/vs9/glib.vcprojin           | 30
 ------------------------------
 3 files changed, 69 deletions(-)

commit 88781d59066a185337dee76969fb49dabc4a6f15
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 4 15:22:15 2012 -0400

    Fix some gtk-doc stuff

 gio/ginputstream.c  | 8 ++++----
 gio/goutputstream.c | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 69d698799563a0276550c339157a01d10d9e95dc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 4 14:56:17 2012 -0400

    Switch to using a mainloop when waiting for connection close

    GDBus heavily relies on idles for some of its cleanup operations,
    and not running a mainloop leads to things not getting cleaned
    up properly, which in turn leads to test failures, since the
    session bus singleton does not get removed.

 gio/tests/gdbus-tests.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f1d4d3a4a5734e21dd1f0ea7afc352e475df0c27
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 4 14:39:17 2012 -0400

    Improve GApplication tests

    Make GApplication tests manage their dbus connections.

 gio/tests/Makefile.am    |  2 +-
 gio/tests/gapplication.c | 57
 +++++++++++++++++++++++++++++++++++++++---------
 2 files changed, 48 insertions(+), 11 deletions(-)

commit a52c0a06c8789f27b94a74c6a5811f12949f792e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 4 06:38:36 2012 -0400

    Make basic-application test more robust

    This program is only used indirectly from gapplication.c in
    tests, but that is no reason to let it segfault when it is
    run from the commandline without arguments.

 gio/tests/basic-application.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 9171894a59d217bf3f01a10674d774bb51f68a06
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 4 06:36:45 2012 -0400

    GActionMap: correct critical warnings

    These warnings were copied from GSimpleActionGroup, but the function
    names were not updated. Correct that.

 gio/gactionmap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4259587fec70248f4d61ce06fc468bb72a0f9991
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 3 21:52:45 2012 -0400

    Add tests for action-related gapplication api

 gio/tests/gapplication.c | 51
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

commit 8a4744f7fd0bf3780a1299bfb7ba7087f87229a4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 3 21:39:06 2012 -0400

    Add a  test for g_application_quit

 gio/tests/gapplication.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 588c2bacf7753dc17c95a8ec56f2f457e205026e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 3 01:43:45 2012 -0400

    Improve keyfile test coverage

 glib/tests/keyfile.c | 61
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

commit 3eec7eeeaa09a1af7d08f4d172b481747293f9c7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 3 01:42:21 2012 -0400

    Remove a bit of unused code

    _g_utf8_strwidth is always called with max == -1, so remove the
    parameter and update all callers.

 glib/goption.c | 38 +++++++++-----------------------------
 1 file changed, 9 insertions(+), 29 deletions(-)

commit 84a1b8aac8478428fdc8085400674be52278c6eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 3 01:09:39 2012 -0400

    Improve test coverage

    Add tests for all the suffixes in g_format_size.

 glib/tests/fileutils.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 51609ec943f9d51a8c8863badd79d2a9293ae4c7
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 4 14:38:18 2012 -0400

    tests/gdatetime: fix new_from_unix test

    When creating a struct tm for "1990-01-01T00:00:00" to pass to
    mktime(), we have to set tm_isdst to -1; leaving it set to 0 will
    result in the wrong time being generated when run in a timezone where
    January 1 would normally be tm_isdst==1 (ie, in southern hemisphere
    DST-observing countries, like Australia).

    https://bugzilla.gnome.org/show_bug.cgi?id=670254

 glib/tests/gdatetime.c | 1 +
 1 file changed, 1 insertion(+)

commit f0a3241eab5ba61ebe4aa6fbe7f1cb0ec696d8c9
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Apr 4 17:18:59 2012 +0200

    Updated Spanish translation

 po/es.po | 9032
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 4519 insertions(+), 4513 deletions(-)

commit e133f31896f7cfe1034332244e728f0aa384b844
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Wed Apr 4 17:02:04 2012 +0200

    Updated Hungarian translation

 po/hu.po | 470
 +++++++++++++++++++++++----------------------------------------
 1 file changed, 170 insertions(+), 300 deletions(-)

commit 47adef84da73e71a9ecafc56e8313997fb685394
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 4 10:47:04 2012 -0400

    Fix warnings caused by an ifdeffed-out test case

 gio/tests/gapplication.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit 142b0455ff2bd0d376632107de7c943be74c585b
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Wed Apr 4 13:42:44 2012 +0200

    Updated Slovenian translation

 po/sl.po | 204
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 104 insertions(+), 100 deletions(-)

commit 9aa19e1d9615924ab25c63918d09d334a0277b8e
Author: Rodrigo Moya <rodrigo@gnome-db.org>
Date:   Wed Apr 4 11:55:40 2012 +0200

    Use 'if test' for checking auto* variables' values

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 118c42e7471155d444b9df38d9538f344cb7f89c
Author: Rodrigo Moya <rodrigo@gnome-db.org>
Date:   Wed Apr 4 11:39:03 2012 +0200

    Always include G_SOCKET_FAMILY_UNIX value in GSocketFamily

    This is needed because glib-mkenums doesn't handle #ifdef values in
    enums, and so it needs to have all values always defined in the enum.
    When not available, define the missing values to a negative value.

 configure.ac   | 12 +++++++++++-
 gio/gioenums.h |  2 --
 gio/gsocket.c  |  7 +++++++
 3 files changed, 18 insertions(+), 3 deletions(-)

commit 091d652120e068518ed4b7d8a835018f30ed63e8
Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Date:   Tue Apr 3 16:37:22 2012 +0200

    use GLIB_DEPRECATED_IN_2_32_FOR to deprecate g_value_{g,s}et_schar

    https://bugzilla.gnome.org/show_bug.cgi?id=673439

 gobject/gvaluetypes.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f2c77ee718b0bfdcf5f1d6eaba151122b8c5eb36
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Fri Mar 30 14:44:05 2012 +0100

    g_input_stream_read[_finish]: document returning 0 on EOF

    g_input_stream_read() does state that it returns 0 on end of file, but
    not in the Returns: line, so it's easy to miss on a quick skim-read.

    g_input_stream_read_async() documents that
    g_input_stream_read_finish()
    returns 0 on end of file, but g_input_stream_read_finish() itself does
    not.

    https://bugzilla.gnome.org/show_bug.cgi?id=673174

 gio/ginputstream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 27d95bd81fabd41367cf000566ee2ccf3651652c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 2 08:53:20 2012 -0400

    Rework the libelf configure checks one more time

    It seems that there is quite a bit of variation out there, in
    terms of libelf versions and API. Make the checks more thorough,
    by not only checking for elf_begin, but also some of the shdr function
    that we need. Also, explicitly check for libelf.h.

    This should address bug 673132 and 673253.

 configure.ac | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

commit e51c3b4cfe9f24ccf21ee3bd04186fe5c38d95f8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 2 08:00:48 2012 -0400

    Use new hashset api in the hash set tests

 glib/tests/hash.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit c2318a18f91ee098efd8239ae6d9ec0bd3826423
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 2 07:59:55 2012 -0400

    Dispose test object

    While not very important, it means one less untested function
    in the coverage report.

 tests/refcount/objects2.c | 2 ++
 1 file changed, 2 insertions(+)

commit c173c0beb4e0f664faf616bd6475b6c5c1aa50fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 2 07:59:23 2012 -0400

    Drop g_thread_init from tests

    This is not needed anymore.

 tests/refcount/Makefile.am   | 3 +--
 tests/refcount/closures.c    | 1 -
 tests/refcount/objects.c     | 1 -
 tests/refcount/objects2.c    | 3 +--
 tests/refcount/properties.c  | 1 -
 tests/refcount/properties2.c | 1 -
 tests/refcount/properties3.c | 2 --
 tests/refcount/signals.c     | 4 ----
 8 files changed, 2 insertions(+), 14 deletions(-)

commit 9ea9471d26084d787858024838d08fc666a7b18b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 2 07:37:55 2012 -0400

    Improve GBusObjectManager test coverage

 gio/tests/gdbus-test-codegen.c | 57
 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 56 insertions(+), 1 deletion(-)

commit 548337b042fa71ab8b2d93452232ed8930ddbc93
Author: David King <amigadave@amigadave.com>
Date:   Mon Apr 2 10:22:56 2012 +0100

    docs: Fix typo in glib-compile-schemas man page

 docs/reference/gio/glib-compile-schemas.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bebbc69081a952d0ff2e411a086c11b74330b292
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 1 23:04:59 2012 -0400

    Improve boxed test coverage

    This commit add basic tests for all GLib types that are registered
    as boxed types.

 gobject/tests/boxed.c | 143
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 143 insertions(+)

commit e7c0f10ee0baebc4768ab250e1306201fa5d7e20
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 1 22:04:08 2012 -0400

    Drop some unused PCRE sources

    There is no point in compiling these, since we are not calling
    any of the functions in them.

 glib/pcre/Makefile.am       |   3 -
 glib/pcre/pcre_maketables.c | 148
 --------------------------------------------
 glib/pcre/pcre_refcount.c   |  89 --------------------------
 glib/pcre/pcre_version.c    |  95 ----------------------------
 glib/pcre/pcreposix.h       | 146
 -------------------------------------------
 5 files changed, 481 deletions(-)

commit 0f469c26319b4b0aeee63be75ba6041b978e01b4
Author: Daniel Nylander <po@danielnylander.se>
Date:   Sun Apr 1 13:11:33 2012 +0200

    Updated Swedish translation

 po/sv.po | 128
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 72 insertions(+), 56 deletions(-)

commit 829db4cec3fa59e1ec905e226851ae719858c8d4
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Sat Mar 31 22:48:42 2012 +0200

    gthread-posix: fix typo in error message

 glib/gthread-posix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 14945449580d394b5e1e009f71792ccac51fc41e
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Sat Mar 31 20:20:19 2012 +0200

    gresource: libelf, try pkg-config first then fall-back to AC_CHECK_LIB

    On some systems gelf.h may not be stored under the top level include
    directory in which case we need to add the correct include paths in
    cflags by using pkg-config(1).

 configure.ac    | 7 ++++---
 gio/Makefile.am | 3 ++-
 2 files changed, 6 insertions(+), 4 deletions(-)

commit 4143842eb47c1f38b2b4742b0928e4049e38afb9
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Sat Mar 24 23:58:45 2012 +1100

    Add missing allow-none annotations for function parameters.

    Found using:
    find . -name '*.c' | xargs grep 'or %NULL' | grep ' \* @' | grep -v
    '@error' | grep -v allow-none

 gio/gactiongroup.c             |  8 ++++----
 gio/gapplication.c             |  4 ++--
 gio/gapplicationcommandline.c  |  2 +-
 gio/gasyncinitable.c           |  2 +-
 gio/gcancellable.c             |  8 ++++----
 gio/gdbusaddress.c             |  6 +++---
 gio/gdbusauthobserver.c        |  4 ++--
 gio/gdbusconnection.c          | 40
 ++++++++++++++++++++--------------------
 gio/gdbuserror.c               |  4 ++--
 gio/gdbusinterface.c           |  2 +-
 gio/gdbusintrospection.c       |  2 +-
 gio/gdbusmessage.c             |  6 +++---
 gio/gdbusmethodinvocation.c    |  4 ++--
 gio/gdbusnameowning.c          | 14 +++++++-------
 gio/gdbusnamewatching.c        | 12 ++++++------
 gio/gdbusobjectmanagerclient.c | 16 ++++++++--------
 gio/gdbusproxy.c               | 24 ++++++++++++------------
 gio/gdbusserver.c              |  2 +-
 gio/gfile.c                    | 24 ++++++++++++------------
 gio/ginitable.c                |  2 +-
 gio/gioscheduler.c             |  6 +++---
 gio/gmemoryoutputstream.c      |  6 +++---
 gio/gnetworkmonitor.c          |  4 ++--
 gio/gpermission.c              |  8 ++++----
 gio/gsettingsbackend.c         |  2 +-
 gio/gsimpleasyncresult.c       |  2 +-
 gio/gsocket.c                  |  4 ++--
 gio/gsocketclient.c            |  2 +-
 gio/gtlsconnection.c           |  4 ++--
 gio/gvolume.c                  |  2 +-
 glib/garray.c                  |  6 +++---
 glib/gbookmarkfile.c           | 36 ++++++++++++++++++------------------
 glib/gconvert.c                |  2 +-
 glib/gdataset.c                |  8 ++++----
 glib/gdatetime.c               |  6 +++---
 glib/gerror.c                  |  8 ++++----
 glib/ggettext.c                |  8 ++++----
 glib/ghash.c                   | 10 +++++-----
 glib/giochannel.c              |  6 +++---
 glib/gkeyfile.c                |  8 ++++----
 glib/gmain.c                   | 28 ++++++++++++++--------------
 glib/gmem.c                    |  4 ++--
 glib/gmessages.c               |  2 +-
 glib/goption.c                 | 28 ++++++++++++++--------------
 glib/gpattern.c                |  2 +-
 glib/gregex.c                  |  2 +-
 glib/gsequence.c               |  2 +-
 glib/gstdio.c                  |  2 +-
 glib/gstrfuncs.c               |  6 +++---
 glib/gtestutils.c              |  4 ++--
 glib/gunidecomp.c              |  2 +-
 glib/gutf8.c                   | 26 +++++++++++++-------------
 glib/gvariant-parser.c         |  8 ++++----
 glib/gvariant-serialiser.c     |  2 +-
 glib/gvarianttype.c            |  2 +-
 glib/gvarianttypeinfo.c        |  8 ++++----
 glib/gwin32.c                  | 10 +++++-----
 gmodule/gmodule.c              |  2 +-
 58 files changed, 232 insertions(+), 232 deletions(-)

commit 4cf5d2531608b4433fb3348d679f099bd3d29716
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 30 17:34:37 2012 -0400

    Fix a link

    As pointed out in bug 673139, the link to the mailing list
    information page was outdated.

 README.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5f0ff457ce5e8fc9aa5ca121cf429888bcf4e51f
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Fri Mar 30 18:08:23 2012 +0530

    Updated Odia Translation

 po/or.po | 247
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 122 insertions(+), 125 deletions(-)

commit e3cc48f28998782da46292b53b5b540e82094d2a
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Mar 22 14:01:40 2012 +0100

    resources: compiler: Respect absolute paths

    When a <file> already has an absolute path, use it directly instead
    of trying to
    locate it in the --sourcedir directories.

    https://bugzilla.gnome.org/show_bug.cgi?id=672541

 gio/glib-compile-resources.c | 3 +++
 1 file changed, 3 insertions(+)

commit 8f8fc836709cff58bd666b87937542088cfc19db
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Mar 28 12:42:49 2012 +0300

    configure: Fix alignment tests when cross compiling

    When inserting custom code to AC_CHECK_ALIGNOF, make sure to not
    replace
    the default includes, but instead append to them.

    This fixes ALIGNOF_GUINT32 and ALIGNOF_GUINT64 that were both 0
    when cross
    compiling. The third 'unsigned long' test wasn't affected because the
    AC_CHECK_ALIGNOF call didn't specify the optional 2nd parameter.

 configure.ac | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 92b84e88ab9bdd6db869574020843101ddb3a0de
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Mar 28 15:12:04 2012 +0800

    Fix gspawn-win32-helper Visual C++ projects

    The name of the executable for the Release|Win32 and Release|x64
    configs
    were mixed up.  Fix that.  DOH! for not noting this earlier.

 build/win32/vs10/gspawn-win32-helper.vcxproj | 2 +-
 build/win32/vs9/gspawn-win32-helper.vcproj   | 7 ++-----
 2 files changed, 3 insertions(+), 6 deletions(-)

commit 0463fa1cb0ab991bc9d8a1986a5a8511e39825b5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Mar 28 14:57:12 2012 +0800

    Fix VS property sheets

    We need to accomodate for gspawn-win64-helper-console.exe for the
    "install"
    phase too.

 build/win32/vs10/glib.props  | 2 +-
 build/win32/vs9/glib.vsprops | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 50a8fa5efda293898ea378f82ba29ca54124c5fb
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Mar 27 21:24:37 2012 +0200

    Updated Spanish translation

 po/es.po | 9040
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 4514 insertions(+), 4526 deletions(-)

commit cbb95038cf23ce8061961984bd52ad565b219a6e
Author: Dan Winship <danw@gnome.org>
Date:   Tue Mar 27 12:45:27 2012 -0400

    GFileMonitor: fix docs bug

 gio/gfilemonitor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5a68f59e5b32d826902279f2b54fddcae6ee7b4b
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Tue Mar 27 15:04:14 2012 +0530

    Updated Marathi Translations

 po/mr.po | 422
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 261 insertions(+), 161 deletions(-)

commit 9b0734a09c7ed357fbb21db52ce8fbc42b8f014c
Author: Bastien Nocera <hadess@hadess.net>
Date:   Tue Mar 27 11:01:00 2012 +0200

    all: s/availible/available/

 gio/gresource.c | 4 ++--
 glib/gmain.c    | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit ec55b19da59b939c0de67ce172b3176b692399fa
Author: Rajesh Ranjan <rranjan@redhat.com>
Date:   Tue Mar 27 12:22:39 2012 +0530

    hindi translation by Chandan Kumar

 po/hi.po | 5813
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3095 insertions(+), 2718 deletions(-)

commit 569357dcc3fe85f78d204ba94e477bac97350a4f
Author: Sandeep Sheshrao Shedmake <sshedmak@redhat.com>
Date:   Mon Mar 26 19:48:20 2012 +0530

    Updated Marathi Translations

 po/mr.po | 5925
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3160 insertions(+), 2765 deletions(-)

commit bf20906ad4952611f992c3fa79bd074838a9279e
Author: ManojKumar Giri <mgiri@redhat.com>
Date:   Mon Mar 26 18:42:41 2012 +0530

    Updated Odia Translation

 po/or.po | 5969
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3169 insertions(+), 2800 deletions(-)

commit 72c11eda584849bb55e85d06fea87476c423d258
Author: Marek Černocký <marek@manet.cz>
Date:   Mon Mar 26 14:49:18 2012 +0200

    Updated Czech translation

 po/cs.po | 6143
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3254 insertions(+), 2889 deletions(-)

commit 56c2c297cd7fc2af00a40bcb29a000b676f9949a
Author: Rudolfs Mazurs <rudolfs.mazurs@gmail.com>
Date:   Sun Mar 25 15:05:26 2012 +0300

    Updated Latvian translation.

 po/lv.po | 6240
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3325 insertions(+), 2915 deletions(-)

commit c80eeae316fb3a351947502788eeb29c12f0a88f
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Sun Mar 25 13:14:47 2012 +0200

    [l10n] Updated Italian translation

 po/it.po | 336
 +++++++++++++++++++++++++++------------------------------------
 1 file changed, 141 insertions(+), 195 deletions(-)

commit f8ddba0b8a2969f9d539019bdb961b2273690c72
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Sun Mar 25 13:26:17 2012 +0530

    Updated Kannada Translation

 po/kn.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6bd8fecfa178a08b4adfbb4c4cf981e3721df66d
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Sun Mar 25 13:24:31 2012 +0530

    Updated Kannada Translation

 po/kn.po | 92
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 46 insertions(+), 46 deletions(-)

commit 41cccb467f354cf843877fe73db539a1e332a41d
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Sun Mar 25 13:03:57 2012 +0530

    Updated Kannada Translation

 po/kn.po | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

commit 22885b1de447c1a8398b03978e60a0042eabc016
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Sun Mar 25 12:42:30 2012 +0530

    Updated Kannada Translation

 po/kn.po | 78
 +++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 40 insertions(+), 38 deletions(-)

commit e927df7b7ab089f5e7de452a509130c06e13e4f9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Mar 24 23:00:15 2012 -0400

    Add a forgotten include guard

    gbytes.h was missing the single-include guard.

 glib/gbytes.h | 4 ++++
 1 file changed, 4 insertions(+)

commit de64aa8bd70fe42c613a948ce670a27b8d5c12cc
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Sun Mar 25 00:33:10 2012 +0530

    Updated Kannada Translation

 po/kn.po | 5769
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3071 insertions(+), 2698 deletions(-)

commit 257e6c4e4e291955b99bf43440eef55fad977520
Author: Daniel Nylander <po@danielnylander.se>
Date:   Sat Mar 24 16:58:42 2012 +0100

    Updated Swedish translation

 po/sv.po | 6145
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 3223 insertions(+), 2922 deletions(-)

commit d793287b3a5ede547cbd1b72de46c499f8ab8c35
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Mar 24 11:31:01 2012 -0400

    Bump version

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 816554c62bf227498cb539924e6ee2050030b4b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Mar 24 11:28:35 2012 -0400

    2.32.0

 NEWS         | 12 ++++++++++++
 configure.ac |  4 ++--
 2 files changed, 14 insertions(+), 2 deletions(-)

commit 97cc0d0179e20c9a83d049b9a999f7fab40eacfb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Mar 24 10:33:38 2012 -0400

    Release notes tweaks

    Update download locations, mailing list instructions, and shuffle
    the version-specific notes to be at the end.

 README.in | 96
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 47 insertions(+), 49 deletions(-)

commit d2b7ee62f9d4df0aa5925ea123da7db6753d03ac
Author: Raphael Kubo da Costa <kubo@profusion.mobi>
Date:   Mon Mar 19 14:20:08 2012 -0300

    Make the `include' glib test case build on FreeBSD.

    Defining _POSIX_C_SOURCE to 0 will make time.h not create the
    clockid_t
    typedef used by some functions in pthread.h.

    The right approach here is to set it to 199309L, which creates the
    typedef on FreeBSD and doesn't set __USE_UNIX98 or __USE_XOPEN2K on
    glibc, which is what the test is actually testing.

    https://bugzilla.gnome.org/show_bug.cgi?id=672406

 glib/tests/include.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fd8b01ead613788ad136cc61e1b744dfd811e0ec
Author: Krishnababu Krothapalli <email>
Date:   Thu Mar 22 19:56:06 2012 +0530

    Updated Telugu Translations

 po/te.po | 549
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 317 insertions(+), 232 deletions(-)

commit b08b3012235b089cc3c8d015c47f703da01a4d81
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 20 13:19:11 2012 +0800

    glib/gqsort.c: Fix C99ism/GCCism

    -There were a number of variables that were declared in the middle of
     the block, so move these declarations to the start of the block
    -There was a use of mempcpy, but it is a GCC extension, so use
    memcpy since
     we didn't care about the return value of the call to mempcpy.

    https://bugzilla.gnome.org/show_bug.cgi?id=672095

 glib/gqsort.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f23e7c3ef988a251c42a8a8f7e60566e0bab76fb
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Mar 20 10:20:18 2012 +0100

    Fix the tests on win32

    There was some unix-specific pathname handling in the test utils
    which broke the css tests on win32.

 glib/gtestutils.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit d0635dac52b4a4dae535dd22940ed2adb6a89074
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Mar 20 10:19:42 2012 +0100

    Use g_unsetenv, not unsetenv

    This fixed the win32 build

 glib/tests/logging.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aed6d01d1454293ddaba84a5bd1a666385f44f62
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Mar 20 10:18:32 2012 +0100

    Only build actions test on unix

    It depends on gdbus-sessionbus.c which only builds on unix.

 gio/tests/Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 322c6e93444e74ae99b73f1ae7e3b55563470431
Author: Marco Trevisan (Treviño) <mail@3v1n0.net>
Date:   Mon Mar 19 20:13:24 2012 +0100

    GDBusConnection: Avoid dereferencing vtable for unregistered objects

    https://bugzilla.gnome.org/show_bug.cgi?id=671988

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 617c0cb6a0776c3c090c54d10eda21768d76890c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 19 16:59:54 2012 -0400

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2826ece6fc91944a3469ba8f1b7b81143b11ccaa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 19 16:58:48 2012 -0400

    Fix distcheck

    automake decided to complain about some more leftovers.

 glib/Makefile.am    | 7 ++++++-
 gobject/Makefile.am | 2 ++
 2 files changed, 8 insertions(+), 1 deletion(-)

commit 166595c4d58ce1b0e7d297b4bbb599e7ddd5cf8d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 19 14:27:20 2012 -0400

    2.31.22

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f92d2110cf8b4225725e161f29e8f7add590c64
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 19 13:43:31 2012 -0400

    Updates

 NEWS | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

commit 6dfb50adf7eb004b9fe79f9314e27856d80a4de8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 19 13:28:14 2012 -0400

    Don't return from a void function

 glib/gqsort.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cb45176110a85c3e8228499edb2ce36da85f3670
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 19 13:26:19 2012 -0400

    Fix a C99ism

 glib/gqsort.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit bd3063c742f654a2233620ad2e666e5f0bc9e9bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 19 13:22:04 2012 -0400

    Silence a compiler warning

 glib/gqsort.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2afbc425eb24f21c598636e5037782cb8a1870ea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 16 13:32:38 2012 -0400

    GDBus: set no-reply flag on calls with no callback

    If g_dbus_connection_call() or g_dbus_proxy_call() are given a NULL
    callback then set the no-reply flag on the outgoing D-Bus message.

    https://bugzilla.gnome.org/show_bug.cgi?id=672239

 gio/gdbusconnection.c | 71
 +++++++++++++++++++++++++++++++++++----------------
 gio/gdbusproxy.c      | 46 +++++++++++++++++++++++----------
 2 files changed, 82 insertions(+), 35 deletions(-)

commit c3125ee36d47e71d27906b88eed68b0b9c9b9e0c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 16 13:15:46 2012 -0400

    GDBusProxy: report an error instead of leaking it

    GDBusProxy sets an error on a GSimpleAsyncResult and then returns
    without dispatching the result for completion (and leaks the result in
    the process).  Fix that.

    Also add a testcase.  Unfortunately, adding the testcase uncovered
    bug #672248.  We can work around that by reordering the tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=672249

 gio/gdbusproxy.c        |  2 ++
 gio/tests/gdbus-proxy.c | 44 +++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 45 insertions(+), 1 deletion(-)

commit 190891042d9830fb095bf50220555384cae7f823
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Mar 19 16:02:37 2012 +0800

    Update config.h.win32(.in)

    Make it more like the one that is generated by autotools.

    It is true that Visual C++ has sig_atomic_t, at least for Visual
    C++ 2008
    and later, but this is currently only used for UNIX builds of GLib,
    as a
    point of note here.

 config.h.win32.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit bac0294c73b3ff9c33885d0af6f3e20af7062739
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Mar 19 15:55:20 2012 +0800

    Update glibconfig.h.win32(.in)

    Added the definitions below, as these #defines are needed for gqsort.c

    #define ALIGNOF_GUINT32 4
    #define ALIGNOF_GUINT64 8
    #define ALIGNOF_UNSIGNED_LONG 4

 glib/glibconfig.h.win32.in | 4 ++++
 1 file changed, 4 insertions(+)

commit 06384094689efbdc00cc39dcb9eb2929dec92933
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Sun Mar 18 10:34:15 2012 +0100

    Updated French translation

 po/fr.po | 1400
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 794 insertions(+), 606 deletions(-)

commit 8c2434f01a60865e22c579c4092c3588827e883b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Mar 17 23:43:52 2012 -0400

    Make inf testcase more forgiving

    printf may produce "infinity" instead of "inf".

    https://bugzilla.gnome.org/show_bug.cgi?id=668973

 glib/tests/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 57878d6042366070e80a109bf113ac03abb86cfd
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Sat Mar 17 23:28:48 2012 -0400

    Use __builtin_bswap* for GUINT*_SWAP_LE_BE if building with GCC

    https://bugzilla.gnome.org/show_bug.cgi?id=531901

 glib/gtypes.h      | 38 ++++++++++++++++++++++++++++++--------
 glib/tests/utils.c | 24 ++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 8 deletions(-)

commit e2b47ae9e0ff4402253c5ca854b3a5229513a12e
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Sat Mar 17 23:10:01 2012 -0400

    Fix out of tree build for MinGW/MSYS

    When building with MinGW/MSYS with srcdir != builddir the build fails:
    - to locate the generated .def files
    - creating libglib-gdb.py
    - creating libgobject-gdb.py

    Solved this by explicitly instructing these files to be generated
    in $(builddir)/...

    https://bugzilla.gnome.org/show_bug.cgi?id=653167

 gio/Makefile.am     | 10 +++++-----
 glib/Makefile.am    | 17 ++++++-----------
 gmodule/Makefile.am |  8 ++++----
 gobject/Makefile.am | 13 ++++++-------
 4 files changed, 21 insertions(+), 27 deletions(-)

commit 65d758859c8155362f8ffaebf5614a10d025f5a6
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Sun Mar 18 00:45:43 2012 +0000

    Updated Portuguese translation

 po/pt.po | 6128
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3230 insertions(+), 2898 deletions(-)

commit 7f856e3a09386c7d87ee0562a2ab85b463cac20f
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Mar 17 18:49:25 2012 +0200

    Updated Lithuanian translation

 po/lt.po | 170
 +++++++++++++++++++++++++--------------------------------------
 1 file changed, 66 insertions(+), 104 deletions(-)

commit 1b08ad61cdd19899f51ec44242913b18576861e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 17 12:39:23 2012 -0400

    man pages: document the order of schema overrides

    GSettings overrides are processed in such a way that
    alphabetically-later files have precedence over earlier files (eg: 20_
    will beat 10_).  Document that fact.

 docs/reference/gio/glib-compile-schemas.xml | 7 +++++++
 1 file changed, 7 insertions(+)

commit e8122f6f98b853bccfb6aebcfb1714eb6f82971e
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Sat Mar 17 12:57:44 2012 +0400

    Updated Russian translation

 po/ru.po | 6215
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3306 insertions(+), 2909 deletions(-)

commit 6833385c5a7a35e22bb549ad0e7f390031952945
Author: Colin Walters <walters@verbum.org>
Date:   Tue Mar 13 14:49:04 2012 -0400

    gmain: Use sig_atomic_t for list of pending Unix signals

    Pointed out by: Simon McVittie <simon.mcvittie@collabora.co.uk>

    https://bugzilla.gnome.org/show_bug.cgi?id=671997

 configure.ac | 12 ++++++++++++
 glib/gmain.c |  9 +++++++--
 2 files changed, 19 insertions(+), 2 deletions(-)

commit f3fca56b7ef94e70e78597afca69b157e07cd339
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Fri Mar 16 18:54:09 2012 +0100

    gio: Only show mounts in /run/media/$USER

    And reflect the recent changes + sync with gvfs+udisks2 rules.

    https://bugzilla.gnome.org/show_bug.cgi?id=669797

 gio/gunixmounts.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit b0739f22231b7555c9fcfd5b9fcb5f93b5a46149
Author: David Benjamin <davidben@mit.edu>
Date:   Thu Mar 15 19:16:02 2012 -0400

    Continue searching in PATH on ENODEV and ETIMEDOUT

    Synchronize the error-handling logic from glibc. Users with networked
    filesystems in their PATH may hit ETIMEDOUT.

    https://bugzilla.gnome.org/show_bug.cgi?id=672201

 glib/gspawn.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit cf912785b6aa4cd7acd1cf2b041b25fae76df5f7
Author: Colin Walters <walters@verbum.org>
Date:   Thu Mar 15 17:59:01 2012 -0400

    gtype: Note idempotency of g_type_init()

 gobject/gtype.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 8ae5bd399ed94fe74172f1331fbe716b4f68249c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Mar 16 12:51:33 2012 +0100

    Remove now unused qsort_r checks

    https://bugzilla.gnome.org/show_bug.cgi?id=672095

 configure.ac | 45 ---------------------------------------------
 1 file changed, 45 deletions(-)

commit a43dd7435af92d70fa0ef5a2c48e77156b0ad304
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Mar 14 21:17:47 2012 +0100

    Make g_array_sort* methods use a stable sort

    Also, remove previous comments about sort stability in g_array_sort
    docs,
    as the method that was explained does not work. Adds a new comment
    about this.

    https://bugzilla.gnome.org/show_bug.cgi?id=672095

 glib/garray.c | 42 +++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

commit 839957f275875b6f8fd033d67379bce0fde1c58f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Mar 14 21:17:23 2012 +0100

    Make g_qsort_with_data stable, based on glibc msort

    We need a stable sort, and we might as well always use it rather
    than have multiple sort versions. This picks up the glibc
    merge sort implementation which it uses by default for qsort,
    except we don't fall back to non-stable quicksort in some cases
    like glibc

    https://bugzilla.gnome.org/show_bug.cgi?id=672095

 configure.ac      |  31 ++++
 glib/gqsort.c     | 494
 +++++++++++++++++++++++++++---------------------------
 glib/tests/sort.c |  39 +++++
 3 files changed, 320 insertions(+), 244 deletions(-)

commit 8da947892022ba966893e5ceb1c5235c5da4665f
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Fri Mar 16 11:12:56 2012 +0100

    Updated Hungarian translation

 po/hu.po | 6275
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3347 insertions(+), 2928 deletions(-)

commit 5a108c918355b7344daad1acdcd87bc3765aeaca
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Thu Mar 15 23:33:50 2012 +0100

    [l10n]Updated Catalan (Valencian) translation

 po/ca@valencia.po | 6314
 ++++++++++++++++++++++++++++-------------------------
 1 file changed, 3313 insertions(+), 3001 deletions(-)

commit 93b9d65d12e74dc23162a23b53f8d166e5e17fd4
Author: Gil Forcada <gforcada@gnome.org>
Date:   Thu Mar 15 23:33:43 2012 +0100

    [l10n]Updated Catalan translation

 po/ca.po | 6364
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3352 insertions(+), 3012 deletions(-)

commit f025c9c4f4803dd09dba12ca8f35692a0ea8050a
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Mar 15 14:04:39 2012 -0400

    GDBusConnection: Don't store GCancellable in qdata

    Now that we're using g_simple_async_result_set_check_cancellable() we
    no longer need this terrible hack of carrying the GCancellable on the
    GSimpleAsyncResult using qdata. See bug 672013 for more details.

    https://bugzilla.gnome.org/show_bug.cgi?id=672013

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

commit e3c7fdd7a47264c584f3f16e37d903a7d1f36f76
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 13 16:41:57 2012 -0400

    GDBus: make use of reliable async cancellation

    Call g_simple_async_result_set_check_cancellable() after all
    GSimpleAsyncResult creation in order to take advantage of the new
    reliable cancellation feature.

    The guarantee of reliable cancellation fixes a bug in dbusmenu (which
    was already assuming that cancellation was reliable).  See this bug:
    https://bugs.launchpad.net/ubuntu/+source/libdbusmenu/+bug/953562

    https://bugzilla.gnome.org/show_bug.cgi?id=672013

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusaddress.c    | 1 +
 gio/gdbusconnection.c | 5 +++++
 gio/gdbusprivate.c    | 1 +
 gio/gdbusproxy.c      | 3 +++
 4 files changed, 10 insertions(+)

commit 1c42b6b09213b3c5275a71bbcd7def9a19767b59
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 15 16:39:52 2012 +0800

    Fix "install" paths in VS property sheets

    ...and cleanup the VS2010 property sheets a little bit

 build/win32/vs10/glib.props  | 10 +++++-----
 build/win32/vs9/glib.vsprops |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 53b02b023da1ef7c253493b4aee0830e77a09a87
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:   Wed Mar 14 22:27:33 2012 +0100

    [l10n] Updated German translation

 po/de.po | 1506
 ++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 919 insertions(+), 587 deletions(-)

commit 4804094472e90a537b534c32e3c225b624c4500e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 13 16:09:01 2012 -0400

    GSimpleAsyncResult: support reliable cancellation

    Add a function g_simple_async_result_set_check_cancellable()
    to provide
    a GCancellable that is checked for being cancelled during the call to
    g_simple_async_result_propagate_error().

    This gives asynchronous operation implementations an easy way to
    provide reliable cancellation of those operations -- even in the case
    that a positive result has occured and is pending dispatch at the time
    the operation is cancelled.

    https://bugzilla.gnome.org/show_bug.cgi?id=672013

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gsimpleasyncresult.c            | 58
 +++++++++++++++++++++++++++++++++++++
 gio/gsimpleasyncresult.h            |  2 ++
 4 files changed, 62 insertions(+)

commit 53b1afba0eb94f7f836b408d81da7b58c374dc3f
Author: Mike Gorse <mgorse@novell.com>
Date:   Tue Mar 13 16:02:30 2012 -0500

    Invalidate single_va_closure when adding an emission hook

    If the optimization is used for only having one closure handling a
    signal emission, then hooks will not be run, so it should be disabled
    when an emission hook is added.

    https://bugzilla.gnome.org/show_bug.cgi?id=671918

 gobject/gsignal.c | 1 +
 1 file changed, 1 insertion(+)

commit fbbdf98668641a6e6494dacb5f5f13703145e6f8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 13 20:10:39 2012 -0400

    g_log: mask log level before checking prefix flags

    We check if the log level is in the "prefixed" list by checking it
    against the g_log_msg_prefix bitfield.

    Unfortunately we were failing to mask by G_LOG_LEVEL_MASK first, so if
    the FATAL bit was set (for example) then it would never match.
    This was
    the case for g_error().

    https://bugzilla.gnome.org/show_bug.cgi?id=672026

 glib/gmessages.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 545736c0fbc4fdc861a726b293a5b3c1cd611a3c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 13 20:08:27 2012 -0400

    glib-init: restore default for G_MESSAGES_PREFIXED

    In the glib-init shuffle this ended up being set to no messages
    prefixed
    by default.  Fix that so that we have prefixes back.

    https://bugzilla.gnome.org/show_bug.cgi?id=672026

 glib/glib-init.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 063f03fa761fe2e341e32ebec6ed7ff6732b5bb1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 13 20:08:01 2012 -0400

    glib-init: fix obvious buffer size mismatch

 glib/glib-init.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 73fb1944e43b3ed3942c453dbe30db859cfe1bbe
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Tue Mar 13 13:48:15 2012 +0000

    Updated British English translation

 po/en_GB.po | 6037
 +++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3185 insertions(+), 2852 deletions(-)

commit 2127246139d6e7706d6a94dd754af649dfa6e650
Author: Kenneth Nielsen <k.nielsen81@gmail.com>
Date:   Tue Mar 13 09:11:21 2012 +0100

    Updated Danish translation

 po/da.po | 122
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 70 insertions(+), 52 deletions(-)

commit 81aaf53567cf8dc13ae77878a8663b847ca54fcc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 12 16:43:15 2012 -0400

    GSocketMsgFlags: annotate as a flags

    This was being incorrectly guessed as an enum.  Fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=671942

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 748cbafb8bffe88a7f1a3867b5f3f23d8713da6c
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Mar 12 18:18:55 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 117
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 69 insertions(+), 48 deletions(-)

commit c45b8135046790e13b0d486f605dc62c9a783b16
Author: Timo Jyrinki <timo@debian.org>
Date:   Mon Mar 12 11:02:04 2012 +0200

    Finnish translation update from
    http://l10n.laxstrom.name/wiki/Gnome_3.4 translation sprint

 po/fi.po | 5844
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 2846 insertions(+), 2998 deletions(-)

commit 68bdfd69241ebb01be71fb7c8c8c7a188aedf8fb
Author: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
Date:   Sun Mar 11 12:02:28 2012 +0100

    Updated Esperanto translation

 po/eo.po | 6076
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3194 insertions(+), 2882 deletions(-)

commit 657e476b74bcf4c1e3a9363951d4adcb537b66de
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Mar 9 22:18:45 2012 +0100

    Updated Polish translation

 po/pl.po | 6186
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3246 insertions(+), 2940 deletions(-)

commit 8084047ee3fa639fc0ca33035356e2ce11f0cab6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 9 10:29:32 2012 -0500

    logging test: unset G_MESSAGES_DEBUG

    Having G_MESSAGES_DEBUG=all in the environment will fail this
    testcase.

 glib/tests/logging.c | 2 ++
 1 file changed, 2 insertions(+)

commit 265f265c677bc5399dbb1cfa449cb4b915a6459f
Author: Mark Janossy <janossy.mark@gmail.com>
Date:   Fri Mar 9 09:54:23 2012 -0500

    deprecated threads: fix race in GStaticRecMutex

    The very last access to the 'depth' field of GStaticRecMutex in
    g_static_rec_mutex_unlock_full() was being performed after dropping
    the
    implementation mutex for the last time.

    This allowed the lock to be dropped an additional time if it was
    acquired in another thread right at that instant (which is somewhat
    likely, since another thread could have just been woken up by the lock
    being released).

    https://bugzilla.gnome.org/show_bug.cgi?id=670846

 glib/deprecated/gthread-deprecated.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit cb44e96dfadf33c1c5df43dabe7ced19a03789dc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Mar 9 11:32:45 2012 +0100

    Fix crash in signal emission optimization

    The trace of the signal emission of the was calculating the instance
    type after the instance was unrefed. Fix this by keeping the instance
    type around.

 gobject/gsignal.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit bbe4b5719502c934e3a2f931773babd858997e43
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Mar 9 09:32:06 2012 +0100

    signal emission: Allocate instance_and_param with alloca

    This Gives a 5% performance increase in e.g. the emit-handled test.

 gobject/gsignal.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 7b939efa6fad289c2878c64c1edd932200cf5f33
Author: Erik van Pienbroek <epienbro@fedoraproject.org>
Date:   Thu Mar 8 20:29:18 2012 +0100

    Use native glib-genmarshal when cross-compiling

    The ability to cross-compile glib got broken after the
    merge of the 'signal-performance' branch as the assumption
    was made that the generated glib-genmarshal can be executed
    on the host (which isn't valid when cross-compiling).

    Fixed this by using the just-built glib-genmarshal for normal
    compilations and the native (host) glib-genmarshal when doing a
    cross-compilation as was also done in several other areas of GLib

    Tested for host=x86_64-unknown-linux-gnu,
    target=x86_64-unknown-linux-gnu
    and host=x86_64-unknown-linux-gnu, target=i686-w64-mingw32

    https://bugzilla.gnome.org/show_bug.cgi?id=671676

 gobject/tests/Makefile.am | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 3fa735848782735a7ccff3abba39c53388592588
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 8 11:55:09 2012 -0500

    gio-querymodules: unlink instead of writing empty cache

    If there are no modules installed then the most appropriate thing
    is to
    have no cachefile instead of an empty one.  This unbreaks the "clean
    directory after 'make uninstall'" check that automake does.

    https://bugzilla.gnome.org/show_bug.cgi?id=671664

 gio/gio-querymodules.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit c9f55445aa2f86b1ea62367849522ecabbe48d72
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 8 17:18:43 2012 +0800

    msvc_recommended_pragmas.h: Silence C4819 warnings

    This warning appears when unicode chars that cannot be displayed
    in the
    current Windows code page is used anywhere in the file, including
    comment
    blocks.  We probably don't need to see these, especially as problems
    caused by such characters are manifested as other warnings or errors,
    for example, the need to add BOM to a file when compiling code with
    complex script on Windows.

 msvc_recommended_pragmas.h | 3 +++
 1 file changed, 3 insertions(+)

commit 93e2c1f12a354bca11d3467f3d7a2a0eb5dcd683
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Thu Mar 8 14:08:11 2012 +0530

    Assamese translation completed

 po/as.po | 552
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 312 insertions(+), 240 deletions(-)

commit c79606a3d61ad45653a1c8fe7e2b18ba07fab56d
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Thu Mar 8 15:56:14 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 90
 ++++++++++++++++++++++++++++++++++++-------------------------
 po/zh_TW.po | 90
 ++++++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 108 insertions(+), 72 deletions(-)

commit 05663607eaa595735e037a06101f897fdf97de36
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 8 15:34:39 2012 +0800

    Update config.h.win32(.in)

    Remove the config for ENABLE_REGEX, as GRegex is now included in
    all builds.

 config.h.win32.in | 3 ---
 1 file changed, 3 deletions(-)

commit d642bf442ffcfba52c58764b03ac6dcf21feb1cf
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 8 15:04:17 2012 +0800

    glib-genmarshal.c: Use G_VA_COPY instead of va_copy()

    In the code generation portion, va_copy() is not universally
    available,
    so use the existing G_VA_COPY macro that in turn calls va_copy() if it
    is available or call an appropriate emulation otherwise.

 gobject/glib-genmarshal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b72bb9dd08b15a3f85ab593121f9ba49828c07c2
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 8 14:51:22 2012 +0800

    Use G_VA_COPY instead of va_copy()

    va_vopy() is not universally available in all compilers, so make
    use of
    the existing G_VA_COPY macro which either calls va_copy() if it is
    available, or emulates it if otherwise.

 gobject/gclosure.c |  2 +-
 gobject/gmarshal.c | 42 +++++++++++++++++++++---------------------
 2 files changed, 22 insertions(+), 22 deletions(-)

commit 75ca1cd15891739052c96e94eed5f046f344f9c5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Mar 7 12:53:14 2012 +0000

    gobject: Fix a compiler warning

    Shuffle the parenthesis around.

 gobject/gsignal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7cf50ceb857968a99e141e8e2c75053761a12639
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Mar 6 22:10:53 2012 -0500

    tests: fix GAction test for headless run

 gio/tests/Makefile.am |  1 +
 gio/tests/actions.c   | 11 +++++++++++
 2 files changed, 12 insertions(+)

commit a06542b998869c619a9eb9548d5e3bc780d09bbb
Author: Nilamdyuti Goswami <nilamdyuti@gmail.com>
Date:   Tue Mar 6 21:43:24 2012 +0530

    Assamese translation completed

 po/as.po | 5816
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3069 insertions(+), 2747 deletions(-)

commit 6b4e24aca04f5b48f787f51db8d73dae620136a3
Author: Seong-ho Cho <darkcircle.0426@gmail.com>
Date:   Tue Mar 6 23:50:59 2012 +0900

    Updated Korean translation

 po/ko.po | 1129
 ++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 695 insertions(+), 434 deletions(-)

commit 026340c5fcafd63b38a0424a0b83ae3a1c551aa7
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Mar 6 11:35:17 2012 +0100

    Fix unused variable warning

 gobject/gsignal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6e8caec6d9af06d4f7f0e6cd1a86c6c47e49ff01
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Mar 5 12:57:32 2012 -0500

    GUnix{Input,Output}Stream: Only release cancelable poll-fd if we
    allocated it

    Otherwise we get criticals a'la

     GLib-GIO-CRITICAL **: g_cancellable_release_fd: assertion
     `cancellable->priv->fd_refcount > 0' failed

    when reading/writing to certain kinds of file descriptors.

    Patch reviewed by Dan Winship on IRC.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gunixinputstream.c  | 3 ++-
 gio/gunixoutputstream.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit b6f65ec94065eb1ef321fe034b6fe94059bb741e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 5 11:43:20 2012 -0500

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3cf1ad1881c2d8f0cac67d51d3e29713bb28a201
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Mar 5 15:05:07 2012 +0100

    Use G_DEFINE_CONSTRUCTOR for the glib_init constructor

    No need to hand-roll this when we have a macro version.

 glib/glib-init.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit a970fddb0ed68de910120cbe009edb94aa38eb9d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 5 09:01:20 2012 -0500

    2.31.20

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 17fe7fbd5afe58d386cd9df1148d9f897c233f7e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 5 08:32:07 2012 -0500

    Update glib-genmarshal docs

    A bunch of new commandline options sneaked in without docs...

 docs/reference/gobject/glib-genmarshal.xml | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit afe30b28847487d9b5cb4fb65ce740107cbc7423
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 5 07:54:47 2012 -0500

    Fix a compiler warning

 gobject/gsignal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dea3619367633786f98267181f18ec11834ec507
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 5 07:34:58 2012 -0500

    gobject: Fix symbol lists

 gobject/gobject.symbols | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit d2e742c60516963d894516f1ffaf72be021b5df2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 5 07:02:53 2012 -0500

    More updates

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit f3fb42cfaf967cec4450437d81f824de266fb274
Merge: e9c399a 2d6502f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Mar 5 12:29:45 2012 +0100

    Merge branch 'signal-performance'

commit e9c399a65bfa1796947a8d1d65a4a7edab610c3b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 4 23:42:45 2012 -0500

    Fix distcheck

 gio/fam/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 17835f8efd226580f767cf86e846749102050ae1
Author: YunQiang Su <yqsu@src.gnome.org>
Date:   Mon Mar 5 17:44:58 2012 +0800

    update Simplified Chinese (zh_CN) translation

 po/zh_CN.po | 5919
 +++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3129 insertions(+), 2790 deletions(-)

commit c0c2cbe0aec6fe42ac7496ed831b2e78a477c351
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 4 22:25:50 2012 -0500

    Fix distcheck

 glib/pcre/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 47b162c1dfeca9384058e24a9cef3fdb4e730151
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 4 21:48:26 2012 -0500

    Updates for 2.31.20

 NEWS | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

commit 1426a8ca07f3ad0e874c0b0aad241ae93cf1e144
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 4 20:49:04 2012 -0500

    Fix binding properties of the same object

    This problem was pointed out in bug 639873.
    The patch here is based on Matt Barnes patch,
    I've added a testcase as well.

 gobject/gbinding.c      |  8 +++++---
 gobject/tests/binding.c | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 3 deletions(-)

commit 840c32281d307c709b3b2d83071280b3bf46b969
Author: Nirbheek Chauhan <nirbheek@gentoo.org>
Date:   Tue Feb 21 19:42:22 2012 +0530

    Run gdb under libtool so that local libraries are used

    If this isn't done, the system-wide glib is used for this test,
    and that can cause test failures.

    https://bugzilla.gnome.org/621368

 tests/run-assert-msg-test.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d49a77df5de8102974654f6f27a119dabd550043
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Sun Mar 4 21:23:29 2012 +0100

    Updated Slovenian translation

 po/sl.po | 72
 +++++++++++++++++++++++++++++-----------------------------------
 1 file changed, 32 insertions(+), 40 deletions(-)

commit ce5ccbf3e0638b33f66a0948ecffe287beca1592
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Sun Mar 4 21:20:59 2012 +0100

    Updated Slovenian translation

 po/sl.po | 1636
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 992 insertions(+), 644 deletions(-)

commit f3bf532a3c6dd97605117dba4b7cc4aae10e7136
Author: Michael Biebl <biebl@debian.org>
Date:   Sun Mar 4 00:26:10 2012 +0100

    build: include glib-compile-resources.xml in the dist tarball

    https://bugzilla.gnome.org/show_bug.cgi?id=671281

 docs/reference/gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit cc2104e87a12414c205319a0e488c17c64246e9c
Author: Michael Biebl <biebl@debian.org>
Date:   Sat Mar 3 21:39:35 2012 +0100

    build: Fix failure on "make distclean"

    https://bugzilla.gnome.org/show_bug.cgi?id=671270

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2d6502f67bb207c5a0d6eaba27b2398b74baa28f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Sat Mar 3 21:36:10 2012 +0100

    fastpath: Do allow NO_RECURSE fastpath for NOP emissions

    This fixes a performance regression wrt the old NOP emission
    handler.

 gobject/gsignal.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 5f280eb6a828d3bdeb932ce42ee97b2ab7e771f2
Author: Shota Akiyama <s7akiyama@gmail.com>
Date:   Thu Feb 23 11:52:12 2012 +0100

    glib/gmacros.h: Fix up attribute to avoid namespace collisions

    https://bugzilla.gnome.org/show_bug.cgi?id=670751

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit deea0e39ba6bb7c41da405c1269abb962ca81a71
Author: Dan Winship <danw@gnome.org>
Date:   Fri Mar 2 10:22:11 2012 -0500

    gspawn: rename G_SPAWN_ERROR_2BIG to be more bindings-friendly

    Rename G_SPAWN_ERROR_2BIG to G_SPAWN_ERROR_TOO_BIG (while keeping the
    old name for compatibility), to fix problems with language bindings
    where the old name translates into something that would be
    syntactically invalid due to starting with a digit.

    https://bugzilla.gnome.org/show_bug.cgi?id=671025

 glib/gspawn.c | 2 +-
 glib/gspawn.h | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

commit a5caa564b7ac03d49386690c3037e57bdf80563d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 3 11:40:51 2012 -0500

    GApplication: fix name unregister logic

    We were attempting to unregister our ownership of our D-Bus name
    even in
    the case that we were non-unique (ie: we didn't actually own the
    name).
    Rework the logic a bit to prevent that: for non-unique, we leave
    impl->bus_name as NULL and we only register/unregister if it is
    non-NULL.

 gio/gapplicationimpl-dbus.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

commit 5c3e86277627a8cc2dab64dd25fc7a30369472e0
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Mar 3 22:49:18 2012 +0700

    Updated Vietnamese translation

 po/vi.po | 85
 +++++++++++++++++++++++++++++-----------------------------------
 1 file changed, 38 insertions(+), 47 deletions(-)

commit f5aad13d8f1fe4fccf128105f9ab50f2e73f7737
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sat Mar 3 22:35:16 2012 +0700

    po/vi: import from Damned Lies

 po/vi.po | 1134
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 669 insertions(+), 465 deletions(-)

commit 27d9b92264a35dc5753f63ad0ff2f8e5c7381c44
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Sat Mar 3 14:43:05 2012 +0100

    Updated Basque language

 po/eu.po | 6203
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3268 insertions(+), 2935 deletions(-)

commit 59ee6dbc004adda8c4e4c8ff58bf21a9173eb99f
Author: Peter O'Gorman <pogma@gnu.org>
Date:   Fri Mar 2 13:36:27 2012 -0800

    Bug 640202 Impossible to build multi-architecture libraries

    Hides ELF-only linker flag -export-dynamic from non-ELF linkers.

 configure.ac | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit b05ea89d0c9e97fcd7858a83ea0d1c6d7fe1972f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Mar 2 20:22:29 2012 +0100

    Mask out G_SIGNAL_TYPE_STATIC_SCOPE when comparing types

 gobject/gsignal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d10f79a1963d169b1613b2163176cdea7b7d4d8d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Mar 2 17:06:36 2012 +0000

    build: Fix rules for marshalers.[ch]

 gobject/tests/.gitignore  |  1 +
 gobject/tests/Makefile.am | 11 +++++++----
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 3d52ee999af39b37badfb8ed6f7b0dbcf28c73b0
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Mar 2 16:16:17 2012 +0100

    Add more tests for signal emissions

 gobject/tests/Makefile.am     |  10 ++
 gobject/tests/marshalers.list |   3 +
 gobject/tests/signals.c       | 361
 +++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 367 insertions(+), 7 deletions(-)

commit f02ec2f2de3c9863da36be951662ddf4080adfaa
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Feb 22 19:36:05 2012 +0100

    Optimize single-handler va_marshaller case

    When there is only one closure handling a signal emission and
    it doesn't have a bunch of complicated features enabled we
    can short circuit the va_args collection into GValues and call the
    callback via the va_marshaller directly.

    https://bugzilla.gnome.org/show_bug.cgi?id=661140

 gobject/gsignal.c         | 344
 ++++++++++++++++++++++++++++++++--------------
 gobject/gvaluecollector.h |  30 ++++
 2 files changed, 274 insertions(+), 100 deletions(-)

commit a3e91088ce40ed201cfe1514b0adb252394027b1
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Mar 2 11:20:45 2012 +0100

    Use builtin marshallers and va_marshallers if possible

    If the signal argumment types matches a built in standard
    marshaller we use the va_marshaller for that, and also the
    normal marshaller if NULL was specified (as its faster than
    the generic one).

 gobject/gsignal.c | 54
 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 51 insertions(+), 3 deletions(-)

commit 7964cda8e6c9dc779e99b65150e158e29d373ea4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Feb 22 19:34:05 2012 +0100

    Add g_signal_set_va_marshaller

    This lets you set a va_marshaller on your signal which will be
    propagated to all closures for the signal. Also, automatically
    uses the generica va_marshaller if you specify a NULL c_marshaller.

    https://bugzilla.gnome.org/show_bug.cgi?id=661140

 gobject/gsignal.c | 58
 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 gobject/gsignal.h | 11 +++++++++++
 2 files changed, 64 insertions(+), 5 deletions(-)

commit 1c4f0ca48332f2e550b5e5e17365c43912958cee
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Feb 28 15:48:20 2012 +0100

    Add _g_closure_is_void to check for NULL vfuncs

    https://bugzilla.gnome.org/show_bug.cgi?id=661140

 gobject/gclosure.c      | 36 ++++++++++++++++++++++++++++++++++++
 gobject/gtype-private.h |  2 ++
 2 files changed, 38 insertions(+)

commit 57051905f9279d2c8c27e9e50154c9565708f4d5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Feb 22 19:32:36 2012 +0100

    Support generating va marshallers in glib-genmarshal

    https://bugzilla.gnome.org/show_bug.cgi?id=661140

 gobject/glib-genmarshal.c | 232 ++++++++++--
 gobject/gmarshal.c        | 909
 ++++++++++++++++++++++++++++++++++++++++++++++
 gobject/gmarshal.h        | 154 ++++++++
 3 files changed, 1272 insertions(+), 23 deletions(-)

commit 588af03a2893615736685c43cdaff767f70d04e8
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Feb 22 19:29:14 2012 +0100

    Add optional support for varargs marshallers to GClosure

    These closures support being invoked on a va_args which can
    be useful as you can then avoid boxing the va_args into
    GValues in certain cases.

    https://bugzilla.gnome.org/show_bug.cgi?id=661140

 gobject/gclosure.c      | 364
 +++++++++++++++++++++++++++++++++++++++++++++++-
 gobject/gclosure.h      |  18 +++
 gobject/gtype-private.h |  13 ++
 3 files changed, 392 insertions(+), 3 deletions(-)

commit d5fbbe400aef8c802968a1398fc8e9546173b748
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Feb 22 17:46:21 2012 +0100

    Add GRealClosure and move meta_marshallers there

    This means we're not abusing the notifiers for meta_marshallres,
    and we're able to later cleanly add other fields to GClosure.

    We still have to leave the ABI intact for the GClosure->meta_marshal
    bit, as old G_CLOSURE_N_NOTIFIERS macro instances still accesses it.
    However, we always set it to zero to keep those macros working.

    https://bugzilla.gnome.org/show_bug.cgi?id=661140

 gobject/gclosure.c      | 81
 ++++++++++++++++++++-----------------------------
 gobject/gclosure.h      |  6 ++--
 gobject/gsignal.c       |  4 +--
 gobject/gtype-private.h | 12 ++++++++
 4 files changed, 51 insertions(+), 52 deletions(-)

commit 950e6a4a207180862061618de5a3b77f92d71c0a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Feb 22 19:44:24 2012 +0100

    tests: Add generic and empty signal emission performace tests

    generic means it uses the generic marshaller
    empty means the vfunc pointer is NULL

    https://bugzilla.gnome.org/show_bug.cgi?id=661140

 tests/gobject/performance.c | 112
 ++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 107 insertions(+), 5 deletions(-)

commit 3be0e57458fe297d79a20f261cc2b0f92c91db45
Author: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
Date:   Tue Sep 27 09:15:17 2011 +0100

    tests: performance: add emit-handled/emit-unhandled tests

    Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>

 tests/gobject/performance.c | 125
 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 104 insertions(+), 21 deletions(-)

commit 00f1e1f5c282b0943d0a7b3e073d8867b0bdba05
Author: Jörn Magens <interflug1@gmx.net>
Date:   Wed Feb 29 12:29:50 2012 -0500

    GSequence: add note about lookup requiring sorting

    g_sequence_lookup() only works on sorted sequences, but it's
    quite easy
    to create unsorted sequences.  Add a note to the documentation
    that the
    sequence must be sorted in order for g_sequence_lookup() to work.

    https://bugzilla.gnome.org/show_bug.cgi?id=670969

 glib/gsequence.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit 7e7e0b141c887a2880c88f051cb8ed07e474b24a
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Mar 2 14:15:58 2012 +0200

    Updated Hebrew translation.

 po/he.po | 131
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 76 insertions(+), 55 deletions(-)

commit cb0566eaf3b245bf2eaa8c9e912cf240d8868193
Author: Christian Dywan <christian@twotoasts.de>
Date:   Sat Mar 26 14:48:54 2011 +0000

    gobject/gtype.c: Emphasize use of priv in member and use
    g_return_val_if_fail

    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=597785

    Signed-off-by: Javier Jardón <jjardon@gnome.org>

 gobject/gtype.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 10fbfcf09010e423cfc79c54e8da50b62a0f4b8a
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Mar 1 14:06:43 2012 -0500

    Add G_VOLUME_IDENTIFIER_KIND_CLASS identifier

    If an application (such as Nautilus) wants to show a sidebar with
    devices group into different groups such as "Devices" and "Network",
    it's currently up to the application itself to do the classification
    (for example by looking at the URI scheme for the activation root,
    e.g. smb://).

    This patch adds a new identifier G_VOLUME_IDENTIFIER_KIND_CLASS that
    can be set by volume monitors and used by applications.

    See https://bugzilla.gnome.org/show_bug.cgi?id=668295

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gvolume.h                       | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+)

commit 479416fada430f8d1f5af8e9b7c536b2ee6e71fb
Author: Krishnababu Krothapalli <email>
Date:   Thu Mar 1 13:59:41 2012 +0530

    Updated Telugu Translations

 po/te.po | 6103
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3207 insertions(+), 2896 deletions(-)

commit 80611295ab56dd95add95a9600ba8bc88d5e9a62
Author: Colin Walters <walters@verbum.org>
Date:   Wed Feb 29 12:37:24 2012 -0500

    g_uri_unescape_segment: Mention (allow-none)/%NULL in documentation

 glib/gurifuncs.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit ede8707129389d6a795b9d23de2554b0d656e2f5
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Feb 29 17:52:39 2012 +0000

    Version the deprecation of g_value_array_get_type()

    Just like the rest of the GValueArray API.

 gobject/gboxed.h      | 13 -------------
 gobject/gvaluearray.h | 13 ++++++++++++-
 2 files changed, 12 insertions(+), 14 deletions(-)

commit c5b6f774c4c133b5c1a9ebbd046a54ef6f177f84
Author: Andoni Morales Alastruey <ylatuya@gmail.com>
Date:   Wed Feb 29 11:19:21 2012 +0100

    gsocket: fix compilation when ENOTSOCK and WSANOTSOCK are both defined

 gio/gsocket.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 9db8692f5ada433b4c7292b5b595a667fb53bebc
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 29 11:58:16 2012 +0800

    Update Visual C++ projects

    Update the build support of the included PCRE as we are now including
    PCRE 8.30 with the GLib distribution.

    Also "install" the new gversionmacros.h header file.

 build/win32/vs10/glib.props             |   2 +
 build/win32/vs10/glib.vcxproj.filtersin |  19 ++++-
 build/win32/vs10/glib.vcxprojin         | 122
 ++++++++++++++++++++++++++++++--
 build/win32/vs9/glib.vcprojin           | 122
 ++++++++++++++++++++++++++++++--
 build/win32/vs9/glib.vsprops            |   1 +
 5 files changed, 252 insertions(+), 14 deletions(-)

commit 2bde3e8d833cf2d90ac3a0b3b89810ddd54b8c10
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Tue Feb 28 01:14:29 2012 +0100

    gio-2.0.pc: add gdbus_codegen variable

    https://bugzilla.gnome.org/show_bug.cgi?id=670922

 gio-2.0.pc.in | 1 +
 1 file changed, 1 insertion(+)

commit 0155e19566a9d9e0d334eddac7dd757b4b9a2f4c
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Feb 28 00:32:18 2012 +0100

    Updated Galician translations

 po/gl.po | 66
 +++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 42 insertions(+), 24 deletions(-)

commit 7a4a973cfd1508065efa69c6a910cd01b490499a
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Feb 27 14:53:13 2012 -0500

    GDBusConnection: Don't leak message reply in error path

    This was reported in bug 670909.

    https://bugzilla.gnome.org/show_bug.cgi?id=670909

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eeccd3866ac679b36f5bff2c8c542b911a09a390
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 27 14:00:55 2012 -0500

    GDBusMenuModel: plug a leak of a GHashTable

 gio/gdbusmenumodel.c | 1 +
 1 file changed, 1 insertion(+)

commit 51f1297a6e8a031a611dd15b8aec8f4abac9a1db
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Feb 27 16:25:50 2012 +0100

    Fixup docs comment

 glib/gunicode.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d2c37669f24d6c52642f0f7d76c6d8432fb57a6d
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Feb 13 14:20:55 2012 +0100

    regex: unicode: Update to Unicode 6.1.0

    Update some more PCRE tables to Unicode 6.1.0. Should be completely
    updated now.

 glib/pcre/pcre_tables.c | 297
 ++++++++++++++++++++++++++----------------------
 1 file changed, 159 insertions(+), 138 deletions(-)

commit c67ad269f1801371050da5600fa83abaf1130411
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 27 07:16:11 2012 -0500

    Fix doc build again

    The way gtk-doc works, we need compiling.sgml in both
    content_files (to make sure it ends up in the disted tarball)
    and in expand_content_files (to have references expanded).

 docs/reference/glib/Makefile.am | 3 +++
 1 file changed, 3 insertions(+)

commit 96c98ce62ebb88b296deab5391203a870dbfa068
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 27 06:48:01 2012 -0500

    Improve the wording of the message for G_UNAVAILABLE

    The version number we have here is the one the function appeared
    in, not the max-allowed version. Therefore 'unavailable before
    VERSION' makes more sense than 'unavailable for VERSION'.

 glib/gmacros.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fecdb4f8dc5338b9c069edeb4f0eb77b0aaf3605
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Mon Feb 27 12:50:18 2012 +0100

    docs/glib: Moving back compiling.sgml to content_files to fix
    make dist

 docs/reference/glib/Makefile.am | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 37c84b3bbf7ae6408f35db896c43ef513ffa0e8d
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Mon Feb 27 07:31:44 2012 +0200

    Updated Bulgarian translation

 po/bg.po | 952
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 604 insertions(+), 348 deletions(-)

commit 4995ef4dd7959dde44c62014a06c52d41acd8908
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 27 00:32:13 2012 -0500

    Add a 'these are private' note for the version macros

 glib/gversionmacros.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 76175ab9eda0c1d56a2b6a816853ab00264b1f3b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 27 00:18:47 2012 -0500

    Improve documentation around deprecations

 docs/reference/glib/Makefile.am       | 4 +++-
 docs/reference/glib/compiling.sgml    | 2 +-
 docs/reference/glib/glib-docs.sgml    | 2 +-
 docs/reference/glib/glib-sections.txt | 1 +
 glib/docs.c                           | 8 ++++++++
 5 files changed, 14 insertions(+), 3 deletions(-)

commit 550fcaddf7fcdb8a4052ab43f40b27e5e9d94be1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Feb 21 13:40:50 2012 +0000

    Add versioned deprecation annotation

    We start from GLib 2.26.

    https://bugzilla.gnome.org/show_bug.cgi?id=670542

 glib/deprecated/gcompletion.h | 16 +++++-----
 glib/deprecated/grel.h        | 22 +++++++-------
 glib/deprecated/gthread.h     | 70
 +++++++++++++++++++++----------------------
 glib/gatomic.h                |  2 +-
 glib/gmain.h                  |  2 +-
 glib/gunicode.h               |  2 +-
 6 files changed, 57 insertions(+), 57 deletions(-)

commit 817d992abcf127cec3de89b6d6e6e45a99b1727d
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Feb 20 16:41:30 2012 +0000

    value array: Annotate with versioned deprecation

    https://bugzilla.gnome.org/show_bug.cgi?id=670542

 gobject/gvaluearray.h      | 20 ++++++++++----------
 gobject/tests/valuearray.c |  2 +-
 2 files changed, 11 insertions(+), 11 deletions(-)

commit 34aeeb7d64a0433f7994dd2b3f60bc018f0a84c1
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Mon Feb 20 16:20:15 2012 +0000

    Add flexible API version boundaries

    There are cases when it should be possible to define at compile time
    what range of functions and types should be used, in order to get,
    or restrict, the compiler warnings for deprecated or newly added
    types or functions.

    For instance, if GLib introduces a deprecation warning on a type in
    version 2.32, application code can decide to specify the minimum and
    maximum boundary of the used API to be 2.30; when compiling against
    a new version of GLib, this would produce the following results:

      - all deprecations introduced prior to 2.32 would emit compiler
        warnings when used by the application code;
      - all deprecations introduced in 2.32 would not emit compiler
        warnings when used by the application code;
      - all new symbols introduced in 2.32 would emit a compiler warning.

    Using this scheme it should be possible to have fairly complex
    situations, like the following one:

      assuming that an application is compiled with:
        GLIB_VERSION_MIN_REQUIRED = GLIB_VERSION_2_30
        GLIB_VERSION_MAX_ALLOWED  = GLIB_VERSION_2_32

      and a GLib header containing:

        void function_A (void) GLIB_DEPRECATED_IN_2_26;
        void function_B (void) GLIB_DEPRECATED_IN_2_28;
        void function_C (void) GLIB_DEPRECATED_IN_2_30;
        void function_D (void) GLIB_AVAILABLE_IN_2_32;
        void function_E (void) GLIB_AVAILABLE_IN_2_34;

      any application code using the above functions will get the
      following
      compiler warnings:

        function_A: deprecated symbol warning
        function_B: deprecated symbol warning
        function_C: no warning
        function_D: no warning
        function_E: undefined symbol warning

    This means that it should be possible to gradually port code towards
    non-deprecated API gradually, on a per-release basis.

    https://bugzilla.gnome.org/show_bug.cgi?id=670542

 configure.ac                          |   4 +
 docs/reference/glib/compiling.sgml    |   9 ++
 docs/reference/glib/glib-sections.txt |   9 ++
 glib/Makefile.am                      |   1 +
 glib/docs.c                           |  32 ++++++
 glib/glib.h                           |   1 +
 glib/gmacros.h                        |   9 ++
 glib/gtypes.h                         |   1 +
 glib/gversion.c                       |  12 ++
 glib/gversionmacros.h                 | 206
 ++++++++++++++++++++++++++++++++++
 10 files changed, 284 insertions(+)

commit d70634526d43a9d9281301c2097c788ca575e318
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Feb 11 23:51:11 2012 +0100

    regex: Remove --disable-regex option

    https://bugzilla.gnome.org/show_bug.cgi?id=622149

 configure.ac       | 114
 +++++++++++++++++++++++------------------------------
 glib/Makefile.am   |  16 +-------
 glib/tests/regex.c |  13 ------
 gobject/gboxed.c   |   5 ---
 4 files changed, 51 insertions(+), 97 deletions(-)

commit 3e7f42654ff2fd471ccd67ad6b8a38672f81a393
Author: David King <amigadave@amigadave.com>
Date:   Tue Feb 21 11:19:20 2012 +0000

    docs: Clarify how to unset a GFileInfo attribute

    https://bugzilla.gnome.org/show_bug.cgi?id=592666

 gio/gfileinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 500aafd09960b5cea027585e3898192f9501d04f
Author: David King <amigadave@amigadave.com>
Date:   Tue Feb 21 10:05:08 2012 +0000

    docs: Clarify g_type_register_fundamental() behaviour

    https://bugzilla.gnome.org/show_bug.cgi?id=580873

 gobject/gtype.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 989c466296fe9094f80a0633546b7419da7522c6
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 21:22:13 2012 +0100

    regex: Remove pcre_ucd.c

 glib/pcre/pcre_ucd.c | 3098
 --------------------------------------------------
 1 file changed, 3098 deletions(-)

commit 706b72db21d25ec26ed7411e5221550ffb08ff21
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 21:20:33 2012 +0100

    regex: Use glib for unicode data

    Use g_unichar_type() and g_unichar_get_script() instead of pcre
    tables.

 glib/pcre/Makefile.am      |   1 -
 glib/pcre/pcre_compile.c   |  26 +-
 glib/pcre/pcre_dfa_exec.c  |  96 +++---
 glib/pcre/pcre_exec.c      |  26 +-
 glib/pcre/pcre_internal.h  |  11 +-
 glib/pcre/pcre_tables.c    |  16 +
 glib/pcre/pcre_xclass.c    |  24 +-
 glib/pcre/ucp.h            | 265 ++++++++--------
 glib/update-pcre/ucp.patch | 732
 ++++++++++++++++++++++++++++++++++++++++++++-
 9 files changed, 958 insertions(+), 239 deletions(-)

commit 75dffb99b3d11f4ae9d8a72a055641482a727b75
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 20:41:52 2012 +0100

    regex: Remove obsolete patch

 glib/update-pcre/utt.patch | 30 ------------------------------
 1 file changed, 30 deletions(-)

commit 8e8ab99bad79455fae732f5472c8b06a68cca35d
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 20:04:41 2012 +0100

    regex: unicode: Update to Unicode 6.1.0

 glib/pcre/pcre_ucd.c | 4769
 ++++++++++++++++++++++++++------------------------
 glib/pcre/ucp.h      |   10 +-
 2 files changed, 2452 insertions(+), 2327 deletions(-)

commit 735e4a6a6a5112b5caccb7e55841aa0eba50f5cb
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 19:44:31 2012 +0100

    regex: Remove obsolete makefile fragments

    The update.sh script doesn't work with current PCRE, so these are
    obsolete.

 glib/update-pcre/Makefile.am   |  2 --
 glib/update-pcre/Makefile.am-1 | 28 ----------------------------
 glib/update-pcre/Makefile.am-2 | 10 ----------
 3 files changed, 40 deletions(-)

commit afa3375210cf5b29885559c6fefcdd1b167614d2
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 19:40:48 2012 +0100

    regex: Use glib memory allocator

 glib/pcre/pcre_globals.c      |  10 ++--
 glib/update-pcre/memory.patch | 114
 +++++++++++++-----------------------------
 2 files changed, 40 insertions(+), 84 deletions(-)

commit 38309dc482eb80037b620d5797fce133fe5f3060
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 19:31:15 2012 +0100

    regex: Remove obsolete patch

 glib/update-pcre/Makefile.am       |  3 +--
 glib/update-pcre/pcre_valid_utf8.c | 14 --------------
 2 files changed, 1 insertion(+), 16 deletions(-)

commit d02f6393dffe8dbf9e909d20cab9c8dcaaa8d98b
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 19:29:42 2012 +0100

    regex: Use g_ascii_is[x]digit

 glib/pcre/pcre_compile.c       |  22 +++--
 glib/update-pcre/digitab.patch | 217
 +++++++++++++++++------------------------
 2 files changed, 101 insertions(+), 138 deletions(-)

commit 8aadf6b3c94b907c418b8289f89978e289aefa1d
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 19:20:49 2012 +0100

    regex: Remove obsolete patch

    PCRE doesn't even contain the patched file anymore.

 glib/update-pcre/Makefile.am            |   1 -
 glib/update-pcre/pcre_ucp_searchfuncs.c | 130
 --------------------------------
 2 files changed, 131 deletions(-)

commit 3225b24cb5a24b1360d90d7efaf6e3e7329717bd
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 19:18:44 2012 +0100

    regex: Remove obsolete patches

    Upstream PCRE has removed the relocations that these patches were
    fixing;
    the patches are obsolete.

 glib/update-pcre/make_utt.py           |  57 -------
 glib/update-pcre/table-reduction.patch | 269
 ---------------------------------
 2 files changed, 326 deletions(-)

commit a40523b7f2e4994e9a9f8c577d2b2b03d701290e
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 12 19:14:59 2012 +0100

    regex: Update included PCRE to 8.30

 glib/pcre/Makefile.am            |   43 +-
 glib/pcre/pcre.h                 |  290 +-
 glib/pcre/pcre_byte_order.c      |  288 ++
 glib/pcre/pcre_chartables.c      |    2 +-
 glib/pcre/pcre_compile.c         | 3217 ++++++++++++------
 glib/pcre/pcre_config.c          |   48 +-
 glib/pcre/pcre_dfa_exec.c        |  901 +++--
 glib/pcre/pcre_exec.c            | 3406 +++++++++++--------
 glib/pcre/pcre_fullinfo.c        |   62 +-
 glib/pcre/pcre_get.c             |  199 +-
 glib/pcre/pcre_globals.c         |   14 +-
 glib/pcre/pcre_internal.h        | 1168 +++++--
 glib/pcre/pcre_jit_compile.c     | 6915
 ++++++++++++++++++++++++++++++++++++++
 glib/pcre/pcre_maketables.c      |  148 +
 glib/pcre/pcre_newline.c         |   50 +-
 glib/pcre/pcre_ord2utf8.c        |   30 +-
 glib/pcre/pcre_refcount.c        |   89 +
 glib/pcre/pcre_string_utils.c    |  168 +
 glib/pcre/pcre_study.c           |  718 +++-
 glib/pcre/pcre_tables.c          |   54 +-
 glib/pcre/pcre_try_flipped.c     |  139 -
 glib/pcre/pcre_ucd.c             | 2981 ++++++++++++++++
 glib/pcre/pcre_ucp_searchfuncs.c |  131 -
 glib/pcre/pcre_valid_utf8.c      |  299 ++
 glib/pcre/pcre_version.c         |   95 +
 glib/pcre/pcre_xclass.c          |   64 +-
 glib/pcre/pcreposix.h            |  146 +
 glib/pcre/ucp.h                  |  195 +-
 28 files changed, 17983 insertions(+), 3877 deletions(-)

commit da4293a4e431185d8c0c889643712adea0dae473
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 26 21:49:20 2012 -0500

    Update case conversion test data for Unicode 6.1

 tests/casefold.txt |  7 ++++++-
 tests/casemap.txt  | 25 +++++++++++--------------
 2 files changed, 17 insertions(+), 15 deletions(-)

commit 8280a8ee36845699ea62ce0a36fcde26e22b1b90
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 18:59:50 2012 +0100

    unicode: tests: More script to/from ISO-15924 tests

 glib/tests/unicode.c | 140
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 139 insertions(+), 1 deletion(-)

commit 58b4cdd38b3fb78de918b9861e5d6362d48d1fcd
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 18:42:08 2012 +0100

    unicode: tests: Add tests for new scripts

 glib/tests/unicode.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit d133d229327b8cfb7974a861da08f57140cf5c55
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 18:36:13 2012 +0100

    unicode: tests: Add tests for new line break classes

 glib/tests/unicode.c | 2 ++
 1 file changed, 2 insertions(+)

commit 2a2f3c41761d078368e084574bf2f1c51b89f792
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 18:25:47 2012 +0100

    unicode: Regenerate tables from Unicode 6.1.0

 glib/gunibreak.h      | 1176 ++++++++++++++++++++++++++++++-----------
 glib/gunichartables.h | 1383
 ++++++++++++++++++++++++++++++++-----------------
 2 files changed, 1766 insertions(+), 793 deletions(-)

commit d1da9ff080b42f1bac6a611f68d8d3f8a166f3e6
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 18:21:31 2012 +0100

    unicode: Regenerate gscripttable.h for Unicode 6.1.0

 glib/gscripttable.h | 162
 ++++++++++++++++++++++++++++++++--------------------
 1 file changed, 100 insertions(+), 62 deletions(-)

commit 3554026b39b575612ce71d79608156a303800552
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 18:33:22 2012 +0100

    unicode: tests: Remove U+27CD from is-undefined test

    It's assigned in Unicode 6.1.0.

 glib/tests/unicode.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 48e01af6f1115057d861367792e1e40f2a71fdd3
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 18:20:26 2012 +0100

    unicode: Add new line break classes from Unicode 6.1.0

 glib/gen-unicode-tables.pl | 2 ++
 glib/gunicode.h            | 6 +++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

commit fb574834c18893413fa0549f0c12699ad6354724
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Feb 10 16:59:41 2012 +0100

    unicode: Add new scripts from Unicode 6.1.0

 glib/gunicode.h | 22 +++++++++++++++++++---
 glib/guniprop.c |  9 +++++++++
 2 files changed, 28 insertions(+), 3 deletions(-)

commit 2161bf254f6bfdfe589f7750c30f129261a48b30
Author: Stefan Sauer <ensonic@users.sf.net>
Date:   Sun Feb 26 21:20:24 2012 +0100

    goption: try to be helpful in goption args/flag checks

    When complaining about ill defined GOptionEntries include the name
    of the option
    group and entry in the warning.

 glib/goption.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit e4738839edfa88d1e9c401f9342d2a11e7ad2bab
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Feb 26 20:08:29 2012 +0100

    Updated Spanish translation

 po/es.po | 137
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 77 insertions(+), 60 deletions(-)

commit 761b21a249f1438bd7c347a316f023e89a30dbbc
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Sun Feb 26 10:59:40 2012 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 75
 ++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 42 insertions(+), 33 deletions(-)

commit 4ce98d3b5952f7c1048352c436c71d636beaae48
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Sat Feb 25 10:25:13 2012 +0100

    docs: g_file_new_tmp: template was renamed to tmpl

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0833f9735dbf077f401e30fcd8047516a53ce0c0
Author: A S Alam <aalam@users.sf.net>
Date:   Sun Feb 26 16:24:15 2012 +0530

    update Punjabi Translation

 po/pa.po | 6072
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3268 insertions(+), 2804 deletions(-)

commit 4876be4abfa3291cf3e5412092059b7a2ac2ccce
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Sun Feb 26 11:26:11 2012 +0100

    Updated Serbian translation

 po/sr.po       | 89
 ++++++++++++++++++++++++++++++++++------------------------
 po/sr@latin.po | 89
 ++++++++++++++++++++++++++++++++++------------------------
 2 files changed, 106 insertions(+), 72 deletions(-)

commit 755a45e530bdde4b618baeec1f4f478bcc2e4f03
Author: Gheyret Kenji <gheyret@gmail.com>
Date:   Sun Feb 26 11:23:43 2012 +0900

    Updated Uyghur translation

 po/ug.po | 6110
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 3151 insertions(+), 2959 deletions(-)

commit ba7e1542fe9ed53dbf596e23a3efdfacae1adb98
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Sun Feb 26 01:18:29 2012 +0300

    Updated Belarusian translation.

 po/be.po | 77
 +++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 49 insertions(+), 28 deletions(-)

commit abac7df5734cff4ea92b5ae92a8b34008548ecfb
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Sat Feb 25 10:54:53 2012 -0200

    Make some strings translatable

 gio/gresource-tool.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 3cc5900b7be49da10617775b91d86bbf945091ca
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sat Feb 25 22:37:20 2012 +0200

    Updated Lithuanian translation

 po/lt.po | 6207
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3290 insertions(+), 2917 deletions(-)

commit feaf828a92dcc373c859a196d7b82ab9347e4b2a
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Sat Feb 25 10:18:40 2012 -0200

    Fixed a typo

 gio/glib-compile-resources.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c75614ecedf7d990083c4f54871816d547a23a0c
Author: Arash Mousavi <amousavi@src.gnome.org>
Date:   Sat Feb 25 15:35:17 2012 +0330

    Updated Persian Translation

 po/fa.po | 5657
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3007 insertions(+), 2650 deletions(-)

commit cb7d3552c3673f898fb677c1ae6fca1931f67a38
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Feb 25 10:44:50 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 333
 +++++++++++++++++++++++++++++++-----------------------------
 po/zh_TW.po | 333
 +++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 344 insertions(+), 322 deletions(-)

commit 47475dbe6ab981679cbc2931306973d2143694cd
Author: John Ralls <jralls@ceridwen.us>
Date:   Fri Feb 24 17:04:52 2012 -0800

    [Bug 529806] Cannot build in 64-bit Mac OS X due to libiconv

 glib/gconvert.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 462f7f5a4d7f5690e34f639afdd111c5c4119e26
Author: Filippo Della Betta <filippo.dellabetta@telecomitalia.it>
Date:   Thu Feb 16 10:04:50 2012 +0100

    Added better support of G_STRFUNC for Visual Studio platform

    https://bugzilla.gnome.org/show_bug.cgi?id=670128

 glib/gmacros.h | 2 ++
 1 file changed, 2 insertions(+)

commit a75cac1b4c63f348f65e7045ab0eb6b66a2f55d8
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Fri Feb 24 17:12:14 2012 -0200

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 6156
 +++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3237 insertions(+), 2919 deletions(-)

commit 21457abdccc06087ee4e20f8f0e4449b318f6723
Author: Daiki Ueno <ueno@unixuser.org>
Date:   Fri Feb 24 10:12:08 2012 +0900

    Hide global variable for signal ID in gdbusproxy.c.

    Also a similar fix for gdbusserver.c.

    https://bugzilla.gnome.org/show_bug.cgi?id=670721

 gio/gdbusproxy.c  | 2 +-
 gio/gdbusserver.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit eece6cb9c33dbbc30e6a71e09f699fe1ab6fdff3
Author: Richard Hughes <richard@hughsie.com>
Date:   Thu Feb 23 10:34:46 2012 +0000

    Fix up 'Since:' for g_mapped_file_new_from_fd()

    It was introduced in 2.31.0, not 2.30.x

 glib/gmappedfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 98a70df48603c3c4fc63acb22a9bf6985bc0fa55
Author: Dan Winship <danw@gnome.org>
Date:   Wed Feb 22 11:38:43 2012 -0500

    gthread-posix: fix order of arguments in g_thread_abort() message

 glib/gthread-posix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 88182d375e13ae6519a288d5295220c83ca27e73
Author: Dan Winship <danw@gnome.org>
Date:   Wed Feb 22 08:12:52 2012 -0500

    gasyncqueue: fix a 32bit overflow in g_async_queue_timed_pop

    also, add a test for g_async_queue_timed_pop() and
    g_async_queue_timeout_pop() to tests/asyncqueue.c

    https://bugzilla.gnome.org/show_bug.cgi?id=669670

 glib/gasyncqueue.c      |  2 +-
 glib/tests/asyncqueue.c | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+), 1 deletion(-)

commit 9ff09f34cf0bc5fbc951490923880d82d94862d1
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Tue Feb 21 16:42:43 2012 +0100

    gvaluetransform: Fix an infinite loop with GFlagsValue sets with
    the 0 value

    Transforming a GValue holding flags from a GFlagsValue set that
    includes the 0
    value (no flag bits set) into a string would loop until exhausting
    all the
    available memory.

    https://bugzilla.gnome.org/show_bug.cgi?id=670557

 gobject/gvaluetransform.c |  2 +-
 gobject/tests/enums.c     | 16 ++++++++++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)

commit 9e5ff3d3ebba8bd7f3a871735ed35fe7b4e98d77
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Tue Feb 21 14:19:37 2012 +0100

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 055229b1c589aa8b722eef2d622e1b2bde939961
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Feb 21 11:57:41 2012 +0100

    Updated Galician translations

 po/gl.po | 140
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 76 insertions(+), 64 deletions(-)

commit b80e169b146a31a1595ce6342f675cab6536f76a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 21 01:37:09 2012 +0100

    mention g_application_quit() in the NEWS

 NEWS | 3 +++
 1 file changed, 3 insertions(+)

commit ed519758997ca0fa40575722816be3121f106357
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 20 21:41:35 2012 +0100

    GApplication: add g_application_quit()

    A long requested feature; this quits the application immediately,
    ignoring the hold count.

    https://bugzilla.gnome.org/show_bug.cgi?id=670485

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gapplication.c                  | 29 +++++++++++++++++++++++++++++
 gio/gapplication.h                  |  2 ++
 gio/gio.symbols                     |  1 +
 4 files changed, 33 insertions(+)

commit 486c694af02c69b06484d0b87c89c2874422f4ff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 21 01:12:25 2012 +0100

    Mention documentation fixes in NEWS

 NEWS | 2 ++
 1 file changed, 2 insertions(+)

commit 2ca6c475ea16d4e1a0a136bde1c20ba45c421a58
Author: David King <amigadave@amigadave.com>
Date:   Sat Feb 18 11:56:09 2012 +0000

    docs: Fix g_async_queue_timeout_pop_unlocked typo

 glib/gasyncqueue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 912ac79041ed64b2df9be7e88bdb4323d3a6f20e
Author: David King <amigadave@amigadave.com>
Date:   Sat Feb 18 12:25:32 2012 +0000

    docs: Add some missing G_TOKEN_* descriptions

 glib/gscanner.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 708d4178ceb34586a630afc4597008cf5e9f3a12
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 15:16:59 2012 +0000

    docs: Fix g_key_file_load_from_file error parameter

 glib/gkeyfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1965206be828c724ca79d1461134a4ac5adcb73f
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 15:19:40 2012 +0000

    docs: Ignore private network monitor headers

 docs/reference/gio/Makefile.am | 3 +++
 1 file changed, 3 insertions(+)

commit c5f8f6f8f4c19b8b735ab9ea9d25b192b4123187
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 15:41:12 2012 +0000

    docs: Fix GTlsBackend typo GTyep → GType

 gio/gtlsbackend.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a290fff9a28a16086de8af7f5e1c789b2070a016
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 15:51:09 2012 +0000

    docs: Fix GTlsDatabase typos

 gio/gioenums.h     |  5 +++--
 gio/gtlsdatabase.c | 11 ++++++-----
 2 files changed, 9 insertions(+), 7 deletions(-)

commit c490a75a18a5ef81821d94a939ac8108111207dc
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:09:35 2012 +0000

    docs: Fix GApplicationCommandLine typo

 gio/gapplication.c            | 6 +++---
 gio/gapplicationcommandline.c | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 69ecc4b49676508fef4372dfc9bf69f1b500125f
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:11:23 2012 +0000

    docs: Fix define typos in GApplication

 gio/gapplication.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fba11825a325351d9470765caf8e05c0425c1290
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:13:59 2012 +0000

    docs: Fix typo in GActionGroup

 gio/gactiongroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6129a1c2d5e654454befdc2734f690bdce42ef9d
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:14:54 2012 +0000

    docs: Fix GActionGroup exporter typo

 gio/gactiongroupexporter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 87c76bdbb6e64484959892909b9a411fe7073a59
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:18:37 2012 +0000

    docs: Remove some old GMenu documentation

 gio/gapplication.c | 6 ++----
 gio/gmenu.c        | 3 ---
 2 files changed, 2 insertions(+), 7 deletions(-)

commit 83392caa727a80bcd9334ac36f41ef4301559a43
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:25:07 2012 +0000

    docs: Fix typo GAsyncReady → GAsyncResult

    Also GSimpleAsyncReady → GSimpleAsyncResult.

 gio/gasynchelper.c | 2 +-
 gio/gmount.c       | 4 ++--
 gio/gvolume.c      | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 37fd4d86ab8f3f27caf8817c7a1100ff364dacd1
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:26:52 2012 +0000

    docs: Remove mention of GFileAttributeValue

    Instead mention GFileAttributeInfo.

 gio/gfileattribute.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 8ee2cadd7f51f6e1632b8bd8235b9c4c97ecee9d
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:30:10 2012 +0000

    docs: Fix some GDBusConnection typos

 gio/gdbusconnection.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 11154ff5c13260e257abd240b0353d78e213d0fa
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:32:08 2012 +0000

    docs: Fix typo GConvertFlags → GConverterFlags

 gio/gconverter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 59e1c77b8d46ca083dec98d29a2ea7521cee651d
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:34:27 2012 +0000

    docs: Fix typo export → unexport

 gio/gdbusinterfaceskeleton.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 13bc546657b111a4dd61891e6329cb99a2137320
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:35:10 2012 +0000

    docs: Fix GDBusProxy typo name → g-name

 gio/gdbusproxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ae3ae3699bc153a9fbd3ae0c788f40c8c13fffbd
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:36:28 2012 +0000

    docs: Fix typo in GFileInputStream

    g_seekable_stream_can_seek() → g_seekable_can_seek().

 gio/gfileinputstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e70b72f5a10c22be137d3173e9fbe2ae11c82f85
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:37:55 2012 +0000

    docs: Fix method names in GMenu and GMenuModel

 gio/gmenu.c      | 11 +++++------
 gio/gmenumodel.c |  6 +++---
 2 files changed, 8 insertions(+), 9 deletions(-)

commit 43a3a5edfcb43d0c659047637cb5f0af762201d1
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:39:15 2012 +0000

    docs: Fix GNetworkAddress typo

    g_network_address_parse_host() → g_network_address_parse().

 gio/gnetworkaddress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4653c6074f74234f230e8a8b1d1eb94fe05c48f0
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:40:06 2012 +0000

    docs: Add documentation for supports_hostname in GProxy

    Also fix a typo has → as.

 gio/gproxy.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5d64eb4cb8e682175875343eef9de0f5798bf09d
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:42:55 2012 +0000

    docs: Correct GSocketClient::event link

 gio/gsocketclient.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2616b6eb8e04e63ad8d7151fbf2805ab5d2be9b1
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:46:59 2012 +0000

    docs: Fix some typos in GVolume

 gio/gvolume.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 07dc3db69a9c32637e9834ad62b32df3bdcfc4cb
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:48:20 2012 +0000

    docs: Fix GFileAttribute link in GFileInfo

 gio/gfileinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 8c8657ac34fde32ebe49020de415b56140c427ce
Author: David King <amigadave@amigadave.com>
Date:   Sun Feb 19 16:53:30 2012 +0000

    docs: Correct GUnixMount → GUnixMountEntry

 gio/gmount.c      | 2 +-
 gio/gunixmounts.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 31936039b0494201af3d6c0af3df14ad6bd1f8db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 21 00:31:14 2012 +0100

    GApplication: disable a broken test

    This test made some invalid assumptions that are no longer true.
    Disable it until we can figure out a better way.

 gio/tests/gapplication.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 726257ab9721acd0699e54194e20e7f53e5a9688
Author: Dan Winship <danw@gnome.org>
Date:   Mon Feb 13 17:20:04 2012 -0500

    gsocket: add g_socket_condition_timed_wait()

    https://bugzilla.gnome.org/show_bug.cgi?id=667755

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gsocket.c                       | 91
 +++++++++++++++++++++++++++++++------
 gio/gsocket.h                       |  5 ++
 gio/tests/socket.c                  | 53 ++++++++++++++++++++-
 5 files changed, 136 insertions(+), 15 deletions(-)

commit 823f553e36dc3421dd202631962f25ca82298c44
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 21 00:26:06 2012 +0100

    2.31.18

 NEWS         | 42 ++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 43 insertions(+), 1 deletion(-)

commit dbc01d30901204f676ce6225c5f1627a47924c17
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 21 00:25:31 2012 +0100

    Don't rely on /bin/sh

    Another Fedora UsrMove victim !

 glib/tests/utils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3808a181db2079dc0975811296fa86268de90641
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Mon Feb 20 23:25:53 2012 +0100

    Updated Danish translation

 po/da.po | 6117
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 3203 insertions(+), 2914 deletions(-)

commit 7630bff9ea720cae187f8c9eb065239f1c36ba11
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Mon Feb 20 15:14:18 2012 +0100

    l10n: Updated Italian translation

 po/it.po | 6509
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 3454 insertions(+), 3055 deletions(-)

commit 0efd808c964f38d9517cda9ad0d749eadb6e1862
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Feb 19 15:26:13 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 179
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 95 insertions(+), 84 deletions(-)

commit 17e7c85d8f2f87a50ee78740a1d44cbc6be097c2
Author: David King <amigadave@amigadave.com>
Date:   Sat Feb 18 11:19:53 2012 +0000

    docs: Fix g_drive_get_identifier() typo

 gio/gdrive.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b50863aafac23b2d19ae69dd9a6d243a15075dc5
Author: David King <amigadave@amigadave.com>
Date:   Sat Feb 18 11:10:00 2012 +0000

    docs: Add GIOModuleScope and GIOModuleScopeFlags

    Fix some typos and add GIOModuleScope and GIOModuleScopeFlags to
    gio-sections.txt.

 docs/reference/gio/gio-sections.txt | 2 ++
 gio/gioenums.h                      | 4 ++--
 gio/giomodule.c                     | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

commit 4e6c2b88b9d071d5aedfdafb2b55533d46c5f266
Author: David King <amigadave@amigadave.com>
Date:   Sat Feb 18 09:24:42 2012 +0000

    docs: Typo fix GInitiable → GInitable

 gio/ginitable.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit c29d7d7f53646a07e42e6edbc777bac90bcdf1d2
Author: David King <amigadave@amigadave.com>
Date:   Sat Feb 18 09:20:02 2012 +0000

    docs: Typo fixes for GMount

 gio/gmount.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d0a310de96b97669e1341fbe1246dbae869f4a5c
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Feb 18 11:07:12 2012 +0200

    Updated Hebrew translation.

 po/he.po | 985
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 614 insertions(+), 371 deletions(-)

commit 50efbaf063f77f4e273f87ebf4ab01a1c507e97f
Author: Peter Kjellerstedt <pkj@axis.com>
Date:   Thu Feb 16 12:17:32 2012 +0100

    Do not fail unit test due to gdb abbreviating strings

    gdb by default will only print strings up to 200 characters. After
    that
    it abbreviates them. This affects the run-assert-msg-test.sh script if
    the path to the glib installation is too long (in our case it was 133
    characters, 132 would still have worked...)

    By having gdb execute "set print elements 0" before printing the
    assert
    string, the limit on maximum number of characters to print is set to
    unlimited.

    Signed-off-by: Peter Kjellerstedt <pkj@axis.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=670218

 tests/run-assert-msg-test.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 29f3e40e4e8bb382f405ecd1769d37bfd536e24b
Author: David King <amigadave@amigadave.com>
Date:   Fri Feb 17 16:09:59 2012 +0000

    docs: Fix a typo in the GSeekable documentation

 gio/gseekable.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 52f34311b908e661f257cab70d60d89d37a2da75
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Feb 16 13:33:44 2012 -0500

    Docs: fix reference to nonexisting function

    The regex syntax docs referred to g_regex_fetch() when
    g_match_info_fetch() was meant.

    https://bugzilla.gnome.org/show_bug.cgi?id=669865

 docs/reference/glib/regex-syntax.sgml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 275731e20039e763748608072e0e2a98b7d035ed
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Tue Feb 14 22:05:33 2012 +0530

    gio: fix memory leak in g_buffered_output_stream_write_async()

    https://bugzilla.gnome.org/show_bug.cgi?id=670085

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 gio/gbufferedoutputstream.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit eafb108cafe257645fc0d16a16ac2764afed6d5a
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Feb 15 15:25:47 2012 +0100

    gbytes: Add G_BEGIN/END_DECL guards

    Bug #670138.

 glib/gbytes.h | 4 ++++
 1 file changed, 4 insertions(+)

commit 26f238e85d751aded81602f68cd69bf73cfc8350
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:00:31 2012 +0100

    Plug a mem leak in g_environ_unsetenv

    And clarify the memory allocation requirement of the string arrays
    passed to
    g_environ_{,un}setenv().

    ==9458== 10 bytes in 1 blocks are definitely lost in loss record 16
    of 39
    ==9458==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==9458==    by 0x4221A1F: vasprintf (vasprintf.c:78)
    ==9458==    by 0x40C6065: g_vasprintf (gprintf.c:314)
    ==9458==    by 0x409D894: g_strdup_vprintf (gstrfuncs.c:509)
    ==9458==    by 0x409D8C9: g_strdup_printf (gstrfuncs.c:535)
    ==9458==    by 0x40672E9: g_environ_setenv (genviron.c:156)
    ==9458==    by 0x80490E7: test_environ_array (environment.c:78)
    ==9458==    by 0x40A3DB5: test_case_run (gtestutils.c:1662)
    ==9458==    by 0x40A40B2: g_test_run_suite_internal
    (gtestutils.c:1715)
    ==9458==    by 0x40A417C: g_test_run_suite_internal
    (gtestutils.c:1726)
    ==9458==    by 0x40A42F9: g_test_run_suite (gtestutils.c:1771)
    ==9458==    by 0x40A3441: g_test_run (gtestutils.c:1319)
    ==9458==    by 0x80493F1: main (environment.c:108)

    Bug #669412.

 glib/genviron.c | 63
 +++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 39 insertions(+), 24 deletions(-)

commit ca05902a5883020add334e542a63d7f9381a3117
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 10 08:49:17 2012 -0500

    Add G_GNUC_BEGIN/END_IGNORE_DEPRECATIONS

    Add new macros to disable -Wdeprecated-declarations around a piece of
    code, using the C99 (and GNU89) _Pragma() operator. Replace the
    existing use of #pragma for this in gio, and suppress the warnings in
    gvaluearray.c as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=669671

 docs/reference/glib/glib-sections.txt |  2 ++
 gio/gdesktopappinfo.c                 |  7 ++++---
 gio/giomodule.c                       |  5 ++---
 glib/docs.c                           | 33
 +++++++++++++++++++++++++++++++++
 glib/gmacros.h                        | 11 +++++++++++
 gobject/gvaluearray.c                 |  4 ++++
 6 files changed, 56 insertions(+), 6 deletions(-)

commit ab59739e1177d463fc7577def059deb0179662cc
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 10 08:24:28 2012 -0500

    gobject: Use a destructor rather than g_atexit() for refcount
    debugging

    https://bugzilla.gnome.org/show_bug.cgi?id=669671

 gobject/gobject.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit d4992b3d10f64918017617cda0fdaba4d132bf99
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Wed Feb 15 11:53:03 2012 +0100

    g_application_activate(): Fix typo in docs.

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d240b883155183fcb9723766b4e4b4b5a0db57ff
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Mon Feb 13 16:42:44 2012 +0100

    GKeyFile: fix annotation of g_key_file_load_from_data

    (array) without (element-type) means "array of the same type as
    the C type", so gchar* with (array) is interpreted as an array of
    strings. Since GKeyFiles must be UTF-8 encoded anyway, just
    annotate it as a string.

    https://bugzilla.gnome.org/show_bug.cgi?id=658484

 glib/gkeyfile.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5b8a6900d3c0e757044b7f5c6e9eb54f9cb18154
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Mon Feb 13 16:41:20 2012 +0100

    GDataInputStream: don't segfault on async line reads

    If an async line read fails, it returns NULL. In that case, we
    must return NULL before validating the line, or we segfault.

    https://bugzilla.gnome.org/show_bug.cgi?id=658484

 gio/gdatainputstream.c | 3 +++
 1 file changed, 3 insertions(+)

commit 96671ce815e061a7ff472adbe89ac381443c619a
Author: Kasia Bondarava <kasia.bondarava@gmail.com>
Date:   Tue Feb 14 18:28:32 2012 +0300

    Updated Belarusian translation.

 po/be.po | 910
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 575 insertions(+), 335 deletions(-)

commit f2eed2fd2521cd856b0fcc91187a1da09f386768
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Tue Feb 14 11:01:33 2012 +0100

    Updated Serbian translation

 po/sr.po       | 229
 +++++++++++++++++++++------------------------------------
 po/sr@latin.po | 229
 +++++++++++++++++++++------------------------------------
 2 files changed, 170 insertions(+), 288 deletions(-)

commit dd553a2ba32cd8523e3097d34228c21b96a3f10c
Author: Dan Winship <danw@gnome.org>
Date:   Wed Feb 8 08:26:36 2012 -0500

    gasyncqueue: deprecate GTimeVal-based methods, add relative-delay ones

    https://bugzilla.gnome.org/show_bug.cgi?id=669670

 docs/reference/glib/glib-sections.txt |   8 ++-
 glib/gasyncqueue.c                    | 105
 ++++++++++++++++++++++++++++++----
 glib/gasyncqueue.h                    |  15 +++--
 glib/glib.symbols                     |   2 +
 glib/gthreadpool.c                    |  16 ++----
 5 files changed, 117 insertions(+), 29 deletions(-)

commit 99af65a079e4d7c0c20960a6e68f83b3c56f6f20
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Sun Feb 12 20:12:30 2012 +0100

    Updated Serbian translation

 po/sr.po       | 6162
 ++++++++++++++++++++++++++++++--------------------------
 po/sr@latin.po | 6160
 +++++++++++++++++++++++++++++--------------------------
 2 files changed, 6541 insertions(+), 5781 deletions(-)

commit 3d34b9bbc7322256d8fb6a6081c503e321d907db
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Feb 12 13:21:17 2012 +0100

    Updated Spanish translation

 po/es.po | 279
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 151 insertions(+), 128 deletions(-)

commit 967f3f83a7311c7ee9584b2f2bc80413142b096f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 10 22:13:36 2012 -0500

    Add a few more missing functions to the docs

 docs/reference/gio/gio-sections.txt         | 1 +
 docs/reference/gobject/gobject-sections.txt | 3 +++
 2 files changed, 4 insertions(+)

commit 5278d1f6af5e053ec1fe75bfde6c86ebcb06afba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 10 22:08:47 2012 -0500

    Add g_settings_new_full to the docs

 docs/reference/gio/gio-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit cd3aebc96e59ef558ce0a4d84629da0a97fe24eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 10 21:10:58 2012 -0500

    Add g_test_undefined to the docs

 docs/reference/glib/glib-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 8cb48f644d66fef98429d2adbf298d3225a25fef
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 10 21:09:39 2012 -0500

    Fix a parameter name mismatch

    gtk-doc gets unhappy if parameters aren't named the same in
    headers, sources and doc comments.

 glib/ghash.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6293105593e68165590c66bdd40c0df7f822b1e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 10 18:06:10 2012 -0500

    Drop menu markup docs

    This does not exist anymore.

 docs/reference/gio/gio-docs.xml | 1 -
 1 file changed, 1 deletion(-)

commit 7e657d1e5c4ea733531da2da87f6435ffaa3deac
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Feb 10 20:09:20 2012 +0000

    docs: Fix some typos in gwin32inputstream

 docs/reference/gio/gio-sections.txt | 2 +-
 gio/gwin32inputstream.c             | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 704a2ca02de0430786114e7d9bf7aa772c40b934
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Fri Feb 10 02:02:29 2012 +0100

    socket/win32: flush pending read before signaling HUP

    Unix and Windows gio GSocket behaves differently when the socket is
    closed by the peer. On Unix, the client receives pending data before
    receiving HUP. But on Windows, the HUP may come before, resulting in
    unreliable and racy code. We should have same behaviour on all
    platforms.

    According to MSDN documentation: "an application should check for
    remaining data upon receipt of FD_CLOSE to avoid any possibility of
    losing data."

    https://bugzilla.gnome.org/show_bug.cgi?id=669810

 gio/gsocket.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit 6ca817c3f2c14b39792b381466067f71e601f895
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Fri Feb 10 14:52:33 2012 +0100

    gio/tests: add /socket/close_graceful test

    Add a test to check that remaining data is read before the close
    event is received.

    https://bugzilla.gnome.org/show_bug.cgi?id=669810

 gio/tests/socket.c | 85
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

commit 6d3b31a533d74b727bca5ac720a81eacb8aee31e
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Thu Feb 9 17:59:55 2012 +0100

    Fix g_hash_table_foreach crash with NULL hash table

    When G_DISABLE_ASSERT is not defined, g_hash_table_foreach and
    g_hash_table_find dereferences the hash table argument before
    checking if it's NULL. This causes a crash when one of this function
    is mistakenly called with a NULL argument instead of returning
    with a warning through g_return_if_fail.

 glib/ghash.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit b17b135d9f4fa5652d64decf1d1cd0cad7de21f0
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Feb 10 08:57:21 2012 +0800

    Dist gio/gconstructor_as_data.h

    This will avoid a dependency on a PERL installation for Visual Studio
    builds.

    Checked with mclasen in
    https://bugzilla.gnome.org/show_bug.cgi?id=669538#c2

 gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit d4e3ae990c55c3673c4d18870173d78c38dd6494
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 7 14:41:24 2012 +0800

    Bug 669538-glib-compile-resources.c: Include io.h on Windows

    This is needed for close() on Windows (Visual C++ specifically)
    so that
    no C4013 (aka Implicit declaration of ...) errors/warnings will
    be emitted.

 gio/glib-compile-resources.c | 3 +++
 1 file changed, 3 insertions(+)

commit 52d046009607e35b4665fc94aa392874d9aaacb8
Author: Richard Hughes <richard@hughsie.com>
Date:   Thu Feb 9 16:22:36 2012 +0000

    Allow multiple --sourcedir options to glib-compile-resources

 gio/glib-compile-resources.c | 50
 +++++++++++++++++++++++++++++++++++++-------
 1 file changed, 42 insertions(+), 8 deletions(-)

commit 40e9192d7261ff9eec9e6ec4bd7029c08df80004
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 9 12:15:49 2012 -0500

    GApplication: put non-unique apps on D-Bus

    For a number of reasons it might be useful to register the object
    paths
    associated with a non-unique application so that the application
    can at
    least field requests to its unique D-Bus name.

    https://bugzilla.gnome.org/show_bug.cgi?id=647986

 gio/gapplication.c          | 21 +++++++++------------
 gio/gapplicationimpl-dbus.c | 22 +++++++++++++++++++++-
 2 files changed, 30 insertions(+), 13 deletions(-)

commit db38923c94bb764f14ac4b7bff6e71cf6aba343f
Author: David King <david.king@canonical.com>
Date:   Tue Feb 7 09:02:51 2012 +0000

    docs: Fix gdbus-codegen example XML

    Without the surrounding <node> tags, gdbus-codegen does not
    generate any
    implementation for the interface described in the introspection XML.

    https://bugzilla.gnome.org/show_bug.cgi?id=669544

 docs/reference/gio/gdbus-codegen.xml | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

commit daf78764e5e142ea0c787e5f3f22e5bee4417883
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 12:14:06 2012 -0500

    gthread-win32: update for g_get_monotonic_time() changes

    g_cond_wait_until() was calling GetSystemTimeAsFileTime() to get the
    current time, which is no longer what g_get_monotonic_time() returns.

    https://bugzilla.gnome.org/show_bug.cgi?id=669329

 glib/gthread-win32.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

commit ca5ed93fde448943d7ab62b057a9b16e6ed85621
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 11:45:51 2012 -0500

    glocalfile: fix error code when opening a directory on win32

    g_file_read() was returning G_IO_ERROR_IS_DIRECTORY when you tried to
    open a directory on unix, but G_IO_ERROR_PERMISSION_DENIED on win32.
    Fix that, and add a test to tests/file.c

    Pointed out on IRC by Paweł Forysiuk.

    https://bugzilla.gnome.org/show_bug.cgi?id=669330

 gio/glocalfile.c | 14 ++++++++++++++
 gio/tests/file.c |  5 +++++
 2 files changed, 19 insertions(+)

commit a067df5d720096a62736d26c9e971363c0843d91
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Feb 8 12:46:04 2012 -0500

    GDBusProxy: Add G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES flag

    This is useful when using certain D-Bus services where the
    PropertiesChanged signal does not include the property value such as
    e.g. various systemd mechanisms, see e.g.

     https://bugs.freedesktop.org/show_bug.cgi?id=37632

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c              | 108
 +++++++++++++++++++++++++++++++++++++++---
 gio/gioenums.h                |   4 +-
 gio/tests/gdbus-proxy.c       |  47 +++++++++++++++++-
 gio/tests/gdbus-testserver.py |   6 +--
 4 files changed, 153 insertions(+), 12 deletions(-)

commit 1370804f2b1cbb39875bb6a8a53f5bc5318092f4
Author: Jesse van den Kieboom <jesse.vandenkieboom@epfl.ch>
Date:   Wed Feb 8 17:13:34 2012 +0100

    Retrieve cwd and environ in local GApplicationCommandLine

    https://bugzilla.gnome.org/show_bug.cgi?id=669689

 gio/gapplicationcommandline.c | 38 +++++++++++++++++++++++++++-----------
 1 file changed, 27 insertions(+), 11 deletions(-)

commit 90dbaca92477aeb6e1facac5dd8172e0d5319d4e
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Mon Feb 6 23:10:34 2012 +0530

    glib/tests: mainloop - fix a mem leak.

    https://bugzilla.gnome.org/show_bug.cgi?id=669372

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 glib/tests/mainloop.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

commit bd79c00537756ca24423e51f11cae008111ab7d2
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Sat Feb 4 23:42:41 2012 +0530

    glib/tests: fix memory leak

    https://bugzilla.gnome.org/show_bug.cgi?id=669372

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 glib/tests/gdatetime.c | 1 +
 glib/tests/hash.c      | 1 +
 2 files changed, 2 insertions(+)

commit 46affb0cd8befd5c6c13583570434648ee1e1f13
Author: Dan Winship <danw@gnome.org>
Date:   Wed Feb 8 08:39:42 2012 -0500

    gio: update .gitignore

 gio/.gitignore | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit a8f516f61e42de970c78a2905a309a7c17eb02c2
Author: Dan Winship <danw@gnome.org>
Date:   Wed Feb 8 08:46:03 2012 -0500

    glib/tests/option-context: remove unused tests

    These tests were written, but then never used since it was decided to
    add g_warnings() to goption.c in the cases they were supposed to be
    testing. So anyway, just remove them.

 glib/tests/option-context.c | 68
 ---------------------------------------------
 1 file changed, 68 deletions(-)

commit 71c3ba28a8d9e117efb0446db37d69210820266f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 8 20:41:13 2012 +0800

    config.h.win32.in: Add note on if_nametoindex

    This explains the current disabling of HAVE_IF_NAMETOINDEX as we are
    still supporting Windows XP.  This is expected to change when
    the patch
    for XP support for if_nametoindex in accepted into master.

 config.h.win32.in | 4 ++++
 1 file changed, 4 insertions(+)

commit 95a2c885d749b6a14aa3db04bf5ee46ca91fc915
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 8 19:52:55 2012 +0800

    config.h.win32.in: Updates

    Make this more like the config.h.in template

 config.h.win32.in | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

commit af99ccc0d663b759b7edfaf744bcb657853280c2
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 8 15:09:13 2012 +0800

    Update VS2010 property sheet

    Should be $(CopyDir) not $(OutDir) here for VS2010.  Oops :|

 build/win32/vs10/glib.props | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bbda744c0e8d5aa3c1b5476c5083ccfd51b02a7b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 8 14:54:38 2012 +0800

    Update VS property sheets

    ...To reflect the correct GIO headers to install

 build/win32/vs10/glib.props  | 4 ++--
 build/win32/vs9/glib.vsprops | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit f049262a6105ecad71e5515300cbb0239800b10d
Author: Dan Winship <danw@gnome.org>
Date:   Tue Feb 7 10:54:22 2012 -0500

    glib-mkenums: fix handling of forward enum declarations

    Given

        typedef enum MyFoo MyFoo;

    glib-mkenums would get confused, not notice the ";", and then keep
    skipping lines until it found one that started with a "{", possibly
    even going into the next file.

    Fix it to just ignore those lines instead (and also, to error out if
    it hits eof while parsing an enum).

    https://bugzilla.gnome.org/show_bug.cgi?id=669595

 gobject/glib-mkenums.in | 6 ++++++
 1 file changed, 6 insertions(+)

commit 808346c6abd1af04221308a1ef3abe98b7f062f4
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Feb 7 15:37:26 2012 +0100

    docs: Add win32 gio specific api to the docs

    Reported by Lethalman on IRC

 docs/reference/gio/gio-docs.xml     |  2 ++
 docs/reference/gio/gio-sections.txt | 42
 +++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

commit 46e2df316dd4f23b20e2ed2b300cc294336c8dac
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 7 17:05:22 2012 +0800

    Add Visual C++ 2010 projects to compile GResource tools

    Added projects to compile the glib-compile-resources and
    gresource(-tool)
    utility programs during the Visual C++ 2010 build process, "install"
    the resulting binaries upon successful compilation, and dist the new
    .vcxproj and .vcxproj.filters files.

    Also updated the property sheet and "install" project to make sure
    the new
    .exe's are indeed "installed" and removed from the "install"
    project the
    dependency on the testglib project as testglib is not an exhausive
    test on
    GLib and people might want to make that project compile different test
    programs as they might need.

    Just wondering: I have updated the property sheet to create the
    gconstructor_as_data.h header for glib-compile-resources, but is
    it better
    to dist that generated header instead as the VS 2008/2010 projects
    will
    depend on a working installation of PERL on Windows?

 build/win32/vs10/Makefile.am                       |   4 +
 build/win32/vs10/glib-compile-resources.vcxproj    | 177
 +++++++++++++++++++++
 .../vs10/glib-compile-resources.vcxproj.filters    |  17 ++
 build/win32/vs10/glib.props                        |  10 ++
 build/win32/vs10/glib.sln                          |  38 ++++-
 build/win32/vs10/gresource.vcxproj                 | 176
 ++++++++++++++++++++
 build/win32/vs10/gresource.vcxproj.filters         |  14 ++
 build/win32/vs10/install.vcxproj                   |  12 +-
 8 files changed, 443 insertions(+), 5 deletions(-)

commit 2b400d853e084dc7fe512ea6a56510e64cba7846
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 7 16:31:53 2012 +0800

    Update Visual C++ 2008 projects

    Make the "install" project depend on the glib-compile-resources
    gresource
    projects so that these tools will be indeed installed.  Missed that
    in my
    last commit-oops.

    Also make the "install" project not to depend on the testglib
    project as:
    -the test program in the project is not an exhausive test of the GLib
     libraries
    -One may want to use the project to compile different test program(s),
    so
     it might be better to keep the project but not "install" the
     resulting
     .exe

 build/win32/vs9/glib.sln | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d858cd30478c0d331e1dc4164e39237de6f52f7f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 7 14:37:57 2012 +0800

    Add Visual C++ 2008 projects for GResource tools

    Add projects to build the glib-compile-resources and gresource(-tool)
    utilities, and "install" these tools upon successful compilation,
    and dist
    the new projects.

    One piece of note: will it be better to dist gconstructor_as_data.h
    instead
    of generating it in the VS build process (I generated it in the
    property
    sheet update in this commit)?

    Visual C++ 2010 projects will follow shortly.

 build/win32/vs9/Makefile.am                   |   2 +
 build/win32/vs9/glib-compile-resources.vcproj | 156
 ++++++++++++++++++++++++++
 build/win32/vs9/glib.sln                      |  46 ++++++++
 build/win32/vs9/glib.vsprops                  |   6 +
 build/win32/vs9/gresource.vcproj              | 155
 +++++++++++++++++++++++++
 5 files changed, 365 insertions(+)

commit 867f554ea53bb4e7c975a919e245d4a02d6f42fe
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Feb 6 22:33:19 2012 +0100

    docs: Fix typo

 docs/reference/gio/glib-compile-resources.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1faed130dc227f983f42f23df2a242bd004c4ac8
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Nov 17 00:52:59 2011 +0100

    gtimezone: consider a leading : in TZ environment variable

    When set to represent a zoneinfo file, TZ may start with :, therefore
    glib needs to check it and ignore the first char when building the
    resulting filename, or it won't be found.
    Also, the path could be absolute, in which case it is wrong to
    append /usr/share/timezone

    https://bugzilla.gnome.org/show_bug.cgi?id=664237

 glib/gtimezone.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit b98b63187a24451411c88962bd82553652b198e0
Author: Swecha Localization Team <localization@swecha.org>
Date:   Mon Feb 6 17:15:14 2012 +0530

    Updated Telugu Translation

 po/te.po | 1774
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 918 insertions(+), 856 deletions(-)

commit bd0897034970253cb3831bdd4d54bb620cdab075
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Feb 6 02:54:44 2012 +0100

    Updated Galician translations

 po/gl.po | 418
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 224 insertions(+), 194 deletions(-)

commit 7e9aed94deb6d6b9f25af539d84bb1e66c958cbc
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 20:00:16 2012 +0100

    Revert "Plug a mem leak in g_environ_unsetenv"

    This reverts commit 2f4b46e3783b04cddcb2622a57b2a8e692cff68a,
    which was
    pushed accidentally.

 glib/genviron.c | 3 ---
 1 file changed, 3 deletions(-)

commit 30e0a1beacb8ffa2e58581e723023a3475d6ad62
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 19:55:45 2012 +0100

    resources: Consolidate creation of GResource into one place

 gio/gresource.c | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

commit 04df4d45a47d653c24c75f321fe7b017b2d47a68
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:44:10 2012 +0100

    resources: tests: Plug a mem leak

    ==1265== 84 (8 direct, 76 indirect) bytes in 1 blocks are definitely
    lost in loss record 793 of 827
    ==1265==    at 0x4029467: calloc (vg_replace_malloc.c:467)
    ==1265==    by 0x408479B: standard_calloc (gmem.c:104)
    ==1265==    by 0x4084846: g_malloc0 (gmem.c:189)
    ==1265==    by 0x4084B2D: g_malloc0_n (gmem.c:385)
    ==1265==    by 0x4228A98: g_resource_load (gresource.c:253)
    ==1265==    by 0x804A56D: test_resource_registred (resources.c:198)

 gio/tests/resources.c | 1 +
 1 file changed, 1 insertion(+)

commit 0ebb6339d15aa4ccc5a380dd35d116806c7005f3
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:39:51 2012 +0100

    resources: tests: Plug a mem leak

    ==509== 700 (20 direct, 680 indirect) bytes in 1 blocks are definitely
    lost in loss record 828 of 837
    ==509==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==509==    by 0x4084724: standard_malloc (gmem.c:85)
    ==509==    by 0x40847C7: g_malloc (gmem.c:159)
    ==509==    by 0x409B1E1: g_slice_alloc (gslice.c:1003)
    ==509==    by 0x405396B: g_bytes_new_with_free_func (gbytes.c:173)
    ==509==    by 0x405390D: g_bytes_new_take (gbytes.c:122)
    ==509==    by 0x804A48C: test_resource_data (resources.c:174)

 gio/tests/resources.c | 1 +
 1 file changed, 1 insertion(+)

commit 6789ab2294409ce9388ada1110ea5bb8da71b95a
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:38:36 2012 +0100

    resources: tests: Plug a mem leak

    ==29204== 11,456 (84 direct, 11,372 indirect) bytes in 1 blocks are
    definitely lost in loss record 859 of 861
    ==29204==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==29204==    by 0x4084724: standard_malloc (gmem.c:85)
    ==29204==    by 0x40847C7: g_malloc (gmem.c:159)
    ==29204==    by 0x409B1E1: g_slice_alloc (gslice.c:1003)
    ==29204==    by 0x409B227: g_slice_alloc0 (gslice.c:1029)
    ==29204==    by 0x41936CF: g_type_create_instance (gtype.c:1872)
    ==29204==    by 0x417CCC9: g_object_constructor (gobject.c:1839)
    ==29204==    by 0x417C6F4: g_object_newv (gobject.c:1703)
    ==29204==    by 0x417CC5A: g_object_new_valist (gobject.c:1820)
    ==29204==    by 0x417C1DB: g_object_new (gobject.c:1535)
    ==29204==    by 0x41E5E29: g_converter_input_stream_new
    (gconverterinputstream.c:204)
    ==29204==    by 0x4228D38: g_resource_open_stream (gresource.c:363)

 gio/tests/resources.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 877fe6fb524df8478c963342b7948aa3aa55f25e
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:37:36 2012 +0100

    resources: Init refcount to 1

    This bug was exposed by fixing the following leak in the resources
    test:

    ==29204== 11,456 (84 direct, 11,372 indirect) bytes in 1 blocks are
    definitely lost in loss record 859 of 861
    ==29204==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==29204==    by 0x4084724: standard_malloc (gmem.c:85)
    ==29204==    by 0x40847C7: g_malloc (gmem.c:159)
    ==29204==    by 0x409B1E1: g_slice_alloc (gslice.c:1003)
    ==29204==    by 0x409B227: g_slice_alloc0 (gslice.c:1029)
    ==29204==    by 0x41936CF: g_type_create_instance (gtype.c:1872)
    ==29204==    by 0x417CCC9: g_object_constructor (gobject.c:1839)
    ==29204==    by 0x417C6F4: g_object_newv (gobject.c:1703)
    ==29204==    by 0x417CC5A: g_object_new_valist (gobject.c:1820)
    ==29204==    by 0x417C1DB: g_object_new (gobject.c:1535)
    ==29204==    by 0x41E5E29: g_converter_input_stream_new
    (gconverterinputstream.c:204)
    ==29204==    by 0x4228D38: g_resource_open_stream (gresource.c:363)

 gio/gresource.c | 1 +
 1 file changed, 1 insertion(+)

commit 30e9cccb85bd6f398ce1f17d9a8eae98f4c2430a
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:18:34 2012 +0100

    resources: Plug a mem leak

    ==29204== 7,192 (76 direct, 7,116 indirect) bytes in 1 blocks are
    definitely lost in loss record 855 of 861
    ==29204==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==29204==    by 0x4084724: standard_malloc (gmem.c:85)
    ==29204==    by 0x40847C7: g_malloc (gmem.c:159)
    ==29204==    by 0x409B1E1: g_slice_alloc (gslice.c:1003)
    ==29204==    by 0x409B227: g_slice_alloc0 (gslice.c:1029)
    ==29204==    by 0x41936CF: g_type_create_instance (gtype.c:1872)
    ==29204==    by 0x417CCC9: g_object_constructor (gobject.c:1839)
    ==29204==    by 0x417C6F4: g_object_newv (gobject.c:1703)
    ==29204==    by 0x417CC5A: g_object_new_valist (gobject.c:1820)
    ==29204==    by 0x417C1DB: g_object_new (gobject.c:1535)
    ==29204==    by 0x424E815: g_zlib_decompressor_new
    (gzlibdecompressor.c:270)
    ==29204==    by 0x4228DD8: g_resource_lookup_data (gresource.c:422)

 gio/gresource.c | 4 ++++
 1 file changed, 4 insertions(+)

commit e194a9032f03a14b4a2be85c370a9cf52faeb3d2
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:16:37 2012 +0100

    resources: tests: Plug a mem leak

    ==28778== 700 (20 direct, 680 indirect) bytes in 1 blocks are
    definitely lost in loss record 842 of 863
    ==28778==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==28778==    by 0x4084724: standard_malloc (gmem.c:85)
    ==28778==    by 0x40847C7: g_malloc (gmem.c:159)
    ==28778==    by 0x409B1E1: g_slice_alloc (gslice.c:1003)
    ==28778==    by 0x405396B: g_bytes_new_with_free_func (gbytes.c:173)
    ==28778==    by 0x405390D: g_bytes_new_take (gbytes.c:122)
    ==28778==    by 0x804C2B1: test_uri_query_info (resources.c:435)

 gio/tests/resources.c | 1 +
 1 file changed, 1 insertion(+)

commit 108e11875e74c9c9483cab1a8f72e432bdbb8004
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:14:21 2012 +0100

    resources: tests: Plug a mem leak

    ==28318== 38 (12 direct, 26 indirect) bytes in 1 blocks are definitely
    lost in loss record 613 of 865
    ==28318==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==28318==    by 0x4084724: standard_malloc (gmem.c:85)
    ==28318==    by 0x40847C7: g_malloc (gmem.c:159)
    ==28318==    by 0x4084AB4: g_malloc_n (gmem.c:361)
    ==28318==    by 0x4229599: g_resources_enumerate_children
    (gresource.c:806)
    ==28318==    by 0x804B39E: test_resource_registred (resources.c:283)

 gio/tests/resources.c | 1 +
 1 file changed, 1 insertion(+)

commit 74c262a8bd4a1fa6a0163ceb22667852c891c159
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:12:23 2012 +0100

    resources: tests: Plug a mem leak

    ==27820== 31 bytes in 1 blocks are definitely lost in loss record
    587 of 866
    ==27820==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==27820==    by 0x4084724: standard_malloc (gmem.c:85)
    ==27820==    by 0x40847C7: g_malloc (gmem.c:159)
    ==27820==    by 0x4084AB4: g_malloc_n (gmem.c:361)
    ==27820==    by 0x409D6A1: g_strdup (gstrfuncs.c:356)
    ==27820==    by 0x4069FF7: g_get_current_dir (gfileutils.c:2544)
    ==27820==    by 0x804BCA7: test_resource_module (resources.c:370)

 gio/tests/resources.c | 1 +
 1 file changed, 1 insertion(+)

commit ffe7a3293f7e69fab1211f014a54b78fb7611ee0
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:10:48 2012 +0100

    resources: Plug a mem leak

    ==27020== 44 (24 direct, 20 indirect) bytes in 1 blocks are definitely
    lost in loss record 684 of 936
    ==27020==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==27020==    by 0x4084724: standard_malloc (gmem.c:85)
    ==27020==    by 0x40847C7: g_malloc (gmem.c:159)
    ==27020==    by 0x409B1E1: g_slice_alloc (gslice.c:1003)
    ==27020==    by 0x40BC038: g_variant_get_child_value
    (gvariant-core.c:969)
    ==27020==    by 0x40B5277: g_variant_get_variant (gvariant.c:749)
    ==27020==    by 0x4273182: gvdb_table_value_from_item
    (gvdb-reader.c:478)
    ==27020==    by 0x42731E8: gvdb_table_get_value (gvdb-reader.c:509)
    ==27020==    by 0x4228B36: do_lookup (gresource.c:280)
    ==27020==    by 0x4228F56: g_resource_get_info (gresource.c:492)

 gio/gresource.c | 1 +
 1 file changed, 1 insertion(+)

commit fa370571690356bc1082b89ff5b8b8a74664d16f
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:08:10 2012 +0100

    resources: Plug a mem leak

    ==26427== 24 bytes in 1 blocks are definitely lost in loss record
    608 of 965
    ==26427==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==26427==    by 0x4084724: standard_malloc (gmem.c:85)
    ==26427==    by 0x40847C7: g_malloc (gmem.c:159)
    ==26427==    by 0x409B1E1: g_slice_alloc (gslice.c:1003)
    ==26427==    by 0x40BC038: g_variant_get_child_value
    (gvariant-core.c:969)
    ==26427==    by 0x40BA89F: g_variant_valist_get (gvariant.c:4482)
    ==26427==    by 0x40BAC23: g_variant_get_va (gvariant.c:4681)
    ==26427==    by 0x40BAB29: g_variant_get (gvariant.c:4633)
    ==26427==    by 0x4228BA5: do_lookup (gresource.c:293)
    ==26427==    by 0x4228F51: g_resource_get_info (gresource.c:493)

 gio/gresource.c | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

commit 2f4b46e3783b04cddcb2622a57b2a8e692cff68a
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 5 16:00:31 2012 +0100

    Plug a mem leak in g_environ_unsetenv

    ==9458== 10 bytes in 1 blocks are definitely lost in loss record 16
    of 39
    ==9458==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==9458==    by 0x4221A1F: vasprintf (vasprintf.c:78)
    ==9458==    by 0x40C6065: g_vasprintf (gprintf.c:314)
    ==9458==    by 0x409D894: g_strdup_vprintf (gstrfuncs.c:509)
    ==9458==    by 0x409D8C9: g_strdup_printf (gstrfuncs.c:535)
    ==9458==    by 0x40672E9: g_environ_setenv (genviron.c:156)
    ==9458==    by 0x80490E7: test_environ_array (environment.c:78)
    ==9458==    by 0x40A3DB5: test_case_run (gtestutils.c:1662)
    ==9458==    by 0x40A40B2: g_test_run_suite_internal
    (gtestutils.c:1715)
    ==9458==    by 0x40A417C: g_test_run_suite_internal
    (gtestutils.c:1726)
    ==9458==    by 0x40A42F9: g_test_run_suite (gtestutils.c:1771)
    ==9458==    by 0x40A3441: g_test_run (gtestutils.c:1319)
    ==9458==    by 0x80493F1: main (environment.c:108)

    Bug #669412.

 glib/genviron.c | 3 +++
 1 file changed, 3 insertions(+)

commit 26a5af83d428657dcae72af1c920b36055d92020
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 4 22:54:58 2012 -0500

    Back to odd

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d6a4369089ad3dd4ab047989ba1ff31904b17eb6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 4 18:43:13 2012 -0500

    2.31.16

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 439c8365da232ceb715f14f3f0a7a0751e35547c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 4 11:51:45 2012 -0500

    Updates

 NEWS | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 59a0134de8ba98d05d97d8fcded4e86bac7fe606
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Sat Feb 4 00:14:56 2012 +0530

    fix memory leak in g_bookmark_file_parse()

    https://bugzilla.gnome.org/show_bug.cgi?id=669334

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 glib/gbookmarkfile.c | 48
 ++++++++++++++++++++----------------------------
 1 file changed, 20 insertions(+), 28 deletions(-)

commit 7e3eeb2ba12c056308020afa1b26891e5d514539
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat Feb 4 12:32:51 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 160
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 82 insertions(+), 78 deletions(-)

commit f43565c822697504e32d2d329f4ea1c6c073d514
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 11:29:46 2012 -0500

    gio/tests/file: use g_file_new_tmp()

    Rather than misusing g_file_open_tmp(), misuse g_file_new_tmp()
    instead. Progress! (Also, gets rid of a compile warning about close()
    on win32.)

 gio/tests/file.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit cc4c1e89f439244fd0af0afd45ca40015cea4634
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 12:08:40 2012 -0500

    gio/tests/socket-common.c: add a missing #ifdef G_OS_UNIX

 gio/tests/socket-common.c | 2 ++
 1 file changed, 2 insertions(+)

commit d22c36cf00878a949261603ebac9515245e829bd
Author: Dan Winship <danw@gnome.org>
Date:   Fri Feb 3 11:39:27 2012 -0500

    gioenums.h: clean up a few GIOErrorEnum descriptions

 gio/gioenums.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit e9caa11aa5b12a424bc0602855b6960d29aa4a3c
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Feb 3 16:29:28 2012 +0100

    Updated Spanish translation

 po/es.po | 265
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 132 insertions(+), 133 deletions(-)

commit 3b8ba958f5a0d1e129219cab10ced9c0fa03c1cc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Feb 3 15:11:23 2012 +0100

    Fix warning to refer to to-pixdata, not xmllint

 gio/glib-compile-resources.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ac800fa8febe2370cab2de2e0f4ed5abb431e963
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Feb 3 15:05:03 2012 +0100

    Fix GResourceFile get_parent()

    This was erronously losing the last char.

 gio/gresourcefile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 260a9cc290c42f06af89db33306df7a990448ed9
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Feb 1 14:59:22 2012 +0100

    resource: tests: Use g_assert_cmp[u]int

    ... instead of just g_assert(), so when the test does fail, one
    immediately
    can see the actual value the variable had.

 gio/tests/resources.c | 56
 +++++++++++++++++++++++++--------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

commit cb1dd2143dc6f5b5881b6d94abb7dd6f05137c76
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jan 31 18:10:55 2012 +0100

    resources: compiler: Fix entity processing of xml-stripblanks

    Preserve entities instead of replacing them!

    Bug #669173.

 gio/glib-compile-resources.c | 1 -
 1 file changed, 1 deletion(-)

commit 296a2a72c6837ddc90a372b5bc6aea95a9bf82be
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jan 31 18:01:25 2012 +0100

    resources: compiler: Make to-pixbuf failure fatal

    Bug #669123.

 gio/glib-compile-resources.c | 12 +++++++++---
 gio/gresource.c              |  9 +++++----
 2 files changed, 14 insertions(+), 7 deletions(-)

commit 387ed239e236cad1c3a54d08a34194c36bb59dba
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 2 10:48:11 2012 -0500

    gsettings tool: fix a memory error

    8852d4e9a08e7fbc9df7fb99a54b112f5049ee19 introduced a memory error by
    taking the type of a GVariant, freeing the GVariant and using the type
    after the free.

    This delays the free until after we've used the type.

    https://bugzilla.gnome.org/show_bug.cgi?id=669253

 gio/gsettings-tool.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 552b815365649521379c60b672f608a40a8a5f44
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Feb 1 18:44:15 2012 +0200

    gio: Convert data-to-c.c to perl

    Helper scripts in C can be problematic for cross compiling: the
    compiler
    produces executables for the target platform, which the host is
    usually
    unable to run.

    https://bugzilla.gnome.org/show_bug.cgi?id=669224

 gio/Makefile.am  | 10 +++-------
 gio/data-to-c.c  | 51 ---------------------------------------------------
 gio/data-to-c.pl | 39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+), 58 deletions(-)

commit 053b011cccdf8463a10ae09799dd43048bb6c9f0
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Feb 1 16:25:01 2012 +0100

    docs: Clarify GSocketClient reuse policy

 gio/gsocketclient.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit a60f475b36a35081913c8fa51dc4de6381aaee56
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Feb 1 15:48:28 2012 +0200

    gio/tests: Fix out-of-source build

    The glib-compile-resources --generate-dependencies call was failing,
    although not stopping the build.

    Failed to open file 'test2.gresource.xml': No such file or directory
    Failed to open file 'test3.gresource.xml': No such file or directory
    Failed to open file 'test4.gresource.xml': No such file or directory
    Failed to open file 'test.gresource.xml': No such file or directory

 gio/tests/Makefile.am | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 9cf678ed2233ecb603eda92cf727e8cf8ec27335
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Feb 1 10:09:57 2012 +0200

    gio.symbols: Add g_static_* symbols

    ... which were added in b79cfda49c.

 gio/gio.symbols | 3 +++
 1 file changed, 3 insertions(+)

commit 0bb201348f7fad556197bec979fc488354ac8a9d
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Feb 1 09:10:29 2012 +0200

    gresource-tool: include sys/mman.h conditionally

    It's only needed for code guarded by HAVE_LIBELF, so ifdef the include
    as well.

 gio/gresource-tool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3758b41e08147ca15d5f348afa8e84d9ea6a6a0b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 31 22:00:45 2012 -0500

    Add a test to show that GMarkup properly handles > in content

 glib/tests/markups/valid-15.expected | 3 +++
 glib/tests/markups/valid-15.gmarkup  | 1 +
 2 files changed, 4 insertions(+)

commit 47aa8c43e8d63af27ea60befbeb498d9c6be17b6
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 31 16:07:09 2012 +0100

    resources: Add to-pixdata preprocessing option

 docs/reference/gio/glib-compile-resources.xml |  9 ++++
 gio/glib-compile-resources.c                  | 67
 ++++++++++++++++++++++++++-
 gio/gresource.c                               | 13 ++++--
 3 files changed, 85 insertions(+), 4 deletions(-)

commit b79cfda49c59b348c9c713f5f04fd9ec982b6c9d
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 31 10:51:44 2012 +0100

    Make constructor-based resource registration malloc free

    We need to do this because constructors run before main() and
    thus before any call to g_mem_set_vtable, making it impossible to
    use that function if constructors call g_malloc.

    We do this by making the constructors just register the static data
    for lazy registration, doing the lazy registration when using
    the global resource set.

 gio/glib-compile-resources.c |  80 +++++++++---------
 gio/gresource.c              | 189
 +++++++++++++++++++++++++++++++++++++++----
 gio/gresource.h              |  14 ++++
 3 files changed, 223 insertions(+), 60 deletions(-)

commit 2496c8b53e0fde02328a43b16542353a8a1643d7
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 31 10:51:23 2012 +0100

    resources: Minor fixes to the docs

 gio/gresource.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 8ab7ed8ffc2da341064d759776b1e985a2fd24a7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 18:47:31 2012 -0500

    Bump version number

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d332bdcc583c67e17d2d508225200372f2981ad4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 18:46:18 2012 -0500

    2.31.14

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e6713ec8105b8197a0b56e9f15b48dfa9550ffe1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 18:45:45 2012 -0500

    Fix distclean

 gio/Makefile.am       | 4 ++--
 gio/tests/Makefile.am | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit a6bafde5f26b7773fc06e7c3b222b41dfe0d069c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 17:54:33 2012 -0500

    Dist gconstructor.h

 glib/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit de0d7a335c76cd158f69d83788985ed05db5756b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 17:53:48 2012 -0500

    Emit meaningful error messages

    That is useful, even if this is only an internal tool.
    I have been scratching my head why this tool would
    break distcheck...

 gio/data-to-c.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 77ebf9bfc50f86f6ecc4aa41c0b5f4cea75219ad
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 17:26:33 2012 -0500

    Fix builddir != src builds

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 796389d6c8ce1fb4645db8c13f04aeb7f13d9225
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 16:23:01 2012 -0500

    Some more documentation fixes

 gio/gactiongroup.c | 2 +-
 gio/gsocket.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 49eeaa9bbdec4b7f57d28697971a63be6854b63e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 15:59:38 2012 -0500

    Assorted documentation fixes

 docs/reference/gio/gio-sections.txt |  5 -----
 gio/gapplication.c                  |  3 ++-
 gio/ginetsocketaddress.c            |  2 +-
 gio/gnetworkmonitor.c               | 34
 ++++++++++++++++++++++++++++++++++
 gio/gremoteactiongroup.c            |  4 ++--
 5 files changed, 39 insertions(+), 9 deletions(-)

commit 9902a5e064c24ed5793a1e4850026a06147fcd1b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 15:37:43 2012 -0500

    Drop menu markup functions from API docs

 docs/reference/gio/gio-sections.txt | 10 ----------
 1 file changed, 10 deletions(-)

commit 9ffc3391ed7fd8f667c7919edf444e4761fa9e63
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 15:37:28 2012 -0500

    Fix doc syntax

 gobject/gvaluearray.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9fe3d34ae354d00f590a268e032b39022d62d184
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 15:26:15 2012 -0500

    Move pragmas out of function body

    It seems that older gcc does not like pragmas inside functions.

 gio/gdesktopappinfo.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 96f9997387e77cfa567e008f08c75007300e4590
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 15:25:09 2012 -0500

    Move pragmas out of function body

    It seems that older gcc does not like pragmas inside functions.

 gio/giomodule.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit bdd0aada62806fb492ddf79179ee3d66836d5ba0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 14:21:03 2012 -0500

    Silence another deprecation warning

 gio/gdesktopappinfo.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 5ae5fc85f40bd5dbc405c37b6dff6992e717e5f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 14:18:07 2012 -0500

    Silence a deprecation warning

    Advantage of the new deprecation handling: there's pragmas
    to shut them up locally.

 gio/giomodule.c | 3 +++
 1 file changed, 3 insertions(+)

commit b01af10c86bece6271bdbda09c28d7a3b63d0709
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 14:06:22 2012 -0500

    Remove a check that triggers deprecation warnings

 gobject/tests/reference.c | 1 -
 1 file changed, 1 deletion(-)

commit ec49d55247ae4dc5f80d0a3e80229e3d4aa0dd86
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 30 13:38:44 2012 -0500

    Updates

 NEWS | 43 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

commit 968f4e8d79b3191266bf327f18b167445db0076e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jan 30 16:57:54 2012 +0100

    Move constructor macros to an internal header and into generated code

    With this we're not longer exporting the constructor headers,
    which means
    we're not tying ourselves to a macro that might need special
    tweaking on
    a compiler-by-compiler basis.

 gio/Makefile.am              | 10 +++++
 gio/data-to-c.c              | 44 +++++++++++++++++++++
 gio/glib-compile-resources.c |  3 ++
 gio/tests/resources.c        |  1 +
 glib/gconstructor.h          | 91
 +++++++++++++++++++++++++++++++++++++++++++
 glib/gmacros.h               | 93
 --------------------------------------------
 6 files changed, 149 insertions(+), 93 deletions(-)

commit e43a98c00091f5e293d2d9d72df2c04081802abe
Author: Antoine Jacoutot <ajacoutot@gnome.org>
Date:   Mon Jan 30 16:17:06 2012 +0100

    goption: implement platform_get_argv0() for OpenBSD

    https://bugzilla.gnome.org/show_bug.cgi?id=669024

 glib/goption.c            | 31 ++++++++++++++++++++++++++++++-
 glib/tests/option-argv0.c |  4 ++--
 2 files changed, 32 insertions(+), 3 deletions(-)

commit 18cb864d12acdb0915ebf63b89b2385dc3fb7e6c
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jan 30 09:00:15 2012 -0500

    gtlspassword.c: indentation fixes and doc clarifications

 gio/gtlspassword.c | 75
 +++++++++++++++++++++++++++++++++---------------------
 1 file changed, 46 insertions(+), 29 deletions(-)

commit 46aaad1b2c7f75947833a3315d8c990ab15d49d7
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sun Jan 29 22:57:02 2012 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 5844
 ++++++++++++++++++++++++++++++----------------------------
 po/zh_TW.po | 5863
 +++++++++++++++++++++++++++++++----------------------------
 2 files changed, 6138 insertions(+), 5569 deletions(-)

commit e9b2e86f59fa5c68ad15c82b355838331d65767e
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat Jan 28 15:42:38 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 286
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 155 insertions(+), 131 deletions(-)

commit 7486cd946acc268290a7fa498416f44c95aba40b
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Sat Jan 28 12:02:36 2012 +0530

    comments/docs: Fix couple of typos

    https://bugzilla.gnome.org/show_bug.cgi?id=668857

 glib/gbase64.c       | 2 +-
 glib/gbookmarkfile.c | 2 +-
 glib/gchecksum.c     | 2 +-
 glib/gdataset.c      | 4 ++--
 glib/gdate.c         | 2 +-
 glib/ggettext.c      | 2 +-
 glib/grand.c         | 2 +-
 glib/gsequence.c     | 2 +-
 glib/gslice.c        | 4 ++--
 glib/gtester.c       | 2 +-
 glib/gthread-posix.c | 2 +-
 11 files changed, 13 insertions(+), 13 deletions(-)

commit 9a7a98bf3b4853371e72c91d665e5ad375d68929
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 28 01:09:08 2012 +0100

    glib-compile-schemas: get strict about whitespace

    It's important to have strict rules for handling of whitespace in
    translated strings in GSettings schema files so that the tools
    extracting the messages will end up with the same messages as the
    runtime calling gettext().

    The rules are designed to be simple and unambiguous yet cover most
    normal uses in a convenient way.

    Those rules are as follows (with rationale):

      - for <default> tags, the text content has its leading and trailing
        whitespace stripped off, but internal whitespace is not
        modified in
        any way.

        This allows for slightly more flexible use of whitespace without
        causing that whitespace to appear in the strings for translation.

      - for <summary> and <description> tags, the content is split into
        paragraphs.  Paragraphs are separated by two or more sequential
        newline characters.  Each paragraph has its leading and trailing
        whitespace removed and all other whitespace is normalised to a
        single ascii space character.  Finally, the paragraphs are
        rejoined,
        inserting exactly two newlines between them.

        This allows for longer explanations (particularly in the
        description
        tag) using a natural format that, when normalised, will display
        nicely in toolkits.

    This patch implements the rules for <default> tags.  The schema
    compiler
    currently ignores <summary> and <description> tags.

 gio/glib-compile-schemas.c | 76
 ++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 63 insertions(+), 13 deletions(-)

commit 37af8167b65ab95278262bd243292042d01a916b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 27 21:49:46 2012 +0100

    README: Fix potentially extremely annoying typo

 README.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5bfc973c279b9c3819cf83e903c8456f6bdadb5f
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Jan 27 13:39:52 2012 +0100

    Updated Spanish translation

 po/es.po | 89
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 45 insertions(+), 44 deletions(-)

commit 83f530dfc6276be21d2750673d244dc21c11b179
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Jan 27 11:17:23 2012 +0100

    Updated Spanish translation

 po/es.po | 660
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 393 insertions(+), 267 deletions(-)

commit da386705f9e03ebf2cb9abbc523d84146b075444
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 27 03:00:23 2012 -0500

    GSettings: two memory use fixes

    First, correct a rather dubious case of accessing a GSettingsSchemaKey
    after clearing it.  This was technically okay because only the
    key name
    was accessed (and it is not owned by the struct) but it looks very
    wrong.

    Second, have g_settings_backend_write() sink the passed in GVariant*.
    Not all backends get this right, and I'm starting to like the
    pattern of
    virtual function wrappers being responsible for sinking the parameters
    that they are documented as consuming.

 gio/gsettings.c        | 4 +++-
 gio/gsettingsbackend.c | 8 +++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

commit 8e763aef43b951746662978c7c644365a92ecfa3
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jan 26 14:52:09 2012 -0500

    gdbus-codegen: Use C array instead of GValueArray

    GValueArray was deprecated in bug 667228 and since we never change the
    size of the array, it was kinda dumb to just GValueArray in the first
    place.

    https://bugzilla.gnome.org/show_bug.cgi?id=667228

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-2.0/codegen/codegen.py | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

commit 9bfde4a53fbc7c5596c65c790b76e61aae88860d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 26 11:27:47 2012 -0500

    GKeyFile: allow loading from empty strings

    GKeyFile supports empty files and also supports loading from the
    string
    "", but will fail with a critical if you try:

      - explicit length == 0
      - data == NULL

    length == 0 should always be valid, and data == NULL should be
    valid in
    the case that length == 0, so add some testcases for those and fix the
    code up to allow them.

    https://bugzilla.gnome.org/show_bug.cgi?id=668756

 glib/gkeyfile.c      |  5 ++---
 glib/tests/keyfile.c | 27 ++++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 4 deletions(-)

commit bc40fe582d63e75c0e7f9dae44808ecc924e3f7e
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jan 26 14:16:28 2012 -0500

    GDBusInterface: add dup_object() method

    This is needed for thread-safety ... yes, it would have been better to
    make get_object() return a full reference and have something like a
    peek_object() method return a borrowed reference for C convenience
    (only a single vfunc would have been needed). But such an ABI break is
    too late now...

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdbusinterface.c                | 40
 ++++++++++++++++++++++++++++++++++++-
 gio/gdbusinterface.h                |  3 +++
 gio/gdbusinterfaceskeleton.c        | 14 +++++++++++++
 gio/gdbusproxy.c                    | 17 ++++++++++++++++
 gio/gio.symbols                     |  1 +
 6 files changed, 75 insertions(+), 1 deletion(-)

commit eb6c35f7c391acdc62d295589d829b99088e224c
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jan 26 14:06:59 2012 -0500

    gio.symbols: Remove removed g_menu_markup_* symbols

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gio.symbols | 6 ------
 1 file changed, 6 deletions(-)

commit 1542e898f97a152563e53ff871f2e7d26a359a85
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jan 26 09:53:56 2012 -0500

    gmain: fix a bunch of comment typos in g_get_monotonic_time()

    And remove a comment about Windows in the fallback implementation that
    no longer applies, since there's now a separate Windows-specific
    implementation.

 glib/gmain.c | 37 +++++++++++++++++--------------------
 1 file changed, 17 insertions(+), 20 deletions(-)

commit 8998e77b8f348179d0d2fe4d9aea312caef05d71
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jan 26 15:22:10 2012 +0100

    docs: Fix formatting in glib-compile-resource man page

    Fixup the formatting in the example rule for --generate-dependencies.

 docs/reference/gio/glib-compile-resources.xml | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit fbfad9cf859072d0a3b0182f636d2496493130e9
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Thu Jan 26 14:52:31 2012 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 -
 1 file changed, 1 deletion(-)

commit 59881a65b2c92edfcc1ad26ec04ff99f401a962b
Author: Andoni Morales Alastruey <amorales@flumotion.com>
Date:   Thu Jan 26 14:38:14 2012 +0100

    keyfile tests: Fix windows build using portable g_setenv

 glib/tests/keyfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f870fc056c2ce01c54a25456ca71e95de170a85
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jan 26 14:35:30 2012 +0100

    docs: Fix the glib-compile-resources docs

    Add a tag missing from commit
    45783c5927f32cae965c67db14adb8422373d345.

 docs/reference/gio/glib-compile-resources.xml | 2 ++
 1 file changed, 2 insertions(+)

commit 2a90aba068439ef528cd31f36971ca92b5a70f94
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 25 19:55:33 2012 -0500

    Drop the GMenu markup functions

    The parser has been moved into Gtk in a modified form and the printer
    was never really useful anyway (except for debugging/testing).

 gio/Makefile.am        |   5 -
 gio/gio.h              |   1 -
 gio/gmenumarkup.c      | 741
 -------------------------------------------------
 gio/gmenumarkup.h      |  47 ----
 gio/menumarkup.dtd     |  29 --
 gio/menumarkup.xml     |  26 --
 gio/menumarkup2.xml    |  75 -----
 gio/tests/gmenumodel.c | 375 ++++++++-----------------
 8 files changed, 121 insertions(+), 1178 deletions(-)

commit 4e9f59bff8adc59fd8fde5bdee9879b8c3e4e55b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 25 14:18:34 2012 -0500

    e G_SOURCE_CONTINUE/REMOVE internally

    Now that we have these macros, we should use them.
    This commit covers everything in gio/.

 gio/gapplication.c                        | 2 +-
 gio/gmountoperation.c                     | 2 +-
 gio/gpollfilemonitor.c                    | 2 +-
 gio/gregistrysettingsbackend.c            | 2 +-
 gio/gunixmount.c                          | 2 +-
 gio/tests/contexts.c                      | 2 +-
 gio/tests/gapplication-example-cmdline3.c | 2 +-
 gio/tests/gapplication.c                  | 2 +-
 gio/tests/pollable.c                      | 8 ++++----
 gio/tests/simple-async-result.c           | 2 +-
 10 files changed, 13 insertions(+), 13 deletions(-)

commit ef159af00f723f46658f46af03ea67185dae9988
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 25 08:53:05 2012 -0500

    Use G_SOURCE_CONTINUE/REMOVE internally

    Now that we have these macros, we should use them.
    This commit covers everything in glib/.

 glib/gmain.c                     | 2 +-
 glib/tests/mainloop.c            | 2 +-
 glib/tests/spawn-multithreaded.c | 2 +-
 glib/tests/spawn-singlethread.c  | 2 +-
 glib/tests/timeout.c             | 4 +++-
 glib/tests/unix.c                | 6 +++---
 6 files changed, 10 insertions(+), 8 deletions(-)

commit 12060df9f17a48cd4c7fda27a0af70c17c308ad9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 25 10:09:09 2012 -0500

    GHash: add note about randomness in hashing

    To clarify our statements about being robust against outside attackers
    degrading the performance of your hashtable.

 glib/ghash.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 5286dbb7e14d53256ebe45b4482c3a5317eb4e5c
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jan 24 14:18:12 2012 +0100

    resources: tool: Fix a compiler warning

    Use G_GSIZE_FORMAT.

 gio/gresource-tool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f42a5fb53b80540b3af457af32ca1de072f4fdd7
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Jan 23 22:51:44 2012 +0100

    resources: compiler: Add autoselected output format

    This allows simplifying the make rules.

    Bug #668539.

 docs/reference/gio/glib-compile-resources.xml | 21 +++++++++++++++++++++
 gio/glib-compile-resources.c                  | 11 +++++++++++
 gio/tests/Makefile.am                         | 13 +++++--------
 3 files changed, 37 insertions(+), 8 deletions(-)

commit 55d10d6bfdfa054d59fa5a01a8289fdc507e0aa9
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Jan 23 20:42:20 2012 +0100

    resources: compiler: Add dependency generator

    Bug #668532.

 docs/reference/gio/glib-compile-resources.xml | 17 ++++++++++
 gio/glib-compile-resources.c                  | 48
 +++++++++++++++++++++------
 gio/tests/Makefile.am                         | 11 +++---
 3 files changed, 61 insertions(+), 15 deletions(-)

commit 45783c5927f32cae965c67db14adb8422373d345
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jan 14 22:34:15 2012 +0100

    resources: compiler: Allow stripping blanks from xml data

    It's hardly useful to bloat the resource data with blanks intended
    only
    for human readability, so add a preprocessing option that uses
    xmllint --noblanks
    to strip these.

    Bug #667929.

 docs/reference/gio/glib-compile-resources.xml |  14 ++++
 gio/glib-compile-resources.c                  | 111
 ++++++++++++++++++++++++--
 gio/gresource.c                               |  10 ++-
 gio/tests/test.gresource.xml                  |   1 +
 4 files changed, 129 insertions(+), 7 deletions(-)

commit e94a5f4f8394fe6a7160850c12ea8079215e4323
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 25 07:32:39 2012 -0500

    GKeyFile: make list separators effective again

    We must preserve the list_separator across clear;init
    sequences.

 glib/gkeyfile.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit aea9951ef0714418ac139a6c3678eb64d82c692f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 25 07:32:20 2012 -0500

    Fix the new test

 glib/tests/keyfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit e50d7e065c72278f7811f7008dac80d5ce53f401
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 25 07:26:58 2012 -0500

    Add a test for g_key_file_set_list_separator

    A recent 'harmless' fix broke it...

 glib/tests/keyfile.c | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

commit ca949756de4ac87815144295abeb8d37535ea314
Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Date:   Wed Jan 25 12:03:14 2012 +0100

    GArray: initialize the clear_func pointer

    https://bugzilla.gnome.org/show_bug.cgi?id=668650

 glib/garray.c | 1 +
 1 file changed, 1 insertion(+)

commit 73f5764fcde237737a844fb3b164bcddf6c335d1
Author: Xan Lopez <xan@igalia.com>
Date:   Wed Jan 25 10:28:27 2012 +0100

    gresource-tool: fix the build

 gio/gresource-tool.c | 1 +
 1 file changed, 1 insertion(+)

commit e9725d165621c34f076ce3ae3bb1b2513aa7cf0d
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Sat Jan 21 22:17:18 2012 +0530

    Macro to insert a new GNode "after" the given sibling.

    https://bugzilla.gnome.org/show_bug.cgi?id=626258

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gnode.c                          |  5 +++--
 glib/gnode.h                          | 13 +++++++++++++
 3 files changed, 17 insertions(+), 2 deletions(-)

commit aa95853f9cd509b09a9c94a58df778ededad562f
Author: Enrique Ocaña González <eocanha@igalia.com>
Date:   Tue Jan 24 13:24:51 2012 +0100

    Honor the glib_cv_g_atomic_lock_free env var in configure

    This fixes bug: https://bugzilla.gnome.org/show_bug.cgi?id=668572

 configure.ac | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 0ac9ab4e271c8dbaaddd3e748aa687faa4a75523
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Jan 4 09:31:12 2012 +0000

    Deprecate GValueArray

    The GValueArray type was added in a time, during the Jurassic era
    or so,
    when GArray did not have a representable GType. The GValueArray
    API has
    various issues as well:

      - it doesn't match the other GLib array types;
      - it is not reference counted;
      - the structure is fully exposed on the stack, so it cannot be
        extended to add reference counting;
      - it cannot be forcibly resized.

    The nice thing is that now we have a GArray type that can replace in
    full GValueArray, so we can deprecate the latter, and reduce the
    complexity in GLib, application code, and bindings.

    https://bugzilla.gnome.org/show_bug.cgi?id=667228

 gobject/gboxed.c           |  5 ++++-
 gobject/gboxed.h           |  4 ++++
 gobject/gparamspecs.c      |  3 +++
 gobject/gparamspecs.h      |  6 ++++++
 gobject/gvaluearray.c      | 37 +++++++++++++++++++++++++++++++++++++
 gobject/gvaluearray.h      | 20 +++++++++++++++++++-
 gobject/tests/valuearray.c |  1 +
 7 files changed, 74 insertions(+), 2 deletions(-)

commit c602a5f887233bdd75544a290023d10029ca4fda
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Jan 4 07:41:47 2012 +0000

    array: Add a clear function

    Like GPtrArray has a "free function" that can be used to free memory
    associated to each pointer in the array, GArray would benefit from
    having a "clear function" that can be used to clear the content of
    each element of the array when it's removed, or when the entire array
    is freed.

    https://bugzilla.gnome.org/show_bug.cgi?id=667243

 docs/reference/glib/glib-sections.txt |  1 +
 glib/garray.c                         | 71
 ++++++++++++++++++++++++++++++-----
 glib/garray.h                         |  2 +
 glib/glib.symbols                     |  1 +
 glib/tests/array-test.c               | 38 +++++++++++++++++++
 5 files changed, 103 insertions(+), 10 deletions(-)

commit 030b3f25e3e5c018247e18bf309e0454ba138898
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 24 21:11:13 2012 -0500

    GHashTable: Add a note about hash collisions

 glib/ghash.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit a3b91b36919af79abbb4737253c40afe18008ee0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 24 17:37:09 2012 -0500

    gresource: Initialize i18n

    ...otherwise translations don't work. Pointed out by Kjartan Maraas.

    https://bugzilla.gnome.org/show_bug.cgi?id=668561

 gio/gresource-tool.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 26d4feae0cc900bdb56af490176d30025cd0bba6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 24 16:59:59 2012 -0500

    keyfile tests: Add testcase for bug #634232

    Add a testcase based on one by Alfredo Dal'Ava Júnior (the original
    reporter of the bug).

    https://bugzilla.gnome.org/show_bug.cgi?id=634232

 glib/tests/keyfile.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit fe10b2c966289d87ea6ea6e76e1ae87ba16f101b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 24 16:45:49 2012 -0500

    GKeyFile: remove approximate_size optimisation

    This is micro-optimisation of the worst kind and it's causing obscure
    bugs in edge cases.  Better just remove this entirely.

    https://bugzilla.gnome.org/show_bug.cgi?id=634232

 glib/gkeyfile.c | 40 +++++++---------------------------------
 1 file changed, 7 insertions(+), 33 deletions(-)

commit 570514a95c0e2602eb187bd49c6c50e02d09486f
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jan 24 08:28:33 2012 -0500

    GSocket: fix complile on platforms without source-specific multicast

    Some platforms don't have the source-specific multicast sockopts, and
    so would fail to compile. Fix that (and return an error if the caller
    tries to use source-specific). Also clarify the docs a bit.

    https://bugzilla.gnome.org/show_bug.cgi?id=668468

 gio/gsocket.c | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

commit 3f691c6f511a49d0b391ca2d488b9fd617b4ca3d
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jan 30 20:45:52 2011 +0100

    Write list-of value correctly

    Fixes a c&p typo. Bug #639099.

 gio/glib-compile-schemas.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9a689e1077affb7dcf05898693dd7a616cb4484b
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Jan 24 10:53:35 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 390
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 246 insertions(+), 144 deletions(-)

commit 99c379f5148b15326a9e2b5d23db9d941c97d2c1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 23 19:21:22 2012 -0500

    GMenuMarkup: call g_variant_ref_sink()

    Watch out for them floating variants !
    They are easily consumed...

 gio/gmenumarkup.c | 1 +
 1 file changed, 1 insertion(+)

commit ae3b9b16ceab5518280a18e79b78a0c94c4d1ed3
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Jan 24 00:50:50 2012 +0100

    Updated Galician translations

 po/gl.po | 447
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 280 insertions(+), 167 deletions(-)

commit 051d4d846eead9d6baccc939c46a56653f9827c3
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Jan 23 20:15:30 2012 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit d994c38aba1f564e63058ce615dbb8bb4ae34e36
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 23 00:23:18 2012 -0500

    Add docs for gresource

 docs/reference/gio/Makefile.am   |   2 +
 docs/reference/gio/gio-docs.xml  |   1 +
 docs/reference/gio/gresource.xml | 116
 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 119 insertions(+)

commit 716cf3558510be0a7ba7075a431ac2a5ad13b2bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 22 02:39:11 2012 -0500

    Add a resource tool

    This lets you poke at resources in elf files and
    standalone resource bundles. So far, only listing
    and extracting resources is supported. The support
    for elf files requires libelf.

 configure.ac                     |  11 +
 gio/Makefile.am                  |  13 +-
 gio/gresource-bash-completion.sh |  58 ++++
 gio/gresource-tool.c             | 622
 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 703 insertions(+), 1 deletion(-)

commit b6a8dec558c259d3320a5d0d4bc5f8c0d6c62a41
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jan 19 10:39:57 2012 -0500

    g_date_time_format: fix output in non-UTF-8 locales

    In non-UTF-8 locales, the translations and nl_langinfo() return values
    must be converted to UTF-8 before being returned to the caller.
    Likewise, when making a recursive call to expand a format like '%x',
    the format string must first be converted to UTF-8.

    https://bugzilla.gnome.org/show_bug.cgi?id=668250

 configure.ac           |  26 +--
 glib/gdatetime.c       | 574
 +++++++++++++++++++++++++++++--------------------
 glib/tests/gdatetime.c |  63 ++++++
 3 files changed, 413 insertions(+), 250 deletions(-)

commit 9fa374ccf7f360c54c29a0cee746b20820ae4afa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 20 15:42:44 2012 -0500

    bump rev

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e4642d58adf802772f3f2e39566aee300d395742
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 20 15:10:29 2012 -0500

    2.31.12

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f2b760ea188bc3f0d373d0ab6e0ebfbeea62a707
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 20 15:10:00 2012 -0500

    Updates

 NEWS | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit a461f70080f4fb7127ee59619abed803dbdc2353
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 20 08:08:06 2012 -0500

    Silence some compiler warnings

 gio/gmenumarkup.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2c864a1bb2fa25b82dd439c705c2e9ae23f29c5d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 20 08:07:52 2012 -0500

    Silence a compiler warning

 gio/gmemoryinputstream.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 8852d4e9a08e7fbc9df7fb99a54b112f5049ee19
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 20 08:02:26 2012 -0500

    Fix a refcounting error

    'new' is created floating, therefore it is consumed by
    g_settings_set, and unreffing it after that call is not right.

 gio/gsettings-tool.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 6784468625a77b3daa1247f2199bc11714cb4eca
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 19 22:13:51 2012 -0500

    Note G_MESSAGES_DEBUG in README

 README.in | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit d683c201f93cdb3c98c4ee16b085f748d63df789
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 19 10:49:06 2012 -0500

    tests for GSettings action binding

    https://bugzilla.gnome.org/show_bug.cgi?id=668279

 gio/tests/gsettings.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

commit 1d98d18f64edddddea314630e9830a56082c2639
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 19 09:40:24 2012 -0500

    add a way to create a GAction from GSettings

    g_settings_create_action() will create a GAction for the named key,
    allowing it to be added to the action group of the application
    (so that
    the setting can be directly manipulated from menus, for example).

    https://bugzilla.gnome.org/show_bug.cgi?id=668279

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gio.symbols                     |   1 +
 gio/gsettings.c                     | 262
 ++++++++++++++++++++++++++++++++++++
 gio/gsettings.h                     |   3 +
 4 files changed, 269 insertions(+)

commit cf48434867bf6fa074f9a0a67cf03b5c2157170a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 19 09:01:08 2012 -0500

    gsignal: add g_signal_handlers_disconnect_by_data

    Similar to g_signal_handlers_disconnect_by_func() but disconnects all
    functions that use the given user_data.

    https://bugzilla.gnome.org/show_bug.cgi?id=668269

 gobject/gsignal.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 41fbf42c3cbebcf061d023d35e2a4dff5ba7e7de
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Jan 19 16:18:05 2012 +0100

    gioenums.h: Remove a trailing comma.

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c95e9085296a1c76124896bf6bedd772cdef4c5e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 18 22:15:30 2012 -0500

    GSettingsSchema: ignore empty schema caches

    glib-compile-schemas used to generate these.  They're harmless
    and they
    mean that no schemas are installed in a particular directory, so just
    ignore them.

    https://bugzilla.gnome.org/show_bug.cgi?id=656301

 gio/gsettingsschema.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit d8b295abb3e34ce8fe5e7c16bf3ae208d70a3205
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jan 14 21:28:29 2012 +0100

    resources: Plug mem leaks in resource compiler

    ==13007== 173 bytes in 1 blocks are definitely lost in loss record
    90 of 106
    ==13007==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==13007==    by 0x407DDBA: standard_malloc (gmem.c:85)
    ==13007==    by 0x407E318: g_try_malloc (gmem.c:271)
    ==13007==    by 0x40654DE: g_file_get_contents (gfileutils.c:756)
    ==13007==    by 0x804A531: main (glib-compile-resources.c:580)

    ==13007== 521 (56 direct, 465 indirect) bytes in 1 blocks are
    definitely lost in loss record 100 of 106
    ==13007==    at 0x402AD89: malloc (vg_replace_malloc.c:236)
    ==13007==    by 0x407DDBA: standard_malloc (gmem.c:85)
    ==13007==    by 0x407E160: g_malloc (gmem.c:159)
    ==13007==    by 0x4091D8D: g_slice_alloc (gslice.c:1003)
    ==13007==    by 0x40674A1: g_hash_table_new_full (ghash.c:676)
    ==13007==    by 0x804B252: gvdb_hash_table_new (gvdb-builder.c:76)
    ==13007==    by 0x43C66B2: (below main) (libc-start.c:226)

 gio/glib-compile-resources.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 54b986d9187f3935f09b7ba04a9644f8f7c8556e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 16 14:47:08 2012 -0500

    GApplication: drop support for appmenu/menubars

    This has been moved over to GtkApplication now.

    https://bugzilla.gnome.org/show_bug.cgi?id=668118

 gio/gapplication.c          | 105 +-----------------------------
 gio/gapplicationimpl-dbus.c | 154
 --------------------------------------------
 2 files changed, 1 insertion(+), 258 deletions(-)

commit 7a2e6ab79132db79987e67c08ff12be7b46eed62
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jan 18 13:28:00 2012 -0500

    update .gitignores

 .gitignore           | 1 -
 gio/.gitignore       | 1 +
 gio/tests/.gitignore | 8 ++++++++
 3 files changed, 9 insertions(+), 1 deletion(-)

commit da9d98728dd6b43be2d9e51707e41e8ae1299676
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jan 18 12:05:07 2012 -0500

    Fix glib-compile-resources usage when cross-compiling

    Copy the behavior of glib-genmarshal: require an installed copy of it,
    and use that rather than the built copy.

 configure.ac          |  5 +++++
 gio/tests/Makefile.am | 16 +++++++++++-----
 2 files changed, 16 insertions(+), 5 deletions(-)

commit 7a0bddd768b8f88c94ecf15ac026cad16af4e7f4
Author: Will Thompson <will@willthompson.co.uk>
Date:   Wed Jan 18 10:14:37 2012 +0000

    GDBusConnection: note that exit-on-close is sometimes TRUE

    g_bus_get_finish() and g_bus_get_sync() both document that the
    returned
    object will usually have exit-on-close set to TRUE, but the property's
    documentation specified that its default is FALSE. While that's
    technically true from a GObject perspective, it's not accurate
    from the
    API user's perspective.

    https://bugzilla.gnome.org/show_bug.cgi?id=668163

    Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <zeuthen@gmail.com>

 gio/gdbusconnection.c | 3 +++
 1 file changed, 3 insertions(+)

commit d077b66ee9b480569095e605ce98edab61afbb1c
Author: Xavier Claessens <xavier.claessens@collabora.co.uk>
Date:   Mon Jan 16 14:51:19 2012 +0100

    GUnixConnection: add async variant for send/receive_credentials()

    https://bugzilla.gnome.org/show_bug.cgi?id=629503

 docs/reference/gio/gio-sections.txt |   4 +
 gio/gio.symbols                     |   4 +
 gio/gunixconnection.c               | 195
 +++++++++++++++++++++++++++++++-----
 gio/gunixconnection.h               |  15 ++-
 4 files changed, 193 insertions(+), 25 deletions(-)

commit 3691194b357aa5a045f8f87658150670834f45c2
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jan 18 09:02:21 2012 -0500

    g_base64_encode_step: clarify break_lines behavior a bit

    break_lines uses LFs, not CRLFs like you might expect (since it's
    designed for email-related use), but we can't change that now since
    the caller has to allocate the output buffer and so the
    number-of-bytes-output is part of the ABI. So, just document that.

    https://bugzilla.gnome.org/show_bug.cgi?id=668158

 glib/gbase64.c | 3 +++
 1 file changed, 3 insertions(+)

commit 08036ce30318a666a4f9df22512d74805be0d498
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jan 17 19:46:34 2012 -0500

    gsocket: make this compile on Windows again

    https://bugzilla.gnome.org/show_bug.cgi?id=668071

 configure.ac  |  2 +-
 gio/gsocket.c | 24 +++++++++++++-----------
 gio/gsocket.h |  4 ++--
 3 files changed, 16 insertions(+), 14 deletions(-)

commit 28f3d4dbffa108c2026efce714e09767c4794237
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Jan 17 17:11:43 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 92
 +++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 51 insertions(+), 41 deletions(-)

commit 3fe710c0b59b881c7b4090601f8c1a33876af78d
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Jan 17 17:10:19 2012 +0100

    Fix broken build with -Wundefined

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d825828b7b00f67a06ef1b6ba7ddb9c5dd6b0d87
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 17 12:32:37 2012 +0100

    resources: Skip initial underscores in resource section names

    Initial underscores are used in c identifier to make them private,
    for instance in Gtk+. However, we don't want to have this in the
    resource section name, that just looks ugly.

 gio/glib-compile-resources.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 7dfbe5aa3040d042131b9ff8ac1be0568d56303a
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jan 16 17:15:06 2012 -0500

    gsocket: Use alternate IPv6 multicast group sockopt names

    Apparently IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP are more portable than
    IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP. (Windows and Linux have
    both, but OS X only has the latter.)

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8390f3bf7e49bbacd96b356c06fa2ebe3edeaf4c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 16 14:46:26 2012 -0500

    Back to the odd

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 639c5867c7d86cb50d5dde54acaa9ec0fcdd7648
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 16 14:00:18 2012 -0500

    2.31.10

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1945ed407b4ee6e951cc1644274f9cac49e3f045
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 16 11:50:07 2012 -0500

    Updates

 NEWS | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit bf7408c30bac5b0a20202be5aaa850dd0ca1e671
Author: Dan Winship <danw@gnome.org>
Date:   Thu Dec 29 09:42:25 2011 -0500

    GInetSocketAddress: add IPv6 flowinfo and scope_id fields

    struct sin6_addr has two additional fields that struct sin_addr
    doesn't. Add support for those to GInetSocketAddress, and make sure
    they don't get lost when converting between glib and native types.

    https://bugzilla.gnome.org/show_bug.cgi?id=635554

 docs/reference/gio/gio-sections.txt |   2 +
 gio/ginetsocketaddress.c            | 109
 ++++++++++++++++++++++++++++++++++--
 gio/ginetsocketaddress.h            |  12 ++--
 gio/gio.symbols                     |   2 +
 gio/gsocketaddress.c                |   7 ++-
 gio/tests/socket.c                  |  40 +++++++++++++
 6 files changed, 162 insertions(+), 10 deletions(-)

commit c71fc7477ed3ebe513432cba21d69ca99d7eb81c
Author: Dan Winship <danw@gnome.org>
Date:   Thu Dec 29 09:18:53 2011 -0500

    ginetaddress.c: fix an incorrect enum name in the docs

 gio/ginetaddress.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 76f46b4f33c178fe9a2c0113b38dca1dc9e87c97
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Mon Jan 16 19:22:28 2012 +0100

    GSocket: Use correct type for SO_BROADCAST parameter

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d44bb6ef64bf309efa393d8c89138ba23ad6c004
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Mon Jan 16 15:49:50 2012 +0100

    GSocket: Reset the timeout in the GSocket GSource after it was
    triggered

    https://bugzilla.gnome.org/show_bug.cgi?id=667989

 gio/gsocket.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit fbdb8128dce3ef013640c7142888a76f56a7f0f8
Author: Ole André Vadla Ravnås <oravnas@cisco.com>
Date:   Mon Jan 16 14:00:49 2012 +0100

    GSocket: Add function to get the currently available bytes for reading

    https://bugzilla.gnome.org/show_bug.cgi?id=668009

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gsocket.c                       | 34
 ++++++++++++++++++++++++++++++++++
 gio/gsocket.h                       |  2 ++
 4 files changed, 38 insertions(+)

commit ffb5f8b10191ddf51ccd021c1e4dbba4eafbc370
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Fri Jan 13 13:01:35 2012 +0100

    GSocket: Add function to set/get the broadcast setting on a socket

    https://bugzilla.gnome.org/show_bug.cgi?id=623187

 docs/reference/gio/gio-sections.txt |  2 +
 gio/gio.symbols                     |  2 +
 gio/gsocket.c                       | 94
 +++++++++++++++++++++++++++++++++++++
 gio/gsocket.h                       |  4 ++
 4 files changed, 102 insertions(+)

commit 5560d9b8800de1144d77ed924286759286b7d27e
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Fri Jan 13 12:48:02 2012 +0100

    GSocket: Add function for setting unicast TTL

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gsocket.c                       | 114
 ++++++++++++++++++++++++++++++++++++
 gio/gsocket.h                       |   5 ++
 4 files changed, 123 insertions(+)

commit 03b40522df4fb247f76e5948eddd2d7a02c097a5
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Fri Jan 13 12:53:50 2012 +0100

    GSocket: Add support for source-specific multicast (RFC 4604)

 gio/gsocket.c | 22 +++++++++++++++++-----
 gio/gsocket.h |  2 ++
 2 files changed, 19 insertions(+), 5 deletions(-)

commit 97f25892ea38e227fe802d0cc50fd88be12cdb17
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Fri Jan 13 12:37:31 2012 +0100

    GSocket: Add possibility to join a multicast group only on a specific
    interface

 configure.ac             |  4 ++++
 gio/gnetworkingprivate.h |  1 +
 gio/gsocket.c            | 28 +++++++++++++++++++++++++---
 gio/gsocket.h            |  2 ++
 4 files changed, 32 insertions(+), 3 deletions(-)

commit a62d1bb74728aa80af2410cee57950a545f6fa04
Author: Dan Winship <danw@gnome.org>
Date:   Thu Dec 29 11:01:23 2011 -0500

    GSocket: Add multicast-related functions

    Add APIs for sending and receiving multicast datagrams with GSocket.

    Based on an earlier patch from Olivier Chalouhi.

    https://bugzilla.gnome.org/show_bug.cgi?id=626589

 docs/reference/gio/gio-sections.txt |   7 +
 gio/gio.symbols                     |   6 +
 gio/gsocket.c                       | 337
 +++++++++++++++++++++++++++++++++++-
 gio/gsocket.h                       |  13 ++
 4 files changed, 362 insertions(+), 1 deletion(-)

commit 26b3fbd141089d493adb700be0366e8e7f9e595b
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Jan 15 15:52:24 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 239
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 162 insertions(+), 77 deletions(-)

commit afe7a2d1368fc8dff0735757c096ded3d540ae42
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jan 5 13:04:37 2012 -0500

    GAsyncInitable: fix subclassibility

    If a class implements GAsyncInitable, and its parent also implements
    it, then the subclass needs to call its parent's init_async() before
    running its own. This was made more complicated by the fact that the
    default init_finish() behavior was handled by the wrapper method
    (which can't be used when making the super call) rather than the
    default implementation itself. Fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=667375

 gio/gasyncinitable.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit feb120eb40570e803e043e1a87213166ad307c30
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jan 16 10:38:35 2012 +0100

    Fix typo

    registred_resources -> registered_resources

 gio/gresource.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit decac50c1598f75ce781a3c6a68a85c0defe38ac
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Thu Jan 12 15:38:15 2012 +0000

    Protect call to pthread_condattr_setclock with define.

    While here update pthread_attr_setstacksize test to use AC_LINK_IFELSE
    and avoid an unused variable in glib/tests/thread.c.

    https://bugzilla.gnome.org/show_bug.cgi?id=667790

 configure.ac         | 22 +++++++++++++++++-----
 glib/gthread-posix.c |  2 +-
 glib/tests/thread.c  |  2 +-
 3 files changed, 19 insertions(+), 7 deletions(-)

commit 6d9f874330ee27ea09b383cb30718a492f6539dd
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Sep 30 14:02:29 2011 +0100

    g_error_new_valist, g_error_copy: warn if domain is 0 or message
    is NULL

    Neither of those usages is valid, but there's a lot of use of 0 as a
    domain "in the wild", so we can't g_return_if_fail yet.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660371

 glib/gerror.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 186c15fc879606866215b40f1bfb730b1c47a727
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 15 23:18:09 2012 -0500

    GError: small documentation addition

    Document that out variables are not guaranteed to be set to
    defined values if an error is thrown. Inspired by bug 658315

 glib/gerror.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 5377c0de0108d292ea3e23fa6d90410f9ac9fa00
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 15 22:15:10 2012 -0500

    Beef up Libs.private in glib-2.0.pc

    This should help getting static builds working on mingw.
    Based on a patch by Volker Grabsch, bug 619126.

    At the same time, drop the unnecessary GLIB_RT_LIBS variable;
    we are already adding -lrt to G_THREAD_LIBS.

 configure.ac     | 4 +---
 gio-2.0.pc.in    | 2 +-
 glib-2.0.pc.in   | 2 +-
 glib/Makefile.am | 2 +-
 4 files changed, 4 insertions(+), 6 deletions(-)

commit 7e542e97a97a02592beea6a8ffff497f538df3ab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 15 21:09:31 2012 -0500

    Trivial docs fix

    I like GLib to be consistently capitalized in the docs.

 docs/reference/gio/glib-compile-resources.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4abe25dbbdd1ba0fd430ef61a02334b8be497fc6
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sun Jan 15 19:28:05 2012 +0100

    Updated Spanish translation

 po/es.po | 259
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 176 insertions(+), 83 deletions(-)

commit 673396fb654036f7eb7ba152bb6966e48c1c0e5d
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jan 15 09:35:11 2012 -0500

    gmain: fix adding a child source to an already-attached source

    Adding a child source to an already-attached parent source would
    crash, because we were passing the parent's context when setting the
    child's priority.

 glib/gmain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 87dc86240835313f0cfe503b2d68a09301ad6240
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jan 15 00:34:56 2012 +0100

    Ensure to generate a flags GType for empty Flags enums

    When the flags enum only has the default NONE = 0 entry, glib-mkenums
    creates an enum type for it, not a flags type. Add an annotation
    to the
    enum to ensure the correct GType is created.

    Bug #667938.

 gio/gioenums.h | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit b717ef86ade12781b95464f4de26c1c1ec2f2df2
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jan 14 21:13:03 2012 +0100

    resources: Use g_set_error_literal where appropriate

 gio/gresourcefile.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 870fc484d994093b1d4ebc8d2f52665530693e59
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jan 15 00:40:25 2012 +0100

    Add missing Since: docs

 gio/gioenums.h | 4 ++++
 1 file changed, 4 insertions(+)

commit 91e3a673767214a86c3316f8851d93a911953f78
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Jan 15 00:42:25 2012 +0100

    Updated Galician translations

 po/gl.po | 733
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 414 insertions(+), 319 deletions(-)

commit 0fd61489e5e02312dd54ad721bcca7c45cf367a4
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Sat Jan 14 11:18:07 2012 +0100

    gio/tests: Fix out-of-source build and use uninstalled libraries

 gio/tests/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a6e149e41f359c4bf2ddab341dad20e7fb2bd9f3
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Jan 14 01:13:42 2012 +0100

    array: return_if_fail() if element size is 0

    This is particular useful for:
      g_array_new (sizeof (MyStruct), FALSE, FALSE);
    because the correct incantation is
      g_array_new (FALSE, FALSE, sizeof (MyStruct));
    and these warnings will trigger in the first situation.

 glib/garray.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 9d52243790aa460c228bdcf7ee8e28f78ecd7b13
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Jan 1 21:51:40 2012 +0100

    values: Use v_pointer for g_value_set_gtype()

    ... and g_value_get_gtype(). G_TYPE_GTYPE is a pointer type, so it's
    values should use the v_pointer member. This is especially true,
    because
    the value collectors from varargs in gvaluecollector.h use that, too.

    This should only cause issues when sizeof(glong) != sizeof(gpointer),
    and I'm not aware of any such platform. Maybe win64?

 gobject/gvaluetypes.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 86cd3018e0c5205707b2db8b9cc8537c2f60678d
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Fri Jan 13 23:48:12 2012 +0100

    gio/tests: add some missing files to EXTRA_DIST

 gio/tests/Makefile.am | 5 +++++
 1 file changed, 5 insertions(+)

commit e3fe25669227944381119852b89beead267c604c
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Fri Jan 13 23:18:01 2012 +0100

    gio: Fix for -Wformat-security

 gio/gresourcefile.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8735f53ae4f1530b07ff6cf1a5211378b09cd50d
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Fri Jan 13 22:35:44 2012 +0100

    tests: Fix build failure of resources by linking against
    libgmodule-2.0.la

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 0ed77c4fdd44d717a7ab2e55b6d3551975133215
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Jan 13 21:11:03 2012 +0100

    Updated POTFILES.in

 po/POTFILES.in | 3 +++
 1 file changed, 3 insertions(+)

commit 056cec779a02d33a49fa7bdd9abe621d6bdc95d4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jan 12 14:50:56 2012 +0100

    Add GResource functions to gio.symbols

 gio/gio.symbols | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit 186e2d20780d23ebe234e9432ee7bfc47fd25ba3
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jan 12 21:09:15 2012 +0100

    Add GLIB_COMPILE_RESOURCES to glib m4 macros

 m4macros/glib-2.0.m4 | 3 +++
 1 file changed, 3 insertions(+)

commit ac51c338ed4c503dab0927e64e8de7cad5a73e0a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jan 12 20:51:56 2012 +0100

    Add glib_compile_resources variable to the gio pc file

 gio-2.0.pc.in | 1 +
 1 file changed, 1 insertion(+)

commit c7dfea30b358d737a2711f25a7167968fede4c05
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Jan 13 16:39:28 2012 +0100

    Add documentation for GResource

 docs/reference/gio/Makefile.am                |   1 +
 docs/reference/gio/gio-docs.xml               |   5 ++
 docs/reference/gio/gio-sections.txt           |  43 +++++++++++
 docs/reference/gio/glib-compile-resources.xml | 101
 ++++++++++++++++++++++++++
 4 files changed, 150 insertions(+)

commit e041843b3e70df95c8909cf4e35728d0d88c1530
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 23:37:56 2011 +0100

    Support resource:/// uris

 gio/Makefile.am       |   2 +
 gio/gresourcefile.c   | 875
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gresourcefile.h   |  51 +++
 gio/gvfs.c            |  11 +
 gio/tests/resources.c |  40 +++
 5 files changed, 979 insertions(+)

commit 75439298f88b5a56130cd1fc03c944f0326471e5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 21:45:16 2011 +0100

    Add tests for GResource

 gio/tests/Makefile.am         |  32 +++-
 gio/tests/resourceplugin.c    |  18 ++
 gio/tests/resources.c         | 436
 ++++++++++++++++++++++++++++++++++++++++++
 gio/tests/test.gresource.xml  |  10 +
 gio/tests/test1.txt           |   1 +
 gio/tests/test2.gresource.xml |   6 +
 gio/tests/test2.txt           |   1 +
 gio/tests/test3.gresource.xml |   6 +
 gio/tests/test3.txt           |   1 +
 gio/tests/test4.gresource.xml |   6 +
 10 files changed, 516 insertions(+), 1 deletion(-)

commit 827657491dba97392f5ba38a5f5c13f8f2431b10
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 21:43:20 2011 +0100

    Initial version of glib-compile-resources

    This is the basic utility to create resource files, either binary
    versions or source files that can be compiled into your app.

 gio/Makefile.am              |  13 +-
 gio/glib-compile-resources.c | 693
 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 705 insertions(+), 1 deletion(-)

commit b87cf491630032de24c2c4ac680b6ea17613b2c8
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 21:38:23 2011 +0100

    Initial version of GResource

    GResource is a bundle of files combined into a single binary blog.
    The API lets you access the files the resource contains by
    using resource paths. You can also register resources with a
    global list and access these globally in a merged resource namespace.

    The normal way this is used is to link in the resources into your
    application/library and have it be automatically registred.

    Resources are compiled from an xml description using
    glib-compile-resources.

 gio/Makefile.am |   2 +
 gio/gio.h       |   1 +
 gio/gioenums.h  |  38 +++
 gio/giotypes.h  |   8 +
 gio/gresource.c | 844
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gresource.h |  98 +++++++
 6 files changed, 991 insertions(+)

commit d85b722734a6fcfe94032f6113de9e5c190fd7c3
Merge: 9ef4554 73acf01
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Jan 13 16:12:56 2012 +0100

    Merge remote-tracking branch 'gvdb/master'

commit 9ef4554a0b252b092ee0e6731305b829d088f0cc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 21:13:21 2011 +0100

    Add macros to handle constructor functions on the compilers that
    support it

    This is only supported on some compilers, so we define
    G_HAS_CONSTRUCTORS
    when it is supported. However, when it is supported we guarantee that
    both constructors and destructors work, in executables as well
    as shared
    libraries (including runtime unloading of shared libraries).

    Usage is a bit unorthodox, as some compilers need to use #pragma to
    implement constructors, and #pragma can't be used in macros.

    The canonical way to use this:

      #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
      #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor)
      #endif
      G_DEFINE_CONSTRUCTOR(my_constructor)

      static void my_constructor (void)
      {
        ...

      #ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA
      #pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(my_destructor)
      #endif
      G_DEFINE_DESTRUCTOR(my_destructor)

      static void my_destructor (void)
      {
        ...

 glib/gmacros.h | 93
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

commit 73acf016185f323a8caa268b53284621d805fb15
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Jan 13 15:59:56 2012 +0100

    Support creating a GvdbReader from data

    This is needed for the glib resource work.

 gvdb-reader.c | 146
 ++++++++++++++++++++++++++++++++++++++++++----------------
 gvdb-reader.h |  10 ++++
 2 files changed, 117 insertions(+), 39 deletions(-)

commit d1f6300363bb8afc5f7f1e54663a7201587bcd41
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Fri Jan 13 09:21:46 2012 +0100

    Docs: Changed can not to cannot.

    This is a backport from the glib commit
    30fdc1a79938540af7bad0af68d0a3b8af14f117

 gvdb-reader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3db6241b12bccab05be6916e1f843091a3cea380
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Jan 13 09:38:35 2012 +0200

    Updated Hebrew translation.

 po/he.po | 442
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 221 insertions(+), 221 deletions(-)

commit 9e732ab0ea742d57a46f72be475ac1d2f026eae2
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Dec 6 23:15:58 2011 +0000

    docs/gobject/tutorial: Use g_object_class_install_properties

 docs/reference/gobject/tut_gobject.xml | 51
 ++++++++++++++++++----------------
 docs/reference/gobject/tut_howto.xml   | 33 ++++++++++++++--------
 2 files changed, 49 insertions(+), 35 deletions(-)

commit c3d6595f5a9230fc579edd9a646351b22ca6d976
Author: Evan Nemerson <evan@coeus-group.com>
Date:   Sat Jan 7 09:54:53 2012 -0800

    GIO: add lots of annotations for Vala bindings

    https://bugzilla.gnome.org/show_bug.cgi?id=667447

 gio/gapplicationcommandline.c |  2 +-
 gio/gbufferedinputstream.c    |  3 ++-
 gio/gdbusintrospection.c      |  2 +-
 gio/gdbusmessage.c            | 15 ++++++++-------
 gio/gdbusserver.c             |  2 +-
 gio/gemblemedicon.c           |  2 +-
 gio/gfile.c                   | 18 +++++++++---------
 gio/gfileicon.c               |  3 ++-
 gio/gfileinfo.c               |  2 +-
 gio/gfilemonitor.c            |  2 +-
 gio/ginetaddress.c            |  2 +-
 gio/ginitable.c               |  2 +-
 gio/gmemoryinputstream.c      |  4 ++--
 gio/gmountoperation.c         |  3 ++-
 gio/gnetworkaddress.c         |  2 +-
 gio/gnetworkservice.c         |  2 +-
 gio/goutputstream.c           |  2 ++
 gio/gsimpleactiongroup.c      |  4 ++--
 gio/gsocket.c                 | 19 ++++++++++++-------
 gio/gsocketservice.c          |  3 ++-
 gio/gthemedicon.c             |  6 +++---
 gio/gtlsclientconnection.c    |  3 ++-
 gio/gtlsdatabase.c            |  4 ++--
 gio/gtlsfiledatabase.c        |  3 ++-
 gio/gtlspassword.c            |  1 +
 gio/gtlsserverconnection.c    |  3 ++-
 26 files changed, 65 insertions(+), 49 deletions(-)

commit e98f17e5cf1696d418444b23cb092be0eaba3008
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Thu Dec 22 00:16:06 2011 +0000

    Bug 666700 — Add some missing (allow-none) annotations

    Add some missing (allow-none) annotations to GContentType, GIcon and
    GHashTable methods.

    Closes: bgo#666700

 gio/gcontenttype.c | 2 +-
 gio/gicon.c        | 4 ++--
 glib/ghash.c       | 8 ++++----
 3 files changed, 7 insertions(+), 7 deletions(-)

commit f8843a0feb09898fea320a5a65a443bc5a70d78e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 10 00:40:14 2012 -0500

    Back to odd

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4a016d82f1246b6bb58e4374f318ab47a5806672
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 10 00:39:20 2012 -0500

    2.31.8

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 93849185ca8b5bfdece2b80f21f25efd160f0019
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 9 23:23:27 2012 -0500

    Updates

 NEWS | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 56 insertions(+), 1 deletion(-)

commit 00c00e2f3f3194202877e54a2429bd1a4f9c5526
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 9 21:49:08 2012 -0500

    Add G_FILE_ATTRIBUTE_FILESYSTEM_USED to get exact used space

    This is implemented by with statfs_buffer.f_bavail (free blocks
    for unprivileged users) as a default way to retrieve real free space.
    Based on a patch by Marcus Carlson, bug 625751.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfileattribute.c                |  1 +
 gio/gfileinfo.h                     | 11 +++++++++++
 gio/glocalfile.c                    | 19 +++++++++++++++++++
 4 files changed, 32 insertions(+)

commit 31960257a6f52a4ec92d70986969f3f7ce336c4c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 9 21:35:13 2012 -0500

    Make glocalfile.c more readable

    The many nested ifdefs here really deserve some annotations.
    Based on a patch by Marcus Carlson, bug 625751.

 gio/glocalfile.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit fd7e44383810cd939d8e0daf880817f67ea1dce2
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Fri Jan 6 22:43:19 2012 +0530

    add g_queue_free_full to glib-sections.txt

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=667331

 docs/reference/glib/glib-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 0ed2cdb0d926e28188f1ac924c8216dfa9db24a6
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Thu Jan 5 10:51:03 2012 +0530

    Use g_queue_free_full() convenience function.

    https://bugzilla.gnome.org/show_bug.cgi?id=667331

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 gio/gdbusprivate.c | 12 +++---------
 glib/gmain.c       | 22 +++++++++++-----------
 2 files changed, 14 insertions(+), 20 deletions(-)

commit a76d85de50285c7f376acefd14e66764afc1321a
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Tue Jan 10 01:00:29 2012 +0300

    Updated Belarusian translation.

 po/be.po | 5888
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2960 insertions(+), 2928 deletions(-)

commit ddf9633d95235ed783cdab42e79e99b7b0f6bee0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 9 15:27:07 2012 -0500

    fix a compiler warning

 glib/tests/regex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 39dc681fc7d9e336d081d0d6559e6dd3454965a0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 6 20:48:04 2012 -0500

    Realign the hash set example with added api

    Change the name of set_insert to set_add, to better match the
    newly added g_hash_table_add.

 glib/ghash.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 875ffc41b72291cc0f2d3efae905cb0b380bb210
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 9 14:28:10 2012 +0100

    drop debian/ directory

 debian/README.debian         |  30 -----------
 debian/build                 |  62 ---------------------
 debian/changelog             |  10 ----
 debian/control               |  53 ------------------
 debian/copyright             |   8 ---
 debian/libglib-cvs-dev.files |   9 ----
 debian/postinst              |   7 ---
 debian/rules                 | 126
 -------------------------------------------
 8 files changed, 305 deletions(-)

commit 7678b10703ebe84cf869cf5929d89770f3f7f977
Author: Dan Vrátil <dvratil@redhat.com>
Date:   Mon Jan 9 09:29:20 2012 +0100

    Fix GHashTable GDB pretty printing (bug #667420)

 glib/glib.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 82740adc61b6d4a6174d033efe1df1303b98eaa1
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Sun Jan 8 16:48:13 2012 +0200

    Updated Bulgarian translation

 po/bg.po | 5874
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2963 insertions(+), 2911 deletions(-)

commit d141940bc67a1c101dbd893e0b5247d931515159
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Fri Jan 6 14:29:45 2012 -0500

    gthread-posix: Remove misleading documentation comments

    g_thread_init() has done nothing since 2.32, so while the function
    still can be used if "g_thread_init() has not yet been called",
    it won't do nothing in that case, it will just perform normally.

 glib/gthread-posix.c | 15 ---------------
 1 file changed, 15 deletions(-)

commit 021e116f0525ce99cea97fb7039d6be804d4145f
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Mon Sep 12 23:14:32 2011 -0400

    gbacktrace: g_get_prgname () isn't called for a NULL argument

    https://bugzilla.gnome.org/show_bug.cgi?id=658871

 glib/gbacktrace.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit a44404f4ecbf9404f32313f8ee9a3fd06e5b0a47
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Fri Jan 6 20:35:34 2012 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 296
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 148 insertions(+), 148 deletions(-)

commit 20825918a3035e1569eb12f0fc8c4d482b0a27d4
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Jan 6 20:31:54 2012 +0100

    Updated Spanish translation

 po/es.po | 440
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 211 insertions(+), 229 deletions(-)

commit 21d2c49f82aa3c73ab77817a80065e747a9d154a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 6 10:25:03 2012 -0500

    minor fixup to last commit

 glib/ghash.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 752f0cac159dc84c03c42f84d9d8a8c923334d43
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 6 10:09:32 2012 -0500

    GHashTable: new 'add' and 'contains' APIs

    These are both convenience APIs that make it slightly nicer to use
    GHashTable as a set (which is something we document as officially
    supported).

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/ghash.c                          | 48
 +++++++++++++++++++++++++++++++++++
 glib/ghash.h                          |  4 +++
 glib/glib.symbols                     |  2 ++
 4 files changed, 56 insertions(+)

commit b87f6f9f8cb789a645b8792cf197328fb686ba55
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Fri Jan 6 16:58:57 2012 +0700

    gio/gsocks5proxy: typo fix

 gio/gsocks5proxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6e92646f218ce6d70dc932c5b444150d78928294
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Fri Jan 6 16:58:28 2012 +0700

    Updated Vietnamese translation

 po/vi.po | 114
 +++++++++++++++++++++++++++------------------------------------
 1 file changed, 49 insertions(+), 65 deletions(-)

commit 74345b3383132985c04ec2f46846f89d7a51f0a0
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Fri Jan 6 16:48:13 2012 +0700

    po/vi: import from Damned Lies

 po/vi.po | 5906
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 3027 insertions(+), 2879 deletions(-)

commit 0da8db52cdd928809dc7e78c951ecbb19c51c0a2
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jan 5 12:57:01 2012 -0500

    Remove some cruft from an older version of the code

 gio/gfilterinputstream.c  | 3 ---
 gio/gfilteroutputstream.c | 1 -
 2 files changed, 4 deletions(-)

commit 382341dd9934251de9e9e10dbe5ea3da00c74c59
Author: Michael Terry <michael.terry@canonical.com>
Date:   Wed Jan 4 14:48:53 2012 -0500

    gdesktopappinfo: Fix gtk-doc to mention Keywords not X-GNOME-Keywords

    https://bugzilla.gnome.org/show_bug.cgi?id=667285

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2fe964eeb15843a1e21789d13751b789f520ea4b
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Jan 5 15:10:04 2012 +0000

    Mention g_test_undefined() when documenting assert_failed,
    assert_stderr

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666116
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 glib/gtestutils.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 254efaf85e0bb0748e97a3dbe68153831a96592f
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Jan 5 15:02:07 2012 +0000

    Skip tests of incorrect property usage under gtester -m no-undefined

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666116
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 gobject/tests/param.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit e3d53d5529522a8db4e1711b47baa44250ce09fd
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Jan 5 04:31:21 2012 +0100

    glib/*: Use g_slist_free_full() convenience function

 glib/gshell.c      | 14 ++++----------
 glib/tests/regex.c |  3 +--
 2 files changed, 5 insertions(+), 12 deletions(-)

commit c735b54a6384ff170ca32906ad7eae64a338e1d6
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Jan 5 04:27:20 2012 +0100

    gio/*: Use g_slist_free_full() convenience function

 gio/gfilemonitor.c       | 3 +--
 gio/gmemoryinputstream.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 31c3082e19551377049742a7862dab455727844a
Author: Michael Terry <michael.terry@canonical.com>
Date:   Wed Jan 4 13:08:56 2012 -0500

    gdesktopappinfo: Avoid crash by NULL-ing data.pid_envvar before launch

    https://bugzilla.gnome.org/show_bug.cgi?id=667279

 gio/gdesktopappinfo.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 8b96fb3761bb094d7c0044114f377934b9b00c51
Author: Claudio Saavedra <csaavedra@igalia.com>
Date:   Wed Jan 4 00:18:59 2012 +0200

    GSocket: fix a couple of return values

    g_socket_receive_with_blocking() and g_socket_send_with_blocking claim
    to return -1 in error, their return type is gssize, and yet they
    return FALSE if the initial g_return_val_if_fail() call fails.

    https://bugzilla.gnome.org/show_bug.cgi?id=667226

 gio/gsocket.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f38a1dbca7d68eedc2d75cd7a7947c7217bbbd99
Author: Claudio Saavedra <csaavedra@igalia.com>
Date:   Wed Jan 4 00:13:50 2012 +0200

    GSocket: add some more g_return_if_fail()s

    https://bugzilla.gnome.org/show_bug.cgi?id=667225

 gio/gsocket.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 1b919d2e5643b43c27f86d4bcf2d94f7bf98e7df
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 4 00:10:11 2012 -0500

    Clarify g_utf8_strlen docs a bit

 glib/gutf8.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d64b4c4887da1d4ec308c08ded094dad130a5c6d
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Tue Jan 3 11:49:55 2012 +0100

    Add a testcase for an old regex bug.

    Add a testcase for bug #455640, which was fixed in PCRE versions newer
    than 7.2.

 glib/tests/regex.c | 3 +++
 1 file changed, 3 insertions(+)

commit 2ae83e116bc1ce2c02548940e276c294c91c5da7
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jan 2 16:10:35 2012 +0100

    glib/*: Use g_list_free_full()

 glib/gbookmarkfile.c | 38 ++++++--------------------------------
 glib/gkeyfile.c      | 10 ++--------
 glib/goption.c       |  3 +--
 glib/gregex.c        | 15 +++++----------
 4 files changed, 14 insertions(+), 52 deletions(-)

commit 928d2cea616db45a1a0d870fd73aed2570170288
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jan 2 16:30:11 2012 +0100

    gio/*: Use g_list_free_full() convenience function

 gio/gcontenttype.c             | 12 ++++--------
 gio/gdbusauth.c                |  3 +--
 gio/gdbusobjectmanagerclient.c |  6 ++----
 gio/gdbusobjectmanagerserver.c |  3 +--
 gio/gdbusobjectskeleton.c      |  3 +--
 gio/gdbusserver.c              |  3 +--
 gio/gdesktopappinfo.c          | 17 +++++------------
 gio/gemblemedicon.c            |  3 +--
 gio/gfileenumerator.c          |  3 +--
 gio/gfilenamecompleter.c       | 12 ++++--------
 gio/gunixvolumemonitor.c       | 27 +++++++++------------------
 11 files changed, 30 insertions(+), 62 deletions(-)

commit dde3401122930355f665af25292ad1b639e98390
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jan 2 16:09:50 2012 +0100

    gio/gdbus-2.0/codegen/codegen.py: Use g_list_free_full()

 gio/gdbus-2.0/codegen/codegen.py | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit 99c166501a6d05b2eaeb11893fab38dcf88aeeaf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 3 10:48:50 2012 -0500

    Fix parameter name mismatches in GWeakRef api

 gobject/gobject.c | 46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

commit e6a5c2efb284acc557b6129e0649b9f7af807067
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 3 08:02:49 2012 -0500

    Add GWeakRef to the docs

 docs/reference/gobject/gobject-sections.txt | 7 +++++++
 1 file changed, 7 insertions(+)

commit ee044fd839b396655000db1662b5de0569632581
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jan 2 15:20:42 2012 +0100

    gio/tests: Use g_list_free_full() convenience function

 gio/tests/contenttype.c                        |  3 +--
 gio/tests/desktop-app-info.c                   |  9 +++------
 gio/tests/gdbus-example-objectmanager-client.c |  6 ++----
 gio/tests/gdbus-peer.c                         |  3 +--
 gio/tests/gdbus-test-codegen.c                 |  9 +++------
 gio/tests/volumemonitor.c                      | 12 ++++--------
 6 files changed, 14 insertions(+), 28 deletions(-)

commit 411259ddd3e6b5c5fbf900d7ab38d0d4da03f156
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Mon Nov 14 18:03:47 2011 +0100

    gvariant: Never break out of g_variant_iter_loop

     * Document how to break out of g_variant_iter_loop style loops.

    https://bugzilla.gnome.org/show_bug.cgi?id=664069

 glib/gvariant.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 34e3881f2f02ccd7df704f54c0a31dead48ea382
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 7 15:04:59 2011 +0000

    Add test for GDBusConnection singleton access racing with destruction

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=665211

 gio/tests/gdbus-threading.c | 128
 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 128 insertions(+)

commit 1e09bfc77c157b7d70342188a424eadc3d14769a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 6 12:44:36 2011 +0000

    GDBusConnection: use GWeakRef to make the singletons thread-safe

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=665211

    https://bugzilla.gnome.org/show_bug.cgi?id=548954

 gio/gdbusconnection.c | 40 ++++++++++++++++------------------------
 1 file changed, 16 insertions(+), 24 deletions(-)

commit 146aa7aa1777b84137fb1f3d4035b0f1d11e76c9
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 7 15:04:13 2011 +0000

    Add regression test for GWeakRef used to cache a singleton

    https://bugzilla.gnome.org/show_bug.cgi?id=548954

 gobject/tests/threadtests.c | 121
 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 121 insertions(+)

commit fa5ff3955957e48a0bf50bb13be53af9b5400bb6
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Dec 8 17:35:19 2011 +0000

    Add deterministic tests for the API of GWeakRef

    These don't address the thread-safety, but do address basic use.

    https://bugzilla.gnome.org/show_bug.cgi?id=548954

 gobject/tests/reference.c | 101
 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

commit 46c2f570da10c93d7b2fab790048f957bb422302
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 6 12:27:07 2011 +0000

    GWeakRef: add a weak GObject reference believed to be thread-safe

    This patch is a joint work with Simon McVittie.

    https://bugzilla.gnome.org/show_bug.cgi?id=548954

 gobject/gobject.c       | 239
 +++++++++++++++++++++++++++++++++++++++++++++++-
 gobject/gobject.h       |  12 +++
 gobject/gobject.symbols |   4 +
 3 files changed, 253 insertions(+), 2 deletions(-)

commit 28c87a5594ef05a324a183d6d3271e6733abf908
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 6 11:37:45 2011 +0000

    g_object_weak_ref, g_object_add_weak_pointer: document
    non-thread-safety

    Transparent access to a weak pointer from the thread performing the
    weak -> strong conversion is incompatible with thread-safety: that
    thread will have to do something special. This is GNOME#548954.

    https://bugzilla.gnome.org/show_bug.cgi?id=548954

 gobject/gobject.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 1425aa664d5efa56d9e2cc29f8aa1292463e1f5a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 6 11:35:02 2011 +0000

    GBitLock: turn assumptions of g_futex_int_address into a static
    assertion

    We'll probably never encounter a platform where these fail, but that's
    what static assertions are for...

    https://bugzilla.gnome.org/show_bug.cgi?id=548954

 glib/gbitlock.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit fc731de9291556d93e02cc4c39a8573c0a5500ea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 2 11:38:40 2012 -0500

    gthread.h: avoid anonymous union

    This is a GNU extension.

    https://bugzilla.gnome.org/show_bug.cgi?id=666978

 glib/deprecated/gthread.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a07e9a5fb22de50e7a94797cf4f0e5718f064ea1
Author: William Hua <william@attente.ca>
Date:   Sun Jan 1 21:53:28 2012 -0500

    nextstep gsettings backend: whitespace police

 gio/gnextstepsettingsbackend.c | 118
 +++++++++++++----------------------------
 1 file changed, 37 insertions(+), 81 deletions(-)

commit edd2aff575888dc6cd6570681c719bc18fe91bb2
Author: William Hua <william@attente.ca>
Date:   Sun Jan 1 21:38:05 2012 -0500

    thread-safe nextstep gsettings backend

    simplified key reset logic

 gio/gnextstepsettingsbackend.c | 49
 +++++++++++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 17 deletions(-)

commit 9c1008384414a257d1f0f354d5ea897df0e24e89
Author: William Hua <william@attente.ca>
Date:   Mon Dec 26 10:04:38 2011 -0500

    GSettings: nextstep settings backend

 gio/Makefile.am                |  11 +
 gio/giomodule.c                |   3 +
 gio/gnextstepsettingsbackend.c | 497
 +++++++++++++++++++++++++++++++++++++++++
 gio/gsettingsbackendinternal.h |   5 +
 4 files changed, 516 insertions(+)

commit 00f43b22e5b5d9e4afe1eda69e348e3fdaa8c262
Author: Xan Lopez <xan@igalia.com>
Date:   Sun Jan 1 19:01:14 2012 +0100

    ginetaddressmask: plug leak

    ==24706== 52 bytes in 1 blocks are definitely lost in loss record
    7,248 of 13,092
    ==24706==    at 0x4A074CD: malloc (vg_replace_malloc.c:236)
    ==24706==    by 0x70E9F5F: standard_malloc (gmem.c:85)
    ==24706==    by 0x70E9FE8: g_malloc (gmem.c:159)
    ==24706==    by 0x71018EC: g_slice_alloc (gslice.c:1003)
    ==24706==    by 0x710192B: g_slice_alloc0 (gslice.c:1029)
    ==24706==    by 0x7068526: g_type_create_instance (gtype.c:1872)
    ==24706==    by 0x705067B: g_object_constructor (gobject.c:1835)
    ==24706==    by 0x704FE47: g_object_newv (gobject.c:1699)
    ==24706==    by 0x7050612: g_object_new_valist (gobject.c:1816)
    ==24706==    by 0x704F894: g_object_new (gobject.c:1531)
    ==24706==    by 0x6F0F2F0: g_inet_address_new_from_bytes
    (ginetaddress.c:459)
    ==24706==    by 0x6F5D703: remove_network
    (gnetworkmonitornetlink.c:256)
    ==24706==    by 0x6F5DD80: read_netlink_messages
    (gnetworkmonitornetlink.c:386)
    ==24706==    by 0x6F2D5CA: socket_source_dispatch (gsocket.c:2505)
    ==24706==    by 0x70E1D45: g_main_dispatch (gmain.c:2513)
    ==24706==    by 0x70E2A06: g_main_context_dispatch (gmain.c:3050)
    ==24706==    by 0x70E2BE9: g_main_context_iterate (gmain.c:3121)
    ==24706==    by 0x70E2CAD: g_main_context_iteration (gmain.c:3182)
    ==24706==    by 0x6F60A05: g_application_run (gapplication.c:1599)
    ==24706==    by 0x42D011: main (ephy-main.c:472)

    https://bugzilla.gnome.org/show_bug.cgi?id=667098

 gio/ginetaddressmask.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 5e4188101efe6747b637ac8e1519fe67ee42495c
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Dec 30 10:47:56 2011 +0200

    Updated Hebrew translation.

 po/he.po | 240
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 122 insertions(+), 118 deletions(-)

commit a2e1541cda3902474aa54aded959f78928fbabf6
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Dec 30 15:27:31 2011 +0800

    config.h.win32.in: Cleanups

    -Make the contents of the preconfigured config.h.win32(.in) more
    like the
     contents of config.h.in
    -Correct the sizing of void* on x64 platforms (which should be 8,
    unlike
     4 on x86-32 platforms)

 config.h.win32.in | 106
 +++++++++++++++++++++++++++++-------------------------
 1 file changed, 57 insertions(+), 49 deletions(-)

commit 8558ae9ad4411dfdcd76180aaa421b29fc587571
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Dec 29 11:57:42 2011 -0500

    Correct some Since tags

    As pointed out in bug 666951, g_mkdtemp and g_mkdtemp_full
    were only added in 2.30.

 glib/gfileutils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 8ca2647c7405d06231ca5e0cfa47621e5086a65a
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Tue Dec 20 14:49:53 2011 +0530

    Fix to handle '\v' (vertical tab) by g_strescape() and
    g_strcompress().

    fix enables g_strescape() and g_strcompress() to handle '\v' along
    with other
    special characters - '\b', '\f', '\n', '\r', '\t', '\'.

    https://bugzilla.gnome.org/show_bug.cgi?id=664830

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 glib/gstrfuncs.c      |  9 ++++++++-
 glib/tests/strfuncs.c | 16 ++++++++--------
 2 files changed, 16 insertions(+), 9 deletions(-)

commit 030bf82340f1a82825ad71c4b85d664995eafde1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 18:10:42 2011 -0500

    Some minor updates of building.sgml

    https://bugzilla.gnome.org/show_bug.cgi?id=664830

 docs/reference/glib/building.sgml | 10 ----------
 1 file changed, 10 deletions(-)

commit a3860d8d7712eb52f8535f6517bb5641e70dd825
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 18:10:26 2011 -0500

    Some minor updates of HACKING

 HACKING | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

commit 993de34a77bdbfc37e210a85382e5f34f604efe9
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 17:31:23 2011 +0000

    Add undefined/no-undefined mode options to GTester

    https://bugzilla.gnome.org/show_bug.cgi?id=666116

 docs/reference/glib/gtester.xml | 33 ++++++++++++++++++++++++++++++++-
 glib/gtester.c                  | 10 ++++++++++
 glib/gtestutils.c               | 33 ++++++++++++++++++++++++++++++++-
 glib/gtestutils.h               |  2 ++
 4 files changed, 76 insertions(+), 2 deletions(-)

commit fa4792c35e42107e0ded0f499bb86415a2b1faef
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 18:08:59 2011 +0000

    various tests: do not provoke SIGTRAP with -m no-undefined

    Some of the GLib tests deliberately provoke warnings (or even fatal
    errors) in a forked child. Normally, this is fine, but under valgrind
    it's somewhat undesirable. We do want to follow fork(), so we
    can check
    for leaks in child processes that exit gracefully; but we don't
    want to
    be told about "leaks" in processes that are crashing, because there'd
    be no point in cleaning those up anyway.

    https://bugzilla.gnome.org/show_bug.cgi?id=666116

 gio/tests/actions.c             |  83 ++++++++++++++---------
 gio/tests/gdbus-proxy.c         |  30 +++++----
 gio/tests/gsettings.c           |  64 ++++++++++++------
 glib/tests/error.c              |   3 +
 glib/tests/gvariant.c           |  32 +++++----
 glib/tests/logging.c            |  54 +++++++++------
 glib/tests/markup-collect.c     |   3 +
 glib/tests/mem-overflow.c       |  13 +++-
 glib/tests/option-context.c     |   6 ++
 glib/tests/slice.c              |   3 +
 glib/tests/strfuncs.c           | 146
 ++++++++++++++++++++++++----------------
 glib/tests/testing.c            |  32 ++++++---
 gobject/tests/ifaceproperties.c |   3 +
 13 files changed, 304 insertions(+), 168 deletions(-)

commit 5cb29d7909afdb41054ca47892aea4e0a79f2d7a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 17:32:16 2011 +0000

    Clarify documentation of fast/slow/thorough and quiet/verbose tests

    It turns out that there is no middle setting between fast and
    slow/thorough, but there *is* a middle setting between quiet and
    verbose.

    https://bugzilla.gnome.org/show_bug.cgi?id=666116

 glib/gtestutils.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit 643ad9f6c340fb368ccf8e09ef1f0ba88ee6dccf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 17:45:40 2011 -0500

    Remove another unused AC_DEFINE

    Nothing was using the HAVE_GCOV define.

 configure.ac | 2 --
 1 file changed, 2 deletions(-)

commit 7cc9e10cce30ebe9242c0cc0649a4badffe0123e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 17:20:36 2011 -0500

    Drop unused AC_SUBST

    DISABLE_MEM_POOLS is only used as define.

 configure.ac | 1 -
 1 file changed, 1 deletion(-)

commit bc85e6ed516f23d9fed9cdad39c605721738e190
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 17:15:44 2011 -0500

    Remove a bashism

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a176008826a8f7dcdcbc2a35d9ac3bfcabce824c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 17:12:39 2011 -0500

    Drop a lot of dead configury for threads

    Much of this became obsolete by the recent rewrite of our
    threading support.

 configure.ac | 179
 +++++++++--------------------------------------------------
 1 file changed, 27 insertions(+), 152 deletions(-)

commit 8cea99741bdc540b76b4cace996068acd78e746c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 16:22:13 2011 -0500

    Don't put documentation in glibconfig.h

 configure.ac | 7 -------
 glib/gmain.h | 3 +++
 2 files changed, 3 insertions(+), 7 deletions(-)

commit 31f0ad3f352ec8bae297983f67b18cb33c2c3e5e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 16:18:19 2011 -0500

    Make glibconfig.h include guards consistent

 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d09800d86ec408ec27b9559fbd9ff6aebca25397
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 16:16:24 2011 -0500

    Remove a commented-out macro

 configure.ac | 2 --
 1 file changed, 2 deletions(-)

commit 4576a459fc0aebc48581d16a076bd0a0924ae988
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 27 15:55:04 2011 -0500

    Remove obsolescent AC_HEADER_STDC macro

    We only used the resulting define in one place, and really,
    these headers just have to be around or its not worth trying.

 configure.ac      | 3 ---
 glib/tests/hash.c | 2 --
 2 files changed, 5 deletions(-)

commit 49a4de3ea446f21202d586a906e0aef1d4dacfed
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Sat Dec 24 15:31:55 2011 +0100

    docs: g_atexit: do not point in a direction for where to find details

    https://bugzilla.gnome.org/show_bug.cgi?id=666804

 glib/gutils.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 89a832250b9864c28cd0eec8db7200e00a8e9679
Author: Åsmund Skjæveland <aasmunds@ulrik.uio.no>
Date:   Mon Dec 26 17:15:32 2011 +0100

    Updated Norwegian Nynorsk translation

 po/nn.po | 959
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 515 insertions(+), 444 deletions(-)

commit cc03b3cdea45b3592ab8e931628f027c20586aa3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 24 23:01:17 2011 -0500

    Don't leak references to the menus

 gio/gmenumarkup.c | 3 +++
 1 file changed, 3 insertions(+)

commit f077127d0169df135d078827c1c51742c3a71901
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 24 22:59:10 2011 -0500

    Add a test for ids on submenu and section elements

    The test checks that menus which are created via
    <submenu id=...> or <section id=...> end up in the objects
    hash table.

 gio/tests/gmenumodel.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

commit 37efbf4354969fdbca9ed71895309fb7fb95a55a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 24 22:58:16 2011 -0500

    Menu markup: Support ids on submenu and section elements

    This was supposed to work, but didn't.
    Bug 666595.

 gio/gmenumarkup.c | 54
 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 47 insertions(+), 7 deletions(-)

commit c4fc2584241dadeedee7b21bd24ca5708d6318e8
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 24 14:26:24 2011 +0100

    docs: Clarify non-NUL requirement in g_utf8_validate()

    UTF8 validation is not about your character on a dating site, so don't
    talk about meeting.

    https://bugzilla.gnome.org/show_bug.cgi?id=666803

 glib/gutf8.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3f3e141ec8ffe8f40a2faced69d35cb161153107
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 20 13:04:19 2010 -0400

    Add GSocketClient::event, for tracking socket client status

    This can be used for debugging, or for progress UIs ("Connecting to
    example.com..."), or to do low-level tweaking on the connection at
    various points in the process.

    https://bugzilla.gnome.org/show_bug.cgi?id=665805

 docs/reference/gio/gio-sections.txt |   3 +-
 gio/gio.symbols                     |   1 +
 gio/gioenums.h                      |  38 +++++++
 gio/gsocketclient.c                 | 194
 ++++++++++++++++++++++++++++++++++--
 gio/gsocketclient.h                 |   6 +-
 gio/tests/send-data.c               |  23 +++++
 6 files changed, 253 insertions(+), 12 deletions(-)

commit 57f279988cc2219a974042a29cbb12efd2422540
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 12 16:29:04 2011 -0400

    Add g_socket_connection_connect(), etc

    Previously it was more or less assumed that GSocketConnections were
    always connected, although this was not enforced. Make it explicit
    that they don't need to be, and add methods to connect them, and
    simplify GSocketClient by using those methods.

    https://bugzilla.gnome.org/show_bug.cgi?id=665805

 docs/reference/gio/gio-sections.txt |   5 ++
 gio/gio.symbols                     |   4 +
 gio/gsocketclient.c                 | 129 +++++++++--------------------
 gio/gsocketconnection.c             | 159
 ++++++++++++++++++++++++++++++++++++
 gio/gsocketconnection.h             |  15 ++++
 5 files changed, 223 insertions(+), 89 deletions(-)

commit e121d46b251d7a695f6c56bf3de95acb51371599
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Dec 22 20:18:11 2011 +0800

    Update GIO Visual C++ projects

    Link to zlib1.lib for release builds and zlib1d.lib for debug builds-
    this is to be consistent across the board for the GTK+ stack (and many
    other opensource code linking to the ZLib DLL on Windows)

 build/win32/vs10/gio.vcxprojin | 8 ++++----
 build/win32/vs9/gio.vcprojin   | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 550fee44a9379969cb185b19b787c1d6ab35e77e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Dec 22 18:49:01 2011 +0800

    Update Visual C++ property sheets

    "Install" the newly-introduced gremoteactiongroup.h header.

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit 6e7da987b443c861946a7702d64f9e50150b9320
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 22 00:24:20 2011 -0500

    GSettingsBackend: allow floating refs from read()

    Use g_variant_take_ref() to allow for backends to return floating
    GVariant instances from their read() implementations.

 gio/gsettingsbackend.c | 3 +++
 1 file changed, 3 insertions(+)

commit 1b0337744282c7f048a31a9818b99370d97c44f3
Author: rodrigorivascosta <rodrigorivascosta@gmail.com>
Date:   Thu Dec 22 10:48:09 2011 +0800

    Bug 666551-Fix a few dangling pointers

    When removing an item from the list, check the next one's my_owner,
    and fix it accordingly. And take this case into account when last
    of the list is deleted.

    Also, assign NULL to 'my_owner' in g_thread_xp_WakeConditionVariable.

 glib/gthread-win32.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 76bc1ab28084dab671fed6e9f3993014e225df2c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Dec 21 11:24:09 2011 +0800

    glib/tests/private.c: Fix compilation on Windows

    -process.h must be included for _beginthreadex
    -Use a cast to HANDLE on _beginthreadex to silence warnings on
    different
     types

 glib/tests/private.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit cb71b03e2f0a273d3e466831e5c2cdf0a7c43f46
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Dec 21 22:22:05 2011 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 276
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 140 insertions(+), 136 deletions(-)

commit adff60ed6389cfb1e97a329c150320aa44b18be6
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Dec 21 12:36:19 2011 +0100

    menu: documentation fixes

    g_menu_new_section() does not exist, the comment meant
    g_menu_item_new_section().

 gio/gmenu.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 557da1650707bbb67b80be0c986598eab3893071
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 19:45:57 2011 -0500

    GObject: do checks on interface property install

    Add some checks to g_object_interface_install_property() similar to
    those in g_object_class_install_property().

    https://bugzilla.gnome.org/show_bug.cgi?id=666616

 gobject/gobject.c     | 8 +++++++-
 gobject/tests/param.c | 2 +-
 2 files changed, 8 insertions(+), 2 deletions(-)

commit b2371871097ef2b52bdb4688d702438c9e3f1787
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 19:43:21 2011 -0500

    GObject: require READ or WRITE on property install

    g_object_class_install_property() currently lets you install
    properties
    that are neither readable nor writable.  Add a check to prevent that.

    https://bugzilla.gnome.org/show_bug.cgi?id=666616

 gobject/gobject.c     | 1 +
 gobject/tests/param.c | 3 ---
 2 files changed, 1 insertion(+), 3 deletions(-)

commit 4e793c2eefab1a9b5b0c29b530cbe77fb53d7396
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 19:33:02 2011 -0500

    GObject: allow G_PARAM_CONSTRUCT on any override

    We were previously preventing implementations of an interface from
    specifying G_PARAM_CONSTRUCT for a property of that interface if the
    interface didn't specify it itself (or was readonly).

    This is something that should only interest the implementation, so we
    remove this restriction.

    This allows 6 new possible override scenarios:

     - writable                 -> writable/construct
     - writable                 -> readwrite/construct
     - readwrite                -> readwrite/construct
     - writable/construct-only  -> writable/construct
     - writable/construct-only  -> readwrite/construct
     - readwrite/construct-only -> readwrite/construct

    and we update the testcase to reflect this.

    https://bugzilla.gnome.org/show_bug.cgi?id=666616

 gobject/gobject.c     |  5 +----
 gobject/tests/param.c | 32 ++++++++++++++++++--------------
 2 files changed, 19 insertions(+), 18 deletions(-)

commit b3b9f82206707d6adad0d54ae9232bc826bec574
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 18:44:48 2011 -0500

    GObject: add test for interface property overrides

    Add a testcase to check all possibilities for overriding a property
    specified on an interface from an implementation of that interface,
    changing the type and flags.

    https://bugzilla.gnome.org/show_bug.cgi?id=666616

 gobject/tests/param.c | 379
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 379 insertions(+)

commit d8d78688a8e00d1f2c338bd75fb1ce20d05e059d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 18:41:03 2011 -0500

    GObject: change the order of property checks

    Change the order of the checks so that we hear about the 'biggest'
    problem first.  Also, stop reporting problems after we report
    the first
    one for a particular property.

    Add some comments.

    https://bugzilla.gnome.org/show_bug.cgi?id=666616

 gobject/gobject.c | 70
 +++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 50 insertions(+), 20 deletions(-)

commit 5fb7a8e127bde6465a5b9e22b299ca2e439e702c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 18:26:14 2011 -0500

    GObject: fix property override type checks

    The property override typecheck was meant to enforce the type on the
    overriding property being exactly equal to the type on the interface
    property.  Instead, g_type_is_a() was incorrectly used.

    We could try to enforce equality, but if a property is read-only
    then it
    should be possible for the implementation to type the property
    with any
    subtype of the type specified on the interface (because returning
    a more
    specific type will still satisfy the interface).  Likewise, if the
    property is write-only then it should be possible for the
    implementation
    to type the property with any supertype.

    We implement the check this way.

    https://bugzilla.gnome.org/show_bug.cgi?id=666616

 gobject/gobject.c | 73
 +++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 58 insertions(+), 15 deletions(-)

commit ab0da3c2821b6e9ed89a3a2a708bbae1db2ed45f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 19:12:56 2011 -0500

    GSimpleAction: fix some whitespace fail

 gio/gsimpleaction.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 342e2faa2996601bc44413087b3d70560dad78aa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 19:11:19 2011 -0500

    GSimpleAction: tweak property flags

    There's no need for 'enabled' and 'state' to be marked construct-only.
    These properties are writable at all times.

 gio/gsimpleaction.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 958f2bac7a123bc0cf35c5afab6ac62c80b0c03b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 15:29:16 2011 -0500

    GObject: fixup reversed logic in last commit

    Accidentally dropped a !.

 gobject/gobject.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3af050f6fc760c3bedfad4e7c0f767a2e01848be
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 15:12:44 2011 -0500

    gobject: Clean up logic in property checks

    Simplify some of the logic in this function.

      1) Simplify flag checks as per Colin's suggestions in
         https://bugzilla.gnome.org/show_bug.cgi?id=605667

      2) Don't repeatedly recheck if class_pspec is NULL.

 gobject/gobject.c | 50 +++++++++++++++++++++-----------------------------
 1 file changed, 21 insertions(+), 29 deletions(-)

commit ebf572cdd81d8c0fca4641f9204dc0421ad1bf5d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 14:43:15 2011 -0500

    GAction: back out changes to property flags

    41e5ba86a791a17bb560dd7813ad7e849e0230dc introduced some changes
    to the
    property flags of GAction.  These changes were not a reflection of the
    actual interface of GAction but were necessary due to GObject being
    overly-sensitive to flag changes on property overrides.

    Now that the GObject bug is fixed, we can restore the GAction flags to
    their correct values.

    https://bugzilla.gnome.org/show_bug.cgi?id=666615

 gio/gaction.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit af24dbc12aa77aac3c82d39872878558cced7add
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 20 14:36:29 2011 -0500

    gobject: loosen property override flag restrictions

    GObject enforces the following restrictions on property overrides:

      - must only add abilities: if the parent class supports
        readability/writability then the subclass must also support them.
        Subclasses are free to add readability/writability.

      - must not add additional restrictions: if the parent class doesn't
        have construct/construct-only restrictions then the subclass must
        not add them.  Subclasses are free to remove restrictions.

    The problem with the previous implementation is that the check against
    adding construct/construct-only restrictions was being done even
    if the
    property was not previously writable.  As an example:

      "readable" and "writable only on construct"

    was considered as being more restrictive than

      "read only".

    This patch tweaks the check to allow the addition of
    construct/construct-only restrictions for properties that were
    previously read-only and are now being made writable.

    https://bugzilla.gnome.org/show_bug.cgi?id=666615

 gobject/gobject.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 68706bfa2b91d4eb33cddfca2b640fcc3ce80637
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 20 12:15:05 2011 -0500

    Add references to the dbus interface docs on the wiki

    And strip out the (now) redundant copy of that information
    from the sources.

 gio/gactiongroupexporter.c  |  96
 ++----------------------------------------
 gio/gapplicationimpl-dbus.c |   4 ++
 gio/gmenuexporter.c         | 100
 +-------------------------------------------
 3 files changed, 9 insertions(+), 191 deletions(-)

commit adbfa38c8e2ab859d252e566fa130a7023442d7d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 19 22:56:05 2011 -0500

    docs: remove duplicate GMenuModel from gio.types

 docs/reference/gio/gio.types | 1 -
 1 file changed, 1 deletion(-)

commit 541693f42d462f114055fd05d1ac536e0c6f46f5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 19 17:35:31 2011 -0500

    winxp threads: fix some condition variable races

    There are some races in the condition variable emulation code for
    Windows XP with respect to timeouts while waiting.

    First, in the event of a timeout, we never remove the waiter from the
    condition variable.  This can cause crashes later.  That problem was
    found by Rodrigo Rivas Costa.

    Second, if the waiting thread times out and exits just as we were
    about
    to call SetEvent() on its waiter event, we could end up trying
    to access
    the waiter after it was closed/freed.  We need to hold on to the
    lock a
    little bit longer to ensure that that's not possible.

    https://bugzilla.gnome.org/show_bug.cgi?id=666551

 glib/gthread-win32.c | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

commit f3cf8c0ca8ea952c08ef29af1e84515a8f6a2d77
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 19 15:24:52 2011 -0500

    *bump*

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8f558d80100d4de5ffc50dac37857ca1b63c1480
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 19 15:19:19 2011 -0500

    gnetworkmonitornetlink.c: Fix a gsize->gssize

    https://bugzilla.gnome.org/show_bug.cgi?id=666422

 gio/gnetworkmonitornetlink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fbe1fb8e4999dc9e7c30a19896e421e8a2c4103b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 19 13:38:21 2011 -0500

    glib 2.31.6

 NEWS         | 44 ++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 45 insertions(+), 1 deletion(-)

commit 5e8a10daf15afc8fa006a3ce9877541c344a4c67
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 19 13:37:06 2011 -0500

    gitignore

 build/win32/vs10/.gitignore                                | 6 ++++++
 docs/reference/gio/gdbus-object-manager-example/.gitignore | 1 +
 gio/tests/.gitignore                                       | 6 ++++--
 3 files changed, 11 insertions(+), 2 deletions(-)

commit 0a22f63ebe7ea1abe78e4b88287aaf31eb1bdb5e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 19 10:47:45 2011 -0500

    Drop public menu APIs from GApplication

    This is moving to Gtk, but we don't want to do it all right now.

 docs/reference/gio/gio-sections.txt |  4 --
 gio/gapplication.c                  | 74
 ++++++-------------------------------
 gio/gapplication.h                  |  8 ----
 gio/gapplicationimpl-dbus.c         | 14 +++++--
 gio/gio.symbols                     |  4 --
 5 files changed, 21 insertions(+), 83 deletions(-)

commit 0c094d660769a00564ef33a775a387f62cf2ff41
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 19 10:47:28 2011 -0500

    Drop the GApplication menu test

 gio/tests/Makefile.am                 |  4 --
 gio/tests/gapplication-example-menu.c | 87
 -----------------------------------
 2 files changed, 91 deletions(-)

commit db7707b41a48c062b8b7595bbfc241692eed7b62
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Dec 19 17:13:11 2011 +0100

    Updated Spanish translation

 po/es.po | 314
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 171 insertions(+), 143 deletions(-)

commit 466432830c60c61fe99ac30e4914443b0f0bd979
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sat Dec 17 20:08:50 2011 +0100

    gsettings-tool: allow specifying custom schema dirs

    It happens that one wants to customize settings for plugins or
    shell extensions, that installing schemas in nonstandard locations.
    This patch adds the --schemadir option to gsettings, and ensure
    that the appropriate schema is found.

    https://bugzilla.gnome.org/show_bug.cgi?id=666415

 gio/gsettings-bash-completion.sh |  41 ++++++---
 gio/gsettings-tool.c             | 179
 +++++++++++++++++++++++----------------
 2 files changed, 133 insertions(+), 87 deletions(-)

commit f59acb55c1758d5e620b4806036dbc997db24ad4
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Mon Dec 19 14:52:10 2011 +0100

    gdesktopappinfo: Use "Keywords" instead of "X-GNOME-Keywords"

    The field has now been standardized, so drop the prefix.

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 40413490374777c0aba8b569f5ad45ffc205cac0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 19 07:45:43 2011 -0500

    Teach gtk-doc about G_GNUC_WARN_UNUSED_RESULT

 docs/reference/gio/Makefile.am     | 3 ++-
 docs/reference/glib/Makefile.am    | 2 +-
 docs/reference/gobject/Makefile.am | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

commit 0971d36e4b8338f4f3f96d751f5275517514d3b1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 17 00:52:57 2011 -0500

    GApplication: receiving end of GRemoteActionGroup

    Use the fact that the action group exporter now speaks to
    GRemoteActionGroup to get the platform data into GApplicion without
    hacks.

    https://bugzilla.gnome.org/show_bug.cgi?id=665737

 gio/gapplication.c          | 89
 ++++++++++++++++++++++++++++++++++++++++++++-
 gio/gapplicationimpl-dbus.c |  6 ++-
 gio/gapplicationimpl.h      | 13 ++++---
 3 files changed, 100 insertions(+), 8 deletions(-)

commit 1807ef336a94a1d2498e2ce77686c29db1aa6aac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 17 00:26:11 2011 -0500

    action group exporter: kill GApplication hackery

    Use the GRemoteActionGroup interface, if available, instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=665737

 gio/gactiongroupexporter.c | 38 +++++++++++++-------------------------
 1 file changed, 13 insertions(+), 25 deletions(-)

commit eefd08996f7657488cb8afed23667030d6bd45f7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 17 00:17:08 2011 -0500

    introduce GRemoteActionGroup

    This interfaceifies the extra functions that were on GDBusActionGroup
    for dealing with platform data.

    The two main benefits of doing this:

      - no longer have to do a silly song and dance in GApplication
      to avoid
        calling GDBusActionGroup API from non-dbus-aware code

      - the interface can be reused by the action group exporter to avoid
        ugly and unbindable hook callbacks

    https://bugzilla.gnome.org/show_bug.cgi?id=665737

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  16 +++++
 gio/Makefile.am                     |   2 +
 gio/gapplication.c                  |  19 ++---
 gio/gapplicationimpl-dbus.c         |  35 +++------
 gio/gapplicationimpl.h              |  14 +---
 gio/gdbusactiongroup.c              | 138
 +++++++++++++-----------------------
 gio/gdbusactiongroup.h              |   9 ---
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   5 +-
 gio/giotypes.h                      |   1 +
 gio/gremoteactiongroup.c            | 136
 +++++++++++++++++++++++++++++++++++
 gio/gremoteactiongroup.h            |  74 +++++++++++++++++++
 13 files changed, 303 insertions(+), 148 deletions(-)

commit ee9f104432ee1ed0bf1e7461cf3264d0f0f1d297
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 16 22:24:03 2011 -0500

    GApplication: send platform data for actions again

    Use the _full variants of the GDBusActionGroup API to send platform
    data
    for action invocations once again.

 gio/gapplication.c          | 16 +++++++---------
 gio/gapplicationimpl-dbus.c | 20 ++++++++++++++++++++
 gio/gapplicationimpl.h      | 12 ++++++++++++
 3 files changed, 39 insertions(+), 9 deletions(-)

commit f58df66d4d640ea926573104be9849037a3c8522
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 16 22:23:30 2011 -0500

    GDBusActionGroup: add _full variants of activation

    This allows the platform_data to be explicitly specified.

 docs/reference/gio/gio-sections.txt |  4 ++
 gio/gdbusactiongroup.c              | 93
 +++++++++++++++++++++++++++++++------
 gio/gdbusactiongroup.h              |  9 ++++
 gio/gio.symbols                     |  2 +
 4 files changed, 95 insertions(+), 13 deletions(-)

commit e5ed11bcf807b3e2c0a36c684e9b794ec253cd72
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 16 21:25:57 2011 -0500

    Revert "GDBusActionGroup: add static platform registration"

    This reverts commit fcc9902e98a6a6568a1150441c8680fd4615d437.

 gio/gactiongroupexporter.c | 10 ----------
 gio/gdbusactiongroup.c     | 32 ++------------------------------
 gio/gdbusactiongroup.h     | 14 +++-----------
 gio/gio.symbols            |  1 -
 4 files changed, 5 insertions(+), 52 deletions(-)

commit e370631f46ca9b9d5b6ca1f7bbdf0ce708922ad3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 16 11:39:24 2011 -0500

    GApplication: emit signals on action changes

    Now that we're a GActionMap the story about propagating signals
    from our
    (now-constant) internal action group is vastly simplified.  If someone
    calls g_application_set_action_group() then signals will stop
    working --
    but this function is deprecated and they never worked before, so
    no big
    loss there.

    https://bugzilla.gnome.org/show_bug.cgi?id=643736

 gio/gapplication.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit 11015f165229ac3cb5f008a8824f8135ec45c89a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 15 13:27:27 2011 -0500

    windows XP threads: fix hilariously obvious race

    I tried to do a double-checked lock without the double check.

    Rodrigo Rivas Costa caught the problem and suggested the (obviously
    correct) fix.

    https://bugzilla.gnome.org/show_bug.cgi?id=666296

 glib/gthread-win32.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit fcc9902e98a6a6568a1150441c8680fd4615d437
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 14 13:31:27 2011 -0500

    GDBusActionGroup: add static platform registration

    We provide a mechanism by which a 'platform' (eg: Gtk) can register
    some
    hook functions to be called to collect platform-data at the point of
    sending an outgoing action activation request and also to inform the
    platform of this data on incoming requests (before and after
    dispatching
    the actual request).

    This can be used for forwarding timestamp and startup-notification
    information (as is presently done in GApplication) but the
    before/after
    hook could also be used for acquiring/releasing the Gdk lock or other
    similar things.

    https://bugzilla.gnome.org/show_bug.cgi?id=665737

 gio/gactiongroupexporter.c | 10 ++++++++++
 gio/gdbusactiongroup.c     | 32 ++++++++++++++++++++++++++++++--
 gio/gdbusactiongroup.h     | 14 +++++++++++---
 gio/gio.symbols            |  1 +
 4 files changed, 52 insertions(+), 5 deletions(-)

commit 1d4009e6f7e1d368b3e3df2fa41b007277b600d8
Author: Ravi Sankar Guntur <ravi.g@samsung.com>
Date:   Wed Dec 14 20:17:54 2011 +0530

    Added API g_queue_free_full().

    g_queue_free_full(), to free a Queue including its
    dynamically-allocated elements.
    On similar lines to List and Slist.

    void  g_queue_free_full  (GQueue  *queue,  GDestroyNotify
    free_func);

    Test case covering g_queue_free_full() is added.
    Added export symbol to glib.symbols.

    Closes Bug: https://bugzilla.gnome.org/show_bug.cgi?id=657433

    Signed-off-by: Ravi Sankar Guntur <ravi.g@samsung.com>

 glib/glib.symbols  |  1 +
 glib/gqueue.c      | 24 ++++++++++++++++++++++++
 glib/gqueue.h      |  2 ++
 glib/tests/queue.c | 50
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 77 insertions(+)

commit 63e69b4958272c5c1525da60005cae6a974d0d48
Author: Colin Walters <walters@verbum.org>
Date:   Thu Dec 15 09:47:15 2011 -0500

    GDBusActionGroup: Fix a typo in docs

 gio/gdbusactiongroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 84df41c02c8806071d18e532432dff00a48ff369
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 14 10:19:13 2011 -0500

    configure.ac: robustify netlink.h check

    https://bugzilla.gnome.org/show_bug.cgi?id=666173

 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 14fb10d14b07cef6af8952bfdd0bd4d864876607
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Fri Dec 9 18:19:24 2011 +0100

    GBytes: add a size argument to g_bytes_get_data

     * An out size argument so that this is more easily bindable
       by gobject-introspection.

    https://bugzilla.gnome.org/show_bug.cgi?id=665879

 glib/gbytes.c           |  8 ++++++--
 glib/gbytes.h           |  3 ++-
 glib/gtimezone.c        |  4 ++--
 glib/gvariant-core.c    |  5 ++---
 glib/tests/array-test.c |  4 +++-
 glib/tests/bytes.c      | 41 ++++++++++++++++++++++++++---------------
 6 files changed, 41 insertions(+), 24 deletions(-)

commit 162bafee37ccd5d58260423a8120fdcba25ecad6
Author: Chris Coulson <chris.coulson@canonical.com>
Date:   Wed Dec 14 14:00:56 2011 +0000

    Initialize service_loop before running the service thread

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666129

 gio/tests/gdbus-peer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a6eda97d8e8440ea5b04c081d444916dc51ad220
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 14 21:05:38 2011 -0500

    menu markup: tolerate not having a hash table of objects

    Various places in the code were assuming that the hash table was
    always
    available. Fix this, and also avoid leaking strings now that the hash
    table may be NULL.

    Based on a patch by Simon McVittie, bug 666167

 gio/gmenumarkup.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit e129deb0170c8a18e662c53db799f2ba16ebf26f
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 16:56:15 2011 +0000

    g_array_free, g_ptr_array_free: decrement refcount if not the last ref

    foo_free is conceptually "worth" one unref; not decrementing the
    refcount here means the GArray or GPtrArray wrapper (but not its
    contents) would leak in the following call sequence:

        p = g_ptr_array_new ();
        g_ptr_array_ref (p);
        g_ptr_array_free (p, TRUE);
        g_ptr_array_unref (p);

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/garray.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit df9d9cc72f4d107f576322516a87e9fe0daa2539
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 16:53:24 2011 +0000

    GArray, GPtrArray: factor out the actual freeing

    Depending how the array is freed, we may want to free the underlying
    array (the "segment"), the struct wrapper or both.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/garray.c | 57
 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 43 insertions(+), 14 deletions(-)

commit 6457677b7db236ab580bdf546221f1e8d2102c80
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 16:46:56 2011 +0000

    g_key_file_get_string_list: don't leak the pieces on error

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/gkeyfile.c | 1 +
 1 file changed, 1 insertion(+)

commit a1bd6e07172771f9a7e8006e5f1f824cc1f564ea
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 13 18:18:27 2011 +0000

    tls-interaction test: use a weak pointer instead of a deliberate
    use-after-free

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666115
    Reviewed-by: Dan Winship <danw@gnome.org>

 gio/tests/tls-interaction.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 0a7930d04879018b5ea451ee9708f40fe93a131e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 13 20:54:24 2011 -0500

    gdbus tests: remove buggy use of GMainLoop

    g_main_loop_quit() only quits mainloops that are currently running --
    not ones that may run in the future.  The way the gdbus-threading
    tests
    are written can possibly result in a call to g_main_loop_quit() before
    g_main_loop_run() has started.

    The mainloops aren't actually used for anything other than signalling
    the completion of the threads, so just use g_thread_join() for that.

    https://bugzilla.gnome.org/show_bug.cgi?id=666129

 gio/tests/gdbus-threading.c | 25 -------------------------
 1 file changed, 25 deletions(-)

commit a2e9318d4a8dc1257526814b8255210acd13d406
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 14 09:32:11 2011 -0500

    two test fixes for ARM

    First, some ARM systems are not fast enough to meet the 30 second
    deadline in gwakeuptest.c, so increase that to 60.

    Second, we have some signed/unsigned woes in the gparam transform
    tests.

 glib/tests/gwakeuptest.c |  4 ++--
 gobject/tests/param.c    | 20 ++++++++++----------
 2 files changed, 12 insertions(+), 12 deletions(-)

commit 995a2eb50bf7d9e46c029768691f93b31e09bdf8
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 13 18:18:07 2011 +0000

    Plug some leaks in the GIO tests

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666115
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 gio/tests/data-input-stream.c | 1 +
 gio/tests/network-monitor.c   | 8 ++++++++
 gio/tests/pollable.c          | 1 +
 gio/tests/socket.c            | 3 +++
 gio/tests/tls-certificate.c   | 1 +
 5 files changed, 14 insertions(+)

commit f6b2847e5787a7c17a6d85f57049c5699451c246
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 13 14:46:02 2011 +0000

    hash test: avoid leaking various keys and values

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666115
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 glib/tests/hash.c | 82
 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 75 insertions(+), 7 deletions(-)

commit 5dca72fe67aec5f98bfb68257c34ff133b59d22a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Dec 12 18:56:21 2011 +0000

    GOptionContext test: free all arguments, not just the remaining ones

    On success, g_option_context_parse alters argv by removing options
    that
    it understood, so g_strfreev is insufficient. Instead, take a shallow
    copy and free all of the arguments in that, then free the array argv
    but not its contents.

    Also, improve the checks in error cases, by checking that argv has
    not been altered in this way.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666115
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 glib/tests/option-context.c | 353
 +++++++++++++++++++++++++++++++++-----------
 1 file changed, 265 insertions(+), 88 deletions(-)

commit 29f2ced8eb32d9001da8082c4530f017decb8267
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 13 19:01:42 2011 +0000

    various GLib tests: plug memory leaks

    These don't really matter, since it's test code, but they do obscure
    real leaks in the library.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666115
    Acked-by: Matthias Clasen <mclasen@redhat.com>

 glib/tests/bookmarkfile.c   |  6 ++----
 glib/tests/cache.c          |  2 ++
 glib/tests/convert.c        |  4 ++++
 glib/tests/fileutils.c      |  4 ++++
 glib/tests/gvariant.c       |  1 +
 glib/tests/gwakeuptest.c    |  2 +-
 glib/tests/include.c        |  1 +
 glib/tests/keyfile.c        |  1 +
 glib/tests/mainloop.c       |  3 +++
 glib/tests/markup-parse.c   | 33 ++++++++++++++++++++++++++-------
 glib/tests/mem-overflow.c   | 23 +++++++++++++++++++----
 glib/tests/node.c           |  2 ++
 glib/tests/option-argv0.c   |  2 ++
 glib/tests/option-context.c |  3 +++
 glib/tests/protocol.c       |  6 ++++++
 glib/tests/queue.c          | 12 ++++++++++--
 glib/tests/sequence.c       |  7 +++++++
 glib/tests/strfuncs.c       |  5 ++++-
 glib/tests/string.c         |  4 ++++
 glib/tests/timeout.c        |  2 ++
 glib/tests/tree.c           |  1 +
 glib/tests/unix.c           |  3 +++
 glib/tests/uri.c            | 15 ++++++++++++++-
 gobject/tests/boxed.c       |  2 ++
 gobject/tests/param.c       |  1 +
 tests/testglib.c            | 12 ++++++++++++
 26 files changed, 137 insertions(+), 20 deletions(-)

commit a0f5e89aedd0fcd04164c35b1c77d194adfc698a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Dec 12 15:55:59 2011 +0000

    testglib: test_file_functions: don't close fd if it's -1

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666115
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 tests/testglib.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit fedc0cff518067c26bad698798e50069c765d1f3
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 12:39:06 2011 +0000

    Revert "g_menu_markup_start_element: tolerate not having a hash
    table of objects"

    This reverts commit bcdb60641196f98482b5e17fcc96a92589deba35,
    accidentally pushed before it was reviewed.

 gio/gmenumarkup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bcdb60641196f98482b5e17fcc96a92589deba35
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Dec 14 12:31:31 2011 +0000

    g_menu_markup_start_element: tolerate not having a hash table
    of objects

    I don't know whether this is the right fix, but gio/tests/gmenumodel
    crashes out, which can't be right.

 gio/gmenumarkup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 93f8f8158fc086312ad1e0711d403bb7479416ee
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Dec 12 18:58:03 2011 +0000

    g_variant_byteswap: don't leak serialised.data

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a48edddc198237803474994a3c9813d3b21f4f78
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 13 18:16:55 2011 +0000

    GDBusActionGroup: don't leak param_str

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 gio/gdbusactiongroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c49a4dba82ea4edb8d09619caf3dc4f65e92f9dc
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 13 14:44:18 2011 +0000

    g_data_set_internal: avoid use-after-free if datalist is in dataset

    Removing the last thing in a dataset frees the dataset, and if the
    datalist was in a dataset, we can't safely unlock it after the dataset
    has been freed. Unlock it sooner.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 glib/gdataset.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 0bf8378840ef553262fa4f8c981c867f8f6efaaf
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Dec 12 18:37:10 2011 +0000

    g_strcompress: check that source is non-NULL rather than just crashing

    Calling this function with a NULL argument is considered to be
    invalid,
    but one of the regression tests does it anyway (to watch it crash),
    which
    seems a good indication that it's expected to be somewhat common.
    Let's check it rather than segfaulting.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 glib/gstrfuncs.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit fbab468da531c41a516024171e67c2a7088979dd
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Dec 13 18:17:13 2011 +0000

    g_dbus_action_group_changed: don't leak iterator and its contents

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>

 gio/gdbusactiongroup.c | 1 +
 1 file changed, 1 insertion(+)

commit 90baa7e460c86c4c1d22f791482a2380467a190a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Dec 12 18:35:14 2011 +0000

    GKeyFile: free group comments when the group is removed

    These were leaked. Valgrind was sad.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/gkeyfile.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 9ddb2f8091e72e2c03794e65bd35031e49559dff
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Dec 12 18:34:47 2011 +0000

    g_hmac_get_string: don't allocate and leak an unused buffer

    Also document why we're not actually using the buffer for anything.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/ghmac.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 64ca85ceaeb0375ff5931d45810015d5d2c774f1
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Dec 12 15:54:50 2011 +0000

    g_hmac_copy: initialize the refcount

    In practice, the uninitialized refcount will typically mean that
    the copy is
    never freed, and leaks.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=666113
    Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/ghmac.c | 1 +
 1 file changed, 1 insertion(+)

commit edfab83c07ccac635dae15f0b8ee30c662d239a3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 14 07:16:04 2011 -0500

    Add an explicit deprecation note to g_thread_init

    https://bugzilla.gnome.org/show_bug.cgi?id=666145

 glib/deprecated/gthread-deprecated.c | 4 ++++
 1 file changed, 4 insertions(+)

commit b386d9ffb70879fed888f15c8ca41957e02c280c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 14 00:10:34 2011 -0500

    Add another menu parser test

    This one concerns itself with objects.

 gio/tests/gmenumodel.c | 62
 +++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 46 insertions(+), 16 deletions(-)

commit b153e38ff0b6fc7c6532e6dfc5b0f7305a360574
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 13 23:16:25 2011 -0500

    GMenuModel: Flesh out the docs some more

 gio/gmenumodel.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit c14a3b3e9c43a32552223c05f1559717eeccec95
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 13 23:06:16 2011 -0500

    GMenu: purge references to GMenuProxy from the docs

 gio/gmenuexporter.c | 4 ++--
 gio/gmenumodel.c    | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 7e92997539b481e31b5566b4885c8b5158488daa
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Tue Dec 13 23:00:16 2011 -0500

    documentation fixes

    Fixes for gtk-doc warnings.

    http://bugzilla.gnome.org/show_bug.cgi?id=66469

    https://bugzilla.gnome.org/show_bug.cgi?id=664699

 docs/reference/glib/glib-sections.txt       |  4 ++
 docs/reference/gobject/gobject-sections.txt |  2 +
 glib/docs.c                                 |  6 ++-
 glib/garray.c                               | 12 +++---
 glib/gbacktrace.h                           |  2 +-
 glib/gerror.c                               |  2 +-
 glib/gfileutils.c                           | 10 ++---
 glib/ggettext.c                             |  2 +-
 glib/ghook.c                                |  4 +-
 glib/giochannel.c                           | 10 ++---
 glib/glib-init.c                            |  2 +-
 glib/glib-unix.c                            | 20 +++++----
 glib/glib-unix.h                            |  4 +-
 glib/gmain.c                                |  6 +--
 glib/gmain.h                                |  3 +-
 glib/gmessages.c                            |  6 +--
 glib/gpoll.h                                |  3 ++
 glib/gscanner.c                             | 65
 +++++++++++++++++++----------
 glib/gscanner.h                             | 10 ++++-
 glib/gspawn.c                               |  8 ++--
 glib/gspawn.h                               | 34 +++++++--------
 glib/gstdio.c                               |  2 +-
 glib/gstrfuncs.c                            | 54 ++++++++++++------------
 glib/gtestutils.c                           | 12 +++---
 glib/gthread-posix.c                        |  2 +-
 glib/gthread.c                              |  8 ++--
 gmodule/gmodule.c                           |  1 +
 gobject/genums.c                            |  2 +-
 28 files changed, 169 insertions(+), 127 deletions(-)

commit b0c3997fdd553eca363dfd0f3c4da9938800acf9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 13 12:56:20 2011 -0500

    Improve GNetworkMonitor docs

    Make sure we get signal and property docs, and mention
    the extension point in the overview.

 docs/reference/gio/gio.types    |  1 +
 docs/reference/gio/overview.xml | 25 ++++++++++++++++++++++---
 2 files changed, 23 insertions(+), 3 deletions(-)

commit f3dde2d4057f5dfa5cbc9f1e3f13d596608b0b3b
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Mon Dec 12 15:06:41 2011 +0100

    gnetworkmonitornetlink.c: Fix compilation on RHEL 6.2

    When trying to compile glib master on a RHEL 6.2 system, it fails
    with:

    make[4]: Entering directory `/home/teuf/gnome/src/glib/gio'
      CC     libgio_2_0_la-gnetworkmonitornetlink.lo
    In file included from gnetworkmonitornetlink.c:25:
    /usr/include/linux/netlink.h:35: error: expected
    specifier-qualifier-list before 'sa_family_t'
    gnetworkmonitornetlink.c: In function
    'g_network_monitor_netlink_initable_init':
    gnetworkmonitornetlink.c:99: error: 'struct sockaddr_nl' has no
    member named 'nl_family'
    gnetworkmonitornetlink.c:100: error: 'struct sockaddr_nl' has no
    member named 'nl_pid'
    gnetworkmonitornetlink.c:100: error: 'struct sockaddr_nl' has no
    member named 'nl_pad'
    gnetworkmonitornetlink.c:101: error: 'struct sockaddr_nl' has no
    member named 'nl_groups'
    make[4]: *** [libgio_2_0_la-gnetworkmonitornetlink.lo] Error 1

    sa_family_t is defined in sys/socket.h, this commit makes sure this
    header is included before netlink.h

    This fixes bgo bug #666001

 gio/gnetworkmonitornetlink.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit b79d1f8619951322efcfab02df65d868fa247ac7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 13 09:16:51 2011 -0500

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ab15175567d11600d0293fb4028718d2dead2e76
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Dec 13 12:12:48 2011 +0800

    Update VS property sheets

    "Install" the newly-added public headers in GLib and GIO, such as
    the ones
    for GMenuModel, etc.

 build/win32/vs10/glib.props  | 28 ++++++++++++++++++++++++++--
 build/win32/vs9/glib.vsprops | 14 +++++++++++++-
 2 files changed, 39 insertions(+), 3 deletions(-)

commit b6890e94fe304adc8d00f0211d3ed546841bf388
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Mon Dec 12 20:36:29 2011 +0100

    Fix wording

    délai épuisé has been replaced with délai dépassé

 po/fr.po | 6126
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 3123 insertions(+), 3003 deletions(-)

commit 2f9ab64ac9dc4aeba4a6a297888986d26515d6f8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 12 13:28:24 2011 -0500

    glib 2.31.4

 NEWS         | 17 ++++++++++++++---
 configure.ac |  2 +-
 2 files changed, 15 insertions(+), 4 deletions(-)

commit 93f17967e4c6c5194d3c0cc4512169b6bd394bf7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 12 13:28:09 2011 -0500

    GActionGroupExporter: stop using signal IDs

    GDBusConnection recently changed to dispatching its GDestroyNotify
    calls
    from an idle instead of on-the-spot.  Under the previous regime, we
    would destroy-notify the action group export of a GtkApplicationWindow
    at the point it was removed from the application (ie: slightly before
    being disposed).

    With the destroy notify now deferred to an idle, the window has
    already
    been disposed, so the signal handlers have already been disconnected.

    Avoid the problem by dropping our use of signal IDs and just do
    g_signal_handlers_disconnect_by_func(), which doesn't complain
    if there
    is no connection.

 gio/gactiongroupexporter.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit bbae5fe94193104ea24124e284bc3cccf9bdcb73
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 12 13:13:42 2011 -0500

    GMenuMarkup parser: small typo fix in docs

 gio/gmenumarkup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b8cde0b507ed2d131a1e88d3701b62be2fb012ac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 12 13:08:48 2011 -0500

    More clearly define 'named menu' in the XML parser

    This is when menus have id='' attributes.

 gio/gmenumarkup.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit 60bcb367832b5e625e51d11f863a9044712de924
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 12 13:07:04 2011 -0500

    GMenu parser: use G_MARKUP_COLLECT_BOOLEAN

    ...instead of trying to parse the boolean for ourselves.

 gio/gmenumarkup.c | 41 ++++++-----------------------------------
 1 file changed, 6 insertions(+), 35 deletions(-)

commit 5c70759482d9fe8797020590071615386831b86e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Dec 12 10:43:54 2011 -0500

    update maintainers in glib.doap

    (at request of sysadmin team)

 glib.doap | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 4f5732f721d11545bfd2ad3a971a44b76bfa7273
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 12 01:44:41 2011 -0500

    GApplication: fix a copy-paste error

    Activating an action must not turn into a change-state request.

 gio/gapplication.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit dec7ed8abad74baa70160e0652171666d5ca461f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 12 00:01:20 2011 -0500

    Rearrange GApplication long desc a bit

 gio/gapplication.c | 53
 +++++++++++++++++++++++++++--------------------------
 1 file changed, 27 insertions(+), 26 deletions(-)

commit e24241384793b9d4648d00df8ac972dafcbc87a0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 12 00:00:16 2011 -0500

    Expand actiongroup docs a bit more

 gio/gactiongroup.c | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

commit 840482658a7cdacd012df6edba78edf7f7862036
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Dec 11 12:05:23 2011 -0500

    Fix an assertion when activating apps a second time

    This was causing the following critical when running bloatpad twice:
    GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table
    != NULL' failed

 gio/gdbusactiongroup.c | 3 +++
 1 file changed, 3 insertions(+)

commit f40de4b15201eaf6936e7d82eeeb3c044067be7c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 22:14:34 2011 -0500

    Add some more since tags

 gio/gmenu.c      |  8 ++++++--
 gio/gmenumodel.c | 12 +++++++++---
 2 files changed, 15 insertions(+), 5 deletions(-)

commit f0eb58075a9716e5eb976e160b374c23a04ec5e5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 21:55:11 2011 -0500

    Add a since tag

 gio/gfile.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 042954de9f990e53e81374c1b14ad53c7e4f7018
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 21:49:10 2011 -0500

    Fix since tag

 glib/gunicode.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2d6d127c96de7317c6364ff7abfb29475e644df2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 21:46:13 2011 -0500

    Whitespace fixes

    And add some missing since tags.

 gio/gnetworkmonitor.c        |  66 +++++++-------
 gio/gnetworkmonitorbase.c    | 166 +++++++++++++++++-----------------
 gio/gnetworkmonitornetlink.c | 210
 +++++++++++++++++++++----------------------
 3 files changed, 223 insertions(+), 219 deletions(-)

commit d50f77b394641fbf3d8b57e1328d4a5bbceac31e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 21:42:49 2011 -0500

    Add g_application_set/get_default to the docs

 docs/reference/gio/gio-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit f109415d950edae973ca630046deb7aebf3c8ddd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 20:47:22 2011 -0500

    Add since tags

 gio/gdbusactiongroup.c |   4 +-
 gio/gdbusmenumodel.c   |   5 ++-
 gio/gmenu.c            | 102
 +++++++++++++++++++++++++++++++++++++------------
 gio/gmenuexporter.c    |   4 +-
 gio/gmenumarkup.c      |  16 ++++++--
 gio/gmenumodel.c       |  68 ++++++++++++++++++++++++---------
 6 files changed, 150 insertions(+), 49 deletions(-)

commit 829b4dfb43c118602d1c333a1a1fb7ec50cef7b0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 10 17:21:53 2011 -0500

    Clean up GApplication docs

    Clean up the docs for GApplication and related classes.

    I'm no longer writing documentation for the structure type of classes
    and interfaces.  See https://bugzilla.gnome.org/show_bug.cgi?id=665926
    for discussin on the correct way forward on this point.

    Also: stop putting gtk-doc comments in installed headers.

 docs/reference/gio/gio-sections.txt |  4 +++-
 gio/Makefile.am                     | 32 ++++++++++++++++++--------------
 gio/gaction.c                       | 17 +++++++++++++++++
 gio/gaction.h                       | 14 --------------
 gio/gactiongroup.c                  | 23 +++++++++++++++++++++++
 gio/gactiongroup.h                  | 20 --------------------
 gio/gactionmap.c                    | 15 ++++++++++++++-
 gio/gapplication.c                  | 35
 +++++++++++++++++++++++++++++++++++
 gio/gapplication.h                  | 35
 -----------------------------------
 gio/gapplicationcommandline.c       |  8 ++++++++
 gio/gapplicationcommandline.h       | 16 ----------------
 11 files changed, 118 insertions(+), 101 deletions(-)

commit a8927732c9889d345fd34384b25a930ba8b76ef8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 10 14:06:18 2011 -0500

    GDate: gtk-doc fixup

 glib/gdate.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit 3e06a34abaa0cee15b5372d5c9ba546509c2dd87
Author: Seong-ho, Cho <darkcircle.0426@gmail.com>
Date:   Sat Dec 10 23:32:23 2011 +0900

    Updated Korean translation

 po/ko.po | 5780
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2915 insertions(+), 2865 deletions(-)

commit ee4b21bc8c1c00d58009e0537b815677e10f2451
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Dec 10 11:03:08 2011 +0200

    Updated Hebrew translation.

 po/he.po | 612
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 338 insertions(+), 274 deletions(-)

commit 4eeac41d7dd9b75d2d44f5542f70d4f795a34333
Author: Colin Walters <walters@verbum.org>
Date:   Fri Dec 9 11:13:23 2011 -0500

    gfile: Don't use C++ keyword "template" as variable name

    This breaks autotestkeyword.cc from gtk+.

 gio/gfile.c | 8 ++++----
 gio/gfile.h | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 8fcb73b0a90e663f5b1bf6d7b2554623c6b14968
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Fri Dec 9 12:11:53 2011 +0100

    gdbus-codegen: fix typo in generated documentation

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=665858

 gio/gdbus-2.0/codegen/codegen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 721667399a2ebc198292ecb5bfedc8f296aef04d
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Thu Dec 8 23:17:07 2011 +0100

    GFile: add g_file_new_temp

    A convenience function that creates a temporary file and returns
    a GFile and GFileIOStream for it.

    The file is created using g_file_open_tmp.

    https://bugzilla.gnome.org/show_bug.cgi?id=657085

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfile.c                         | 54
 ++++++++++++++++++++++++++++++++++++-
 gio/gfile.h                         |  3 +++
 gio/gio.symbols                     |  1 +
 gio/glocalfileoutputstream.c        | 10 +++++++
 gio/glocalfileoutputstream.h        |  1 +
 6 files changed, 69 insertions(+), 1 deletion(-)

commit e50d8a11b273498407cd360330533bda80e1f38d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 9 08:01:12 2011 -0500

    Cosmetic doc change

 gobject/gobject.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 605856adfa0cbd2a4cfed63bf013c86f09d15f04
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Fri Dec 9 12:55:40 2011 +0100

    Updated POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 8d428e3cc43e4732feba2c47237b0a50c08cab92
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Dec 8 23:44:30 2011 -0500

    GApplication: Make ::startup run-first

    https://bugzilla.gnome.org/show_bug.cgi?id=665817

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 94a2ed4bc2dad2547b4ae89aad40b4d4483e2d0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Dec 8 22:00:24 2011 -0500

    Updates

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit a65429cf4442168981130463e2e40fc1bf136293
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 8 17:52:10 2011 -0500

    gio.symbols fixes

 gio/gio.symbols | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

commit a6366dc2892ff476a737f36ddfb0952895e58158
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 8 17:49:01 2011 -0500

    GDBusActionGroup: make API just like GDBusMenuModel

    Have one simple _get() API that returns the group immediately, in an
    empty state.  The group is initialised on the first attempt to
    interact
    with it.

    Leave a secret 'back door' for GApplication to do a blocking
    initialisation.

 docs/reference/gio/gio-sections.txt |   5 +-
 gio/gapplicationimpl-dbus.c         |  12 +-
 gio/gdbusactiongroup.c              | 430
 +++++++++++++++++-------------------
 gio/gdbusactiongroup.h              |  16 +-
 gio/tests/actions.c                 |  18 +-
 5 files changed, 216 insertions(+), 265 deletions(-)

commit 0fdd9985bb4c840d1767f1e15e2fa5c97870ed7a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 8 16:06:01 2011 -0500

    GDBusActionGroup: drop ability to 'inject'

    Also drop the GDBusActionGroupFlags that were only meant to facilitate
    injection-based usage.

 gio/gapplicationimpl-dbus.c |  3 +-
 gio/gdbusactiongroup.c      | 97
 +++++++++++++--------------------------------
 gio/gdbusactiongroup.h      |  8 ----
 gio/gioenums.h              | 19 ---------
 gio/tests/actions.c         |  2 +-
 5 files changed, 29 insertions(+), 100 deletions(-)

commit caa6287f399422677f6496412c2e009e686c42c2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Dec 8 00:46:03 2011 -0500

    More documentation fixes

 gio/gapplication.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit 04aab0cd46c1623f3dc6b4524f41c0a4cf243868
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Dec 8 00:31:23 2011 -0500

    Fix up docs

 docs/reference/gio/gio-docs.xml     |  2 +-
 docs/reference/gio/gio-sections.txt | 14 +++++++-------
 docs/reference/gio/gio.types        |  2 +-
 gio/gdbusactiongroup.c              |  2 +-
 gio/gdbusmenumodel.c                |  2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)

commit 39bebbed8241d9ce5209eff2d3dd5793e4221505
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 7 22:31:10 2011 -0500

    Don't use deprecated GApplication api in examples

 gio/tests/gapplication-example-actions.c | 10 ++--------
 gio/tests/gapplication-example-menu.c    | 14 +++-----------
 2 files changed, 5 insertions(+), 19 deletions(-)

commit 13e084437b6d3611ccd59f18aa799c87a2bfc3fd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 7 21:22:51 2011 -0500

    GDBusMenuModel: become thread-aware

    Allow imports of the same menu on multiple different main contexts at
    the same time by creating a separate object for each context.

 gio/gdbusmenumodel.c | 38 ++++++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 10 deletions(-)

commit 25ffde957cfcaa07c44a348da61d04456865d396
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 7 21:10:18 2011 -0500

    menu threaded test: run the mainloop after export

    GDBusConnection now dispatches GDestroyNotify calls back to the
    mainloop.  Adding an idle to the mainloop is O(n) in the number
    of idles
    already there.  We therefore need to periodically empty the
    mainloop to
    avoid quadratic behaviour with a very large 'n'.

 gio/tests/gmenumodel.c | 1 +
 1 file changed, 1 insertion(+)

commit 1c036cb9f525853174c96d11e77160c315476df0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 7 21:05:38 2011 -0500

    Rename GMenuProxy to GDBusMenuModel

    This improves consistency with GDBusActionGroup.

 gio/Makefile.am                        |   4 +-
 gio/{gmenuproxy.c => gdbusmenumodel.c} | 422
 ++++++++++++++++-----------------
 gio/{gmenuproxy.h => gdbusmenumodel.h} |  27 ++-
 gio/gio.h                              |   2 +-
 gio/tests/gmenumodel.c                 |   8 +-
 5 files changed, 232 insertions(+), 231 deletions(-)

commit 14900d37f46ecab99deb4fd97822f1f2ec105c40
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 7 20:39:23 2011 -0500

    action exporter: clarify threading situation

    Exporting can only be done relative to a particular given main context
    and all interaction with the action group must be on that same
    context.

    Fix up the implementation so that the user can specify that context
    with
    the normal (thread default) mechanism and document the limitation
    on the
    API.

    Adjust the testcase to adhere to the documentation limitations.  It
    passes now.

 gio/gactiongroupexporter.c | 16 ++++++++++++++--
 gio/tests/actions.c        | 41 ++++++++++++++++++-----------------------
 2 files changed, 32 insertions(+), 25 deletions(-)

commit 7af08e1fc06fbf0180d3e6c3b8314cda5258c0f6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 7 20:23:41 2011 -0500

    action exporter: use GSource* instead of source id

    Keep track of the GSource* of our event dispatch idle instead of using
    source ID.

 gio/gactiongroupexporter.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

commit 64e3e10c9827ff53c8388ebfb672810a6c5fa658
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 7 14:43:50 2011 -0500

    action exporter: cancel pending events on unexport

    If there are events pending when we unexport the action group,
    free them
    and cancel the pending idle.

 gio/gactiongroupexporter.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 21aca44ee1c16bec9338fe3df1b285a9f0ffaf4a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 7 10:35:29 2011 -0500

    GMenuModel exporter: remove workaround

    With Bug 665733 fixed, we can remove the workaround (which was causing
    thread safety problems).

 gio/gmenuexporter.c | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

commit 328bf4616a3ffa45ffe3c1e6b1a00f658b108897
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 7 00:58:01 2011 -0500

    Add testcase for threaded menu exporter use

    This currently fails

 gio/tests/gmenumodel.c | 70
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

commit f1a403e80983a33dbe7cebb7a60c24ecaf0f2d28
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 7 00:43:49 2011 -0500

    Add a test for multithreaded action group exporter use

 gio/tests/actions.c | 74
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

commit 77f6e6a97f96312eac0fec06e032fc686e7fca59
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Dec 4 21:33:55 2011 -0500

    GApplication dbus: publish the menus again

 gio/gapplicationimpl-dbus.c | 150
 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 150 insertions(+)

commit 690596e9fbcad66f1692f92f919cd3be61ee27cb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 3 22:26:59 2011 -0500

    Fully implement app-menu and menubar properties

 gio/gapplication.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit ac8bc3d40732e6b2fb759e9fdc2f11a8d0e1e885
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 3 17:17:13 2011 -0500

    GApplication: make menu properties readwrite

    Otherwise the notify signals won't be emitted.

 gio/gapplication.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ef8c443092e52e5f4a934c77b1e30a06f59451d9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 17:47:34 2011 -0500

    menumodel test: don't get stuck in a loop

    Sometimes randa and randb end up having the same state, causing
    them to
    return the same stream of 'random numbers'.  This is a problem for the
    testcase that is looping to find unequal menus.

    If we find ourselves in this state, throw one of the random generators
    away and recreate it so we have a better chance of getting some
    unequal
    menus.

 gio/tests/gmenumodel.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 4f2c2077457bcd59ff09b2829b9f25b45e37a515
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 16:50:09 2011 -0500

    menu/action exporter docs fixup

 docs/reference/gio/gio-sections.txt | 10 ++++------
 gio/gactiongroupexporter.c          | 36
 ++++++++++++++++++++++++-----------
 gio/gactiongroupexporter.h          |  2 +-
 gio/gmenuexporter.c                 | 38
 +++++++++++++++++++++++--------------
 gio/gmenuexporter.h                 |  2 +-
 5 files changed, 55 insertions(+), 33 deletions(-)

commit 46e3dca2e4c3b9c83f88894984046f6a376281c9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 16:29:28 2011 -0500

    gio symbol cleanups

 gio/gio.symbols  | 16 ++++++++--------
 gio/gmenuproxy.c |  2 ++
 2 files changed, 10 insertions(+), 8 deletions(-)

commit cfbc1b5a4b0bdf6de856fc054149e8f558970dff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 15:36:15 2011 -0500

    Menu model exporter: clean up the API

    Give it the same treatment as the exporter for GActionGroup just got.

    There is a wart here: the exporter attempt to re-enter GDBusConnection
    when it is freed in order to cancel outstanding name watches.
    GDBusConnection holds its own lock while calling the destroy
    notify, so
    the attempt at reentrancy results in a deadlock.

    We have a workaround to deal with that for now...

 gio/gmenuexporter.c    | 176
 +++++++++++++------------------------------------
 gio/gmenuexporter.h    |  15 ++---
 gio/tests/gmenumodel.c |  12 ++--
 3 files changed, 58 insertions(+), 145 deletions(-)

commit a9f03596fa6da9999f3493d1deb8771f52efea3f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 15:17:56 2011 -0500

    GApplication: menu can change after registration

    Allow the menu to be changed after registration.  This is quite useful
    for setting up the menus from the ::startup handler instead of
    having to
    do it before registration because it lets you skip the work if you're
    not the primary instance.

 gio/gapplication.c | 8 --------
 1 file changed, 8 deletions(-)

commit f7886d6adbef560ea9dcc2ced3f327c927899752
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 15:04:53 2011 -0500

    Action group exporter: clean up the API

    Make it look more like a typical GDBusConnection API with integer
    registration ID and corresponding unexport call.  Kill the 'query'
    call.

 gio/gactiongroupexporter.c  | 127
 ++++++++++----------------------------------
 gio/gactiongroupexporter.h  |  15 +++---
 gio/gapplicationimpl-dbus.c |  12 ++---
 gio/tests/actions.c         |  10 ++--
 4 files changed, 45 insertions(+), 119 deletions(-)

commit 5a3276930089a801e86ddc3fef2167e4dcca5704
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 14:24:17 2011 -0500

    GApplication: simplify dbus impl

    The error handling on register() was just totally out of hand before.
    Clean that mess up.

    Take out the menu export for now as well.  It will be added back again
    later.

 gio/gapplicationimpl-dbus.c | 298
 ++++++++++++++++++--------------------------
 1 file changed, 123 insertions(+), 175 deletions(-)

commit 03d894d81fffefe837b4fa072338308a96f6f25d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 11:19:18 2011 -0500

    GApplication dbus: use XML for introspection

    The hand-written structures are hard to read and cause quite a lot of
    relocations at library load time.  Avoid that.

 gio/gapplicationimpl-dbus.c | 144
 ++++++++++++++++++++------------------------
 1 file changed, 66 insertions(+), 78 deletions(-)

commit 088682d860b80eb843e2c15026cc5b10f00b9ed7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 10:32:28 2011 -0500

    GApplication: implement GActionMap

    and deprecate g_application_set_action_group().

 gio/gapplication.c | 70
 +++++++++++++++++++++++++++++++++++++++++++++---------
 gio/gapplication.h |  1 +
 2 files changed, 60 insertions(+), 11 deletions(-)

commit 75f1802a1c88007e2d29b5ac0cb55d9eb3b3a794
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 1 22:53:07 2011 -0500

    Fix some GMenu and GMenuItem leaking

 gio/gapplication.c | 6 ++++++
 gio/gmenumarkup.c  | 1 +
 2 files changed, 7 insertions(+)

commit 38216273665bb264d5f86157191b0a9a5ab8ad1d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Dec 1 12:14:04 2011 -0500

    GApplication: make distinction about menus

    Rename g_application_set_menu to g_application_set_app_menu and make a
    couple of fixups.  Clarify the documentation about exactly what this
    menu is meant to be.

    Add g_application_set_menubar and document that as well.

 docs/reference/gio/gio-sections.txt   |   6 +-
 gio/gapplication.c                    | 139
 +++++++++++++++++++++++++++-------
 gio/gapplication.h                    |  10 ++-
 gio/gapplicationimpl-dbus.c           |  10 +--
 gio/tests/gapplication-example-menu.c |   2 +-
 5 files changed, 130 insertions(+), 37 deletions(-)

commit 8777b08a5ac72c1c8fb54d7ab5d5aa180094f427
Author: Colin Walters <walters@verbum.org>
Date:   Thu Dec 1 09:38:04 2011 -0500

    gsimpleaction: Ensure actions are enabled

 gio/gsimpleaction.c | 1 +
 1 file changed, 1 insertion(+)

commit a8a8633cef2472ad85dc17a50cc0433a068db7dc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 30 23:19:35 2011 -0500

    Include gactionmap.h in gio.h

 gio/gio.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit eb09099f6502a952a933d0bcb1043a929dcee12c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 30 19:04:08 2011 -0500

    Minor doc improvements

 docs/reference/gio/gio-sections.txt |  1 -
 gio/gaction.c                       |  2 +-
 gio/gmenumodel.c                    | 18 +++++++++---------
 3 files changed, 10 insertions(+), 11 deletions(-)

commit c8e76fdda2dc932ddf471d8a6c6a7ced750bfd41
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 30 19:03:41 2011 -0500

    Add GActionMap to the docs

 docs/reference/gio/gio-docs.xml     |  1 +
 docs/reference/gio/gio-sections.txt | 22 ++++++++++++-
 docs/reference/gio/gio.types        |  1 +
 gio/gactionmap.c                    | 66
 +++++++++++++++++++++++++++++++++----
 gio/gsimpleactiongroup.c            |  8 ++---
 5 files changed, 87 insertions(+), 11 deletions(-)

commit 41e5ba86a791a17bb560dd7813ad7e849e0230dc
Author: Colin Walters <walters@verbum.org>
Date:   Wed Nov 30 17:26:59 2011 -0500

    GSimpleAction: Fix to comply with constructor rules

    foo_new_*() must be pure wrappers around g_object_new(), otherwise
    their functionality is inaccessible to bindings.

 gio/gaction.c       | 12 +++++---
 gio/gsimpleaction.c | 82
 ++++++++++++++++++++++++++++++++---------------------
 2 files changed, 57 insertions(+), 37 deletions(-)

commit 76527e5cd5e864f1695b3afe0d6350e7546606bb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 30 11:36:08 2011 -0500

    add GActionMap interface

    This is an interface to represent GSimpleActionGroup-like objects (ie:
    those GActionGroups that operate by containing a number of named
    GAction
    instances).

 gio/Makefile.am          |   2 +
 gio/gactionmap.c         | 211 +++++++++++++++++++++++++++++++++++++++
 gio/gactionmap.h         |  94 ++++++++++++++++++
 gio/gio.symbols          |   5 +
 gio/giotypes.h           |   1 +
 gio/gsimpleactiongroup.c | 250
 +++++++++++++++--------------------------------
 gio/gsimpleactiongroup.h |  23 +----
 7 files changed, 392 insertions(+), 194 deletions(-)

commit 02b001f8f600b3a44883fe0337b20967c3420bde
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 29 08:18:38 2011 -0500

    gmenu exporter: put submenus in separate groups

    Keep sections in the same subscription group as the parent (since they
    will be needed immediately) but put submenus in a separate group.

 gio/gmenuexporter.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit a0a94cd6c68e339bc36a998ea7ce9f5b5b87d586
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 29 08:16:19 2011 -0500

    menu tests: keep mirror of proxy

    Create a 'mirror' model of the proxy for the testcase.  In addition to
    testing that the proxy model emits the proper signals this also keeps
    the proxy alive (by holding references to it from the mirror).

    The previous code would create the submenu proxies and destroy them
    right away (from the recursive step in the equality comparison
    functions).  This means that the subscription would go out over D-Bus
    and the proxy would be destroyed before it returned.  Keeping the
    model
    alive allows it to be actually updated.

 gio/tests/gmenumodel.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit d6f2281329ca6b70e63537d41b2b6cf0b9aa94ef
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 20:37:07 2011 -0500

    Shorten a variable name

 gio/gmenuexporter.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

commit ad09498fa7dd6e759236cdc9893e50c4ed6afbd3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 18:34:08 2011 -0500

    Expand dbus action group tests

    The new tests check that activation and state changes propagate
    back.

 gio/tests/actions.c | 83
 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 67 insertions(+), 16 deletions(-)

commit 5718804e5894de7de19d9fb98ae831d60ba001d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 18:13:16 2011 -0500

    Some more assertions

 gio/tests/gmenumodel.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 22c9d20b7aad101d795a8034866a637b8d3bd611
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 18:12:46 2011 -0500

    Add some dbus action group tests

 gio/tests/actions.c | 214
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 214 insertions(+)

commit 7ef3e27255d66af428f046b58281d4402a045b54
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 18:12:17 2011 -0500

    Fix the dbus action group query_action implementation

 gio/gdbusactiongroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5002cb29358ed3161afe1395397ccd995806c281
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 18:11:25 2011 -0500

    Make stopping an action group export work

 gio/gactiongroupexporter.c | 2 ++
 1 file changed, 2 insertions(+)

commit 7a0faf66fe41649def3753eda09149883991da60
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 28 11:45:20 2011 -0500

    rework GMenuProxy links

    Only resolve the link at the point that we pull it through the API
    rather than at the point that we first are told about it.
    This reduces
    the lifespan of subscriptions and, more importantly, avoids a tricky
    reference cycle issue.

 gio/gmenuproxy.c | 72
 ++++++++++++++++++++++++++++++++------------------------
 1 file changed, 41 insertions(+), 31 deletions(-)

commit 2c4ded15e53d2c0e46aeaab2bea50320d86b4f37
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 28 11:44:25 2011 -0500

    g_menu_model_get_item_link: be careful with refs

    Don't unref the hashtable until after we already take the ref on the
    value that was contained in the hashtable, otherwise we may kill the
    value.

 gio/gmenumodel.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 1bb0a89de65e93dc055cb6147318d3760a535a8d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 10:22:25 2011 -0500

    Add debug code

    This adds a dump method to show the entire tree of proxies.

 gio/gmenuproxy.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 2cf4866e33127a4f1dd2dbae94583af7c6457f1c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 07:51:57 2011 -0500

    Avoid cross-talk between tests

    Each test needs to remove the sources that it attaches
    to the default main context, or else things will work
    fine in isolation, but go bad in a full test run.

 gio/tests/gmenumodel.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit 39ce59f955ad04d4689d82dd35029723f7e7f3cd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 07:40:55 2011 -0500

    Typo fix

 gio/gmenuproxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ff833ccac9d8c175e8879540d042d4fb76fdad10
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 00:18:39 2011 -0500

    Remove unused variable

 gio/tests/gmenumodel.c | 1 -
 1 file changed, 1 deletion(-)

commit 500f8fbac5efda5b0970020af15b17ff14629aac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 23:28:53 2011 -0500

    Add a test for menu subscriptions

 gio/tests/gmenumodel.c | 165
 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 163 insertions(+), 2 deletions(-)

commit efd23e23c68d2fa90c24870c5f89db96796fd41e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 18:52:15 2011 -0500

    Take out excessive width

 gio/gmenuproxy.h | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 381b23fc85a4c5f94497394a68146c540cb26dab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 18:50:04 2011 -0500

    Reduce excessive width

 gio/gmenumarkup.h | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit f9f0ef19d7d163abc822e06f9e6b09c80cc8b1f7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 18:46:57 2011 -0500

    whitespace fix

 gio/gmenu.h | 1 +
 1 file changed, 1 insertion(+)

commit 0f88b7af3375ab6ed43be46e51409262526f0c70
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 18:12:52 2011 -0500

    Add some tests for links

 gio/tests/gmenumodel.c | 68
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

commit 0760bf5850ebde4d87db035d3b38c1f1873f0d2a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 16:51:13 2011 -0500

    Add parser roundtrip tests

 gio/tests/gmenumodel.c | 160
 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 158 insertions(+), 2 deletions(-)

commit a2aeea7acdd0c98b14c3b8d9519fc479748b0ca3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 16:50:17 2011 -0500

    GMenuMarkup: fixes uncovered by roundtrip testing

    The print function was forgetting to emit type information for
    attributes, and the parser was not handling types properly either.

 gio/gmenumarkup.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

commit d5a1b674f5a54ed0edef8d46d8e73715b7d88cd8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 13:46:49 2011 -0500

    Improve docs

    Specify that g_menu_item_set_attribute_value consumes floating
    @values.

 gio/gmenu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 41c19c7df8f13101a40e7df115efbb8cd8de3f67
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 02:16:51 2011 -0500

    GApplication: Add a menu example to the docs

 gio/gapplication.c                    |  8 +++
 gio/tests/Makefile.am                 |  4 ++
 gio/tests/gapplication-example-menu.c | 95
 +++++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+)

commit 8d96e68eeb6fddff167e730492be6f33a0e543a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 01:44:14 2011 -0500

    GMenu: Enforce attribute name restrictions

    The code assumes in various places that ':' does not occur
    in attribute names. We are a little more strict than that,
    and only allow lowercase ASCII, digits and '-'.

 gio/gmenu.c | 65
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 61 insertions(+), 4 deletions(-)

commit 9bebf15077e462f1c3e657df5d377b5ec6e806c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 01:16:39 2011 -0500

    Reduce excessive width of gmenu.h

 gio/gmenu.h | 198
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 99 insertions(+), 99 deletions(-)

commit 58a8c02dfb2b003d4bb104dbe622b31c816107bc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 01:06:17 2011 -0500

    Match up a parameter name

 gio/gmenu.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 60ab57c4b07edb4be50f240f07b8fbd7f73918a0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 00:54:17 2011 -0500

    Describe the org.gtk.Menus interface

    Even though we consider the interface to be an implementation
    detail, we should have internal documentation of the interface.

 gio/gmenuexporter.c | 101
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

commit cd22e1967d82cfd37cd018c058d7e60a3c92df6f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 27 00:52:51 2011 -0500

    Describe the org.gtk.Actions interface

    Even though we consider the interface to be an implementation
    detail, we should have internal documentation for the interface.

 gio/gactiongroupexporter.c | 93
 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

commit db34b1aebebfab110078ddea2f509fa338e7c8c7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 23:21:12 2011 -0500

    Rename exporter APIs

    There are no public 'exporter' objects, so don't allude to them
    in the function names. At the same time, we want to make it clear
    that these functions are D-Bus specific.

    The new APIs are
    g_action_group_dbus_export_start
    g_action_group_dbus_export_query
    g_action_group_dbus_export_stop
    g_menu_model_dbus_export_start
    g_menu_model_dbus_export_query
    g_menu_model_dbus_export_stop

 docs/reference/gio/gio-sections.txt | 12 ++++++------
 gio/gactiongroupexporter.c          | 30 +++++++++++++++---------------
 gio/gactiongroupexporter.h          | 16 ++++++++--------
 gio/gapplicationimpl-dbus.c         | 28 ++++++++++++++--------------
 gio/gdbusactiongroup.c              |  2 +-
 gio/gio.symbols                     | 12 ++++++------
 gio/gmenuexporter.c                 | 34
 +++++++++++++++++-----------------
 gio/gmenuexporter.h                 | 18 ++++++++----------
 gio/gmenuproxy.c                    |  2 +-
 gio/tests/gmenumodel.c              |  4 ++--
 10 files changed, 78 insertions(+), 80 deletions(-)

commit 435b2418dae32a5d5e5ee750744e4061d1cf07b8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 21:44:46 2011 -0500

    GActionGroup: Mention GMenuModel in the docs

 gio/gactiongroup.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit ae0bd032cac1931fba13bd7a20040760edcd349c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 22:17:47 2011 -0500

    Add g_application_set_menu

    This adds ane asy way to export menu information alongside
    the actions that are already exported by GApplication.

 docs/reference/gio/gio-sections.txt |  2 +
 gio/gapplication.c                  | 73
 +++++++++++++++++++++++++++++++++++--
 gio/gapplication.h                  |  4 ++
 gio/gapplicationimpl-dbus.c         | 39 ++++++++++++++++++++
 gio/gio.symbols                     |  2 +
 5 files changed, 117 insertions(+), 3 deletions(-)

commit 6dfb9d583f264da11430acbc7c141f3955fe78ed
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 21 23:51:48 2011 -0400

    Add GMenuModel testcases

 gio/tests/.gitignore   |   1 +
 gio/tests/Makefile.am  |   3 +
 gio/tests/gmenumodel.c | 625
 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 629 insertions(+)

commit d110fd9202a1084e1fe1d8efcfbdda1d078945e4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 21 22:49:54 2011 -0400

    Add GMenuProxy

    GMenuProxy can be used as a client-side wrapper
    for the a menu model that has been exported on D-Bus.

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  14 +
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   2 +
 gio/gmenuproxy.c                    | 858
 ++++++++++++++++++++++++++++++++++++
 gio/gmenuproxy.h                    |  44 ++
 8 files changed, 923 insertions(+)

commit 66e089f086c0243eb43847137081bf99f2fc89dc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 21:02:15 2011 -0500

    Add GMenuModel D-Bus exporter

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |   7 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   3 +
 gio/gmenuexporter.c                 | 884
 ++++++++++++++++++++++++++++++++++++
 gio/gmenuexporter.h                 |  45 ++
 7 files changed, 943 insertions(+)

commit 6b40d4eb6bf2a974e52be34e7c25b9f9f98242db
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 22:00:48 2011 -0500

    Add GMenu markup

    These functions serialize and deserialize a GMenuModel
    to and from XML.

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  10 +
 gio/Makefile.am                     |   5 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   6 +
 gio/gmenumarkup.c                   | 717
 ++++++++++++++++++++++++++++++++++++
 gio/gmenumarkup.h                   |  47 +++
 gio/menumarkup.dtd                  |  29 ++
 gio/menumarkup.xml                  |  26 ++
 gio/menumarkup2.xml                 |  75 ++++
 10 files changed, 917 insertions(+)

commit 13f59777350f120dd82d1bd36e15155057b073c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 22:48:24 2011 -0500

    Add GMenu

 docs/reference/gio/gio-docs.xml     |    1 +
 docs/reference/gio/gio-sections.txt |   62 +++
 docs/reference/gio/gio.types        |    1 +
 gio/Makefile.am                     |    2 +
 gio/gio.h                           |    1 +
 gio/gio.symbols                     |   29 +
 gio/gmenu.c                         | 1019
 +++++++++++++++++++++++++++++++++++
 gio/gmenu.h                         |  130 +++++
 8 files changed, 1245 insertions(+)

commit 12a39a05d3085783923a3613d6a93987732d4d0a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 22:46:51 2011 -0500

    Add GMenuModel

 docs/reference/gio/Makefile.am      |   4 +-
 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  76 +++
 docs/reference/gio/gio.types        |   8 +
 docs/reference/gio/menu-example.png | Bin 0 -> 31470 bytes
 docs/reference/gio/menu-model.png   | Bin 0 -> 20647 bytes
 gio/Makefile.am                     |   8 +-
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  22 +
 gio/giotypes.h                      |   2 +
 gio/gmenumodel.c                    | 954
 ++++++++++++++++++++++++++++++++++++
 gio/gmenumodel.h                    | 195 ++++++++
 12 files changed, 1268 insertions(+), 3 deletions(-)

commit df4cd241e5fd03d539295fa428a00a584b526353
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 22:30:02 2011 -0500

    GApplication: use GDBusActionGroup

    instead of the internal version of the same

 gio/gapplication.c          |  84 +++++-----------
 gio/gapplicationimpl-dbus.c | 234
 ++------------------------------------------
 gio/gapplicationimpl.h      |  14 +--
 3 files changed, 32 insertions(+), 300 deletions(-)

commit c249e10d117c432aad540b4009c334411c77ea2d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 1 02:41:30 2011 +0100

    Add GDBusActionGroup

    GDBusActionGroup can be used as a client-side wrapper
    for the an action group that has been exported on D-Bus.

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  20 ++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gdbusactiongroup.c              | 574
 ++++++++++++++++++++++++++++++++++++
 gio/gdbusactiongroup.h              |  74 +++++
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   6 +
 gio/gioenums.h                      |  20 ++
 gio/giotypes.h                      |   1 +
 10 files changed, 700 insertions(+)

commit bc5fe41dec00a80ee0f9e827898e75e0553ed39c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 30 10:40:51 2011 +0100

    GApplication: port action client to new D-Bus API

    for compatibility with GActionGroup exporter

 gio/gapplicationimpl-dbus.c | 205
 ++++++++++++++++++++++++--------------------
 1 file changed, 110 insertions(+), 95 deletions(-)

commit 20d1de3a1bfd0cc297dc8a5224fa274aaa6fca4a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 30 09:52:24 2011 +0100

    GApplication: use GActionGroup exporter

    instead of home-grown internal implementation of the same

 gio/gapplicationimpl-dbus.c | 203
 +++-----------------------------------------
 1 file changed, 12 insertions(+), 191 deletions(-)

commit 940ec94f0a0f1c1c77deaf4eb88722f155544445
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 01:02:21 2011 +0100

    Add GActionGroup D-Bus exporter

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |   7 +
 gio/Makefile.am                     |   2 +
 gio/gactiongroupexporter.c          | 624
 ++++++++++++++++++++++++++++++++++++
 gio/gactiongroupexporter.h          |  48 +++
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   3 +
 7 files changed, 686 insertions(+)

commit 8d1cc7f4635c1ab5cb9a7963b3dfebba56d87629
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 16:22:13 2011 -0500

    Revert "Use an XML blob for gapplication interface info"

    This reverts commit 8013401f6e4edb01dd31b716c179806b55d4064b.

 gio/gapplicationimpl-dbus.c | 165
 ++++++++++++++++++++++++++++----------------
 1 file changed, 107 insertions(+), 58 deletions(-)

commit 45818762d398588fd36be138e9981525d98bf687
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Dec 2 16:22:01 2011 -0500

    Revert "Forgot one interface..."

    This reverts commit 30580bdca7764525a49899dd56dcdde25a300a21.

 gio/gapplicationimpl-dbus.c | 27 +++------------------------
 1 file changed, 3 insertions(+), 24 deletions(-)

commit 888a52034bcd06b6b5aeac98d372216d1f7b2798
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 7 20:41:33 2011 -0500

    Updates

 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

commit 3d686e3d8f6af393b01fe38cd7d29517e52dea50
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 7 14:36:56 2011 -0500

    Clarify docs around main loop vfuncs

    Mention that the vfuncs are no longer used, and tweak the
    wording around what g_application_run() does.

    https://bugzilla.gnome.org/show_bug.cgi?id=665391

 gio/gapplication.c |  4 ++--
 gio/gapplication.h | 12 +++++++-----
 2 files changed, 9 insertions(+), 7 deletions(-)

commit 70dacf83d23ed468ff60972fd166769482d7195f
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Dec 7 10:25:24 2011 -0500

    Bug 665733 – GDBusConnection holds lock while calling destroynotify

    Fix this problem by always running the destroynotify from an idle.

    https://bugzilla.gnome.org/show_bug.cgi?id=665733

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c    | 45
 +++++++++++++++++----------------------------
 gio/tests/gdbus-export.c |  4 ++++
 2 files changed, 21 insertions(+), 28 deletions(-)

commit 386bb0faadd98c190f171cbdd4c51dba50e85505
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Dec 6 19:41:31 2011 +0000

    unicode: Fix a few issues with G_UNICHAR_MAX_DECOMPOSITION_LENGTH

    Raised by Matthias in bgo#665685 but which I didn't spot until
    after pushing
    commit 3ac7c35656649b1d1fcf2ccaa670b854809d4cd8.

    Renames G_UNICHAR_MAX_DECOMPOSITION_LEN to
    G_UNICHAR_MAX_DECOMPOSITION_LENGTH
    and fixes a few documentation issues.

    See: bgo#665685

 docs/reference/glib/glib-sections.txt | 1 +
 glib/gunicode.h                       | 4 ++--
 glib/gunidecomp.c                     | 5 +++--
 glib/guniprop.c                       | 2 +-
 4 files changed, 7 insertions(+), 5 deletions(-)

commit 3ac7c35656649b1d1fcf2ccaa670b854809d4cd8
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Dec 6 18:30:43 2011 +0000

    Bug 665685 — Add a #define for the max length of a Unicode
    decomposition

    Add G_UNICHAR_MAX_DECOMPOSITION_LEN for the maximum length of the
    decomposition of a single Unicode character.

    Closes: bgo#665685

 glib/gunicode.h   | 12 ++++++++++++
 glib/gunidecomp.c |  4 ++--
 glib/guniprop.c   |  4 ++--
 3 files changed, 16 insertions(+), 4 deletions(-)

commit 990af4b3725faba230abc6c2e68c112da6f13b41
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Dec 6 13:32:12 2011 -0500

    GDBus: Note in docs that g_dbus_node_info_new_for_xml() is using
    GMarkup

    This was discussed in bug 665634.

    https://bugzilla.gnome.org/show_bug.cgi?id=665634

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusintrospection.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 74e131551dcc347fa659183aa19558c0509f0445
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Dec 6 13:29:01 2011 -0500

    GDBus: fix link to D-Bus spec

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusintrospection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 10a154446c2427861656763b68f312e48f7d0bd6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Dec 6 13:20:39 2011 -0500

    Minor doc fix.

 glib/gunidecomp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 91fb373d553779b7b2b535c44a3236907f0a72c8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Dec 6 13:18:47 2011 -0500

    Minor

 glib/guniprop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6bb8fdaa5fad07713b189ea53e6c5afd67ad9b4e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 6 07:43:35 2011 -0500

    Make the qsort_r check cross-compile friendly

    Pointed out by Daniel Mack.

    https://bugzilla.gnome.org/show_bug.cgi?id=665607

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 482f226270efd6c0c8d336b9146376986979e1f4
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 5 22:40:18 2011 +0100

    outputstream: Clarify docs of flush()

    After questioning the semantics of flush on IRC, it seemed necessary
    to
    clarify what flushing is supposed to do. The Linux man page for
    fflush()
    seemed to cover it perfectly, so I just copied it.

    I did not add the "via the underlying write mechanism" part as that in
    my opinion is not something subclasses should need to guarantee.

 gio/goutputstream.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit fd1e9938b36677587dfe9960dacb678bbd3981bf
Author: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>
Date:   Wed Jan 19 19:08:15 2011 +0000

    Send CHANGES_DONE_HINT on file moves if no IN_CLOSE_WRITE is emitted

    This patch makes GFileMonitor to emit EVENT_CHANGES_DONE_HINT when
    EVENT_CREATED is emitted but the file is not opened for writing.

    On file moves across different mounted volumes, inotify will
    always emit
    IN_CREATE and IN_CLOSE_WRITE (plus other events).
    This translates into GIO's _EVENT_CREATED and
    _EVENT_CHANGES_DONE_HINT.

    On file moves across the same mounted volumes, inotify will emit
    IN_MOVED_FROM/IN_MOVED_TO which will be translated into
    _EVENT_DELETED/_EVENT_CREATED GIO's side. No _EVENT_CHANGES_DONE_HINT
    is
    emited afterwards.
    Under such circumstances a file indexer does not know when actually
    the
    file is ready to be indexed, either waiting too much or triggering the
    indexing twice. On small devices it's not advisable.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=640077
    Bug-NB: NB#219982
    Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Tomas Bzatek <tbzatek@redhat.com>

 gio/inotify/inotify-helper.c | 24 ++++++++++++++++++++++++
 gio/inotify/inotify-kernel.c |  4 +++-
 gio/inotify/inotify-kernel.h |  8 ++++++++
 3 files changed, 35 insertions(+), 1 deletion(-)

commit 83d0c8a7396e8c1f70619e01f0b0c06fd22790b7
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Nov 28 17:54:46 2011 +0000

    GDBusConnection: propagate error correctly if flags are inappropriate

    Previously, this would fail the assertion
    "connection->initialization_error != NULL" after the label "out".

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=665067
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 15437a7e5a89dcb2a812f829bc8e9e1db7ce350b
Author: Sam Thursfield <sam.thursfield@codethink.co.uk>
Date:   Thu Dec 1 15:48:27 2011 +0000

    Link to libpcre correctly when static linking

    https://bugzilla.gnome.org/show_bug.cgi?id=665298

 glib-2.0.pc.in | 1 +
 1 file changed, 1 insertion(+)

commit eb315b68cf6b868e100b8171661d2e162a37bf21
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Dec 2 18:27:07 2011 +0100

    Updated Spanish translation

 po/es.po | 203
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 98 insertions(+), 105 deletions(-)

commit a00530ecb0e8576e7a023f37a97528da4d0dfce5
Author: Tristan Van Berkom <tristanvb@openismus.com>
Date:   Fri Dec 2 11:20:21 2011 -0500

    GDBusInterfaceSkeleton: make it possible to export on multiple
    connections

    This is useful in peer-to-peer connections.

    With minor changes by David Zeuthen <davidz@redhat.com>.

    https://bugzilla.gnome.org/show_bug.cgi?id=662718

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gdbus-2.0/codegen/codegen.py    |  56 ++++--
 gio/gdbusinterfaceskeleton.c        | 364
 +++++++++++++++++++++++++++++-------
 gio/gdbusinterfaceskeleton.h        |   6 +
 gio/gio.symbols                     |   3 +
 gio/tests/Makefile.am               |   8 +-
 gio/tests/gdbus-peer.c              | 239 +++++++++++++++++++++++
 7 files changed, 592 insertions(+), 87 deletions(-)

commit 22da18fa706c685da015c9b9a786d810270b3a5f
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Wed Nov 30 10:20:13 2011 +0000

    GVariant: add preconditions to ref. counting functions

    These prevent GVariants from accidentally being brought back to
    life after
    being freed, and should make it easier to track down ref. counting
    issues.

    Closes: bgo#665184

 glib/gvariant-core.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 190645bcc40a4dda579cb5cabd3b1778628d9ef6
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Dec 1 18:01:02 2011 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 76
 ++++++++++++++++++++++++++++------------------------------------
 1 file changed, 33 insertions(+), 43 deletions(-)

commit e79834958718725493029a61c62f3faf6a4d039c
Author: Dan Winship <danw@gnome.org>
Date:   Thu Dec 1 13:10:25 2011 +0100

    GMemoryInputStream/GMemoryOutputStream: fix bug in previous commit

    A g_input_stream_read_async() implementation can't call
    g_input_stream_read() on itself directly because it will fail because
    the pending flag is already set. So fix that by invoking the vmethod
    directly rather than calling the wrapper. Likewise with
    GMemoryOutputStream.

    Add a test to gio/tests/memory-input-stream.c to catch read_async
    failures in the future.

 gio/gmemoryinputstream.c        | 12 ++++++--
 gio/gmemoryoutputstream.c       | 16 ++++++----
 gio/tests/memory-input-stream.c | 66
 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 86 insertions(+), 8 deletions(-)

commit a5876e5fc1b1e192e8cde664780957798b8a2607
Author: Dan Winship <danw@gnome.org>
Date:   Wed Nov 30 10:32:42 2011 +0100

    GMemoryInputStream/GMemoryOutputStream: make these properly
    subclassable

    The async methods were directly invoking their own implementations of
    the sync methods, making it impossible for a subclass to reimplement
    them.

    https://bugzilla.gnome.org/show_bug.cgi?id=664635

 gio/gmemoryinputstream.c  |  4 ++--
 gio/gmemoryoutputstream.c | 10 +++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

commit b13e79da62b256058e4ca1d9fdd46376d3013f16
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 29 22:53:50 2011 -0500

    Don't abort if g_ascii_strtod tests fail

    https://bugzilla.gnome.org/show_bug.cgi?id=652560

 glib/tests/strfuncs.c | 25 ++-----------------------
 1 file changed, 2 insertions(+), 23 deletions(-)

commit 22748dbbc9c20c149ccfd4ae99e7aeea490820da
Author: Geek87 <geek87@gmx.com>
Date:   Mon Jul 25 13:08:24 2011 +0200

    Remove two useless lines of code

    https://bugzilla.gnome.org/show_bug.cgi?id=648516

 glib/gtree.c | 2 --
 1 file changed, 2 deletions(-)

commit 27e70806c1e4a44d2ff753cba152446ab1762fd5
Author: Geek87 <geek87@gmx.com>
Date:   Mon Jul 25 13:06:02 2011 +0200

    Fix a little comment error in the _GTreeNode struct

    https://bugzilla.gnome.org/show_bug.cgi?id=648516

 glib/gtree.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3aa0fc43a6811cdc4126d5678e03ab991e1f4bf6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 29 22:09:58 2011 -0500

    Clarify local_command_line docs

    https://bugzilla.gnome.org/show_bug.cgi?id=641720

 gio/gapplication.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit f24d8247b3a20cc62b4be50a0515acffd7e7d277
Author: Nicola Fontana <ntd@entidi.it>
Date:   Tue Nov 29 22:02:00 2011 -0500

    Do not use static GTypeInfo and GInterfaceInfo

    Either g_type_register_static_simple (used by G_DEFINE_TYPE_EXTENDED)
    and G_IMPLEMENT_INTERFACE use automatic variables for GTypeInfo and
    GInterfaceInfo structs, while tutorials and source code often use
    static variables. This commit consistently adopts the former method.

    https://bugzilla.gnome.org/show_bug.cgi?id=600161

 docs/reference/gobject/tut_gtype.xml | 8 ++++----
 docs/reference/gobject/tut_howto.xml | 2 +-
 gobject/gboxed.c                     | 2 +-
 gobject/genums.c                     | 2 +-
 gobject/gobject.c                    | 2 +-
 gobject/gparam.c                     | 2 +-
 gobject/gtype.h                      | 2 +-
 gobject/gtypemodule.c                | 4 ++--
 gobject/gtypeplugin.c                | 2 +-
 gobject/gvaluetypes.c                | 2 +-
 gobject/testgobject.c                | 6 +++---
 tests/gobject/defaultiface.c         | 2 +-
 tests/gobject/deftype.c              | 2 +-
 tests/gobject/ifacecheck.c           | 2 +-
 tests/gobject/ifaceinit.c            | 2 +-
 tests/gobject/testcommon.h           | 6 +++---
 tests/refcount/objects.c             | 2 +-
 tests/refcount/objects2.c            | 2 +-
 tests/refcount/properties.c          | 2 +-
 tests/refcount/properties2.c         | 2 +-
 tests/refcount/signals.c             | 2 +-
 21 files changed, 29 insertions(+), 29 deletions(-)

commit 1f33446e1fae721cc6c8f260afe2ebfa42dd51c8
Author: Dan Winship <danw@gnome.org>
Date:   Tue Nov 29 21:45:37 2011 +0100

    gnetworkmonitornetlink.c: Make the error messages less geeky

    This makes several different errors have identical messages, but
    they're pretty much "can't happen" situations anyway.

    https://bugzilla.gnome.org/show_bug.cgi?id=664406

 gio/gnetworkmonitornetlink.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 69043de3e00cbc1f661e9613000cd820ea989ba5
Author: Dan Winship <danw@gnome.org>
Date:   Tue Nov 29 21:42:41 2011 +0100

    gzlibdecompressor.c: fix a comment

 gio/gzlibdecompressor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0627759331d857a3b99eec0ed2c13e5cf7f67130
Author: Michael Vogt <michael.vogt@ubuntu.com>
Date:   Tue Nov 29 12:00:38 2011 +0100

    Add missing annotation to g_file_set_attribute()

    g_file_set_attribute() also permits a NULL value for value_p, and
    requires it
    to be NULL to unset it. Also fix the wrong variable name in the
    documentation.

    Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>

 gio/gfile.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 30580bdca7764525a49899dd56dcdde25a300a21
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 19:57:44 2011 -0500

    Forgot one interface...

 gio/gapplicationimpl-dbus.c | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

commit 8013401f6e4edb01dd31b716c179806b55d4064b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 19:33:24 2011 -0500

    Use an XML blob for gapplication interface info

    This is both more readable and more efficient. Double win !

 gio/gapplicationimpl-dbus.c | 165
 ++++++++++++++++----------------------------
 1 file changed, 58 insertions(+), 107 deletions(-)

commit 4ce5a11dafb0999aa26b36b32df18124e8ebd51d
Author: Carlos Garcia Campos <cgarcia@igalia.com>
Date:   Fri Nov 25 15:39:31 2011 +0100

    gtester: Add command line option to skip tests

    https://bugzilla.gnome.org/show_bug.cgi?id=664809

 docs/reference/glib/gtester.xml |  7 +++++++
 glib/gtester.c                  | 18 ++++++++++++++++++
 glib/gtestutils.c               | 17 +++++++++++++++++
 3 files changed, 42 insertions(+)

commit e4b7cfcb038c4e19d23fae19e0d68705dfef2d63
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 22:38:32 2011 -0500

    Rearrange GApplication docs

    Move the GApplication docs to the front of the section,
    where they belong.

 docs/reference/gio/gio-docs.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 01ce06ac272aa31c5cf572d551195c45c4e65c15
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 21 23:54:31 2011 -0400

    gio.symbols: add g_application_[gs]et_default()

 gio/gio.symbols | 2 ++
 1 file changed, 2 insertions(+)

commit c7dc66602aeee9c1c3692666998bb77ae5818a0f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 01:42:21 2011 -0500

    Cosmetics

    Reword the title of GSimpleAction in the docs.

 gio/gsimpleaction.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a81cdf297ca97e375d28463556a7b838f4fb0ac1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 29 23:52:16 2011 -0400

    GApplication: add default application

 gio/gapplication.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gapplication.h |  3 +++
 2 files changed, 52 insertions(+)

commit 95c3796d6af8017d5b789938dc7518fd6576a65e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 30 09:47:40 2011 +0100

    GApplication: unregister action interface export

    We missed a few cases of unexporting the action group interface (in
    error cases, and on GApplication teardown).

 gio/gapplicationimpl-dbus.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 2cbc6d9ae6a949818f48c20d3f4230688371e2ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 26 19:43:46 2011 -0500

    GApplication: Implement query_action

 gio/gapplication.c | 138
 +++++++++++++----------------------------------------
 1 file changed, 32 insertions(+), 106 deletions(-)

commit c3a2c280c3697938f0666a737bbfb96ad20dc132
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 25 22:35:33 2011 -0500

    GSimpleActionGroup: Implement query_action

 gio/gsimpleactiongroup.c | 94
 +++++++++++-------------------------------------
 1 file changed, 20 insertions(+), 74 deletions(-)

commit f468e9c3097cb8a797091822c52fee29d5bdca90
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 24 19:52:48 2011 -0500

    Add g_action_group_query_action()

    This new API allows requesting multiple pieces of information about a
    particular action in one go and also simplifies the burden for
    GActionGroup implementations -- they need not implement all the
    separate
    APIs now.

 docs/reference/gio/gio-sections.txt |   7 +-
 gio/gactiongroup.c                  | 184
 +++++++++++++++++++++++++++++++++++-
 gio/gactiongroup.h                  |  17 ++++
 gio/gio.symbols                     |   1 +
 4 files changed, 204 insertions(+), 5 deletions(-)

commit fcc69fd318f55ca0edc52864b4c0488b304b8382
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Fri Nov 11 17:08:26 2011 +0100

    GBytes: A new type for an immutable set of bytes.

     * Represents an immutable reference counted block of memory.
     * This is basically the internal glib GBuffer structure exposed,
       renamed, and with some additional capabilities.
     * The GBytes name comes from python3's immutable 'bytes' type
     * GBytes can be safely used as keys in hash tables, and have
       functions for doing so: g_bytes_hash, g_bytes_equal
     * GByteArray is a mutable form of GBytes, and vice versa. There
       are functions for converting from one to the other efficiently:
       g_bytes_unref_to_array() and g_byte_array_free_to_bytes()
     * Adds g_byte_array_new_take() to support above functions

    https://bugzilla.gnome.org/show_bug.cgi?id=663291

 docs/reference/glib/Makefile.am             |   2 +-
 docs/reference/glib/glib-sections.txt       |  21 +-
 docs/reference/gobject/gobject-sections.txt |   1 +
 glib/Makefile.am                            |   5 +-
 glib/garray.c                               |  77 ++++-
 glib/garray.h                               |   4 +
 glib/gbuffer.c                              | 210 ------------
 glib/gbufferprivate.h                       |  88 -----
 glib/gbytes.c                               | 478
 ++++++++++++++++++++++++++++
 glib/gbytes.h                               |  69 ++++
 glib/glib.h                                 |   1 +
 glib/glib.symbols                           |  16 +
 glib/gmappedfile.c                          |  11 -
 glib/gmappedfile.h                          |   1 +
 glib/gtimezone.c                            |  27 +-
 glib/gvariant-core.c                        |  50 +--
 glib/gvariant-core.h                        |   6 +-
 glib/gvariant.c                             |  26 +-
 glib/tests/.gitignore                       |   1 +
 glib/tests/Makefile.am                      |   3 +
 glib/tests/array-test.c                     |  33 ++
 glib/tests/bytes.c                          | 331 +++++++++++++++++++
 gobject/gboxed.c                            |   1 +
 gobject/glib-types.h                        |  10 +
 gobject/gobject.symbols                     |   1 +
 25 files changed, 1102 insertions(+), 371 deletions(-)

commit 069ec3719c65be5663c10eb98569e45e13501d97
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 23 18:13:44 2011 -0500

    Fix distcheck

    Now that we have switched to template-free docs, these
    hand-rolled cleanup rules get in the way.

 docs/reference/gio/Makefile.am                              | 2 +-
 docs/reference/gio/gdbus-object-manager-example/Makefile.am | 2 +-
 docs/reference/glib/Makefile.am                             | 2 +-
 docs/reference/gobject/Makefile.am                          | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 0104c62f3fda9016658809d79cf395d78611e35a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Oct 20 15:01:47 2011 +0100

    GInitable, GAsyncInitable: not initializing gives undefined behaviour

    This is the ISO C sense of undefined behaviour, in which
    works-by-coincidence, critical warning, abort,
    demons-fly-out-of-your-nose
    are all valid implementations.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662208
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gasyncinitable.c |  8 +++++---
 gio/ginitable.c      | 31 ++++++++++++++++++++-----------
 2 files changed, 25 insertions(+), 14 deletions(-)

commit 968ef5f5ffbe5e694bae3052bea34e9b9d1aef35
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Nov 23 11:20:15 2011 +0000

    GDBusWorker: continue_writing: initialize flush_async_data if closing

    This was a regression in commit f41178c6c: flush_async_data wasn't
    necessarily NULL in the "don't flush" case.

    Also move initialization of these variables up so that it's
    unconditional, since that's easier to verify than checking
    that each branch gets it right.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=664617
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 gio/gdbusprivate.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit 1b01109377a4780431996d617643704351a27d8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 22 23:57:18 2011 -0500

    Add some more mainloop tests

 glib/tests/mainloop.c | 178
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 178 insertions(+)

commit d0e2865a2ed237be1867b212cba6740e7f15fbc0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 22 19:31:30 2011 -0500

    Remove unnecessary includes

    These were meant for some other test that ended up not getting
    added. This fixes bug 664559.

 glib/tests/mainloop.c | 3 ---
 1 file changed, 3 deletions(-)

commit 2da24259ab2a4da63885155460e281beb3d5998b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 22 19:25:03 2011 -0500

    Fix !debug builds

    As pointed out by Chun-wei Fan in bug 664455, parts of the merged
    gobjectnotifyqueue.c code ended up inside an #ifdef G_ENABLE_DEBUG
    section.

 gobject/gobject.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit 6dde6b7f21af0d3748f142c3f718f1d4cb21739e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 22 19:12:48 2011 -0500

    Add back required _XOPEN_SOURCE define

    This got lost somewhere between 2.30 and now, but it is needed
    for isnan(). See bug 664354, reported by Tim Mooney.

 glib/tests/strfuncs.c | 1 +
 1 file changed, 1 insertion(+)

commit 345688c9e9d811b2844ea573c82be63cb02996ce
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 22 17:32:04 2011 -0500

    GApplication: don't fail if can't get session bus

    If we can't get on the session bus, just behave like a normal
    non-unique
    application.

    This turns out to be remarkably easy to implement and lets us avoid
    adding a 'dummy' backend.

    Add a test for this case as well.

    Idea from Zachary Dovel.

    https://bugzilla.gnome.org/show_bug.cgi?id=651997

 gio/gapplicationimpl-dbus.c | 15 +++++++++------
 gio/tests/gapplication.c    | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 6 deletions(-)

commit 1f02ef3205e810dd937f316f5a7b58ecc2893d59
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 22 11:06:07 2011 -0500

    gio: Move gmodule to Requires.private

    Users of GIO are not generally expected to use gmodule API,
    so don't force them all to link against it.

 gio-2.0.pc.in      | 5 +++--
 gio-unix-2.0.pc.in | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

commit c4a11858cfb098ccc25d35dd7f5461c51b7f6ad3
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Nov 22 12:39:54 2011 +0000

    GDBusConnection: don't pass boolean > 1 to _g_dbus_worker_new

    This happens to work at the moment (because GDBusWorker.frozen is a
    gboolean and not just a 1-bit bitfield), but isn't right: the gboolean
    ends up with values 0 or
    G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING
    (which is more than 1).

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=664558
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95faa44f2d04593f201a2d98210575e894d4cf01
Author: Dan Winship <danw@gnome.org>
Date:   Tue Nov 22 08:56:54 2011 -0500

    GSocketInputStream/GSocketOutputStream: fix win32 build

    based on a patch from Chun-wei Fan

    https://bugzilla.gnome.org/show_bug.cgi?id=664455

 gio/gsocketinputstream.c  | 10 +++++++---
 gio/gsocketoutputstream.c |  9 +++++++--
 2 files changed, 14 insertions(+), 5 deletions(-)

commit 38a00cec67709e5c154398e8cbb8f15a15bed583
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Mon Nov 21 23:06:15 2011 +0100

    gio/tests: Fix for -Werror=format-security

 gio/tests/test-pipe-unix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b2cb386b78203fc2e3fb540e94dc6eab10a1a0ef
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 21 15:21:23 2011 -0500

    post-release bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 36c21d4790044683a042f8d9479ffc5798914b5b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 21 12:18:32 2011 -0500

    release glib 2.31.2

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 59623973fa1853552f0bd59c850aa9c505c42d7d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 21 12:36:43 2011 -0500

    dist gio/tests/key8.pem

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 4bb411948c9ca00a534e5ec06efbf8ef22fc07f1
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Nov 1 18:03:12 2011 +0000

    Add test case for #662395

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662395
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>

 gio/tests/Makefile.am              |  10 +
 gio/tests/gdbus-connection-flush.c | 384
 +++++++++++++++++++++++++++++++++++++
 2 files changed, 394 insertions(+)

commit 96deb40caaf82bc9c51675515971dc3d638c72a0
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Nov 1 16:49:36 2011 +0000

    GDBus tests: factor out TestIOStream, test_pipe and test_bidi_pipe

    These might even make useful public API if they grew a Windows
    implementation, but for now they can be Unix-only test API.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662395
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>

 gio/tests/Makefile.am        |  10 ++-
 gio/tests/gdbus-non-socket.c | 143
 ++++++++++---------------------------------
 gio/tests/test-io-stream.c   | 104 +++++++++++++++++++++++++++++++
 gio/tests/test-io-stream.h   |  53 ++++++++++++++++
 gio/tests/test-pipe-unix.c   | 130
 +++++++++++++++++++++++++++++++++++++++
 gio/tests/test-pipe-unix.h   |  37 +++++++++++
 6 files changed, 365 insertions(+), 112 deletions(-)

commit bae9928246d5104e1d73a60dd66bfbc45740d640
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Nov 21 17:20:52 2011 +0000

    _g_dbus_worker_flush_sync: always flush if we need to

    We didn't previously flush in a couple of cases where we should have
    done:

    * a write is running when flush is called: we should flush after it
      finishes

    * writes have been made since the last flush, but none are pending or
      running right now: we should flush the underlying transport straight
      away

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662395
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>

 gio/gdbusprivate.c | 43 +++++++++++++++++++++++++++++++++++++------
 1 file changed, 37 insertions(+), 6 deletions(-)

commit f41178c6c79a00a1fb3a99bc3ae7c88a85c833fc
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Nov 21 17:18:01 2011 +0000

    GDBusWorker: move flush async op into continue_writing()

    This makes it easier to schedule a flush, by putting it on the
    same code
    path as writing and closing.

    Also change message_written to expect the lock to be held, since all
    that's left in that function either wants to hold the lock or doesn't
    care, and it's silly to release the lock immediately before calling
    message_written, which just takes it again.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662395
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>

 gio/gdbusprivate.c | 101
 ++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 68 insertions(+), 33 deletions(-)

commit 301332168b096e8c64e26932e2a02bd24fafdbab
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Nov 21 17:16:16 2011 +0000

    schedule_write_in_worker_thread: require caller to lock; rename
    accordingly

    When we use this function to schedule a flush, it'll be called
    with the lock held. Releasing and immediately re-taking the lock would
    be pointless.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662395
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>

 gio/gdbusprivate.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 56eb16ff50cee51117db2e4979f5632a8df19e40
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Oct 21 14:43:44 2011 +0100

    GDBusWorker: rename some functions

    maybe_write_next_message now also closes, and I'm about to make it
    consider whether to flush as well, so its name is increasingly
    inappropriate. Similarly, write_message_in_idle_cb is a wrapper around
    it which could do any of those things.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662395
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>

 gio/gdbusprivate.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 18482ab17ef5abe3b41bf0f6a076546ff1a5b28e
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Nov 21 17:14:55 2011 +0000

    GDBusWorker: distinguish between 3 sorts of output that might
    be pending

    If the user calls flush_sync() with no messages in the queue, but an
    async write call pending, then we ought to flush after that async
    write
    returns (although we don't currently do that). If it was an async
    close
    or flush that was pending, there's no need to flush (again)
    afterwards.
    So, we need to distinguish.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662395
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>

 gio/gdbusprivate.c | 71
 ++++++++++++++++++++++++++++++------------------------
 1 file changed, 39 insertions(+), 32 deletions(-)

commit a795e563dfec28842846700d30360acaff9699e3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 21 12:02:02 2011 -0500

    Drop last uses of @returns:

 gio/gapplication.c            |  24 +++++---
 gio/gkeyfilesettingsbackend.c |   3 +-
 gio/gsettings.c               | 128
 ++++++++++++++++++++++++++----------------
 gio/gsettings.h               |  11 ++--
 gio/gsettingsbackend.c        |  18 ++++--
 5 files changed, 118 insertions(+), 66 deletions(-)

commit 0f1fb417bf0425fc4d5c277ffb86b881fd3f1c48
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 21 11:39:52 2011 -0500

    Missed a couple of @returns

 glib/gvariant.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 0e0554bd62e897f001aaa9388345c1d4e62614af
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 21 11:33:05 2011 -0500

    GVariant: drop use of @returns

 glib/gvariant-core.c       |  42 +++++---
 glib/gvariant-parser.c     |   6 +-
 glib/gvariant-serialiser.c |   6 +-
 glib/gvariant.c            | 240
 +++++++++++++++++++++++++++++----------------
 glib/gvarianttype.c        |  84 ++++++++++------
 5 files changed, 249 insertions(+), 129 deletions(-)

commit 4527e7cbf75f5f06a3f8b3ee9c5ecb16f6a27406
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 11:09:42 2011 -0500

    gbitlock: Drop @returns syntax from doc comments

 glib/gbitlock.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 22d3972284df905e948143792afc8865b193700e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 11:05:43 2011 -0500

    GBuffer: Drop @returns syntax from doc comments

 glib/gbuffer.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit f62ee0a0ca29c263083f15d3dd144dc1fb01be22
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 11:03:31 2011 -0500

    GSocketClient: Drop @returns syntax from doc comments

 gio/gsocketclient.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b9f0cb0f0754d5985cef5e01c2761975eacdd87b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 11:02:30 2011 -0500

    GSimplePermission: Drop @returns syntax in doc comments

 gio/gsimplepermission.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 2011ecd6ac9dff37aaab9a0d831b78c369375b4b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 11:01:16 2011 -0500

    GPermission: Drop @returns syntax from doc comments

 gio/gpermission.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

commit ef4ae742cecf696acb0449ab08ad4dac2a91aac2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 01:53:29 2011 -0500

    Improve test coverage

 glib/tests/test-printf.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit 89ad8bda233cb69608570471a18bc3c42d28db28
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 01:40:51 2011 -0500

    Improve mainloop test coverage slightly

 glib/tests/mainloop.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit b0fa0968705743ff81df7e22b4f5417cd22cf882
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 01:02:50 2011 -0500

    Improve test coverage

 glib/tests/keyfile.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 0fd14b1a56085d59fcb2619dd5071d854997e4d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 00:27:25 2011 -0500

    Fix a case conversion bug

    For titlecase chars without uppercase variant, we were returning
    0, contrary to the docs.

 glib/guniprop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5197870665c0b90f3d3e475f1cd8c64f7cfb7bd2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 21 00:27:12 2011 -0500

    Improve test coverage

 glib/tests/unicode.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

commit 4cbacb91de6010c0d852979202901e70e24de790
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 20 23:18:20 2011 -0500

    Add a test for g_unichar_isdefined

 glib/tests/unicode.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 3aeddaa2d4d9c2eba708e24e2368536e7eeee8da
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 21 11:53:02 2011 +0800

    gio/Makefile.am

    Filter out yet another *nix only source file from the Visual C++
    project
    file completion rules.

 gio/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit fee6293bc9703c6c31d4a6dcb6e5b572b75a283d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 21 10:45:27 2011 +0800

    Update GLib Visual C++ projects

    Also link to WinMM.lib since timeGetTime is used (commit 8d023c27).

 build/win32/vs10/glib.vcxprojin | 16 ++++++++--------
 build/win32/vs9/glib.vcprojin   | 16 ++++++++--------
 2 files changed, 16 insertions(+), 16 deletions(-)

commit 928e356cdbf48d6c7967e5d3bc4135c1c1a9ed55
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Nov 21 01:59:07 2011 +0100

    Updated Galician translations

 po/gl.po | 5966
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 3018 insertions(+), 2948 deletions(-)

commit 0878f5ba438b153c1654d3275527442b7e4f5008
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 20 15:12:05 2011 -0500

    GFile: Add some introspection annotations

    progress_callback in g_file_copy and g_file_copy_async may be NULL.
    Annotations should reflect that. Pointed out by Carlo Teubner.

    https://bugzilla.gnome.org/show_bug.cgi?id=664415

 gio/gfile.c | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

commit ff2f4a12ee673cbb020d44fca2adb81be3c99f49
Author: Josselin Mouette <joss@debian.org>
Date:   Sun Nov 20 16:53:36 2011 +0100

    Document that g_list_sort is a stable sort.

    This is a guarantee for the future so that applications can rely
    on it.

    https://bugzilla.gnome.org/show_bug.cgi?id=531973

 glib/glist.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b6732da5e749b73f6386d9da87eec2aa867d89b0
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Nov 20 10:10:13 2011 +0100

    Updated Spanish translation

 po/es.po | 81
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 41 insertions(+), 40 deletions(-)

commit d920cb6bdbefc20d9dfb33b289b388a7e63415c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 17 23:30:32 2011 -0500

    GApplication: unregister bus name

    https://bugzilla.gnome.org/show_bug.cgi?id=647987

 gio/gapplicationimpl-dbus.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 6c7387f6d13d8e1db16a754d7b7c25635b2118f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 19 16:23:33 2011 -0500

    Trivial doc typo fix

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b55daa7f599e77f3abedb747eb70859d8ecdeae7
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat Nov 19 12:02:08 2011 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 5818
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2935 insertions(+), 2883 deletions(-)

commit 1dc8d1f93213a08d8f63bcadf31ce0e3d169b936
Author: Dan Winship <danw@gnome.org>
Date:   Fri Nov 18 15:05:34 2011 -0500

    GTlsCertificate: support unencrypted PKCS#8 private keys

    PKCS#8 is the "right" way to encode private keys. Although the APIs do
    not currently support encrypted keys, we should at least support
    unencrypted PKCS#8 keys.

    https://bugzilla.gnome.org/show_bug.cgi?id=664321

 gio/gtlscertificate.c       | 76
 ++++++++++++++++++++++++++++++++-------------
 gio/tests/key8.pem          | 16 ++++++++++
 gio/tests/tls-certificate.c | 36 ++++++++++++++++++++-
 3 files changed, 105 insertions(+), 23 deletions(-)

commit cb74c366783944057492bae1e6b9472e36e2e7f1
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu Nov 17 13:04:04 2011 -0500

    [gio] Terminate connect call when application proxy is used

    The connect_async() calls would never terminated when an application
    side
    proxy was being used. Note we also skip over TLS handshake in
    this case,
    as the application may have to do some proxy handshake before.

 gio/gsocketclient.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit d2fd6dac4a794211eb2c1b034f67d6bcfc348b20
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Nov 17 22:30:29 2011 +0100

    GMain: allow NULL context to g_source_attach

    Documentation says it's fine and means default context, but the
    annotations
    are missing (and thus bindings would complain).

    https://bugzilla.gnome.org/show_bug.cgi?id=664302

 glib/gmain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 71d3dad3ffc13a102689f00a8ae398c5d96577c4
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Nov 17 22:29:18 2011 +0100

    GPollable*Stream: expose source methods to introspection

    GSource has been introspectable for a while, so can stop skipping
    methods of GPollableInputStream/OutputStream that return it.

    https://bugzilla.gnome.org/show_bug.cgi?id=664302

 gio/gpollableinputstream.c  | 4 ++--
 gio/gpollableoutputstream.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 951827379f34e491a72473a45eb84618c8715f73
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Fri Nov 18 10:46:35 2011 +0100

    gsignal.h: Remove trailing comma

 gobject/gsignal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f9cc0786715afa977e4fa55a684ba2e12f98a203
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 18 09:41:07 2011 +0000

    We need <locale.h> in gsettingsschema.c now

    for LC_TIME (since we moved a bunch of code over from gsettings.c).

 gio/gsettings.c       | 1 -
 gio/gsettingsschema.c | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 4ae42ceb3c6f671d41a390aa664edd2f5f21fb4a
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu Nov 17 13:01:05 2011 -0500

    Clear proxy address upon retry

    The proxy address was not cleared between each attempt. That
    would lead
    to leak or worse, trying to do the proxy handshake on the final
    destination address. To make all this safer, I have regroup all
    the cleanup
    where the iterations starts.

    https://bugzilla.gnome.org/show_bug.cgi?id=664141

 gio/gsocketclient.c | 36 ++++++------------------------------
 1 file changed, 6 insertions(+), 30 deletions(-)

commit 216fd8a82c902486ba5e5bdcf4a0a0d3d61036c4
Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Date:   Mon Nov 14 22:06:07 2011 +0100

    Silence compiler warnings

    Fix several warnings for format strings (-Werror=format-security) and
    set but unused variables (-Wunused-but-set-variable)

    https://bugzilla.gnome.org/show_bug.cgi?id=664144

 tests/iochannel-test.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit fcffe6abbb1363b4645752ef2f06c098767f2194
Author: Jürg Billeter <j@bitron.ch>
Date:   Fri Nov 4 22:48:56 2011 +0100

    GKeyFile: Accept empty files

    It already accepts files consisting solely of whitespace.

    https://bugzilla.gnome.org/show_bug.cgi?id=663432

 glib/gkeyfile.c | 8 --------
 1 file changed, 8 deletions(-)

commit a0c755710cdf3e06622b34e10088d4209189e6f9
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 18 11:14:20 2011 +0100

    Document exactly what g_time_val_to_iso8601() produces

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=537637
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 glib/gtimer.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit dc89b51c2d71088c014ec94572629aabf143310e
Author: Alexandre Rostovtsev <tetromino@gentoo.org>
Date:   Wed Nov 16 15:05:46 2011 +0000

    _g_dbus_get_machine_id(): check /etc/machine-id too

    machine-id can be in /etc or in /var/lib/dbus.

    [amended with slightly revised error handling -smcv]

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=663928

 gio/gdbusprivate.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 8d9f600aeab76277abfad0ee924954297a1c06d9
Author: Rico Tzschichholz <ricotz@t-online.de>
Date:   Thu Nov 17 19:46:54 2011 +0100

    Remove redefinition of typedef 'GSettingsSchemaSource'

 gio/gsettingsschema.c | 2 --
 1 file changed, 2 deletions(-)

commit 99718b9e221b032545674662a3ec7d959e38f813
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 17 17:40:36 2011 +0000

    start on the NEWS

 NEWS | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 7f285291900f0cf7892bd79a5721d95f9bcdce4e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 17 17:33:19 2011 +0000

    g_settings_new_full(): more docs

 gio/gsettings.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit ee31c7f4ed7317fdae06ee5d37158908dcc83ca5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 17 14:02:39 2011 +0000

    add plugin example for GSettingsSchemaSource

 gio/gsettingsschema.c | 89
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 88 insertions(+), 1 deletion(-)

commit a4421529b88a1ff2229102ab6853039007ab6bf8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 17 10:06:49 2011 +0000

    Add gtk-doc for gsettingsschema{,source}

 docs/reference/gio/Makefile.am      |   2 +-
 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  30 ++++++
 gio/gsettingsschema.c               | 188
 +++++++++++++++++++++++++++++++++++-
 4 files changed, 219 insertions(+), 2 deletions(-)

commit 011a71cf7167479d4006685acf6b8ac8cad3be34
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 16 23:24:46 2011 -0500

    'make dist' fixes

 gio/Makefile.am       | 1 +
 gio/tests/Makefile.am | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit 97cf2d78c58c942538ab125bd90bf23841e169b0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 16 22:25:16 2011 -0500

    settings-source test: Check returned error as well

 gio/tests/gsettings.c | 1 +
 1 file changed, 1 insertion(+)

commit a7ce1953fa1dc5aef72814678494cb94a9668611
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 16 22:12:21 2011 -0500

    Trivial typo fix

 gio/gsettingsschema.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f47264ef5c4cfdb1abb903b4d8409352c65f98b9
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Nov 16 14:51:45 2011 -0500

    gsettings: add annotations for _new_full()

    The path and backend arguments to g_settings_new_full are optional.

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6339b5fe2de6e49807938983805152bd7c94ef0a
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Nov 16 14:53:03 2011 -0500

    schema source: avoid introspection confusion

    Any method that has its prefix'd argument as its first parameter
    will be
    interpreted by introspection as a method. We don't want this, so
    we need
    to swap the first two parameters.

 gio/gsettingsschema.c | 4 ++--
 gio/gsettingsschema.h | 4 ++--
 gio/tests/gsettings.c | 6 +++---
 3 files changed, 7 insertions(+), 7 deletions(-)

commit bef773408cfebd5a80475c32d96a2b14afaabf8e
Author: Jasper St. Pierre <jstpierre@mecheye.net>
Date:   Wed Nov 16 14:51:27 2011 -0500

    gsettingsschema: Use the trusted parameter

 gio/gsettingsschema.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 148f731748a586ecc2d6e15afcc760a46e929a84
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 10:38:04 2011 +0000

    Add test case and fix some bugs

    Add the first test case for the schema source functionality and fix a
    couple of bugs that got uncovered by that.

 gio/gsettings.c                                 |  3 +-
 gio/gsettingsschema.c                           |  3 +-
 gio/tests/gsettings.c                           | 89
 +++++++++++++++++++++++++
 gio/tests/org.gtk.schemasourcecheck.gschema.xml |  7 ++
 4 files changed, 100 insertions(+), 2 deletions(-)

commit fee2c87ba133cf029cb4a285cbb4d057d0d73391
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 10:37:30 2011 +0000

    Add g_settings_schema_source_new_from_directory()

    It is now possible for plugin loading systems to do the right thing.

 gio/gio.symbols       |  1 +
 gio/gsettingsschema.c | 25 +++++++++++++++++++++++++
 gio/gsettingsschema.h | 23 ++++++++++++++---------
 3 files changed, 40 insertions(+), 9 deletions(-)

commit 446eda8c2b8656bf18b233a04c415f20821ae138
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 12:42:02 2011 +0000

    Clarify docs/params for 'schema' vs 'schema id'

    Clean up our parameter naming and documentation to draw a clearer line
    between a schema and its identifier.

 gio/gsettings.c | 45 ++++++++++++++++++++++++---------------------
 gio/gsettings.h |  8 ++++----
 2 files changed, 28 insertions(+), 25 deletions(-)

commit 1e700720657aa75b0ac4d2457b2ee2f216477c87
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 12:38:01 2011 +0000

    Add g_settings_new_full() taking GSettingsSchema

 gio/gio.symbols |  1 +
 gio/gsettings.c | 37 +++++++++++++++++++++++++++++++++++++
 gio/gsettings.h |  4 ++++
 3 files changed, 42 insertions(+)

commit 1c8ae819edf2f2be4e4ad89dee534309ff62ef75
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 12:16:50 2011 +0000

    GSettings: add 'settings-schema' property

    Ideally we'd have called this 'schema', but it is already used.

 gio/gsettings.c | 53
 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)

commit 269c99946345efd2bbf17a7b9778615e38ae046e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 12:28:28 2011 +0000

    add boxed types for GSettingSchema{,Source}

 gio/gio.symbols       | 2 ++
 gio/gsettingsschema.c | 3 +++
 gio/gsettingsschema.h | 8 +++++++-
 3 files changed, 12 insertions(+), 1 deletion(-)

commit c25a36c920e2b884ef0856bb1bf6679ab38d7132
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 11:56:18 2011 +0000

    Drop the 'schema_name' field of GSettings

    This is strictly redundant now that we can get the ID from the schema
    itself.  Its only other purpose was to get the schema name from the
    set_property() call to the constructed() call and we can avoid that by
    doing the schema lookup at the time of the property being set.

 gio/gsettings.c | 68
 +++++++++++++++++++++++++++++----------------------------
 1 file changed, 35 insertions(+), 33 deletions(-)

commit 48b99017de2057666d442167d9f329b0724cec02
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 11:39:12 2011 +0000

    speak of 'schema id' rather than 'schema name'

    Schemas are identified by id='' in the xml file, so we should use the
    same language on the C and GObject property APIs.

 gio/gio.symbols       |  2 +-
 gio/gsettings.c       | 38 +++++++++++++++++++-------------------
 gio/gsettingsschema.c | 25 ++++++++++++-------------
 gio/gsettingsschema.h |  4 ++--
 4 files changed, 34 insertions(+), 35 deletions(-)

commit 736a286dce9dec2d9b331ed0df14fb984107a254
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 11:31:58 2011 +0000

    GSettings: deprecate 'schema' property

    This should have been called 'schema-name'.

 gio/gsettings.c | 45 ++++++++++++++++++++++++++++++++++-----------
 1 file changed, 34 insertions(+), 11 deletions(-)

commit 3bcf1137f4f9a9c84814f3a2102d06d90858daa2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 08:03:38 2011 +0000

    drop the now-trivial g_settings_schema_new

    Combine it into g_settings_constructed()

 gio/gsettings.c                | 12 +++++++++++-
 gio/gsettingsschema-internal.h |  2 --
 gio/gsettingsschema.c          | 19 -------------------
 3 files changed, 11 insertions(+), 22 deletions(-)

commit d5fb032f726dfc712a3e863adc6707c205b69da3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 08:00:16 2011 +0000

    new public header: gsettingsschema.h

    Expose some GSettingsSchemaSource and GSettingsSchema APIs.

    These are mostly useless so far...

 gio/Makefile.am                |  1 +
 gio/gio.h                      |  1 +
 gio/gio.symbols                |  8 ++++++++
 gio/gsettingsschema-internal.h | 12 +-----------
 gio/gsettingsschema.c          |  1 +
 gio/gsettingsschema.h          | 43
 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 55 insertions(+), 11 deletions(-)

commit 2633f2903ea3ec5f5019f6c3fe57b687fd2d3eb9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 07:47:56 2011 +0000

    Add non-aborting g_settings_schema_source_lookup()

    And rewrite g_settings_schema_new() in terms of it

 gio/gsettingsschema.c | 66
 ++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 47 insertions(+), 19 deletions(-)

commit bf5626ddc20f973baf92edfc3c888ef77e9de1db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 07:31:20 2011 +0000

    GSettingSchemaSource: add refcounting

 gio/gsettingsschema.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit e01a43b6216a27194fddcabe9e864ab40c052d50
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 07:24:48 2011 +0000

    GSettingsSchema: use our own linked lists

    Switch from GSList for the list of schema sources to using our own
    linked list type called GSettingsSchemaSource.

 gio/gsettingsschema.c | 46 +++++++++++++++++++++++++++++++---------------
 1 file changed, 31 insertions(+), 15 deletions(-)

commit 5ec84e805626657d0470accfebea72ddcbadf052
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 15 07:16:48 2011 +0000

    GSettingsSchema: alter our 'reverse' technology

    Instead of building a reversed linked list by prepending in order and
    then reversing it at the end, prepend in reverse by iterating
    backwards
    through the directories (to get a list in-order when we're done).

 gio/gsettingsschema.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

commit 104f7353a7c86a8a34b1b284d1b7d453eacb0c74
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 14 17:15:58 2011 +0100

    move GSettingsSchemaKey to gsettingsschema.c

    These functions no longer have anything to do with GSettings
    itself, so
    they should not be in that file anymore.

    GSettings still wants direct access to the GSettingsSchemaKey
    structure,
    so put that one in gsettingsschema-internal.h.

 gio/gsettings.c                | 333
 +----------------------------------------
 gio/gsettingsschema-internal.h |  50 +++++++
 gio/gsettingsschema.c          | 312
 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 363 insertions(+), 332 deletions(-)

commit 53b591854586171c05ea602795e27982faea5eaa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 14 17:08:31 2011 +0100

    GSettingsSchemaKey: store the GSettingsSchema*

 gio/gsettings.c | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

commit 54964e22d481f0ebac8bd3c0fb13fd7569013b57
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 14 17:03:57 2011 +0100

    g_settings_schema_key_init: take GSettingsSchema*

    instead of of GSettings *

 gio/gsettings.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit 10907cafc39958fc65b8c8082cbbe08b53e96659
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 14 17:02:04 2011 +0100

    add internal g_settings_schema_get_name()

 gio/gsettingsschema-internal.h | 2 ++
 gio/gsettingsschema.c          | 6 ++++++
 2 files changed, 8 insertions(+)

commit e6b4074e41ae379a17768b199c5adc2a1a3e02cb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 13 23:47:49 2011 +0100

    rename GSettingsKeyInfo to GSettingsSchemaKey

 gio/gsettings.c | 347
 +++++++++++++++++++++++++++-----------------------------
 1 file changed, 169 insertions(+), 178 deletions(-)

commit 426b146e5f31fa4d788dfd78857499dabf64000e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 13 23:38:47 2011 +0100

    GSettingsKeyInfo: rename field 'key' to 'name'

 gio/gsettings.c | 44 +++++++++++++++++++++-----------------------
 1 file changed, 21 insertions(+), 23 deletions(-)

commit ca2004fe73ca853bc1f9ade6160c1b59d2865c67
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 13 23:35:27 2011 +0100

    remove GSettings* from GSettingsKeyInfo

    This way GSettingsKeyInfo depends strictly on the information in the
    schema.  Pass the GSettings* around separately where we need it.

 gio/gsettings.c | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

commit d6c3c2f3c2fe0f22870abb643853640dba5cc8be
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 13 23:31:39 2011 +0100

    store some extra info in GSettingsKeyInfo

 gio/gsettings.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

commit f60e0e724286fc85c03c7c739474390cd4c27c62
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 13 23:24:24 2011 +0100

    GSettingsKeyInfo: drop unused variable

 gio/gsettings.c | 2 --
 1 file changed, 2 deletions(-)

commit 11ef4d7981d81746d25296e3336a390f1a3330a8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 13 21:41:01 2011 +0100

    rename gsettingsschema.h to -internal.h

 gio/gsettings.c                                       |  2 +-
 gio/{gsettingsschema.h => gsettingsschema-internal.h} | 10 +++-------
 gio/gsettingsschema.c                                 |  2 +-
 3 files changed, 5 insertions(+), 9 deletions(-)

commit 577faeae5bcdff8431c298c9275bf7703d8b6a22
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Nov 13 21:38:31 2011 +0100

    unGObjectify GSettingsSchema

 gio/gsettings.c       |  2 +-
 gio/gsettingsschema.c | 82
 +++++++++++++++++++++++----------------------------
 gio/gsettingsschema.h | 34 ++++-----------------
 3 files changed, 43 insertions(+), 75 deletions(-)

commit eaaf18960f84989cfe2ac927ad5e19a0c56524de
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Nov 17 14:21:24 2011 +0100

    Fix the fix for G*_TO_POINTER casts on 32 bits

    The 'fix' from commit 16292dd753cb63f8ccb2267644aefbd2632dd52c
    broke the
    build on 32 bit because it was missing the parentheses around "gint" /
    "guint"
    in glib_gp[u]i_cast.

    https://bugzilla.gnome.org/show_bug.cgi?id=661546

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit affbdd8206edcb89eadcae4a0453da76e8bd723f
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Thu Nov 17 14:21:12 2011 +0100

    Updated Spanish translation

 po/es.po | 190
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 97 insertions(+), 93 deletions(-)

commit 6d405f81c2778dff2df4a36748bf98647f385497
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Nov 17 12:36:54 2011 +0100

    Updated Spanish translation

 po/es.po | 66
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 59 insertions(+), 7 deletions(-)

commit 9e19b6fe0fefc5c6c26e749a56418061ce339154
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 17 00:01:18 2011 -0500

    Fix doc formatting

 gmodule/gmodule.c | 1 -
 1 file changed, 1 deletion(-)

commit 1a08591c3a953d53fb22b8da59b2023d278590d6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 16 21:42:28 2011 -0500

    Deal gracefully with NULL log domains

 glib/gmessages.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 877c0ad5b885f598006f576a5756dd7cda1ef4ee
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:46:19 2011 +0000

    [notify] remove some rather bogus 'inline' use

 gobject/gobject.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 9253f38a908f4b3304e2e195c87aad7b098e8bac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:45:31 2011 +0000

    [notify] add warning to gobjectnotifyqueue.c

    Mention that this file gets installed, so people should probably not
    modify it.

 gobject/gobjectnotifyqueue.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit ac0ddcf23f4f57efc2f4e6f370022586d7897f6a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 13:02:23 2011 +0000

    [notify] dispatch 'notify' directly if not frozen

    Avoid the notify queue in the case that we're not already frozen.

 gobject/gobject.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit 39458748dd32c8745f60e8ba83bd35ad9ceebb12
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:42:36 2011 +0000

    [notify] add 'conditional' to _notify_queue_freeze

    When the 'conditional' parameter is TRUE, the queue will only
    be frozen
    (ie: have its freeze count increase by one) if it is already frozen.

    This will allow us to avoid a freeze-notify-thaw in the case that we
    just want to notify on a single property.

    Another approach may have been to add an is_frozen() type call
    and avoid
    even increasing the freeze count at all in this case.  Unfortunately,
    I'm not totally sure what is the exact expected semantics of
    simultaneous notifications in multiple threads and this may interact
    badly with someone freezing or thawing in between our check and
    emission.

 gobject/gobject.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

commit 393d4c28b4af6aea45100edc636c116d38dca460
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:41:06 2011 +0000

    [notify] Remove GObjectNotifyContext indirection

    This silly abstraction is causing more trouble than it's worth -- just
    use the relevant bits directly.

 gobject/gobject.c | 60
 +++++++++++++++++--------------------------------------
 1 file changed, 18 insertions(+), 42 deletions(-)

commit 8215fc5f255ae499904534042ac08e221c4f5f13
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:38:25 2011 +0000

    [notify] lift some logic out of _notify_queue_add

    Lift the check-if-READABLE and redirect-target logic from out of
    g_object_notify_queue_add() into its own function, get_notify_pspec().

    Use that function at the site of our two calls to
    g_object_notify_queue_add().

 gobject/gobject.c | 63
 ++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 42 insertions(+), 21 deletions(-)

commit 760037ec46bb3a8af8ea98e06a624a3ebac1cb1a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:37:17 2011 +0000

    [notify] remove an obviously false comment

 gobject/gobject.c | 1 -
 1 file changed, 1 deletion(-)

commit 45d80cf9bdd4ee3edaa64069dd16ad220d615c4e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:36:57 2011 +0000

    [notify] lift some code outside of critical region

 gobject/gobject.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 1d98f931946c45301531a576107f5f9d12d63c28
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:35:58 2011 +0000

    [notify] drop some unused code

 gobject/gobject.c | 28 ----------------------------
 1 file changed, 28 deletions(-)

commit 128862eafe49b5454c4b32b0866800d4aa7c53f3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 15:31:58 2011 +0000

    [notify] merge gobjectnotifyqueue.c into gobject.c

    This was done as a separate file before, and #include brought it into
    gobject.c.  That's a bit mad, so stop doing that.

    Unfortunately, the insanity steps up a level: gobjectnotifyqueue.c is
    installed in the public include dir, so we can't just get rid of it
    entirely.

 gobject/gobject.c | 162
 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 160 insertions(+), 2 deletions(-)

commit 688059cb9402281f8922827dc98fe76b914f21cf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 16 12:47:40 2011 +0000

    [notify] remove some useless forward declarations

    These cause trouble in the next commit.

 gobject/gobject.c | 7 -------
 1 file changed, 7 deletions(-)

commit 3c66ada4358ca0a8d9c31a14d45c13cd9de0b084
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 2 00:31:50 2011 +0100

    localfileenumerator: Improve non-stat'ing code

    We now avoid the per-enumerated-file stat for type and names. We could
    improve this further by moving things to the no_stat function,
    but this
    is what the file chooser needs for autocomplete, so I am happy.

 gio/glocalfileenumerator.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 93aea49bd7a8fa29d4ad857fd5de9f282edd8603
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 23:37:35 2011 +0100

    localfileinfo: Split out attributes that don't need a stat

    This will be used in the next commit.

 gio/glocalfileinfo.c | 80
 +++++++++++++++++++++++++++++-----------------------
 gio/glocalfileinfo.h | 10 +++++++
 2 files changed, 54 insertions(+), 36 deletions(-)

commit 8863071b9d17fa37036549b8c6579736d259a9cd
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 23:21:42 2011 +0100

    localfileenumerator: Take the type from the readdir() call

    That way, we can avoid stat() calls for all enumerated files in
    various
    cases. In particular in the autocompletion code in the GTK
    filechooser.

 configure.ac               |  2 +
 gio/glocalfileenumerator.c | 96
 +++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 84 insertions(+), 14 deletions(-)

commit 6fe9791f2401c7842ed8e4b72e62296f1da1e47d
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 20:12:27 2011 +0100

    gio: Add tests for g_file_attribute_matcher_subtract()

 gio/tests/fileattributematcher.c | 90
 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)

commit 1985d54bb2eee39e88e62d1b749bf85f43a55721
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 20:11:47 2011 +0100

    fileinfo: Add g_file_attribute_matcher_subtract()

    Added as public API so I can write tests, the use case is local.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfileinfo.c                     | 83
 ++++++++++++++++++++++++++++++++++++-
 gio/gfileinfo.h                     |  2 +
 gio/gio.symbols                     |  1 +
 4 files changed, 85 insertions(+), 2 deletions(-)

commit 60c42f66482f0b3c7cd9353156de99e077fc73c7
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 19:12:17 2011 +0100

    tests: Add tests for fileattributematchers

 gio/tests/Makefile.am            |  4 ++
 gio/tests/fileattributematcher.c | 88
 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 92 insertions(+)

commit b400127b3eb6039ecfcada3fa398f8aecb4945bd
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 19:06:39 2011 +0100

    fileinfo: Add g_file_attribute_matcher_to_string()

    This is to be mainly used for debugging and tests.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfileinfo.c                     | 40
 +++++++++++++++++++++++++++++++++++++
 gio/gfileinfo.h                     |  1 +
 gio/gio.symbols                     |  1 +
 4 files changed, 43 insertions(+)

commit 86d29e4e7302525b178ff7fb7463026243c89603
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 17:50:22 2011 +0100

    fileinfo: Store namespace::* as 0th attribute

    This way, we can get_attribute() namespaces. This will be important in
    the next commit.

 gio/gfileinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 128e0cb787dedc0bb57f7f1fbdc52aa20c20d9b6
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 13:58:09 2011 +0100

    fileinfo: Change the way attribute matchers are created

    We now sort the matchers and remove unnecessary duplicates (like
    removing standard:type when we already match standard:*), so that
    we can
    do more complex operations on them easily in later commits.

 gio/gfileinfo.c | 102
 ++++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 74 insertions(+), 28 deletions(-)

commit 1850d23f52639a5eaf33551fad7a1936edbbfb0a
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 1 12:47:33 2011 +0100

    fileinfo: Remove optimization for GFileAttributeMatcher

    It makes code more complicated, in particular the code I'm about
    to add.

 gio/gfileinfo.c | 100
 ++++++++++++++++----------------------------------------
 1 file changed, 28 insertions(+), 72 deletions(-)

commit 16292dd753cb63f8ccb2267644aefbd2632dd52c
Author: Lucas De Marchi <lucas.demarchi@profusion.mobi>
Date:   Thu Oct 6 11:18:03 2011 -0300

    Fix G*_TO_POINTER casts on 32 bits

    If we don't do the cast to the proper size in 32 bits, things
    like below
    doesn't work:

    uint8_t u = 20;
    void *p;

    p = GUINT_TO_POINTER(u);

    Signed-off-by: Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=661546

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3a7960f75730fdde77652b97ad6492004c5b1ec1
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Nov 4 16:45:41 2011 +0100

    win32: Make g_get_monotonic_clock lockless

 glib/gmain.c | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

commit 8d023c2706c1aca43dd04e807dd7d78aee96f202
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Nov 4 15:42:38 2011 +0100

    win32: Use timeGetTime as monotonic base

    This allows apps that need it to increase timer accuracy
    using timeBeginPeriod

 configure.ac         |  2 +-
 glib/gmain.c         | 69
 +++++++++++++++++++++++++++++++++++++++++++++++++---
 glib/makefile.msc.in |  2 +-
 3 files changed, 68 insertions(+), 5 deletions(-)

commit 64dec8ad9ff3d9be7d66b11d5f2b22ce3e0954aa
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Nov 4 11:27:00 2011 +0100

    win32: Add a monotonic timer

 glib/glib-init.c |  1 +
 glib/glib-init.h |  1 +
 glib/gmain.c     | 59
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 59 insertions(+), 2 deletions(-)

commit 2056906bb7504e520aae5ab3fc69fa3f80da1da0
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Nov 15 20:46:17 2011 +0100

    Updated POTFILES.in

 po/POTFILES.in | 4 ++++
 1 file changed, 4 insertions(+)

commit 8d4a141b14dda229a9074d14e9288cddc3191536
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Nov 15 17:37:39 2011 +0100

    Updated Spanish translation

 po/es.po | 5989
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2998 insertions(+), 2991 deletions(-)

commit f08a1d126c2aba7d23c107a7c6882cf0f850b6f4
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Nov 15 12:11:55 2011 +0000

    docs: Remove tmpl directory

    We use inline comments now

 docs/reference/glib/tmpl/.gitignore       |   74 ---
 docs/reference/glib/tmpl/glib-unused.sgml | 1015
 -----------------------------
 2 files changed, 1089 deletions(-)

commit 469e1a15a0eea2cf355fba245343a3ac1c29662b
Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Date:   Sun Nov 13 17:49:57 2011 +0100

    Fix 1bit mutex test on platforms with 32 bit aligned pointers

    The 1 bit mutex tests asserts: ((gsize) ptrs) % 8, ==, 0), which fails
    when the platform only aligns porters to 32 bits (e.g. S390 and
    powerpc).

    I'm not sure why this assertion was placed here, but given
    that internally g_pointer_bit_trylock uses g_atomic_int_or internally
    change the assertion so it only requires the alignment to be
    a multiple
    of sizeof(int)

 glib/tests/1bit-mutex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 65eb65b7779e5e6ec72de9bb372568d88b1ec7bb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 14 23:30:18 2011 -0500

    Avoid unused variable warnings in g_ascii_strtod

 glib/gstrfuncs.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 7c0ee79e348cfa3711ecf74f1c0e4d9a2e29864e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 14 22:18:13 2011 -0500

    GThread: handle thread names safely

    Avoid a race condition where the string may be freed before
    the new thread got around to using it. Also add a test for
    thread names.

    https://bugzilla.gnome.org/show_bug.cgi?id=663381

 glib/gthread.c        | 13 +++++++++----
 glib/gthreadprivate.h |  2 +-
 glib/tests/thread.c   | 28 ++++++++++++++++++++++++++++
 3 files changed, 38 insertions(+), 5 deletions(-)

commit 375015018bb16cdd02708e1df0953d91916033ca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 14 21:18:12 2011 -0500

    Switch to using template-free docs build

    All docs are finally inline, so we can do this switch.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3f0d275295d0dbf8028e77c3f7ef662c3a41cdf3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 14 07:44:52 2011 -0500

    Move remaining docs inline

    This introduces a fake source file just for holding
    docs that have no good place elsewhere. Not great, but
    better than templates.

 docs/reference/glib/glib-docs.sgml            |    1 -
 docs/reference/glib/glib-sections.txt         |  133 +-
 docs/reference/glib/tmpl/.gitignore           |    8 +
 docs/reference/glib/tmpl/byte_order.sgml      |  628 -------
 docs/reference/glib/tmpl/limits.sgml          |  253 ---
 docs/reference/glib/tmpl/macros.sgml          |  233 ---
 docs/reference/glib/tmpl/macros_misc.sgml     |  743 --------
 docs/reference/glib/tmpl/numerical.sgml       |  121 --
 docs/reference/glib/tmpl/type_conversion.sgml |  125 --
 docs/reference/glib/tmpl/types.sgml           |  327 ----
 docs/reference/glib/tmpl/windows.sgml         |  142 --
 glib/Makefile.am                              |    1 +
 glib/docs.c                                   | 2259
 +++++++++++++++++++++++++
 glib/gtimer.c                                 |   11 +
 14 files changed, 2330 insertions(+), 2655 deletions(-)

commit 127df9bd83d610cb989e63037f3e3a6b64c034e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 14 21:06:30 2011 -0500

    Move GModule docs inline

 docs/reference/glib/tmpl/.gitignore   |   1 +
 docs/reference/glib/tmpl/modules.sgml | 291
 ----------------------------------
 gmodule/gmodule.c                     | 258
 ++++++++++++++++++++++++++++--
 3 files changed, 250 insertions(+), 300 deletions(-)

commit 2195e20dce58ab14db40187dbcd78682e4287889
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 13 15:37:56 2011 -0500

    Move GDate docs inline

 docs/reference/glib/tmpl/.gitignore |   1 +
 docs/reference/glib/tmpl/date.sgml  | 822
 ------------------------------------
 glib/gdate.c                        | 638 +++++++++++++++++++++++++++-
 3 files changed, 637 insertions(+), 824 deletions(-)

commit 18da6e6be97c838edf6ef150b196b428ff3118cf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 13 00:43:50 2011 -0500

    Move i18n docs inline

 docs/reference/glib/tmpl/.gitignore |   1 +
 docs/reference/glib/tmpl/i18n.sgml  | 252
 ------------------------------------
 glib/ggettext.c                     | 156 ++++++++++++++++++++++
 3 files changed, 157 insertions(+), 252 deletions(-)

commit c8b0617a2b9b71ca89b9fdd0e6f3b6afdd255a49
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 13 00:26:57 2011 -0500

    Move slice and hook docs inline

 docs/reference/glib/tmpl/.gitignore         |   2 +
 docs/reference/glib/tmpl/hooks.sgml         | 470
 ----------------------------
 docs/reference/glib/tmpl/memory_slices.sgml | 256 ---------------
 glib/ghook.c                                | 421
 ++++++++++++++++++++++++-
 glib/gslice.c                               | 255 +++++++++++++++
 5 files changed, 676 insertions(+), 728 deletions(-)

commit bad6c0ad1516ab149d2917c8db9d84a235c4667c
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 14 19:46:02 2011 -0500

    GSocketClient: improve error messages on connection failure

    Include the hostname (or proxy hostname if it was the connection to
    the proxy server that failed) in the GError message when
    g_socket_client_connect* fail.

    https://bugzilla.gnome.org/show_bug.cgi?id=661266

 gio/gsocket.c       |  7 +++----
 gio/gsocketclient.c | 55
 +++++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 52 insertions(+), 10 deletions(-)

commit 74dad004d143a2d3fbe4171d20e57cc9942ad89d
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 14 18:27:34 2011 -0500

    GUnixInput/OutputStream: fix blocking methods to always block

    Previously, if you created a GUnixInputStream or GUnixOutputStream
    from a non-blocking file descriptor, it might sometimes return
    G_IO_ERROR_WOULD_BLOCK from g_input_stream_read/g_output_stream_write,
    which is wrong. Fix that. (Use the GPollableInput/OutputStream methods
    if you want non-blocking I/O.)

    Also, add a test for this to gio/tests/unix-streams.

    Also, fix the GError messages to say "Error reading from file
    descriptor", etc instead of "Error reading from unix" (which was
    presumably from a bad search and replace job).

    https://bugzilla.gnome.org/show_bug.cgi?id=626866

 gio/gunixinputstream.c   | 48 ++++++++++++++++++++++++------------------
 gio/gunixoutputstream.c  | 54
 +++++++++++++++++++++++++++---------------------
 gio/tests/unix-streams.c | 24 +++++++++++++++++++--
 3 files changed, 81 insertions(+), 45 deletions(-)

commit 29f786851d9fb8c8229161087e55254e379ef6e7
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 14 13:55:14 2011 -0500

    Fix glib/tests/utils for g_parse_debug_string() changes

 glib/tests/utils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fe5ba0f291c11a22fbfe812d1c8315837fa14177
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 12 15:59:36 2011 -0400

    add GNetworkMonitor, for... monitoring the network

    Add GNetworkMonitor and its associated extension point, provide a base
    implementation that always claims the network is available, and a
    netlink-based implementation built on top of that that actually tracks
    the network state.

    https://bugzilla.gnome.org/show_bug.cgi?id=620932

 configure.ac                        |   4 +
 docs/reference/gio/gio-docs.xml     |   5 +-
 docs/reference/gio/gio-sections.txt |  20 ++
 gio/Makefile.am                     |  11 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  10 +
 gio/giomodule.c                     |  11 +
 gio/giotypes.h                      |   1 +
 gio/gnetworkmonitor.c               | 261 ++++++++++++++++++++
 gio/gnetworkmonitor.h               |  89 +++++++
 gio/gnetworkmonitorbase.c           | 412
 ++++++++++++++++++++++++++++++++
 gio/gnetworkmonitorbase.h           |  66 +++++
 gio/gnetworkmonitornetlink.c        | 465
 ++++++++++++++++++++++++++++++++++++
 gio/gnetworkmonitornetlink.h        |  57 +++++
 gio/tests/.gitignore                |   1 +
 gio/tests/Makefile.am               |   3 +
 gio/tests/network-monitor.c         | 463
 +++++++++++++++++++++++++++++++++++
 17 files changed, 1878 insertions(+), 2 deletions(-)

commit eb9755dc9c765cd0381f8b6d897e6ff4f7582a0a
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 1 08:31:54 2011 -0400

    GInetAddressMask: new type for internet address range matching

    Eg, for matching a GInetAddress to a range like "10.0.0.0/8" or
    "fe80::/10"

    https://bugzilla.gnome.org/show_bug.cgi?id=620932

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  25 ++
 gio/Makefile.am                     |   2 +
 gio/ginetaddressmask.c              | 463
 ++++++++++++++++++++++++++++++++++++
 gio/ginetaddressmask.h              |  78 ++++++
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   9 +
 gio/giotypes.h                      |   1 +
 8 files changed, 580 insertions(+)

commit fac9e8d29f3b73afb17feca1fefe51986a09327c
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 13 16:39:45 2011 -0500

    gunixinput/outputstream: fix docs

    Don't try to link to the docs of undocumented private classes

 gio/gunixinputstream.c  | 3 +--
 gio/gunixoutputstream.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 9b4cc6edf4a698597c0cee9a5ef4d40ad13aa888
Author: Dan Winship <danw@gnome.org>
Date:   Tue Apr 27 16:54:18 2010 -0400

    GUnixInputStream, GUnixOutputStream: support ordinary files better

    If the fd is not a pipe or socket, fall back to using threads to do
    async I/O rather than poll, since poll doesn't work the way you want
    for ordinary files.

    https://bugzilla.gnome.org/show_bug.cgi?id=606913

 gio/gunixinputstream.c  | 34 +++++++++++++++++++++++++++++-----
 gio/gunixoutputstream.c | 34 +++++++++++++++++++++++++++++-----
 2 files changed, 58 insertions(+), 10 deletions(-)

commit e60846dc78b9dace8d27276f7ef512e209dba7b3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 12 22:52:24 2011 -0500

    Some more docs reshuffling

 docs/reference/glib/building.sgml  | 980
 +++++++++++++++++--------------------
 docs/reference/glib/glib-docs.sgml | 132 ++---
 2 files changed, 509 insertions(+), 603 deletions(-)

commit 06bb6c75a2e5e6e0c3bfcb99ae829143768e1702
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 12 21:54:42 2011 -0500

    More consistent doc formatting

    Move some things around, make capitalization of short descriptions
    more consistent.

 docs/reference/glib/glib-docs.sgml       |   6 +-
 docs/reference/glib/gvariant-text.xml    |   4 +
 docs/reference/glib/gvariant-varargs.xml |   7 +-
 docs/reference/glib/regex-syntax.sgml    |   9 +-
 docs/reference/glib/running.sgml         | 237
 +++++++++++++++----------------
 glib/gchecksum.c                         |   2 +-
 glib/gconvert.c                          |   2 +-
 glib/gdatetime.c                         |   2 +-
 glib/ghmac.c                             |   2 +-
 glib/glist.c                             |   4 +-
 glib/gslist.c                            |   4 +-
 glib/gtimezone.c                         |   2 +-
 glib/gurifuncs.c                         |   7 +-
 glib/gversion.c                          |   2 +-
 14 files changed, 148 insertions(+), 142 deletions(-)

commit 599f254066beb3bdad1d4fb70a7afd28c45d7634
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 12 19:13:44 2011 -0500

    Cleanups to debug env var handling

 glib/glib-init.c |  6 +++---
 glib/gslice.c    | 48 ++++++++++++++++++------------------------------
 gobject/gtype.c  | 13 +++++--------
 3 files changed, 26 insertions(+), 41 deletions(-)

commit 943a18b5643443438820eae3453d3b279213547e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 12 18:36:52 2011 -0500

    Parse G_DEBUG only once

 glib/glib-init.c | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

commit 5d9f05eef147f17d71e38c9fba2e3f622c9ed21b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 12 10:26:31 2011 -0500

    glib-unix.h: Add G_BEGIN/END_DECLS

    The omission was pointed out in bug 663880.

 glib/glib-unix.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit faebf0f6536f85bfc4afd81a69d9d46383031fa6
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Nov 12 10:38:31 2011 +0800

    gstrfuncs.c: Fix variable declaration

    Declare variables at top of block to stop C89 compilers from
    complaining.

 glib/gstrfuncs.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit 0f01bef4b458b73f2500ad8926b9c8a886215dc3
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Nov 11 14:41:50 2011 +0000

    GDBusWorker: tolerate read errors while closing

    My previous fix for GNOME#662100 was incomplete: it seems that
    with some
    timings, the stream can be closed with an async read in-flight. This
    can make the read fail immediately with G_IO_ERROR_CLOSED instead of
    becoming cancelled.

    This happens reliably on an embedded device, and rarely on my laptop;
    repeating the test 100 times in quick succession reliably reproduces
    the bug on my laptop.

    It seems as though what we really want is to ignore read errors, once
    we've established that we want to close the connection anyway - this
    means that after asking to close, you're immune to exit-on-close,
    which seems like a good rule.

    An additional subtlety is that continuing to read after we know we
    want to close is still required, otherwise we'll never emit ::closed.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Bug-NB: NB#287088
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 gio/gdbusprivate.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

commit 214d249f40de028c5f76cea6ed665af5e1cf45d0
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Nov 10 19:06:43 2011 +0000

    GDBusWorker: debug on read errors if transport debugging is enabled

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Bug-NB: NB#287088
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 gio/gdbusprivate.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit fc21c6ced0f1d7e6c8960b2e1439d814a960e7bf
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Nov 3 18:33:08 2011 +0000

    gdbus-exit-on-close test: don't leak a variant

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Bug-NB: NB#287088
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 gio/tests/gdbus-exit-on-close.c | 1 +
 1 file changed, 1 insertion(+)

commit f0c383917bdae58393410f2c3052bad2a4b51d9e
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Nov 3 18:32:53 2011 +0000

    gdbus-exit-on-close test: optionally be more verbose for debugging

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Bug-NB: NB#287088
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 gio/tests/gdbus-exit-on-close.c | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

commit 759c0e935d0d189aebbb7ff8186c397e88477c7f
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 3 09:03:17 2011 -0400

    gio: more implementations of GFileDescriptorBased

    Implement GFileDescriptorBased in GSocket{Input,Output}Stream and
    GUnix{Input,Output}Stream.

    https://bugzilla.gnome.org/show_bug.cgi?id=616852

 gio/gsocketinputstream.c  | 27 ++++++++++++++++++++++++++-
 gio/gsocketoutputstream.c | 29 +++++++++++++++++++++++++++--
 gio/gunixinputstream.c    | 12 +++++++++++-
 gio/gunixoutputstream.c   | 12 +++++++++++-
 4 files changed, 75 insertions(+), 5 deletions(-)

commit f218353e04ca61dbf5e4d7a3a024fe414dbfa46a
Author: Kristian Rietveld <kris@loopnest.org>
Date:   Wed Nov 9 08:32:33 2011 +0100

    Need to include xlocale.h on Darwin for strtod_l

    This fixes the build of gstrfuncs.c on Darwin.

 configure.ac     | 2 ++
 glib/gstrfuncs.c | 5 +++++
 2 files changed, 7 insertions(+)

commit fb95c20c965bc241fc9d519afede94d3bc7838a8
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Mon Nov 7 20:04:15 2011 +0100

    Add G_SIGNAL_DEPRECATED

    Similar to G_PARAM_DEPRECATED. It will warn only for users of the
    signals, so a signal can still be emited without warning, for
    compatibility reasons.

    Apparently, there is no way user flags could have been used before,
    so that shouldn't break anyone.

    https://bugzilla.gnome.org/show_bug.cgi?id=663581

 gobject/gobject.c |  2 +-
 gobject/gsignal.c | 32 +++++++++++++++++++++++++++++++-
 gobject/gsignal.h |  8 ++++++--
 3 files changed, 38 insertions(+), 4 deletions(-)

commit f09e71aff05bfa07e58c68b2dd8396ed760e4666
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 7 13:50:00 2011 -0500

    gio/tests/proxy: don't use deprecated functions

 gio/tests/proxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a5bf1c117b9042906763d166f396e8cccaf48f91
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 7 13:48:30 2011 -0500

    Fix g_variant_get_gtype() deprecation message

    Instead of:

    warning: ‘g_variant_get_gtype’ is deprecated (declared at
    ../../gobject/glib-types.h:242): Use '((GType) ((21) << (2)))'
    instead [-Wdeprecated-declarations]

    show:

    warning: ‘g_variant_get_gtype’ is deprecated (declared at
    ../../gobject/glib-types.h:242): Use ''G_VARIANT_GET_TYPE'' instead
    [-Wdeprecated-declarations]

    Also, document the macro-expansion problem in the
    G_GNUC_DEPRECATED_FOR docs

 docs/reference/glib/tmpl/macros_misc.sgml | 7 +++++++
 gobject/glib-types.h                      | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

commit 7d1c7af1a6ed30d4caec244ac8ebe47dc86bf04f
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Oct 16 12:58:29 2011 -0700

    docs: Improve g_variant_loop() docs

    Typo fix and changing "is not recommended" to the nice version of
    "don't
    do this", aka "causes undefined behavior".

 gio/glocalfileinfo.c | 5 ++++-
 glib/gvariant.c      | 4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)

commit 14677e16d8ac6b7bdb22885ef94ae889f67751ee
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jul 25 13:08:59 2011 +0200

    docs: Tell which function to use to avoid errors.

 glib/gvarianttype.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0e283dcb94a6be20ccc0b8446c3df70ff14d36f1
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 7 14:14:45 2011 +0800

    Update VS property sheets

    gmain.h was added into the list of deprecated headers, so "install"
    that as weel.

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit fc0b8d4f28c1d3d24a0d92b134ebbe74966a4a73
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 7 00:14:28 2011 -0500

    Add a test for CDATA in gschema.xml files

 gio/tests/gschema-compile.c              | 3 ++-
 gio/tests/schema-tests/cdata.gschema.xml | 7 +++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 7ec69ecd3207abc750291231c37739d16d8d5a42
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 7 00:13:56 2011 -0500

    Accept CDATA in gschema.xml files

 gio/glib-compile-schemas.c | 1 +
 1 file changed, 1 insertion(+)

commit 41b8ce7100fa5fa4ecb01555e52b3664bcc41b28
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Nov 3 17:27:08 2011 +0100

    win32: Remove some debug spew on startup

    This is not needed anymore and was causing problems for pkg-config.

 glib/gthread-win32.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

commit d2d62ecfcd09f91ed423b66b5b21be602dce2ecd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 3 01:48:54 2011 -0400

    Make the default log handler more useful

    We make the default log handler only print default and informational
    messages if the log domain is explicitly requested.

    https://bugzilla.gnome.org/show_bug.cgi?id=661926

 docs/reference/glib/running.sgml | 34 +++++++++++++++++++++++++++++++++-
 glib/gmessages.c                 | 37
 +++++++++++++++++++++++++++++++++++++
 glib/tests/logging.c             | 23 ++++++++++++++++++++++-
 3 files changed, 92 insertions(+), 2 deletions(-)

commit 7456b43c3e31355c97c19218e1e75eb44611d12f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 3 00:39:31 2011 -0400

    Move old deprecated gmain api into deprecated/

 glib/Makefile.am        |   1 +
 glib/deprecated/gmain.h | 138
 ++++++++++++++++++++++++++++++++++++++++++++++++
 glib/glib.h             |   1 +
 glib/gmain.h            | 100 -----------------------------------
 4 files changed, 140 insertions(+), 100 deletions(-)

commit a3c8712c4bc8c8ed4e7523ee06766436a6a84c0e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 3 00:30:56 2011 -0400

    Remove single-include guards in deprecated/

    Not allowed to include these headers single anymore, either.

 glib/deprecated/gallocator.h  | 2 +-
 glib/deprecated/gcompletion.h | 2 +-
 glib/deprecated/grel.h        | 2 +-
 glib/deprecated/gthread.h     | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 5896808e8c6a66db34d9c0c5562a3bef00357a25
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 3 00:16:41 2011 -0400

    GIO: Don't use G_DISABLE_DEPRECATED for functions

 gio/gdesktopappinfo.c    | 2 --
 gio/gdesktopappinfo.h    | 6 ++++--
 gio/gdrive.h             | 2 --
 gio/gfile.h              | 4 ----
 gio/giomodule.c          | 2 --
 gio/gmount.h             | 2 --
 gio/gtlsconnection.h     | 5 ++---
 gio/gunixsocketaddress.h | 4 ----
 gio/gvolume.h            | 2 --
 gio/gvolumemonitor.h     | 3 +--
 10 files changed, 7 insertions(+), 25 deletions(-)

commit 328be3938ec4b65f2d19adc531148ce8c0b1803f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 3 00:09:32 2011 -0400

    GObject: Don't use G_DISABLE_DEPRECATED for functions

 gobject/gboxed.h      | 2 --
 gobject/glib-types.h  | 3 +--
 gobject/gobject.h     | 5 +----
 gobject/gparam.h      | 2 --
 gobject/gvaluetypes.h | 7 ++-----
 5 files changed, 4 insertions(+), 15 deletions(-)

commit 07bcb3f8d6451de9d44c1ff5891f7fc79d8fa524
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 3 00:05:29 2011 -0400

    Update deprecation docs

 docs/reference/glib/compiling.sgml | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

commit 03766a1a38407fbbbf8c30874e6f8d46e2b0da43
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Nov 3 00:04:15 2011 -0400

    Don't use G_DISABLE_DEPRECATED guards around deprecated functions

    I'm leaving the old-style deprecation guards in place around
    deprecated macros, enumeration values, etc, for now.

 glib/gasyncqueue.h | 2 --
 glib/gatomic.h     | 2 --
 glib/gfileutils.h  | 6 ++----
 glib/ghash.h       | 4 +---
 glib/giochannel.c  | 2 --
 glib/giochannel.h  | 2 --
 glib/glib.h        | 2 --
 glib/gmain.h       | 3 +--
 glib/gmappedfile.h | 2 --
 glib/gmessages.h   | 3 +--
 glib/gstrfuncs.h   | 8 --------
 glib/gstring.h     | 6 ++----
 glib/gtree.h       | 2 --
 glib/gunicode.h    | 3 ---
 glib/gutils.h      | 2 +-
 15 files changed, 8 insertions(+), 41 deletions(-)

commit f9c2362e434b2d190296f8a41a7aa68c50474923
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 28 15:38:52 2011 -0400

    glib-mkenums: add --identifier-prefix and --symbol-prefix args

    Allow passing --identifier-prefix and --symbol-prefix to glib-mkenums,
    with the same meanings as in g-ir-scanner, to allow fixing up the enum
    name parsing globally rather than needing to add a /<* *>/ override to
    each enum.

    https://bugzilla.gnome.org/show_bug.cgi?id=661797

 docs/reference/gobject/glib-mkenums.xml | 24 ++++++++++++++++++
 gobject/glib-mkenums.in                 | 43
 ++++++++++++++++++++++++---------
 2 files changed, 56 insertions(+), 11 deletions(-)

commit 78a0dbd8536f993094be30bf8f1e3b189f571325
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 28 15:38:27 2011 -0400

    docs: don't refer to a deprecated glib-mkenums flag

    Refer to the new flag instead

    https://bugzilla.gnome.org/show_bug.cgi?id=661797

 docs/reference/gobject/glib-mkenums.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit dd4a8d333ddab043c5a6e89c0d19e56a1bdcec3e
Author: Dan Winship <danw@gnome.org>
Date:   Fri Oct 14 14:32:11 2011 -0400

    glib-mkenums.in: fix @ENUMPREFIX@ with /*< underscore_name=... >*/

    For enums defined with an underscore_name override, @ENUMPREFIX@
    would include a trailing "_". Fix.

    https://bugzilla.gnome.org/show_bug.cgi?id=661797

 gobject/glib-mkenums.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9782598b81ffe35f892bb510c27bc0d1afffaeee
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Thu Oct 27 16:54:02 2011 +0200

    gdbus: avoid warning when finalizing a GDBusObjectManagerClient

    If the GDBusObjectManagerClient doesn't get a name owner during
    its lifetime,
    `on_control_proxy_g_signal' will never be connected to any signal,
    so we
    shouldn't dump any warning in that case.

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=662858

 gio/gdbusobjectmanagerclient.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 1fc897352e2bd8c52f33517088213ee4b0024932
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Oct 27 10:30:58 2011 -0400

    g_bus_own_name: fix race when unowning a name immediately after
    owning it

    ... and also add a test to verify that the fix works.

    https://bugzilla.gnome.org/show_bug.cgi?id=662808

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusnameowning.c   | 86
 +++++++++++++++++++++++++++++++++++--------------
 gio/tests/gdbus-names.c | 29 +++++++++++++++--
 2 files changed, 89 insertions(+), 26 deletions(-)

commit 4c038429b10a961b59b0c4a5c7ede40fe5aee494
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 26 15:10:33 2011 -0400

    Revert "gthread: G_STATIC_MUTEX_INIT: Fix this for the non-win32
    case."

    This reverts commit 52fd106724aa79ad57ecaa7ad9d340f8c89da06d.

 glib/deprecated/gthread.h | 8 --------
 1 file changed, 8 deletions(-)

commit 52fd106724aa79ad57ecaa7ad9d340f8c89da06d
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Wed Oct 26 11:38:13 2011 +0200

    gthread: G_STATIC_MUTEX_INIT: Fix this for the non-win32 case.

    Also initialize the unused member. This was correct before but
    was broken when the ifndef was moved inside the GStaticMutex
    struct:
    http://git.gnome.org/browse/glib/commit/glib/gthread.h?id=24652730a9faaedb19b9e90024077eb7f75a6907
    This avoids a compiler warning.

 glib/deprecated/gthread.h | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 73d22207d166d02660d8864034b3eab855ad2f54
Author: Damien Lespinau <damien.lespinau@gmail.com>
Date:   Mon Oct 24 22:25:59 2011 -0400

    Add TAGS files to .gitignore

    "make tags" is the best way to produce tags in an automake project and
    yet very few people are using it so the tags files it generates
    are never
    added to the .gitignore files.

    Add TAGS files to .gitignore then.

    https://bugzilla.gnome.org/show_bug.cgi?id=615424

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit ba7bf09285636a3c150a83620c6d91611aa37b05
Author: Robert Nagy <robert@openbsd.org>
Date:   Mon Oct 24 21:18:48 2011 -0400

    Fix some build issues on OpenBSD

    Adapt to some OpenBSD header quirks.
    Patch by Robert Nagy.

    https://bugzilla.gnome.org/show_bug.cgi?id=661386

 configure.ac | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

commit 6a81ced72d0d5dc835e53dd6ae6652a3c9de494b
Author: Sjoerd Simons <sjoerd@luon.net>
Date:   Fri Oct 21 15:40:56 2011 +0200

    Fix document generation in out of tree builds

    https://bugzilla.gnome.org/show_bug.cgi?id=662390

 docs/reference/glib/Makefile.am    | 2 +-
 docs/reference/gobject/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5e2a2ef288abafa34213982365bf2019e882864e
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Oct 20 16:07:03 2011 +0100

    g_parse_debug_string: invert flags given besides "all"

    Any flags specified as well as "all" are subtracted from the result,
    allowing the user to specify FOO_DEBUG="all,bar,baz" to mean "give me
    debugging information for everything except bar and baz".

    https://bugzilla.gnome.org/show_bug.cgi?id=642452

 glib/glib-init.c | 41 +++++++++++++++++++++++++++++------------
 tests/testglib.c | 18 ++++++++++++++++--
 2 files changed, 45 insertions(+), 14 deletions(-)

commit 73ffa9034f80ff08c30ff519984b5d00894c63c6
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Wed Feb 16 10:48:22 2011 +0000

    Test g_parse_debug_string ("all")

    https://bugzilla.gnome.org/show_bug.cgi?id=642452

 tests/testglib.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 94a46ea410ced6904691dba16d01485b6a6283f0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 24 13:43:11 2011 -0400

    Fix 'make check' with clang

    Patch by Elias Pipping

    https://bugzilla.gnome.org/show_bug.cgi?id=662491

 tests/run-assert-msg-test.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 73e3c98df07ae7180922216aa3bebfb434405375
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 24 13:25:15 2011 -0400

    Fix g_hash_table_iter_replace

    When reusing an existing key 'internally', we must avoid calling
    the key_destroy function on the old key.

    https://bugzilla.gnome.org/show_bug.cgi?id=662544

 glib/ghash.c      | 17 ++++++++++++-----
 glib/tests/hash.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 5 deletions(-)

commit a124562d1bdd51de4b136725b3902b1e518d991f
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Oct 21 11:42:10 2011 +0100

    GDBusConnection: document that this object is (meant to be)
    thread-safe

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661992
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit a031bacaac77d5de7388203dbe1ccc67b9142482
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Oct 21 15:46:00 2011 +0100

    GDBusConnection: make the closed flag atomic (but still lock to write)

    Strictly speaking, neither of the two uses that aren't under the lock
    *needs* to be atomic, but it seems better to be obviously correct (and
    we save another 4 bytes of struct).

    One of these uses is in g_dbus_connection_is_closed(), any use
    of which
    is inherently a race condition anyway.

    The other is g_dbus_connection_flush_sync, which as far as I can tell
    just needs a best-effort check, to not waste effort on a connection
    that
    has been closed for a while (but I could be wrong).

    I removed the check for the closed flag altogether in
    g_dbus_connection_send_message_with_reply_unlocked, because it
    turns out
    to be redundant with one in g_dbus_connection_send_message_unlocked,
    which is called immediately after.

    g_dbus_connection_close_sync held the lock to check the closed flag,
    which is no longer needed.

    As far as I can tell, the only reason why the lock is still desirable
    when setting the closed flag is so that remove_match_rule can't fail
    by racing with close notification from the worker thread - but
    on_worker_closed needs to hold the lock anyway, to deal with other
    data structures, so there's no point in trying to eliminate the
    requirement to hold the lock.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661992
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 163
 +++++++++++++++++++++++++++++---------------------
 1 file changed, 96 insertions(+), 67 deletions(-)

commit 9857cf8c46511b0fb1ed60ea96da8f4a310263e5
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Oct 21 16:24:29 2011 +0100

    GDBusConnection: document which properties are protected by @lock

    Also, a few that don't need to be.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661992
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

commit 8df114f5975ac8819a5a16cb4c5492a179cdfa2e
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Oct 17 19:27:23 2011 +0100

    GDBusConnection: access the exit-on-close flag atomically

    This isn't strictly necessary, because in every location where it's
    checked, if the reading thread misses an update from another thread,
    it's indistinguishable from the reading thread having been scheduled
    before the writing thread, which is an unavoidable race condition that
    callers need to cope with anyway. On the other hand, merging
    exit_on_close
    into atomic_flags gives the least astonishing semantics to library
    users
    and saves 4 bytes of struct, and if you're accessing exit-on-close
    often
    enough for it to be a performance concern, you're probably doing
    it wrong.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661992
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

commit 3a0b60647d8fd3b7ecffd5f79641a1daa9d79299
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Oct 17 13:27:03 2011 +0100

    Annotate GDBusConnection private functions with thread/lock status

    The thread shared between all GDBusWorker instances was variously
    called
    the "worker thread" or "message handler thread", which I mostly
    changed to
    "the GDBusWorker thread" to avoid ambiguity.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661992
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 89
 ++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 63 insertions(+), 26 deletions(-)

commit a886c2b3b8396bfacf546c9c52911fabb58acc57
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Oct 22 12:39:15 2011 +0200

    Updated Hebrew translation.

 po/he.po | 5798
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2916 insertions(+), 2882 deletions(-)

commit c75ee5ed17c865072c7ee7c48fbea96ea8c09a62
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Fri Oct 21 21:24:06 2011 +0200

    Updated Slovenian translation

 po/sl.po | 5811
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2908 insertions(+), 2903 deletions(-)

commit 9c07e7dc90b1331dab9f0e960d119d0889c7d585
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 21 14:05:10 2011 -0400

    GDBusMessage: fix leak of GError

    As part of the deserialisation process of a zero-length array in the
    DBus wire format, parse_value_from_blob() recursively calls itself
    with
    the expectation of failing (as can be seen by the assert immediately
    following).

    It passes &local_error to this always-failing call and then fails to
    free it (indeed, to use it at all).  The result is that the GError is
    leaked.

    Fix it by passing in NULL instead, so that the GError is never created
    in the first place.

    https://bugzilla.gnome.org/show_bug.cgi?id=662411

 gio/gdbusmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3d13ee1b5ff2a2ad5f32704cc5f071167a8852a6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 21 15:00:24 2011 -0400

    GVariant format string docs: fix maybe types

    The documentation for maybe types failed to mention 'a' as one of the
    types that was handled with a single pointer for which NULL means
    "nothing".  Correct that omission.

    Problem caught by Shaun McCance.

 docs/reference/glib/gvariant-varargs.xml | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit e52437982c4dd1c88459f3eed0d8ad1dc167c0eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 21 14:57:47 2011 -0400

    Make g_ascii_strtod behave as documented

    The docs explicitly state that we reset errno, so lets do that,
    even if we just wrap strtod_l. Also move the argument check
    out of the ifdef.

    https://bugzilla.gnome.org/show_bug.cgi?id=662398

 glib/gstrfuncs.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 848df03e16e190eddf1ee63733d85f687b65bdf9
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Oct 19 17:23:30 2011 +0100

    GDBusConnection: check for initializedness in most public API

    The only exceptions are those of the trivial getters/setters that
    don't
    already need the initialization check for its secondary role as
    a memory
    barrier (this is consistent with GSocket, where trivial
    getters/setters
    don't check):

    * g_dbus_connection_set_exit_on_close
    * g_dbus_connection_get_exit_on_close
    * g_dbus_connection_is_closed

    g_dbus_connection_set_exit_on_close needs to be safe for
    use before initialization anyway, so it can be set at construct-time.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661689
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 3958a9fc1ef99b474373415d5d46d596293764f6
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Oct 20 20:02:02 2011 +0100

    GDBusConnection: document use while uninitialized as undefined
    behaviour

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661689
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662208
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit a7ea94929420cafe5189b477f24da4903bec9e49
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Oct 20 13:12:26 2011 +0100

    GDBusConnection: check for initialization where needed for
    thread-safety

    Also document which fields require such a check in order to have
    correct
    threading semantics.

    This usage doesn't matches the GInitable documentation, which suggests
    use of a GError - but using an uninitialized GDBusConnection is
    programming error, and not usefully recoverable. (The GInitable
    documentation may have been a mistake - GNOME#662208.) Also, not
    all of
    the places where we need it can raise a GError.

    The check serves a dual purpose: it turns a non-deterministic
    crash into
    a deterministic critical warning, and is also a memory barrier for
    thread-safety. All of these functions dereference or return fields
    that
    are meant to be protected by FLAG_INITIALIZED, so they could crash or
    return an undefined value to their caller without this, if called
    from a
    thread that isn't the one that called initable_init() (although
    I can't
    think of any way to do that without encountering a memory barrier,
    undefined behaviour, or a race condition that leads to undefined
    behaviour if the non-initializing thread wins the race).

    One exception is that initable_init() itself makes a synchronous call.
    We deal with that by passing new internal flags up the call stack, to
    reassure g_dbus_connection_send_message_unlocked() that it can
    go ahead.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661689
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661992
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 139
 +++++++++++++++++++++++++++++++++++++++++++++++---
 gio/gioenums.h        |   2 +
 2 files changed, 133 insertions(+), 8 deletions(-)

commit 245d68be6ff0104783ce0b2d4bc0a139f09e0c34
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Oct 21 16:02:22 2011 +0100

    GDBusConnection: replace is_initialized with an atomic flag

    The comment implied that even failed initialization would set
    is_initialized = TRUE, but this wasn't the case - failed
    initialization
    would only set initialization_error, and it was necessary to check
    both.

    It turns out the documented semantics are nicer than the implemented
    semantics, since this lets us use atomic operations, which are also
    memory barriers, to avoid needing separate memory barriers or locks
    for initialization_error (and other members that are read-only after
    construction).

    I expect to need more than one atomically-accessed flag to fix thread
    safety, so instead of a minimal implementation I've turned
    is_initialized
    into a flags word.

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661689
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661992
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 44 +++++++++++++++++++++++++++++---------------
 1 file changed, 29 insertions(+), 15 deletions(-)

commit e1a481ec0ab4b727632e9ef5d74e001318ab84a2
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Oct 20 14:42:51 2011 +0800

    Fix VS 2008 property sheet

    Missed a required ';'-sorry about this.  DOH! :|

 build/win32/vs9/glib.vsprops | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 269acbe7032cbc02b0c0edead054824ba111a5f1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 19 21:03:43 2011 -0400

    Deprecate g_atexit

    This function was just not a good idea to begin with.
    Its documentation gives plenty of reason not to use it.

 glib/gutils.c | 3 +++
 glib/gutils.h | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

commit 3569af4af10b2ae65d4d93bfb3de929e1d1e2308
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Oct 18 10:48:31 2011 -0400

    desktop-app-info: annotate g_desktop_app_info_get_keywords()

    https://bugzilla.gnome.org/show_bug.cgi?id=662096

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9da3dc292c1a0e3e0418eec2b909163ff2b68be8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 19 15:26:25 2011 -0400

    more NEWS

 NEWS | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

commit 2a98cc635e03e57623268045cb0d6761b1619fea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 19 15:07:22 2011 -0400

    The usual docs unbreaking...

 docs/reference/glib/Makefile.am       |  1 +
 docs/reference/glib/building.sgml     |  2 +-
 docs/reference/glib/glib-sections.txt |  4 +---
 glib/giochannel.c                     | 10 +++++++++-
 glib/gmessages.c                      |  2 +-
 5 files changed, 13 insertions(+), 6 deletions(-)

commit 3fd412549fa50e06f92fb279d54a5d5b668600bc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 19 10:11:54 2011 -0400

    configure.ac: join the cargo-cult of _cv_

    For some reason, the setting of g_atomic_lock_free wasn't making
    it down
    to the lower part of the configure script where glibconfig.h was being
    generated when building using mingw32-configure.

    If we prefix glib_cv_ to the start of the variable name (like everyone
    else is doing) then it magically starts working.

    I love you, automake.

 configure.ac | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 612d2384670378d23e46046ab42ca98d618aba43
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 18 16:19:43 2011 +0100

    gdbus-non-socket test: avoid use of a GMainContext across a fork

    See https://bugzilla.gnome.org/show_bug.cgi?id=658999 for why
    this would
    be bad.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-non-socket.c | 51
 +++++++++++++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 13 deletions(-)

commit be89f052c2f578a812d7bba4bbd02be04a4fdc03
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 18 16:18:21 2011 +0100

    gdbus-exit-on-close test: cover more possibilities

    We didn't previously test anything except the implicit default
    of TRUE.
    Now we test implicit TRUE, explicit TRUE, explicit FALSE, and
    disconnecting at the local end (which regressed while fixing Bug
    #651268).

    Also avoid some questionable use of a main context, which fell foul of
    Bug #658999 and caused this test to be disabled in master.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Bug-NB: NB#287088
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-exit-on-close.c | 141
 +++++++++++++++++++++++++++++++++++-----
 1 file changed, 125 insertions(+), 16 deletions(-)

commit 5e0492da509aad12b93b732c449dae1a016367c1
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Oct 19 10:49:56 2011 +0100

    GDBusWorker: if a read was cancelled it means we closed the connection

    This was a regression caused by my previous work on GDBusWorker
    thread-safety
    (Bug #651268). The symptom is that if you disconnect a GDBusConnection
    locally, the default implementation of GDBusConnection::closed
    terminates your process, even though it shouldn't do that for
    locally-closed connections; this is because GDBusWorker didn't think a
    cancelled read was a local close.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Bug-NB: NB#287088
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 6c33e1cd9d9e247b8b2aa95e9617904a317b78c6
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 18 16:27:21 2011 +0100

    Revert "Disable two GDBus tests"

    This reverts commit 05ef173466e32d8b3d212803e4a72239913a362d.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-exit-on-close.c | 3 +--
 gio/tests/gdbus-non-socket.c    | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 99f0eaa4c5a86f6fa721044bb6841f6bda4c689b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 18 23:26:00 2011 -0400

    Fix bug in g_static_rec_mutex_unlock_full()

    pthreads doesn't implement the _lock_full() and _unlock_full()
    calls on
    recursive mutexes so we don't have it on GRecMutex either.  Now that
    we're using GRecMutex to implement GStaticRecMutex, we have to fake it
    by keeping an internal counter of the number of locks and calling
    g_rec_mutex_unlock() the appropriate number of times.

    The code to do this looked like:

      depth = mutex->depth;
      while (mutex->depth--)
        g_rec_mutex_unlock (rm);
      return depth;

    which unfortunately did one last decrement after mutex->depth was
    already zero (leaving it equal to -1).

    When locked the next time, the count would then increase from -1 to 0
    and then the next _unlock_full() call would not do any calls to
    g_rec_mutex_unlock(), leading to a deadlock.

    https://bugzilla.gnome.org/show_bug.cgi?id=661914

 glib/deprecated/gthread-deprecated.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit aba0f0c38bbfa11ad48b5410ebdbed2a99e68c58
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 18 16:21:50 2011 -0400

    gatomic: introduce G_ATOMIC_LOCK_FREE

    We clean up the detection of if we should do 'real' atomic
    operations or
    mutex-emulated ones with the introduction of a new (public) macro:
    G_ATOMIC_LOCK_FREE.  If defined, our atomic operations are
    guaranteed to
    be done in hardware.

    We need to use __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 to determine if our
    compiler supports GCC-style atomic operations from the gatomic.h
    header
    because we might be building a program against GLib using a different
    set of compiler options (or a different compiler) than was used
    to build
    GLib itself.

    Unfortunately, this macro is not available on clang, so it has
    currently
    regressed to using the mutex emulation.  A bug about that has been
    opened here:

      http://llvm.org/bugs/show_bug.cgi?id=11174

 configure.ac                           | 85
 +++++++++++++++++++++-------------
 docs/reference/glib/glib-overrides.txt |  5 ++
 docs/reference/glib/glib-sections.txt  |  3 ++
 glib/gatomic.c                         | 48 ++++++++++---------
 glib/gatomic.h                         |  4 +-
 glib/glibconfig.h.win32.in             |  2 +
 6 files changed, 93 insertions(+), 54 deletions(-)

commit c9b6c3c85ac8f870ff193ae75b2bd19a7a310ec9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 18 16:21:17 2011 -0400

    gatomic: cast to the correct pointer sign

    In the fallback case of the g_atomic_int_ macros we had some (gint*)
    casts that should have been (guint*) casts.

 glib/gatomic.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 4641d13770d4591ce85c5d8ffaf0484703666cc4
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Tue Oct 18 22:28:23 2011 +0200

    [l10n] Updated German translation

 po/de.po | 5958
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 2981 insertions(+), 2977 deletions(-)

commit 915e2238c478737def2f8919204ee10d06ecb98a
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Oct 13 16:53:44 2011 -0400

    gio: Introduce get_sort_key() methods on GDrive, GVolume and GMount

    This is needed to implement efficient and predictable proxy volume
    monitors, see

     https://bugzilla.gnome.org/show_bug.cgi?id=661711

    for details.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  3 +++
 gio/gdrive.c                        | 25 +++++++++++++++++++++++++
 gio/gdrive.h                        |  5 +++++
 gio/gio.symbols                     |  3 +++
 gio/gmount.c                        | 25 +++++++++++++++++++++++++
 gio/gmount.h                        |  5 +++++
 gio/gvolume.c                       | 25 +++++++++++++++++++++++++
 gio/gvolume.h                       |  5 +++++
 8 files changed, 96 insertions(+)

commit 4a25d21bd08b7dcf38f781bf678ee8fffe817203
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Oct 2 17:58:16 2011 +0100

    tests/gobject: Use G_VALUE_INIT

 tests/gobject/override.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 108480b7baad8d02b7b0f9729146a04ad09219de
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 30 17:19:50 2011 +0100

    gobject: Use G_VALUE_INIT

 gobject/gbinding.c              | 16 ++++++++--------
 gobject/gobject.c               |  8 ++++----
 gobject/gparam.c                |  4 ++--
 gobject/gsignal.c               |  6 +++---
 gobject/gsourceclosure.c        |  6 +++---
 gobject/gvaluetypes.c           |  2 +-
 gobject/tests/boxed.c           | 26 +++++++++++++-------------
 gobject/tests/enums.c           |  4 ++--
 gobject/tests/ifaceproperties.c |  4 ++--
 gobject/tests/param.c           | 12 ++++++------
 gobject/tests/reference.c       |  2 +-
 gobject/tests/valuearray.c      |  2 +-
 12 files changed, 46 insertions(+), 46 deletions(-)

commit 8d3250016dac9d43b2a2de6dacb670a9fbc88808
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 30 17:08:15 2011 +0100

    gio: Use G_VALUE_INIT

 gio/gasynchelper.c               | 4 ++--
 gio/gcancellable.c               | 4 ++--
 gio/gdbus-2.0/codegen/codegen.py | 6 +++---
 gio/gdbusnameowning.c            | 6 +++---
 gio/gdbusnamewatching.c          | 4 ++--
 gio/gpollableinputstream.c       | 4 ++--
 gio/gsettings.c                  | 4 ++--
 gio/gsocket.c                    | 4 ++--
 8 files changed, 18 insertions(+), 18 deletions(-)

commit f07201c314e891354f236d7ec49a11700ce02da0
Author: Sjoerd Simons <sjoerd@luon.net>
Date:   Sun Oct 16 10:57:29 2011 +0100

    GDBusConnection: Fix race in /gdbus/connection/life-cycle

    GDBusConnection sets the closed flag in the worker thread, then
    adds an
    idle callback (which refs the Connection) to signal this in the main
    thread. The tests session_bus_down doesn't spin the mainloop, so the
    "closed" signal will always fire if iterating the mainloop later (and
    drops the ref when doing so). But _is_closed can return TRUE even
    before
    signalling this, in which case the "closed" signal isn't fired and the
    ref isn't dropped, causing the test to fail.

    Instead simply always wait for the closed signal, which is a good
    thing
    to check anyway and ensures the ref is closed.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661896
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 gio/tests/gdbus-connection.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit cf3f1b026b13fe377057f6e1102eefaad1e24c72
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Oct 18 14:15:07 2011 +0200

    Actually Don't define GLIB_COMPILATION in libgthread

    Last commit was wrong, fixing it up

 glib/gthread-win32.c   | 9 +++++++--
 gthread/Makefile.am    | 1 -
 gthread/gthread-impl.c | 4 ++++
 3 files changed, 11 insertions(+), 3 deletions(-)

commit be770969e93f989d7165b240c4e7e5e6ac9c0587
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Oct 18 13:34:06 2011 +0200

    Don't define GLIB_COMPILATION in libgthread

    This was turning all the GLIB_VARs in the glib headers into
    dllexports on windows, causing all sort of nastiness. libgthread is
    mostly empty now anyway, so we don't need any GLIB_COMPILATION like
    flag.

 glib/gthread-win32.c   | 9 ++-------
 gthread/gthread-impl.c | 4 ----
 2 files changed, 2 insertions(+), 11 deletions(-)

commit 735420e54690d5971a0e258e12fff6ee79ae34a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 17:01:36 2011 -0400

    Fix an include guard mismatch

    Spotted by Colin Walters.

 glib/gcharset.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 52389bd01067284565b007bc156643d534282842
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Oct 17 23:00:29 2011 +0200

    Fix up testcase broken due to g_thread_new API change

 gio/tests/win32-streams.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f3ac581713f7297b0bf33c77c47e9bf32961775f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 18 00:15:37 2011 +0800

    Move _glib_get_locale_dir to ggettext.c

    -Move _glib_get_locale_dir to ggettext.c, as Matthias suggested
    -Made up for the headers that needed to be included in ggettext.c
    to avoid
     C4013 (implicit declaration of ...) errors/warnings

 glib/ggettext.c | 56
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gutils.c   | 50 --------------------------------------------------
 2 files changed, 56 insertions(+), 50 deletions(-)

commit 9973383bd05236272f28909db8f422f7a56b11ea
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Oct 17 18:31:48 2011 +0200

    Updated POTFILES.in

 po/POTFILES.in | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

commit 32214583c361e1b0406a3e6c77c66d907f3f1126
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 17 14:54:50 2011 +0800

    Fix gio.symbols

    g_simple_action_get_parameter_type is now static, so this symbol
    needs to
    be removed from here...

 gio/gio.symbols | 1 -
 1 file changed, 1 deletion(-)

commit b25177fc4f1aaa1daf27791982ecc5e001845d2c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 17 14:53:58 2011 +0800

    GLib: Add forgotten includes and build fixes

    -gcharset.c, genviron.c, gunicollate.c: Some headers were missed
    in those
     files that triggered C4013 warnings/errors (aka. implicit declaration
     of ... in GCC).  Make up for them here.
    -gwin32.h: Only define g_win32_get_package_installation_directory/
     g_win32_get_package_installation_subdirectory as macros
     (alias of g_win32_get_package_installation_directory_utf8/
     g_win32_get_package_installation_subdirectory_utf8) on Win64 (x64) as
     g_win32_get_package_installation_directory/
     g_win32_get_package_installation_subdirectory have seperate existing
     implmentations for Win32-this is a long-standing problem but was
     covered-
     up by G_DISABLE_DEPRECATED, which we are stopping to use as of
     2.31.0.

 glib/gcharset.c    | 3 +++
 glib/genviron.c    | 6 ++++++
 glib/gunicollate.c | 1 +
 glib/gwin32.h      | 2 ++
 4 files changed, 12 insertions(+)

commit e5fd0f5df6043887a985f922ee4a35b73585ca3e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 17 10:54:50 2011 -0400

    Revert "Bug 652827 - glib-2.29.8 no longer builds with mingw.org's
    toolchain"

    This reverts commit 349212211247781e7bec43b95cb57dddc1d0e5b1.

 configure.ac   | 12 +-----------
 glib/gatomic.c |  2 +-
 2 files changed, 2 insertions(+), 12 deletions(-)

commit 3a04f8796855777aa503f1be9ee90107d978cd76
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 17 17:47:00 2011 +0800

    Update VS property sheets

    Some new headers were added...

 build/win32/vs10/glib.props  | 10 ++++++++++
 build/win32/vs9/glib.vsprops |  5 +++++
 2 files changed, 15 insertions(+)

commit e192f45a932b62edcd1d3e2315a5dff20747a346
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 17 17:18:20 2011 +0800

    glib/tests/thread.c: Add config guards

    Not all systems come with unistd.h and sys/time.h, so use config
    guards
    on them so that they are only included when available.

 glib/tests/thread.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 1bfa7e7e860feb9e825ad0a4ae340aca7afe51a6
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 17 16:40:44 2011 +0800

    Update VS property sheets

    gcache.h is now a deprecated header, so up the "install" part for it.

 build/win32/vs10/glib.props  | 4 ++--
 build/win32/vs9/glib.vsprops | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 2f71118e785be41953765d048a7d03718a94e619
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 02:14:18 2011 -0400

    More include cleanups

 glib/gconvert.c      | 2 --
 glib/grand.c         | 1 -
 glib/gstrfuncs.c     | 1 -
 glib/gthread-win32.c | 4 +---
 4 files changed, 1 insertion(+), 7 deletions(-)

commit eb125665d8ad11c22457b4ec5062ede6594b8d89
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Oct 17 14:17:53 2011 +0800

    Update VS property sheets

    Stop using G_DISABLE_DEPRECATED as there are now warnings for usage of
    deprecated APIs/items in GLib

 build/win32/vs10/glib.props  | 2 +-
 build/win32/vs9/glib.vsprops | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 0ec3c744c4f90d99b46658b39cab36a530904ab8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 01:59:35 2011 -0400

    include cleanup

 glib/gutils.c | 4 ----
 1 file changed, 4 deletions(-)

commit d9053e026c5b56a0aab2ca684de0929024181d10
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 01:52:10 2011 -0400

    Make things compile again

 glib/Makefile.am |   2 +
 glib/glib.h      |   1 +
 glib/gstrfuncs.c | 308
 +------------------------------------------------------
 glib/gstrfuncs.h |  19 ----
 glib/gutils.c    |  63 +-----------
 5 files changed, 5 insertions(+), 388 deletions(-)

commit 08933846e49d14e48dded58b6237cbc0a7a9c371
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 01:50:00 2011 -0400

    Move gettext variations into their own files

 glib/ggettext.c | 402
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/ggettext.h |  59 +++++++++
 2 files changed, 461 insertions(+)

commit 67bf0083db329d02ad2e99a8f4586ebfdcba1dd2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 01:30:31 2011 -0400

    Reshuffle some functions between gutils and gfileutils

    Move filename-related functions to gfileutils, and move
    size formatting functions to gutils.

 glib/gfileutils.c | 709
 ++++++++++++++++++++++++++++++++++--------------------
 glib/gfileutils.h | 101 +++++---
 glib/gutils.c     | 679
 +++++++++++++++++++--------------------------------
 glib/gutils.h     |  60 +----
 4 files changed, 779 insertions(+), 770 deletions(-)

commit 23afdb119e05741e90d048b0d54077842de25720
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 01:30:09 2011 -0400

    include cleanup

 glib/gconvert.c | 1 +
 1 file changed, 1 insertion(+)

commit f8a747130887ee1b48d31fe2a5b3480b121379d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 01:11:56 2011 -0400

    Trivial

 glib/genviron.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit fbe24cab21fbf85c5f52b3cb5967efe614194756
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 17 00:33:54 2011 -0400

    Reshuffle genviron.c

    Split win32 functions off into their own section, instead
    of having large and unwieldy ifdef sections inside each function.

    Also move the compat versions of env functions over from gutils.c

 glib/genviron.c | 727
 ++++++++++++++++++++++++++++++--------------------------
 glib/gutils.c   |  49 ----
 2 files changed, 396 insertions(+), 380 deletions(-)

commit b0ab7aba6bf2d70e0546f85091d76d9f83174ce8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:59:55 2011 -0400

    push G_THREADS_MANDATORY over the cliff

    This was used as an optimisation for the macro hackery that used
    to live
    in gthread.h.  If a particular library or program knew that it could
    rely on thread support being enabled, it would allow for static
    evaluation of conditionals in some of those macros.

    Since the macros are dead and thread support is now always-on, we can
    get rid of this bit of legacy.

 gio/Makefile.am           | 2 --
 glib/Makefile.am          | 1 -
 glib/deprecated/gthread.h | 6 +-----
 gobject/Makefile.am       | 2 --
 4 files changed, 1 insertion(+), 10 deletions(-)

commit b0760207197cb32dcc89190f6329a043670ecbd7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:53:03 2011 -0400

    gobject/gio: some last missed statics/inclues

 gio/glib-compile-schemas.c | 2 +-
 gobject/gparam.c           | 2 +-
 gobject/gvalue.c           | 1 +
 gobject/testgobject.c      | 2 +-
 4 files changed, 4 insertions(+), 3 deletions(-)

commit a6d9cf3380a3be9ea518227cba3c571726bb99c6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:50:26 2011 -0400

    gthread/: fix up declarations

    g_thread_init() is now a deprecated API, so drop G_DISABLE_DEPRECATED
    from the CFLAGS for gthread/.  Add the missing declaration for
    g_thread_init_with_errorcheck_mutexes() back to deprecated/gthread.h.

 glib/deprecated/gthread.h | 2 ++
 gthread/Makefile.am       | 3 +--
 gthread/gthread-impl.c    | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

commit 3eec796b18e56351638cc6c0c03ab481618d0e29
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 20:58:02 2011 -0400

    Add private prototype for g_thread_init_glib()

    This function was never put in a header and was only used internally
    from libgthread, but we should keep the symbol around to avoid
    triggering any false-positives on ABI checkers.

    For -Wmissing-prototypes compatibility with this unusual case,
    we should
    add a private prototype in the .c file just before.

 glib/deprecated/gthread-deprecated.c | 1 +
 1 file changed, 1 insertion(+)

commit 09429e2c820118918e6132d32884eb02203136d4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:24:45 2011 -0400

    gio static fixups

 gio/gapplicationimpl-dbus.c   | 2 +-
 gio/giomodule.c               | 2 +-
 gio/gkeyfilesettingsbackend.c | 2 +-
 gio/gnetworkaddress.c         | 1 +
 gio/gnetworkservice.c         | 1 +
 gio/gsettingsschema.c         | 2 ++
 gio/gsimpleaction.c           | 2 +-
 gio/gsocketaddress.c          | 1 +
 gio/gsocketclient.c           | 2 +-
 gio/gsrvtarget.c              | 2 +-
 gio/gtlscertificate.c         | 4 ++--
 11 files changed, 13 insertions(+), 8 deletions(-)

commit 740eacbfcacb4acdc09a5ef93cb2840d1648ce28
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:17:10 2011 -0400

    static and #include fixups in glib/

 glib/gfileutils.c      | 2 +-
 glib/gmain.c           | 2 +-
 glib/gvariant-parser.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 1b018a8bb2c4c508fe8e3996a31210d655b70d30
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:13:22 2011 -0400

    genviron: #include fixups

 glib/genviron.c | 2 ++
 glib/genviron.h | 2 ++
 2 files changed, 4 insertions(+)

commit 38e8ecd62a4e9dfcdf37bc31d8de6fb1fd39d6b5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:11:11 2011 -0400

    more 'static' adding in testcases

    No dead code found this time...

 gio/tests/gapplication-example-cmdline2.c | 3 ++-
 gio/tests/gdbus-example-export.c          | 3 ++-
 gio/tests/gsettings.c                     | 7 ++++---
 gio/tests/gtlsconsoleinteraction.c        | 4 ++--
 gio/tests/io-stream.c                     | 1 +
 gio/tests/socket-common.c                 | 2 +-
 gio/tests/tls-interaction.c               | 1 +
 gobject/tests/binding.c                   | 2 ++
 gobject/tests/boxed.c                     | 1 +
 gobject/tests/dynamictests.c              | 5 ++++-
 gobject/tests/ifaceproperties.c           | 7 ++++---
 gobject/tests/properties.c                | 1 +
 gobject/tests/reference.c                 | 1 +
 gobject/tests/signals.c                   | 4 ++--
 gobject/tests/threadtests.c               | 7 +++++++
 15 files changed, 35 insertions(+), 14 deletions(-)

commit b264fccd23cfb678fbaba9fc7459220f5eef7e14
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 21:10:23 2011 -0400

    contexts test: don't use deprecated GCond wait API

 gio/tests/contexts.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 3d93c44374964b5846aea61f32ecb294efe148db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 20:57:40 2011 -0400

    Mark some functions 'static' in glib/tests

    This has uncovered two unused testcases in option-context.c.  They are
    currently broken and require more investigation (which is probably why
    they are unused).

 glib/tests/642026.c           |  2 +-
 glib/tests/collate.c          |  4 +-
 glib/tests/cond.c             |  2 +-
 glib/tests/logging.c          |  8 ++--
 glib/tests/markup-subparser.c |  2 +-
 glib/tests/option-context.c   | 91
 ++++++++++++++++++++++---------------------
 glib/tests/sequence.c         |  2 +-
 glib/tests/slice.c            |  2 +-
 glib/tests/strfuncs.c         |  2 +-
 glib/tests/string.c           |  2 +-
 10 files changed, 59 insertions(+), 58 deletions(-)

commit 5f79db145d5caf5c16d254cba80cccfdb82e1abc
Author: OKANO Takayoshi <kano@na.rim.or.jp>
Date:   Mon Oct 17 09:25:08 2011 +0900

    Updated Japanese translation

 po/ja.po | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit c3a1d832b8f783308f038bf2b821359c87fedcaf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 19:21:35 2011 -0400

    README: Add note about gobject->gthread situation

 README.in | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 086d577b3dc7aa1509e95a875984682d9048aabc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 19:17:52 2011 -0400

    gobject.pc: remove dependency on gthread

    GObject no longer uses gthread, so libgthread should no longer be
    included in the linker flags of programs built against GObject.

 gobject-2.0.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 306aa62ea5fa4d3a57bca419afcc159f9509b476
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 19:14:18 2011 -0400

    drop -uninstalled.pc files

    These were meant to provide the ability to use GLib directly out
    of its
    build tree but have a couple of rather serious limitations that
    prevent
    their serious use:

     - these files only worked with programs built using libtool

     - for non-trivial uses, other environment variables will need to be
       setup to allow GLib to function properly

     - the system doesn't stack well when attempting to use multiple
       libraries all uninstalled

    The jhbuild --prefix= style system works much better in every way,
    so we
    remove this old hack.

 Makefile.am                             |  9 +--------
 README.in                               |  2 ++
 configure.ac                            |  7 -------
 gio-2.0-uninstalled.pc.in               |  6 ------
 gio-unix-2.0-uninstalled.pc.in          |  6 ------
 glib-2.0-uninstalled.pc.in              |  9 ---------
 gmodule-2.0-uninstalled.pc.in           |  8 --------
 gmodule-no-export-2.0-uninstalled.pc.in | 14 --------------
 gobject-2.0-uninstalled.pc.in           |  7 -------
 gthread-2.0-uninstalled.pc.in           |  6 ------
 10 files changed, 3 insertions(+), 71 deletions(-)

commit c5aa8390b27c6cb535251187f8d4f86da59730e9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 19:11:00 2011 -0400

    gitignore

 gio/tests/.gitignore  | 14 ++++++++------
 glib/tests/.gitignore | 13 +++++++++++++
 2 files changed, 21 insertions(+), 6 deletions(-)

commit a9a1c97904aeed96bcb248e16cb495e6907b7126
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 19:08:59 2011 -0400

    gthread: move test cases to glib/

 configure.ac                                  |  1 -
 {gthread => glib}/tests/1bit-mutex.c          |  0
 {gthread => glib}/tests/642026.c              |  0
 glib/tests/Makefile.am                        | 46
 ++++++++++++++++++++++--
 {gthread => glib}/tests/gwakeuptest.c         |  0
 {gthread => glib}/tests/spawn-multithreaded.c |  0
 {gthread => glib}/tests/spawn-singlethread.c  |  0
 {gthread => glib}/tests/test-spawn-echo.c     |  0
 gthread/Makefile.am                           |  3 --
 gthread/tests/.gitignore                      | 11 ------
 gthread/tests/Makefile.am                     | 52
 ---------------------------
 11 files changed, 44 insertions(+), 69 deletions(-)

commit fb4e120d88777affc4a8fbeb73312b1e810e2431
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 19:04:19 2011 -0400

    tests: merge gthread/ and glib/ atomic tests

 glib/tests/atomic.c       | 60 +++++++++++++++++++++++++++++++++++++++-
 gthread/tests/Makefile.am |  4 ---
 gthread/tests/atomic.c    | 70
 -----------------------------------------------
 3 files changed, 59 insertions(+), 75 deletions(-)

commit f5e869478221387f915bb619892d68d10744ff65
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 16 19:01:55 2011 -0400

    glib/tests/atomic: convert to proper gtester test

 glib/tests/atomic.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 6c1d768f7bb4ced7d0f484fe9fe8ee2daef489e2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 18:43:22 2011 -0400

    Also clean up includes

 glib/gconvert.c  | 1 +
 glib/gmessages.c | 3 ++-
 glib/gunicode.h  | 3 ---
 glib/gutils.h    | 4 ----
 4 files changed, 3 insertions(+), 8 deletions(-)

commit 0589f715e5462b6bfcadc044fe4bcf9bbaf62ccb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 18:40:58 2011 -0400

    Move charset and locale name functions to their own files

    They did not really belong into either gutils or gutf8.

 glib/Makefile.am |   6 +-
 glib/gcharset.c  | 589
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gcharset.h  |  40 ++++
 glib/glib.h      |   1 +
 glib/gutf8.c     | 193 ------------------
 glib/gutils.c    | 363 ----------------------------------
 6 files changed, 634 insertions(+), 558 deletions(-)

commit 86cc4b246da0896d7842d121bf5bc019741ba99b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 17:37:29 2011 -0400

    Add deprecation annotations to mem chunk apis

 glib/deprecated/gallocator.h | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit e7b4319d61495d742915770a7b6f4fc14c29db02
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 17:01:26 2011 -0400

    Move version APIs out of gutils

    Just another cleanup.

 glib/Makefile.am |   2 +
 glib/glib.h      |   1 +
 glib/gutils.c    |  93 -----------------------------------
 glib/gutils.h    |  42 ----------------
 glib/gversion.c  | 145
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gversion.h  |  78 ++++++++++++++++++++++++++++++
 6 files changed, 226 insertions(+), 135 deletions(-)

commit 45f221c32f7c88e487fe260eefb3be8d1c2443af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 16:52:24 2011 -0400

    Move GTrashStack out of gutils.[hc]

    Reducing the mess in gutils, and moving docs inline
    at the same time. Double win.

 docs/reference/glib/tmpl/.gitignore       |   1 +
 docs/reference/glib/tmpl/trash_stack.sgml |  77 ----------------------
 glib/Makefile.am                          |   2 +
 glib/glib.h                               |   1 +
 glib/gslice.c                             |   1 +
 glib/gtrashstack.c                        |  94
 +++++++++++++++++++++++++++
 glib/gtrashstack.h                        | 103
 ++++++++++++++++++++++++++++++
 glib/gutils.h                             |  61 ------------------
 8 files changed, 202 insertions(+), 138 deletions(-)

commit 6ab1c772705560f62b3f302ee0d396eed06eefb4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 16:23:18 2011 -0400

    Pass correct data to fatal log handlers

    This was pointed out by John Ralls in bug 653052.
    He also provided the test case.

 glib/gmessages.c     |  2 +-
 glib/tests/logging.c | 58
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 1 deletion(-)

commit 1435db48baff185660650d46992f1a290a803b9d
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Wed Aug 17 08:57:15 2011 +0200

    Clarify g_spawn_*() behaviour without full path

    Document the previously uncovered case of calling
    g_spawn_async_with_pipes()
    without a full path but no G_SPAWN_SEARCH_PATH. This runs programs
    from the
    current directory, which might be unexpected and even dangerous in
    some corner
    cases.

    https://bugzilla.gnome.org/show_bug.cgi?id=656621

 glib/gspawn.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 8ff94df6325b54264cd2ea7b7b6701665b1014a9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 14:34:16 2011 -0400

    Add a tests of some GVfs functions

    https://bugzilla.gnome.org/show_bug.cgi?id=656621

 gio/tests/Makefile.am |  7 +++++--
 gio/tests/vfs.c       | 55
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 2 deletions(-)

commit c41f6a0b7c90a51f7e195669083754e96c794d6a
Author: Jiro Matsuzawa <jmatsuzawa@src.gnome.org>
Date:   Mon Oct 17 01:54:33 2011 +0900

    Updated Japanese translation

 po/ja.po | 218
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 122 insertions(+), 96 deletions(-)

commit 0e68a7d06d5ca68253d1992a8147afc3ecd90460
Author: Jiro Matsuzawa <jmatsuzawa@src.gnome.org>
Date:   Sat Sep 17 11:30:01 2011 +0900

    Updated Japanese translation

 po/ja.po | 195
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 98 insertions(+), 97 deletions(-)

commit 448be24cf38e90c0ba415cb37cbc0bae09666593
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 16 00:08:42 2011 -0400

    Add app lauch environment test

 gio/tests/appinfo.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

commit cbb0b2a0ed4e5e219902fd0dbbff408ff0324381
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 23:58:30 2011 -0400

    Add g_get_codeset test

 glib/tests/utils.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit 1493285f1d4693b54020dd77bbbfd8a5086af6ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 23:58:18 2011 -0400

    Add GAsyncQueue unit test

 glib/tests/Makefile.am  |   3 +
 glib/tests/asyncqueue.c | 182
 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 185 insertions(+)

commit d0bb1e0b0a3237f982a0ec234e7be877d4e223f2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 23:27:28 2011 -0400

    Move g_get_codeset next to g_get_charset

    g_get_codeset is a close relatove to g_get_charset, and up to now
    it lived a shadowy existence without any header presence.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gunicode.h                       | 13 ++++---------
 glib/gutf8.c                          | 28 +++++++++++++++++++++++-----
 glib/gutils.c                         | 18 ------------------
 4 files changed, 28 insertions(+), 32 deletions(-)

commit 976b0b72a477d64c9d4382de11b6db900ed9405f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 20:06:32 2011 -0400

    Include genviron.h where necessary

 glib/gasyncqueue.c | 1 +
 glib/grand.c       | 1 +
 glib/gspawn.c      | 1 +
 3 files changed, 3 insertions(+)

commit 327e72f9fb9a44e9756dd037c2562701925a6a81
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 19:39:14 2011 -0400

    And fix the syntax, too

 glib/genviron.h | 2 ++
 1 file changed, 2 insertions(+)

commit 7df9637f0f09a2eefaddb1a76f171dc3f20e3430
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 19:38:10 2011 -0400

    Forgotten file

 glib/genviron.h | 61
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

commit d4dfca21bb01c98fcf415f974edc63297a38b59c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 18:23:07 2011 -0400

    Drop unused  copy of _g_getenv_nomalloc

 glib/genviron.c | 610
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 610 insertions(+)

commit a7143a0e9f597916e3cfb7e3b59674f571e9cba6
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Oct 13 17:39:03 2011 +0100

    GDBusConnection: warn that direct access to the stream is a bad idea

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=661679
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 gio/gdbusconnection.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 70eff50f218e9bf34dafb97f50f0bc5da9356256
Author: Torsten Schönfeld <kaffeetisch@gmx.de>
Date:   Tue Aug 16 19:11:43 2011 +0200

    Add two annotations to gio

    https://bugzilla.gnome.org/show_bug.cgi?id=656679

 gio/gfile.c     | 2 +-
 gio/gfileinfo.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5dcc502f914db3b57599e6740345b46292a979a4
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 4 10:14:35 2011 +0100

    Document that types are limited to 64 KiB

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=659916
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 gobject/gtype.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 33a86fce6a157ec7a69fe21a157b27748cb286eb
Author: Kean Johnston <kean.johnson@gmail.com>
Date:   Sat Oct 15 17:57:23 2011 -0400

    GIOModule: Use G_SEARCHPATH_SEPARATOR_S instead of ":"

    https://bugzilla.gnome.org/show_bug.cgi?id=661257

 gio/giomodule.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 94accc2d7891c8147ea5468828a346c716b06045
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sat Oct 15 17:54:41 2011 -0400

    GKeyFile: improve introspection annotations

    Ensure that all methods that take or return arrays are annotated
    (including length). Mark ref, unref and free methods as (skip).

    https://bugzilla.gnome.org/show_bug.cgi?id=590808

 glib/gkeyfile.c | 60
 ++++++++++++++++++++++++++++-----------------------------
 1 file changed, 30 insertions(+), 30 deletions(-)

commit 96817746d999ce34b4fd3471b3c58d3a6be2dcbd
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sat Oct 15 17:51:25 2011 -0400

    Turn GKeyFile into a boxed for introspection

    Using the new refcounting API, introduce a boxed type wrapping
    GKeyFile and expose it introspection bindings in glib-types.h.

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gboxed.c                            |  2 ++
 gobject/glib-types.h                        | 10 ++++++++++
 gobject/gobject.symbols                     |  1 +
 4 files changed, 14 insertions(+)

commit a57c9148cf6dde67c967b837d74faf92a12c3ca6
Author: Christian Persch <chpe@gnome.org>
Date:   Mon May 25 15:07:27 2009 +0200

    GKeyFile: Add refcounting API

    Adds g_key_file_ref and g_key_file_unref, to be used by a future
    GKeyFile boxed type for language bindings.

    Based on the patch by Christian Persch and Emmanuele Bassi.

    Author: Christian Persch
    Signed-off-by: Johan Dahlin
    Signed-off-by: Giovanni Campagna

    https://bugzilla.gnome.org/show_bug.cgi?id=590808

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/gkeyfile.c                       | 59
 ++++++++++++++++++++++++++++++++---
 glib/gkeyfile.h                       |  2 ++
 glib/glib.symbols                     |  2 ++
 4 files changed, 60 insertions(+), 5 deletions(-)

commit dfd75d2ead8c41f307f0daeb84aaa9e4bd923119
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 17:31:47 2011 -0400

    Add 'Since 2.32' indexes to gio and gobject docs

 docs/reference/gio/gio-docs.xml          | 4 ++++
 docs/reference/gobject/gobject-docs.sgml | 4 ++++
 2 files changed, 8 insertions(+)

commit de834bed306565c0652050665eafff4dfcdf0d8b
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 15 16:59:59 2011 -0400

    GAppLaunchContext: add environment-manipulating functions

    Add functions for manipulating the environment under which a
    GAppLaunchContext will launch its children, to avoid thread-related
    bugs with using setenv() directly.

    FIXME: win32 side isn't implemented yet

    https://bugzilla.gnome.org/show_bug.cgi?id=659326

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gappinfo.c                      |  99 +++++++++++++++++++++++-
 gio/gappinfo.h                      |  66 ++++++++--------
 gio/gdesktopappinfo.c               | 145
 +++++++++++++++++++++---------------
 gio/gio.symbols                     |   3 +
 gio/gwin32appinfo.c                 |   9 +++
 6 files changed, 232 insertions(+), 93 deletions(-)

commit 117e534091d7cf21ab48c56141a3340a15c74390
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 16:50:23 2011 -0400

    Misc doc formatting fixes

 docs/reference/glib/glib-sections.txt |  1 -
 glib/gscanner.c                       |  9 ++++-----
 glib/gthread.c                        | 16 +++++++---------
 glib/gthread.h                        |  2 +-
 glib/gthreadpool.c                    |  4 ++--
 5 files changed, 14 insertions(+), 18 deletions(-)

commit 94c246e8e3816d05971e9a825cf15769b04e8098
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 16:28:07 2011 -0400

    Add tests for new g_environ_ functions

 glib/tests/environment.c | 62
 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 60 insertions(+), 2 deletions(-)

commit 7a9987d35d568707df2c7c12e851623b46e9e63d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 16:13:08 2011 -0400

    Move environment-related functions into their own files

    gutils.[hc] is a bit of a grab bag, so lets start cleaning
    things up by moving all the environment-related functions
    into separate genviron.[hc] files.

    The private _g_getenv_nomalloc has been moved to its sole caller.

 glib/Makefile.am |   4 +-
 glib/glib.h      |   1 +
 glib/gslice.c    |  20 +-
 glib/gutils.c    | 591
 +------------------------------------------------------
 glib/gutils.h    |  38 +---
 5 files changed, 30 insertions(+), 624 deletions(-)

commit 409d93148f2d95c2966f75fe0901edd1e06c99a9
Author: Dan Winship <danw@gnome.org>
Date:   Sat Oct 15 15:52:28 2011 -0400

    gutils: Add functions for working with environment arrays

    When spawning a child process, it is not safe to call setenv() before
    the fork() (because setenv() isn't thread-safe), but it's also not
    safe to call it after the fork() (because it's not async-signal-safe).
    So the only safe way to alter the environment for a child process from
    a threaded program is to pass a fully-formed envp array to
    exec*/g_spawn*/etc.

    So, add g_environ_getenv(), g_environ_setenv(), and
    g_environ_unsetenv(), which act like their namesakes, but work on
    arbitrary arrays rather than working directly on the environment.

    http://bugzilla.gnome.org/show_bug.cgi?id=659326

 docs/reference/glib/glib-sections.txt |   3 +
 glib/glib.symbols                     |   3 +
 glib/gspawn.h                         |  36 ++++--
 glib/gutils.c                         | 204
 +++++++++++++++++++++++++++++-----
 glib/gutils.h                         |  27 +++--
 5 files changed, 225 insertions(+), 48 deletions(-)

commit 5ff803d91f252bfeb4a9cfaf2f94ecdea6e6a687
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 15 13:27:46 2011 -0400

    Add to the pitfalls: fork() and daemon()

 glib/gthread.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit ef6371ff746e618eabd301b237b4e4a620ca5e47
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 15 11:03:07 2011 -0400

    tests/Makefile.am: remove unused LDFLAGS variable

 tests/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit 6651bd221e4d9316884b4fad3c3e9943695ab639
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 13:04:20 2011 -0400

    Expand thread docs a bit

    Add some discussion of pitfalls of threaded programming.

 glib/gthread.c | 43 ++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 38 insertions(+), 5 deletions(-)

commit e4699af8eb384cac336a36db6b97722d021e1cbf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 11:37:03 2011 -0400

    Documentation tweaks

 glib/gthread.c | 66
 ++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 41 insertions(+), 25 deletions(-)

commit 55654fc8adb1cb2f907aa0228631951860dc6dda
Author: Fran Dieguez <fran@openhost.es>
Date:   Sat Oct 15 16:29:50 2011 +0200

    Updaged Galician translations

 po/gl.po | 824
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 422 insertions(+), 402 deletions(-)

commit 3fe3fdd75abb313fc43b58ebd4a71dcfe8bab32f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 15 09:48:42 2011 -0400

    Check for "our" threads in some places

    Don't allow g_thread_join() to be called on or g_thread_exit() to be
    called from within threads that were not created by GLib.  Document
    this.

 glib/gthread.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

commit 11f3684b715ef35dd97ad108c7116260c7c4cdc2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 15 09:48:22 2011 -0400

    gtk-doc g_thread_ref() and g_thread_unref()

 glib/gthread.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit e75e9c30446157b52013644fdc5fd406733027b9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 15 09:48:10 2011 -0400

    Rename g_thread_try to g_thread_try_new

 docs/reference/glib/glib-sections.txt |  2 +-
 glib/glib.symbols                     |  2 +-
 glib/gthread.c                        | 18 +++++++++---------
 glib/gthread.h                        |  2 +-
 glib/gthreadpool.c                    |  2 +-
 glib/tests/thread.c                   |  4 ++--
 6 files changed, 15 insertions(+), 15 deletions(-)

commit 4417e77f17902e8a4d782979b187f23f6b86bf9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 00:56:08 2011 -0400

    Add atomic test to TEST_PROGS

 glib/tests/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 482bb387484c3febb6f7b01326cb6ab66d900f91
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 00:26:02 2011 -0400

    Documentation additions

 glib/deprecated/gthread-deprecated.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8bc8cd7aa05900dcfad943b91c3720caa7b611ee
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 15 00:09:20 2011 -0400

    Improve test coverage

 glib/tests/Makefile.am |  3 +++
 glib/tests/mainloop.c  | 58
 ++++++++++++++++++++++++++++++++++++++++++++++++--
 glib/tests/strfuncs.c  | 15 +++++++++++++
 3 files changed, 74 insertions(+), 2 deletions(-)

commit 52321def8f187eb1586c8989c407b473e19cf2e6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 14 23:20:06 2011 -0400

    Add a test involving g_thread_ref/unref

    Also, fix the resource-limit test to properly unset RLIMIT_NPROC.

 glib/tests/thread.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

commit 81431fa5b8093ea15533a41cd46c5569941fe99a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 14 23:12:06 2011 -0400

    Add g_thread_try to the docs

 docs/reference/glib/glib-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit d000bf67f70f83bd37ae078b38cf83ee7d3c6447
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 14 23:01:05 2011 -0400

    Update doc lists

 docs/reference/glib/glib-sections.txt | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 5ddcc284e801a84a455bfecca18dbc68dd91439b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 14 23:00:17 2011 -0400

    Minor doc clarifications

 glib/gthread.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit a6da2b9ff91f0b8782a243e342e17a0ace415c11
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 14 21:52:36 2011 -0400

    Mention thread API changes in README

 README.in | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 4359cbd810e29f964aae16fb186d2ad2fe331189
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 14 21:43:51 2011 -0400

    I read the news today, oh boy...

 NEWS | 201
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 201 insertions(+)

commit 7ab25865f229ad8d98a067b590319bfdd988e50e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 14 19:41:08 2011 -0400

    Stop checking for fork() across GMainContext

    01ed78d525cf2f8769022e27cc2573ec7ba123b3 introduced assertion
    checks for
    creating a main context, forking, and attempting to use the main
    context
    from the child side of the fork.

    Some code (such as gnome-keyring-daemon) daemonise after calling
    GMainContext.  That's probably still mostly safe since we still only
    have one side of the fork touching the context afterwards.

    This use case is still troubling, however, since if any worker threads
    have been created at the time of the fork(), we could end up in the
    classic situation of leaving some mutexes in a locked state when the
    other threads disappear from the copy of the image that the child
    gets.

    This will require some deeper thinking...

 glib/gmain.c | 14 --------------
 1 file changed, 14 deletions(-)

commit 51773c6c64431c03242a6f3d12d44f99282c815c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 14 13:02:58 2011 -0400

    Mask all signals in GLib worker thread

    Some code using GLib (gnome-keyring-daemon, for example) assumes that
    they can catch signals by masking them out in the main thread and
    calling sigwait() from a worker.

    The problem is that our new worker thread catches the signals before
    sigwait() has a chance and the default action occurs (typically
    resulting in program termination).

    If we mask all the signals in our worker, then this can't happen.

 docs/reference/glib/tmpl/macros_misc.sgml | 15 +++++++++++++++
 glib/gmain.c                              | 11 +++++++++++
 2 files changed, 26 insertions(+)

commit 1ed88f0615d1be4d629f3f1933ec5b249cb6429e
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Thu Oct 13 22:33:21 2011 +0200

    desktop-app-info: Add support for X-GNOME-Keywords

    With search gaining traction as being the preferred way to locate
    applications, the existing .desktop file fields meant for browsing
    often produce insufficient results.
    gnome-control-center introduced a custom X-GNOME-Keywords field for
    that purpose, which we plan to support in gnome-shell as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=661763

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdesktopappinfo.c               | 21 +++++++++++++++++++++
 gio/gdesktopappinfo.h               |  1 +
 gio/gio.symbols                     |  1 +
 4 files changed, 24 insertions(+)

commit 14e3b128237279d895128e4d611cd12c604a67d4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 14 00:00:14 2011 -0400

    g_cond_timed_wait: support NULL time parameter

    It was undocumented, but this used to mean "wait forever".  Looks like
    we have some uses of this internally and there may be others in the
    wild...

 glib/deprecated/gthread-deprecated.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 4033c616ff23eb1e647a0b0cd13ac54f28e1242b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 23:24:23 2011 -0400

    GCond: use monotonic time for timed waits

    Switch GCond to using monotonic time for timed waits by introducing a
    new API based on monotonic time in a gint64: g_cond_wait_until().

    Deprecate the old API based on wallclock time in a GTimeVal.

    Fix up the gtk-doc for GCond while we're at it: update the examples to
    use static-allocated GCond and GMutex and clarify some things a bit.
    Also explain the rationale behind using an absolute time instead of a
    relative time.

 docs/reference/glib/glib-sections.txt |   2 +-
 glib/deprecated/gthread-deprecated.c  |  46 +++++++++++
 glib/deprecated/gthread.h             |  12 ++-
 glib/glib.symbols                     |   2 +-
 glib/gthread-posix.c                  | 148
 ++++++++++++++++++----------------
 glib/gthread-win32.c                  |  30 +------
 glib/gthread.c                        |  42 ++++++----
 glib/gthread.h                        |   5 +-
 8 files changed, 167 insertions(+), 120 deletions(-)

commit fd382156b80a0ba848d6de7e009337fdb32221d9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 10:51:35 2011 -0400

    tests: disable deprecation warnings for tests

    We need to test deprecated functions, so don't warn us for doing so.

 tests/Makefile.am          | 5 +++--
 tests/gobject/Makefile.am  | 1 +
 tests/refcount/Makefile.am | 1 +
 3 files changed, 5 insertions(+), 2 deletions(-)

commit 3ebdb4d46a97790e0d93db3e2411b44e46da0159
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 09:14:57 2011 -0400

    gutils: stop using GStaticPrivate

    This was our last internal use.

 glib/gutils.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 62fe0532685a592c760d98c791379dea4d79fbe1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 09:00:54 2011 -0400

    Revert "make struct _GThread private"

    This reverts commit d904612100120d12126f1a6623a106d8a5b02fa6.

    glibmm touches the contents of GThread, so this broke their build.

 glib/deprecated/gthread.h | 9 +++++++++
 glib/gthreadprivate.h     | 9 ---------
 2 files changed, 9 insertions(+), 9 deletions(-)

commit d904612100120d12126f1a6623a106d8a5b02fa6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 01:24:16 2011 -0400

    make struct _GThread private

    Hide the definition of struct _GThread in gthreadprivate.h for now.

    This is possibly an API break -- although the structure contents were
    undocumented and it was not safe to access them in a meaningful way,
    someone may have tried to do it anyway.  We'll leave it here for
    a while
    to see if it causes any problems.

    Avoid merging its contents with GRealThread for now, just incase
    we need
    to expose it again.

 glib/deprecated/gthread.h | 9 ---------
 glib/gthreadprivate.h     | 9 +++++++++
 2 files changed, 9 insertions(+), 9 deletions(-)

commit b1cc2579c199c6568e1bf5cef1aab7633f99824f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 01:22:51 2011 -0400

    tidy up gthreadprivate.h

    Remove some unused includes, too.

 glib/deprecated/gthread-deprecated.c |  1 +
 glib/gthreadprivate.h                | 40
 +++++++++++++++---------------------
 2 files changed, 18 insertions(+), 23 deletions(-)

commit 332f74a2fc40da5d8f9313020468ed27e56b2b14
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 01:17:36 2011 -0400

    drop g_thread_new_full()

    We'll hold out on this until someone has a really convincing
    reason for
    why they need to control the stack size.

    If we do decide to add it back, it should probably have a name like
    _new_with_stack_size(), not _full().

 glib/deprecated/gthread-deprecated.c |  2 +-
 glib/deprecated/gthread.h            |  2 +-
 glib/glib.symbols                    |  1 -
 glib/gthread.c                       | 51
 ++++--------------------------------
 glib/gthread.h                       |  5 ----
 glib/tests/thread.c                  |  6 ++---
 6 files changed, 10 insertions(+), 57 deletions(-)

commit 430c5635f245ca485f09035f1b6c3a59dd69758c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 01:00:57 2011 -0400

    g_thread_new: never fail

    Remove the GError argument from g_thread_new() and abort on failure.
    Introduce g_thread_try() for those who want to handle failure.

 gio/gdbusprivate.c                  |  5 +----
 gio/tests/contexts.c                |  2 +-
 gio/tests/gdbus-export.c            |  7 +------
 gio/tests/gdbus-peer.c              | 14 ++++---------
 gio/tests/gdbus-proxy-threads.c     |  4 +---
 gio/tests/gdbus-test-codegen.c      |  3 +--
 gio/tests/gdbus-threading.c         | 24 ++++------------------
 gio/tests/resolver.c                |  4 +---
 gio/tests/send-data.c               |  4 +---
 gio/tests/socket-client.c           |  4 +---
 gio/tests/socket-server.c           |  4 +---
 gio/tests/socket.c                  |  3 +--
 gio/tests/tls-interaction.c         |  3 +--
 gio/tests/unix-streams.c            |  4 ++--
 glib/glib.symbols                   |  1 +
 glib/gmain.c                        |  6 +-----
 glib/gthread.c                      | 40
 +++++++++++++++++++++++++++++++++----
 glib/gthread.h                      |  3 +++
 glib/gthreadpool.c                  |  2 +-
 glib/tests/once.c                   |  2 +-
 glib/tests/thread.c                 |  6 +++---
 gobject/tests/dynamictests.c        |  2 +-
 gthread/tests/1bit-mutex.c          |  3 +--
 gthread/tests/atomic.c              |  2 +-
 gthread/tests/gwakeuptest.c         |  2 +-
 gthread/tests/spawn-multithreaded.c |  6 ++----
 26 files changed, 73 insertions(+), 87 deletions(-)

commit 015f4b4513279c4be40c03121473ffcea347ed84
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 00:43:33 2011 -0400

    thread: nuke the concept of 'joinable'

    And remove the 'joinable' argument from g_thread_new() and
    g_thread_new_full().

    Change the wording in the docs.  Clarify expectations for
    (deprecated) g_thread_create().

 gio/gdbusprivate.c                   |  1 -
 gio/tests/contexts.c                 |  2 +-
 gio/tests/gdbus-export.c             |  1 -
 gio/tests/gdbus-peer.c               |  4 ---
 gio/tests/gdbus-proxy-threads.c      |  2 +-
 gio/tests/gdbus-test-codegen.c       |  1 -
 gio/tests/gdbus-threading.c          |  4 ---
 gio/tests/resolver.c                 |  8 +++++-
 gio/tests/send-data.c                |  6 ++++-
 gio/tests/socket-client.c            |  6 ++++-
 gio/tests/socket-server.c            |  6 ++++-
 gio/tests/socket.c                   |  2 +-
 gio/tests/tls-interaction.c          |  2 +-
 gio/tests/unix-streams.c             |  4 +--
 glib/deprecated/gthread-deprecated.c | 24 ++++++++++++------
 glib/gmain.c                         |  2 +-
 glib/gthread.c                       | 48
 +++++++++++-------------------------
 glib/gthread.h                       |  2 --
 glib/gthreadpool.c                   | 13 +++++-----
 glib/gthreadprivate.h                | 14 +++++------
 glib/tests/once.c                    |  2 +-
 glib/tests/thread.c                  | 12 ++++-----
 gobject/tests/dynamictests.c         |  2 +-
 gthread/tests/1bit-mutex.c           |  4 +--
 gthread/tests/atomic.c               |  2 +-
 gthread/tests/gwakeuptest.c          |  2 +-
 gthread/tests/spawn-multithreaded.c  |  3 +--
 27 files changed, 87 insertions(+), 92 deletions(-)

commit b0e73ca390d0f22baccc3636dd4d2e8e9cb0f58f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 00:29:04 2011 -0400

    GThread: make refcounting public

 glib/glib.symbols |  2 ++
 glib/gthread.c    | 12 +++++++++++-
 glib/gthread.h    |  2 ++
 3 files changed, 15 insertions(+), 1 deletion(-)

commit 62be9365d9641073185c28c8f0a8fe06fb9a92e0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 00:18:17 2011 -0400

    thread: simplify 'free' process

    GThread is freed using some very slightly confusing logic: if
    the thread
    was created 'joinable', then the structure is freed after the join()
    call succeeds (since we know the thread has exited).  If the
    thread was
    not created 'joinable' then the free is when the thread quits
    (since we
    know 'join' will not be called later).

    Move to a straight ref-counting system: 1 ref owned by the thread
    and 1
    extra ref if the thread is joinable.  Both thread quit and joining
    will
    decrease the refcount by 1.

 glib/gthread.c        | 40 ++++++++++++++++++----------------------
 glib/gthreadprivate.h |  1 +
 2 files changed, 19 insertions(+), 22 deletions(-)

commit becb4b820f84badac9eaee4e123c8a0ef41a9ba3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 13 00:01:28 2011 -0400

    remove 'joinable' parameter to backends

    Both backends are now oblivious to the concept of joinability,
    so don't
    bother passing the parameter.

 glib/gthread-posix.c  | 1 -
 glib/gthread-win32.c  | 1 -
 glib/gthread.c        | 2 +-
 glib/gthreadprivate.h | 1 -
 4 files changed, 1 insertion(+), 4 deletions(-)

commit dbf20d585fd53c612a1dd8ef07275d2affcf7fc0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 23:40:02 2011 -0400

    posix threads: joinable tweaks

    Make the POSIX backend a little bit more like the win32 one in
    terms of
    how we deal with joinability.

    Calling g_system_thread_join() is now optional, and
    g_system_thread_wait() can be safely called by multiple threads.

    There is no longer any internal concept of joinability.

 glib/gthread-posix.c | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

commit f970dfc73471f2108bc21c10e4714eafea70315c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 23:25:12 2011 -0400

    tests: don't #include <sys/resource.h> on win32

 glib/tests/thread.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 45736d33bb0a855cfa1aa07453c7af0d26996e9b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 23:22:31 2011 -0400

    win32 threads: simplify

    Merge the GThreadData with the GThreadWin32 struct.  Drop the
    extra TLS
    variable.

    Close the handle on _free(), which means that there is no leak if
    g_system_thread_join() isn't called.

    Remove all internal concept of joinability.

 glib/gthread-win32.c | 57
 +++++++++-------------------------------------------
 1 file changed, 9 insertions(+), 48 deletions(-)

commit dfd466979be8ab93d7c569c3e5199a02d03671e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 23:16:49 2011 -0400

    Only g_system_thread_free() our own threads

    Keep track of if we created a thread for ourselves or if the GThread*
    was allocated in response to g_thread_self() on a previously-unknown
    thread.

    Only call g_system_thread_free() in the first case.

 glib/gthread.c        | 21 +++++++++++++--------
 glib/gthreadprivate.h |  2 ++
 2 files changed, 15 insertions(+), 8 deletions(-)

commit a5800ef336661e51db019d7bc4b98b184b06ba86
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 23:04:15 2011 -0400

    Finish killing off GSystemThread

 configure.ac               | 14 --------------
 glib/deprecated/gthread.h  | 13 +++++++++++--
 glib/glibconfig.h.win32.in | 16 ----------------
 glib/gthreadprivate.h      |  1 -
 4 files changed, 11 insertions(+), 33 deletions(-)

commit e0c9757b9b0d7074923f96716adb3bff07b32349
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:53:52 2011 -0400

    win32 threads: use our own data, not system_thread

    Stop using the generic system_thread field in GRealThread.
    Use our own
    pointer instead.

 glib/gthread-win32.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

commit 67e28068e14428afe8335a1503ea7d734419326d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:49:39 2011 -0400

    win32: fix function name clash

 glib/gthread-win32.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2010f7f95554df5654e6ee626f76189a0712dbfe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:40:37 2011 -0400

    posix threads: use our own system_thread

    Wrap GRealThread in a GThreadPosix that includes its own pthread_t
    field
    called "system_thread" and use that instead of the generic field in
    GRealThread.

 glib/gthread-posix.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

commit 2f5486f02040b0d5cfc67eb97bd037a0ffd86635
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:35:35 2011 -0400

    thread creation: Simplify error handling

    Instead of always returning non-NULL and finding out about errors via
    the GError*, return NULL from the backend in the event of an error.

 glib/gthread-posix.c |  5 +++--
 glib/gthread-win32.c |  3 ++-
 glib/gthread.c       | 23 +++++++++--------------
 3 files changed, 14 insertions(+), 17 deletions(-)

commit e14a3746db8c9979b3d9840602be5f79af501605
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:29:13 2011 -0400

    Combine g_sytem_thread_{new,create}()

 glib/gthread-posix.c  | 24 ++++++++++--------------
 glib/gthread-win32.c  | 25 ++++++++++---------------
 glib/gthread.c        | 11 ++++-------
 glib/gthreadprivate.h | 12 +++++-------
 4 files changed, 29 insertions(+), 43 deletions(-)

commit a3f82c847f8f9dc7931bc9c81f95205e2178ab49
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:23:12 2011 -0400

    g_system_thread_create: drop 'data' arg

    Since it's now always the same as the 'thread' arg.

 glib/gthread-posix.c  | 3 +--
 glib/gthread-win32.c  | 3 +--
 glib/gthread.c        | 2 +-
 glib/gthreadprivate.h | 1 -
 4 files changed, 3 insertions(+), 6 deletions(-)

commit 3237eaf5d527ecccae51b490d9cfbbf7e6b8538c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:19:28 2011 -0400

    g_system_thread_create: SystemThread -> RealThread

    Just like g_system_thread_wait().

 glib/gthread-posix.c  | 4 ++--
 glib/gthread-win32.c  | 4 ++--
 glib/gthread.c        | 2 +-
 glib/gthreadprivate.h | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

commit 6613b2f8fdc9d7422b124b69231c3f4b93c744c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 12 22:29:18 2011 -0400

    Move more docs inline

 docs/reference/glib/tmpl/.gitignore    |   1 +
 docs/reference/glib/tmpl/messages.sgml | 300
 ---------------------------------
 glib/gmessages.c                       | 268
 +++++++++++++++++++++++++++++
 3 files changed, 269 insertions(+), 300 deletions(-)

commit dc3727cc5f4f4c9939e010722ea28e152cf9b324
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:15:46 2011 -0400

    g_system_thread_join: rename to _wait()

 glib/gthread-posix.c  | 2 +-
 glib/gthread-win32.c  | 2 +-
 glib/gthread.c        | 2 +-
 glib/gthreadprivate.h | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 4bb968e3358db98a4ad41ce7e72cf62f4458053d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:14:38 2011 -0400

    g_system_thread_join: take GRealThread *

    Make g_system_thread_join take the GRealThread* instead of a
    GSystemThread.

 glib/gthread-posix.c  | 4 ++--
 glib/gthread-win32.c  | 4 ++--
 glib/gthread.c        | 2 +-
 glib/gthreadprivate.h | 3 ++-
 4 files changed, 7 insertions(+), 6 deletions(-)

commit e064c9bfeca33b59627e7e1ee43d805713fde280
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 22:03:14 2011 -0400

    thread: delegate allocation of GThread to backends

    Add g_system_thread_new() and g_system_thread_free(), implemented with
    GSlice.  Use those instead of g_new() and g_free().

    Presently, the backends are both doing the same thing.  This will
    change
    soon.

 glib/gthread-posix.c  | 12 ++++++++++++
 glib/gthread-win32.c  | 12 ++++++++++++
 glib/gthread.c        |  8 ++++----
 glib/gthreadprivate.h |  5 +++++
 4 files changed, 33 insertions(+), 4 deletions(-)

commit 75ea14e885322ea1241315e070b2cdd68645e267
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 12 21:48:34 2011 -0400

    Move GScanner docs inline

 docs/reference/glib/tmpl/.gitignore   |   1 +
 docs/reference/glib/tmpl/scanner.sgml | 607
 ----------------------------------
 glib/gscanner.c                       | 472 +++++++++++++++++++++++++-
 3 files changed, 471 insertions(+), 609 deletions(-)

commit d537726ded76eb470a78d41418579b8652c4ae8b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 21:47:25 2011 -0400

    thread: stop sharing g_once_mutex

    Unrelated code shouldn't be sharing the same mutex for no good
    reason --
    particularly not across a file boundary.

 glib/deprecated/gthread-deprecated.c | 9 +++++----
 glib/gthread.c                       | 2 +-
 glib/gthreadprivate.h                | 2 --
 3 files changed, 6 insertions(+), 7 deletions(-)

commit 8cff9c57b1cbb443aa4063d8624af8a7bb392b75
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 21:44:07 2011 -0400

    thread: drop thread setup function hackery

    Use a custom proxy function for the deprecated case instead.

    Now GRealThread has strictly zero members dedicated to deprecated
    functionality.

 glib/deprecated/gthread-deprecated.c | 15 +++++++++++++--
 glib/gthread.c                       | 17 ++++++-----------
 glib/gthreadprivate.h                |  7 ++++---
 3 files changed, 23 insertions(+), 16 deletions(-)

commit 2da83bbd36efd4adb1f4c036fe4793befbb8d120
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 12 19:55:02 2011 -0400

    Deprecate GCache

    Ryan said it would be 'deprecated soon in GLib', when he removed
    the use of this in GTK+. That was a year ago, so its about time
    we act on it.

 docs/reference/glib/glib-docs.sgml |   2 +-
 glib/Makefile.am                   |   4 +-
 glib/{ => deprecated}/gcache.c     | 100
 +++++++++++++++++++++----------------
 glib/{ => deprecated}/gcache.h     |   9 ++--
 glib/glib.h                        |   2 +-
 5 files changed, 67 insertions(+), 50 deletions(-)

commit 39ae59c47e2fbed30da725041b4cad552bea82c7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 18:35:45 2011 -0400

    thread: Delete g_system_thread_self()

    It's no longer used for anything at all.

 glib/gthread-posix.c  |  6 ------
 glib/gthread-win32.c  | 23 -----------------------
 glib/gthreadprivate.h |  1 -
 3 files changed, 30 deletions(-)

commit a90a4b967fde1c2d7c7d6d978a797731adb25057
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 18:33:07 2011 -0400

    thread: reduce use of system_thread

    The use of system_thread is now limited to joining.  We don't do that
    for threads that we didn't create for ourselves, so we don't need to
    call g_system_thread_self() to fill in system_thread for those.

 glib/gthread.c | 2 --
 1 file changed, 2 deletions(-)

commit b7f05063710ff5bfd0e7f3722687eb63c0709ac3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 18:27:06 2011 -0400

    thread: hide g_static_rec_mutex_get_rec_mutex_impl

    Unlike with GStaticMutex, this function was never part of the pre-2.32
    ABI, so we should keep it tucked in.

 glib/deprecated/gthread-deprecated.c | 2 +-
 glib/gconvert.c                      | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 1f34ef4117559f268257d902dd48ea91b3d4993e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 18:25:40 2011 -0400

    missed from last commit

 glib/gthreadprivate.h | 2 --
 1 file changed, 2 deletions(-)

commit 47e20ed3ac5206c8aa83f7d307d9802328eed05f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 18:24:48 2011 -0400

    thread: remove GSystemThread assign/equal

    These are no longer in use.

 glib/gthread-posix.c  | 7 -------
 glib/gthread-win32.c  | 7 -------
 glib/gthreadprivate.h | 9 ---------
 3 files changed, 23 deletions(-)

commit 903705edf2e33384914688ee30ea118486cb537c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 18:23:20 2011 -0400

    thread: remove dead decl from gthreadprivate.h

    This function hasn't existed for a while...

 glib/gthreadprivate.h | 3 ---
 1 file changed, 3 deletions(-)

commit ed35d2719ba60fe36032db6eae5e07cd45b4fe1c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 18:22:31 2011 -0400

    thread: Remove the zero_thread

    This was only used for redundant assertion checks.

 glib/deprecated/gthread-deprecated.c | 2 --
 glib/gthread.c                       | 8 +-------
 glib/gthreadprivate.h                | 1 -
 3 files changed, 1 insertion(+), 10 deletions(-)

commit 2b281e40f32b7916d856dcc95e6f8fe625fcff03
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 11 11:08:48 2011 -0400

    GStaticRecMutex: implement via GRecMutex

    Instead of doing our own hacked-up version.

    This also reduces use of GSystemThread.

 glib/deprecated/gthread-deprecated.c | 128
 ++++++++++++++++-------------------
 1 file changed, 57 insertions(+), 71 deletions(-)

commit 96904b679061d78da65bf0dd0b331f4a3c754b3d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 17:01:33 2011 -0400

    thread: use GSList for g_thread_foreach list

    ...instead of having a 'next' pointer in the GThread struct.

    Now GThread contains no fields used only by deprecated code
    (except for
    the rather generic setup function field).

 glib/deprecated/gthread-deprecated.c | 28 ++++++++--------------------
 glib/gthreadprivate.h                |  1 -
 2 files changed, 8 insertions(+), 21 deletions(-)

commit 9ca4f142641e6c756e48555c7dc0ea8780000359
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 16:50:43 2011 -0400

    thread: call g_enumerable_thread_add via callback

    There are no longer any functions defined in gthread-deprecated.c
    called
    from gthread.c.

 glib/deprecated/gthread-deprecated.c | 123
 ++++++++++++++++++-----------------
 glib/gthread.c                       |  21 +++---
 glib/gthreadprivate.h                |  22 +++----
 3 files changed, 83 insertions(+), 83 deletions(-)

commit f788a2e5e1f7c9898675d3876367e2cf7d55f386
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 12 16:26:39 2011 -0400

    thread: use GPrivate for enumerable threads

    Use a GPrivate to track the destruction of enumerable threads
    and remove
    them from the list.

 glib/deprecated/gthread-deprecated.c | 27 ++++++++++++++++-----------
 glib/gthread.c                       | 11 +++--------
 glib/gthreadprivate.h                |  1 -
 3 files changed, 19 insertions(+), 20 deletions(-)

commit 1368533dc2c117202d11acdde27724a0301ad301
Author: Colin Walters <walters@verbum.org>
Date:   Wed Oct 12 15:25:12 2011 -0400

    gvariant: Doc typo fix

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 15b9f64004e7377dabad7b9a03dae094df51a0e4
Author: Colin Walters <walters@verbum.org>
Date:   Wed Oct 12 15:22:09 2011 -0400

    gvariant: Briefly mention limits

 glib/gvariant.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 0af48a5d7b9504dd190d497963a14d8f7a4942ed
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 12 13:59:33 2011 -0400

    gthread-deprecated: add a mising "static" to a method

 glib/deprecated/gthread-deprecated.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95cab96515d84a9bc5dd731ea6eee08d7e786f50
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 12 13:57:44 2011 -0400

    giomodule: make the default_modules mutex recursive

    It is possible for _g_io_module_get_default() to be called recursively
    (eg, if a module of one type is loaded that tries to look up gsettings
    from its init() method and ends up causing the gsettings module to be
    loaded). So use a recursive mutex.

 gio/giomodule.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 71cf70b39cd3859ac4cb4954c369bda731a61171
Author: Dan Winship <danw@gnome.org>
Date:   Tue Oct 11 15:38:37 2011 -0400

    Simplify checks for CLOCK_MONOTONIC

    Remove the complicated configure-time and runtime checks, and just use
    CLOCK_MONOTONIC if it's defined.

    https://bugzilla.gnome.org/show_bug.cgi?id=661421

 configure.ac | 15 -----------
 glib/gmain.c | 84
 ++++++++++++++++++++++++------------------------------------
 2 files changed, 34 insertions(+), 65 deletions(-)

commit daede1dc27bbf28d2cbefc2fac22e0f917a23952
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 12 00:37:02 2011 -0400

    Disable deprecations where appropriate in tests

 glib/tests/unix.c                   | 4 ----
 gobject/tests/boxed.c               | 2 ++
 gobject/tests/dynamictests.c        | 3 +--
 gobject/tests/param.c               | 1 +
 gobject/tests/threadtests.c         | 2 +-
 gthread/tests/1bit-mutex.c          | 4 +---
 gthread/tests/642026.c              | 8 ++------
 gthread/tests/atomic.c              | 4 +---
 gthread/tests/gwakeuptest.c         | 4 +---
 gthread/tests/spawn-multithreaded.c | 6 ++----
 gthread/tests/spawn-singlethread.c  | 2 --
 11 files changed, 12 insertions(+), 28 deletions(-)

commit bcdb865c597b9201b717f0d4b420e73a2393e5ff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 12 00:37:02 2011 -0400

    Disable deprecations where appropriate in tests

 glib/tests/cache.c      |  3 +++
 glib/tests/cond.c       |  3 +++
 glib/tests/date.c       |  3 +++
 glib/tests/fileutils.c  |  4 ++++
 glib/tests/mainloop.c   | 38 ++++++++++++++++++++++++++++++++++++++
 glib/tests/mappedfile.c |  2 ++
 glib/tests/mutex.c      |  3 +++
 glib/tests/once.c       |  2 +-
 glib/tests/private.c    |  5 +++--
 glib/tests/rec-mutex.c  |  3 +++
 glib/tests/rwlock.c     |  3 +++
 glib/tests/strfuncs.c   |  6 +++---
 glib/tests/string.c     |  3 +++
 glib/tests/thread.c     |  2 --
 glib/tests/tree.c       |  3 +++
 glib/tests/unicode.c    |  3 +++
 16 files changed, 78 insertions(+), 8 deletions(-)

commit 7455dd370eb37ce3b0b409ff6120501f37b50569
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 12 00:24:46 2011 -0400

    Make single includes mandatory

    This has been the official line since 2.17, which seems plenty
    long enough for a transition phase.

 README.in                          | 3 +++
 configure.ac                       | 2 --
 docs/reference/glib/compiling.sgml | 8 ++------
 glib/galloca.h                     | 2 +-
 glib/garray.h                      | 2 +-
 glib/gasyncqueue.h                 | 2 +-
 glib/gatomic.h                     | 2 +-
 glib/gbacktrace.h                  | 2 +-
 glib/gbase64.h                     | 2 +-
 glib/gbitlock.h                    | 2 +-
 glib/gbookmarkfile.h               | 2 +-
 glib/gcache.h                      | 2 +-
 glib/gchecksum.h                   | 2 +-
 glib/gconvert.h                    | 2 +-
 glib/gdataset.h                    | 2 +-
 glib/gdate.h                       | 2 +-
 glib/gdatetime.h                   | 2 +-
 glib/gdir.h                        | 2 +-
 glib/gerror.h                      | 2 +-
 glib/gfileutils.h                  | 2 +-
 glib/ghash.h                       | 2 +-
 glib/ghmac.h                       | 2 +-
 glib/ghook.h                       | 2 +-
 glib/giochannel.h                  | 2 +-
 glib/gkeyfile.h                    | 2 +-
 glib/glist.h                       | 2 +-
 glib/gmacros.h                     | 2 +-
 glib/gmain.h                       | 2 +-
 glib/gmappedfile.h                 | 2 +-
 glib/gmarkup.h                     | 2 +-
 glib/gmem.h                        | 2 +-
 glib/gmessages.h                   | 2 +-
 glib/gnode.h                       | 2 +-
 glib/goption.h                     | 2 +-
 glib/gpattern.h                    | 2 +-
 glib/gprimes.h                     | 2 +-
 glib/gqsort.h                      | 2 +-
 glib/gquark.h                      | 2 +-
 glib/gqueue.h                      | 2 +-
 glib/grand.h                       | 2 +-
 glib/gregex.h                      | 2 +-
 glib/gscanner.h                    | 2 +-
 glib/gsequence.h                   | 2 +-
 glib/gshell.h                      | 2 +-
 glib/gslice.h                      | 2 +-
 glib/gslist.h                      | 2 +-
 glib/gspawn.h                      | 2 +-
 glib/gstrfuncs.h                   | 2 +-
 glib/gstring.h                     | 2 +-
 glib/gstringchunk.h                | 2 +-
 glib/gtestutils.h                  | 2 +-
 glib/gthread.h                     | 2 +-
 glib/gthreadpool.h                 | 2 +-
 glib/gtimer.h                      | 2 +-
 glib/gtimezone.h                   | 2 +-
 glib/gtree.h                       | 2 +-
 glib/gtypes.h                      | 2 +-
 glib/gunicode.h                    | 2 +-
 glib/gurifuncs.h                   | 2 +-
 glib/gutils.h                      | 2 +-
 glib/gvariant.h                    | 2 +-
 glib/gvarianttype.h                | 2 +-
 glib/gwin32.h                      | 2 +-
 63 files changed, 65 insertions(+), 68 deletions(-)

commit 9bb5a55bda83c58ddbd0381693d98c7a2f701d01
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 11 23:13:22 2011 -0400

    GStaticPrivate: implement via GPrivate

    Thanks to the modifications in
    3d4846d92309d001697c2827660fa41b5c63dbc4,
    GStaticPrivate is not so directly tied in with GThread anymore.  It is
    now a simple matter to cut it out completely by using a GPrivate to
    store the GArray instead of storing it in the GThread.

 glib/deprecated/gthread-deprecated.c | 49
 ++++++++++++++++--------------------
 glib/gthread.c                       |  4 ---
 glib/gthreadprivate.h                |  2 --
 3 files changed, 22 insertions(+), 33 deletions(-)

commit c6016458ba2a981ccd72f02208f8140abde6c9d1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 11 23:50:34 2011 -0400

    Update deprecation docs

 docs/reference/glib/compiling.sgml | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit 3d282dcc2ef1dba36e67f91d8a6c5f589ce249ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 11 23:44:43 2011 -0400

    Silence deprecations in deprecated/ (again)

 glib/deprecated/gallocator.c         | 5 +++++
 glib/deprecated/gcompletion.c        | 3 +++
 glib/deprecated/grel.c               | 3 +++
 glib/deprecated/gthread-deprecated.c | 7 +------
 4 files changed, 12 insertions(+), 6 deletions(-)

commit f5f242caf80d96a6ec057fc746e5d53a34de7077
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Oct 12 11:23:49 2011 +0800

    Update VS projects

    Get rid of _CRT_SECURE_NO_WARNINGS and _CRT_NONSTDC_NO_WARNINGS
    from the preprocessor definitions as those two macros are now defined
    in msvc_recommended_pragmas.h, which is force-included in these
    projects
    via the property sheets.  This will silence C4005 warnings on macro
    redefinition.

 build/win32/vs10/glib-compile-schemas.vcxproj        | 8 ++++----
 build/win32/vs10/gsettings.vcxproj                   | 8 ++++----
 build/win32/vs10/gspawn-win32-helper-console.vcxproj | 8 ++++----
 build/win32/vs10/gspawn-win32-helper.vcxproj         | 8 ++++----
 build/win32/vs10/testglib.vcxproj                    | 8 ++++----
 build/win32/vs9/glib-compile-schemas.vcproj          | 8 ++++----
 build/win32/vs9/gsettings.vcproj                     | 8 ++++----
 build/win32/vs9/gspawn-win32-helper-console.vcproj   | 8 ++++----
 build/win32/vs9/gspawn-win32-helper.vcproj           | 8 ++++----
 build/win32/vs9/testglib.vcproj                      | 8 ++++----
 10 files changed, 40 insertions(+), 40 deletions(-)

commit b93d6ab83a0cddce0a3847984a91a2819df61130
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Oct 12 10:53:30 2011 +0800

    Bug 661438: Update msvc_recommended_pragmas.h

    Don't disable warning C4996 as that is the Visual C++ warning
    triggered by
    __declspec(deprecated) and __declspec(deprecated('..."))-disabling
    that
    warning will defeat the purpose of G_DPRECATED/G_DEPRECATED_FOR.

    For people who don't want to see the GLib deprecation warnings
    during GLib
    compilation, define GLIB_DISABLE_DEPRECATION_WARNINGS in the
    projects or
    property sheet.

 msvc_recommended_pragmas.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 36ccdab760003fc1efd2f49e77932cb253f006f4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Oct 12 10:38:47 2011 +0800

    Bug 661438: Fix up gmacros.h a bit

    The macro here should be G_DEPRECATED, not G_GNUC_DEPRECATED.

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 17c713d3f6322e2e968e1f7774f1009bac6881c2
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Oct 12 10:37:24 2011 +0800

    Update VS property sheets

    Missed the new glib/gstringchunk.h header that needed to be
    installed as
    well.

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit 380ec80d07218123b8274ace506274f36af7c445
Author: Dan Winship <danw@gnome.org>
Date:   Tue Oct 11 19:28:59 2011 -0400

    g_time_val_from_iso8601: clarify the docs a bit

 glib/gtimer.c | 5 +++++
 1 file changed, 5 insertions(+)

commit baa394910b23bfa7162c2571d83d1c196522c636
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 11 18:39:57 2011 -0400

    gmain: use GPrivate instead of GStaticPrivate

 glib/gmain.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

commit b3e39140621228788cedd2f6ce7fa03b0fef4664
Author: Dan Winship <danw@gnome.org>
Date:   Tue Oct 11 15:36:42 2011 -0400

    Fix two tests for G_DEBUG=gc-friendly

 glib/tests/array-test.c | 9 ++++-----
 glib/tests/protocol.c   | 6 +++++-
 2 files changed, 9 insertions(+), 6 deletions(-)

commit 08d6e1147d2e6e3abf85ae7a399c689609a7b761
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 11 14:34:59 2011 +0800

    Use GLIB_DEPRECATED instead of G_GNUC_DEPRECATED in our headers

    This will let others opt out of seeing GLib deprecation warnings
    by defining GLIB_DISABLE_DEPRECATION_WARNINGS.

    https://bugzilla.gnome.org/show_bug.cgi?id=661438

 gio/gdrive.h                  |   7 +-
 gio/gfile.h                   |  14 ++--
 gio/gmount.h                  |  14 ++--
 gio/gtlsconnection.h          |   5 +-
 gio/gunixsocketaddress.h      |   6 +-
 gio/gvolume.h                 |   7 +-
 glib/deprecated/gcompletion.h |  22 +++++--
 glib/deprecated/grel.h        |  32 +++++----
 glib/deprecated/gthread.h     | 149
 ++++++++++++++++++++++++++++--------------
 glib/gasyncqueue.h            |   7 +-
 glib/gatomic.h                |   3 +-
 glib/gcache.h                 |   3 +-
 glib/gdate.h                  |   3 +-
 glib/gfileutils.h             |   3 +-
 glib/giochannel.h             |  15 +++--
 glib/gmain.h                  |   3 +-
 glib/gmappedfile.h            |   3 +-
 glib/gstrfuncs.h              |  13 ++--
 glib/gstring.h                |   6 +-
 glib/gtree.h                  |   3 +-
 glib/gunicode.h               |   3 +-
 glib/gutils.h                 |   3 +-
 gobject/gboxed.h              |   3 +-
 gobject/gobject.h             |   3 +-
 gobject/gparam.h              |   3 +-
 gobject/gvaluetypes.h         |   8 ++-
 26 files changed, 231 insertions(+), 110 deletions(-)

commit a1acf35653ac5d437bdd8dce1b2b56333b005c0c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 11 13:33:07 2011 -0400

    Add our own deprecation macros

    This will allow to suppress deprecation warnings on a per-module
    basis, if needed. They are on by default now, though.

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/gmacros.h                        | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

commit 0da0411a4a2f9efde4f8fc3d6bf504ee488c2e4a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 11 13:06:58 2011 -0400

    Add better deprecation macros

    Unlike G_GNUC_... macros, the new G_DEPRECATED[_FOR] are
    meant as abstractions that work with different compilers.
    Using a new name also lets us restrict it to 'must be placed
    before the declaration', which works with more compilers.

    https://bugzilla.gnome.org/show_bug.cgi?id=661438

 docs/reference/glib/glib-sections.txt |  4 ++++
 glib/gmacros.h                        | 17 +++++++++++++++++
 2 files changed, 21 insertions(+)

commit a73113908f310c8ccc532d04f4cf4b4625860962
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 11 18:04:07 2011 +0800

    Update VS property sheets

    Copy the deprecated headers in their appropriate places.

 build/win32/vs10/glib.props  | 15 +++++++++++----
 build/win32/vs9/glib.vsprops |  8 ++++++--
 2 files changed, 17 insertions(+), 6 deletions(-)

commit 0e71214bef4038316f96a12dfcf7b2635c94e5b1
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 11 14:19:02 2011 +0800

    glibconfig.win32(.in): Cleanup cruft

    The definitions of _GMutex* and G_STATIC_MUTEX_INIT is now found in
    glib/deprecated/gthread.h, and should no longer be in the mainline
    code, so remove them from here.

 glib/glibconfig.h.win32.in | 2 --
 1 file changed, 2 deletions(-)

commit 3e5a30fc17ee071254d7c2a70e1713d554e4a1ad
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 10 13:13:31 2011 -0400

    GStaticMutex: ABI fixup

    Everything was OK as long as GMutex was backed by pthread_mutex_t on
    POSIX.  Since this is no longer the case, the ABI of GStaticMutex was
    broken.

    Fix that up by using pthread_mutex_t directly in the structure.  Since
    that's potentially incompatible with our GMutex implementation, set
    g_thread_use_default_impl to FALSE to cause the fallback code (which
    manually allocates a GMutex) to run, even in the case of
    already-existing code (without the need for a recompile).  This will
    cause the pthread_mutex_t part of the struct to be completely ignored.

 glib/deprecated/gthread-deprecated.c | 13 ++++++++-----
 glib/deprecated/gthread.h            | 25 +++++++++++++------------
 2 files changed, 21 insertions(+), 17 deletions(-)

commit 2c1cbde21e24be0e0ae1e20ad772b03255e96c53
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 10 11:10:20 2011 -0400

    Compile private test with -pthread on UNIX

    We are using explicit pthread calls here, so we should
    use the right linker flags for that.

    https://bugzilla.gnome.org/show_bug.cgi?id=661318

 glib/tests/Makefile.am | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 93e49aea1b5563c90f1c5152ab9cb65f19329891
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 10 09:49:50 2011 -0400

    Don't use deprecated GThread API in gio tests

 gio/tests/async-close-output-stream.c |  1 -
 gio/tests/contexts.c                  |  3 +--
 gio/tests/echo-server.c               |  1 -
 gio/tests/gdbus-connection-loss.c     |  1 -
 gio/tests/gdbus-export.c              |  9 +++++----
 gio/tests/gdbus-non-socket.c          |  1 -
 gio/tests/gdbus-peer.c                | 37
 +++++++++++++++++++----------------
 gio/tests/gdbus-proxy-threads.c       |  5 +++--
 gio/tests/gdbus-test-codegen.c        |  9 +++++----
 gio/tests/gdbus-threading.c           | 37
 +++++++++++++++++++----------------
 gio/tests/httpd.c                     |  1 -
 gio/tests/resolver.c                  |  2 +-
 gio/tests/send-data.c                 |  3 +--
 gio/tests/socket-client.c             |  4 +---
 gio/tests/socket-server.c             |  4 +---
 gio/tests/socket.c                    |  2 +-
 gio/tests/tls-interaction.c           |  3 +--
 gio/tests/unix-streams.c              |  5 ++---
 gio/tests/win32-streams.c             |  5 ++---
 19 files changed, 64 insertions(+), 69 deletions(-)

commit 5662619f22073e8d7ceec5429c36aae7bb9cf8ea
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Oct 10 07:53:16 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 765
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 382 insertions(+), 383 deletions(-)

commit 918954e089c9c1aea0019e4dc8a73f994d8bdf83
Author: Algimantas Margevičius <gymka@mail.ru>
Date:   Sun Oct 9 22:00:49 2011 +0300

    Updated Lithuanian translation

 po/lt.po | 1777
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 879 insertions(+), 898 deletions(-)

commit 5e2764d70cbd9f556fe4d873897e2d4a174a98a7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 9 09:57:13 2011 -0400

    Silence deprecation warnings in deprecated/

    We know we are all deprecated here...

 glib/deprecated/gthread-deprecated.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit ff2dafb20999d0b00ee599f998ef00ea514e4482
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 8 23:49:04 2011 -0400

    Add G_GNUC_DEPRECATED to deprecated functions in gio

 gio/gdesktopappinfo.h    |  3 ++-
 gio/gdrive.h             | 12 ++++++------
 gio/gfile.h              | 24 ++++++++++++------------
 gio/gmount.h             |  8 ++++----
 gio/gtlsconnection.h     |  4 ++--
 gio/gunixsocketaddress.h |  8 ++++----
 gio/gvolume.h            | 12 ++++++------
 7 files changed, 36 insertions(+), 35 deletions(-)

commit 93b3f6477e1670536d9d208e1d51d682a81d3d65
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 8 23:23:43 2011 -0400

    Add G_GNUC_DEPRECATED to deprecated functions in gobject

 gobject/gboxed.h      |  2 +-
 gobject/gobject.h     |  2 +-
 gobject/gparam.h      |  2 +-
 gobject/gvaluetypes.h | 10 +++++-----
 4 files changed, 8 insertions(+), 8 deletions(-)

commit f9b29ca0343a23d8eaa0aa41034169b95405383e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 8 23:16:01 2011 -0400

    Add G_GNUC_DEPRECATED to deprecated APIs in glib

 glib/deprecated/gcompletion.h | 20 ++++++-------
 glib/deprecated/grel.h        | 20 ++++++-------
 glib/deprecated/gthread.h     | 66
 +++++++++++++++++++++----------------------
 glib/gasyncqueue.h            |  4 +--
 glib/gatomic.h                |  2 +-
 glib/gcache.h                 |  2 +-
 glib/gdate.h                  |  2 +-
 glib/gfileutils.h             |  2 +-
 glib/giochannel.h             | 22 +++++++--------
 glib/gmain.h                  |  2 +-
 glib/gmappedfile.h            |  2 +-
 glib/gstrfuncs.h              | 14 ++++-----
 glib/gstring.h                |  4 +--
 glib/gtree.h                  |  2 +-
 glib/gunicode.h               |  2 +-
 glib/gutils.h                 |  2 +-
 16 files changed, 84 insertions(+), 84 deletions(-)

commit 30b320b61c34f953bf7b7bbc27d978c321fe1c4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 8 12:43:12 2011 -0400

    Add some GHookList tests

 glib/tests/Makefile.am |  3 ++
 glib/tests/hook.c      | 95
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 98 insertions(+)

commit 6109db27aec99f456c5bbda27bd4afe851b5bcff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 8 12:42:41 2011 -0400

    Test a few more GIOChannel functions

 glib/tests/protocol.c | 3 +++
 1 file changed, 3 insertions(+)

commit d33f625444c28cd1c6313410d639360141dfd16b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 8 12:42:06 2011 -0400

    Remove a bit of dead code

 glib/gmarkup.c | 3 ---
 1 file changed, 3 deletions(-)

commit b3ead3c998931b11d6d413474bba4866d6afd29d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 8 12:41:38 2011 -0400

    Pass G_DEBUG=g-gc-friendly when running the tests

 Makefile.decl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d5a1ca8fd751c6f0a28ad3990259976f23954a34
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 6 09:01:24 2011 -0400

    Add some more GMarkup tests

 glib/tests/markups/fail-41.expected  |  1 +
 glib/tests/markups/fail-41.gmarkup   |  3 +++
 glib/tests/markups/fail-42.expected  |  1 +
 glib/tests/markups/fail-42.gmarkup   |  5 +++++
 glib/tests/markups/fail-43.expected  |  1 +
 glib/tests/markups/fail-43.gmarkup   |  1 +
 glib/tests/markups/fail-44.expected  |  3 +++
 glib/tests/markups/fail-44.gmarkup   |  1 +
 glib/tests/markups/fail-45.expected  |  3 +++
 glib/tests/markups/fail-45.gmarkup   |  1 +
 glib/tests/markups/fail-46.expected  |  2 ++
 glib/tests/markups/fail-46.gmarkup   |  2 ++
 glib/tests/markups/fail-47.expected  |  1 +
 glib/tests/markups/fail-47.gmarkup   |  1 +
 glib/tests/markups/fail-48.expected  |  1 +
 glib/tests/markups/fail-48.gmarkup   |  2 ++
 glib/tests/markups/fail-49.expected  |  3 +++
 glib/tests/markups/fail-49.gmarkup   |  1 +
 glib/tests/markups/valid-12.expected |  5 +++++
 glib/tests/markups/valid-12.gmarkup  |  3 +++
 glib/tests/markups/valid-13.expected |  4 ++++
 glib/tests/markups/valid-13.gmarkup  |  3 +++
 glib/tests/markups/valid-14.expected | 30 ++++++++++++++++++++++++++++++
 glib/tests/markups/valid-14.gmarkup  | 24 ++++++++++++++++++++++++
 24 files changed, 102 insertions(+)

commit 08e17ae51b6336d059b0cc85071cc26772ab2f0c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Oct 6 08:59:51 2011 -0400

    Call setlocale in markup-parse test

    This is necessary to make utf-8 text come out properly.

 glib/tests/markup-parse.c | 3 +++
 1 file changed, 3 insertions(+)

commit 87cb246f4627a7644d0291e1ae131fa2e628fde9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 23:36:35 2011 -0400

    Improve GNode test coverage

 glib/tests/node.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit dca6a601c13798dde689cab7f9ac67db2765ae2d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 23:31:14 2011 -0400

    Improve GCache test coverage

 glib/tests/cache.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit eeedaac3e8306403c9359edd8e4baea6a22153ed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 23:24:27 2011 -0400

    Improve coverage of string function tests

 glib/tests/strfuncs.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 944f66f38fa24c657c192e7d72ca2508020f68dd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 23:24:08 2011 -0400

    Improve coverage of GHmac tests

 glib/tests/hmac.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

commit d9e9239a4659c972279955e77d0351e664613e70
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 23:00:09 2011 -0400

    Add a test for g_date_time_new_from_timeval_utc

 glib/tests/gdatetime.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit c739a5df14ff5ee8cf262ce6e1cebdd0096aff5a
Author: Antoine Jacoutot <ajacoutot@openbsd.org>
Date:   Sat Oct 8 11:47:20 2011 +0200

    gio: enable test_peer regression test for OpenBSD

    https://bugzilla.gnome.org/show_bug.cgi?id=661255

 gio/tests/gdbus-peer.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 3c4d3dec092609bb8e8bf77dcaea5ad9ddfb4ed3
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Oct 7 14:20:03 2011 -0400

    GDBusConnection: Make pending calls error when the connection is lost

    If the connection to the bus is lost while a method call is ongoing,
    the method call does not get cancelled. Instead it just sits around
    until it times out.

    This is visible here on XO laptops when stopping the display manager
    during shutdown. imsettings starts sending a sync message to give up
    its bus name (via g_bus_unown_name()), then systemd terminates the
    session bus at approximately the same time. imsettings then hangs for
    about 20 seconds before timing out the message.

     http://lists.freedesktop.org/archives/dbus/2011-September/014717.html

    imsettings behaviour could be improved as described in that thread,
    but I think this is a glib bug. I've also come up with the attached
    patch which fixes it.

    Credits for the bug-fix goes to Daniel Drake <dsd@laptop.org>. The
    test
    case was written by David Zeuthen <zeuthen@gmail.com>.

    https://bugzilla.gnome.org/show_bug.cgi?id=660637

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c             |  42 +++++++++--
 gio/tests/Makefile.am             |   4 +
 gio/tests/gdbus-connection-loss.c | 155
 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 194 insertions(+), 7 deletions(-)

commit edcac1ee419116327aee73435f7442f2201752e6
Author: John Ralls <jralls@ceridwen.us>
Date:   Fri Oct 7 09:51:04 2011 -0700

    Bug 661129: Duplicate symbols zero_thread and g_once_mutex on OSX

 glib/gthreadprivate.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 59f1f5465571bac403357b59cf7bfe2723356a37
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 5 10:46:57 2011 -0400

    Add g_main_context_ref_thread_default()

    Add g_main_context_ref_thread_default(), which always returns a
    reffed GMainContext, rather than sometimes returning a (non-reffed)
    GMainContext, and sometimes returning NULL. This simplifies the
    bookkeeping in any code that needs to keep a reference to the
    thread-default context for a while.

    https://bugzilla.gnome.org/show_bug.cgi?id=660994

 docs/reference/glib/glib-sections.txt |  1 +
 gio/gdbus-2.0/codegen/codegen.py      |  7 ++----
 gio/gdbusconnection.c                 | 46
 +++++++++++++----------------------
 gio/gdbusinterfaceskeleton.c          |  7 ++----
 gio/gdbusnameowning.c                 | 17 ++++++-------
 gio/gdbusnamewatching.c               | 17 ++++++-------
 gio/gdbusserver.c                     |  9 +++----
 gio/gfilemonitor.c                    |  5 ++--
 gio/gioscheduler.c                    |  7 ++----
 gio/gsettings.c                       |  7 +-----
 gio/gsimpleasyncresult.c              |  9 ++-----
 gio/gtlsinteraction.c                 |  7 ++----
 glib/glib.symbols                     |  1 +
 glib/gmain.c                          | 34 ++++++++++++++++++++++++--
 glib/gmain.h                          |  1 +
 15 files changed, 84 insertions(+), 91 deletions(-)

commit d91769b64160353b4f9861cb68a97a0171b323ad
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Oct 7 10:14:10 2011 +0200

    Updated Spanish translation

 po/es.po | 936
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 481 insertions(+), 455 deletions(-)

commit 97b0b36ae39d5eb087315259ff56c799271b28c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 7 01:19:15 2011 -0400

    USE __COUNTER__ instead of __LINE__ when available

    I've seen builds fail with

    nm-connection.c:119:691: error: declaration of
    '_GStaticAssertCompileTimeAssertion_119' shadows a previous local
    [-Werror=shadow]

    because several compile-time assertions ended up on the same
    line. __COUNTER__ is meant specifically for the purpose of
    constructing identifiers, so use it when available.

 glib/gmacros.h | 4 ++++
 1 file changed, 4 insertions(+)

commit c51fa1852dc7c661dc5d46355303d97a521e0a0c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 7 00:42:52 2011 -0400

    Don't redundantly redeclare

    It makes gcc throw an error:

    redundant redeclaration of 'g_static_mutex_get_mutex_impl'
    [-Werror=redundant-decls]

 glib/deprecated/gthread.h | 3 ---
 1 file changed, 3 deletions(-)

commit e76927006a6886b92e73eb25b5ed559485a83af0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 6 12:24:21 2011 -0400

    Move G_LOCK below GMutex in the docs

    The flow is currently a bit wrong since G_LOCK makes reference
    to GMutex
    which was not yet defined, so switch things around.

 docs/reference/glib/glib-sections.txt | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 761e75f84966e58f9a40ddae6ca3bc497c45afbe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 6 12:21:33 2011 -0400

    .gitignore

 docs/reference/glib/tmpl/.gitignore | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 083812f8546230deef08a63f2064c293438b3802
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 6 12:19:58 2011 -0400

    Several docs cleanups

 docs/reference/glib/glib-sections.txt |  8 ++++++++
 glib/deprecated/gthread-deprecated.c  | 11 +++++++++++
 glib/gthread.h                        |  1 +
 glib/gvariant.h                       |  2 +-
 4 files changed, 21 insertions(+), 1 deletion(-)

commit 94b7d2ee6cb9f1e0416c82e2bf0615fd2d0c848a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 6 12:01:53 2011 -0400

    Cleanup thread documentation

 docs/reference/glib/Makefile.am        |   3 +
 docs/reference/glib/glib-docs.sgml     |   9 ++-
 docs/reference/glib/glib-overrides.txt |   2 +-
 docs/reference/glib/glib-sections.txt  |  92
 +++++++++++++++---------------
 glib/deprecated/gthread-deprecated.c   |  18 ++++++
 glib/gthread-posix.c                   |  40 ++++++-------
 glib/gthread.c                         | 101
 ++++++---------------------------
 7 files changed, 114 insertions(+), 151 deletions(-)

commit 49b93a0bba1d2a837e5ea8f299464aa7ecd02321
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Oct 6 16:02:18 2011 +0800

    gobjet/gclosure.c: Fix styling issues

    ...so that it looks more consistent with the rest.

 gobject/gclosure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e80d8f0c2304ca471e6643dec846153307eee0fa
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Oct 6 15:37:52 2011 +0800

    gobject/gclosure.c: Add type cast for int_val = value

    This will silence compiler warnings on Visual C++.

    (Sorry for the bad fix just now.)

 gobject/gclosure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d77f65d24dbdff40052e2346861eb420af9718ad
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Oct 6 15:33:34 2011 +0800

    Revert "gobject/gclosure.c: Made up for missed pointer deref"

    This reverts commit d792a1ebe445cfab942ee9e079daa3b87bd60304.

 gobject/gclosure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d792a1ebe445cfab942ee9e079daa3b87bd60304
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Oct 6 15:24:08 2011 +0800

    gobject/gclosure.c: Made up for missed pointer deref

    The value parameter is a gpointer * (void **), but ffi_arg itself
    is not a
    pointer type, so make up for dereference here.

 gobject/gclosure.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ed03047a5be48995be01e217d3f942619dedc030
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Oct 6 15:12:22 2011 +0800

    gthread-deprecated.c: Include gutils.h

    This is needed for declaration of inline.

 glib/deprecated/gthread-deprecated.c | 2 ++
 1 file changed, 2 insertions(+)

commit eb17516a6731acf7347e9f72ee81651c59087232
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Oct 6 15:02:54 2011 +0800

    config.h.win32(.in): Update for strcasecmp

    Visual C++ uses _stricmp, which is identical to strcasecmp on gcc.

 config.h.win32.in | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 3636cf2c640ab0b6a7c3b9d2358332bb52f4dc6e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 22:43:22 2011 -0400

    Update threads docs for the demise of g_thread_init()

 glib/gthread.c | 37 +++++++++++++++++--------------------
 1 file changed, 17 insertions(+), 20 deletions(-)

commit 47c7fa2ccd9baad00da95fcc9a3dc6c2ef222747
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 22:31:17 2011 -0400

    Remove mention of gthread-2.0.pc from 'Compiling' section

    At the same time, add one or two other corrections.

 docs/reference/glib/compiling.sgml | 55
 ++++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 23 deletions(-)

commit 749758ec78b84ca577947fecca0ea54b790fd529
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 22:23:25 2011 -0400

    Add a warning to g_thread_init_with_errorcheck_mutexes

    Should anybody try to use this, we should at least tell them that
    its gone.

 gthread/gthread-impl.c | 1 +
 1 file changed, 1 insertion(+)

commit 8e82225aedf81ea8a33deb3eb27a8878cd606521
Author: Dan Williams <dcbw@redhat.com>
Date:   Fri Sep 23 12:32:23 2011 -0500

    closure: fix handling of ENUMs and integral return types on 64-bit
    BE platforms

    enums are stored in v_long but need to be marshalled as signed
    integers.  On platforms where int is 32 bits, taking the
    address of v_long resulted in the wrong 32 bits being marshalled.
    So we need to stuff the enum's int-sized value to a temporary
    int-sized variable and marshall that instead.

    Second, on return, libffi actually returns a pointer to a value
    that's sized according to platform conventions, not according to
    what the caller requested.  ie if ffi_type_sint was requested, the
    value can still be a 64-bit sign-extended long on a 64-bit
    architecture like PPC64, thus the caller cannot simply cast
    the return value as a pointer to the desired type, but must cast
    as a pointer to an integral type and then cast to the desired
    type to remove any sign extension complications.

    For more information on how to correctly handle libffi return
    values, see the following bug, specifically comment 35:

    https://bugzilla.redhat.com/show_bug.cgi?id=736489

    "For 64-bit ABIs that extend integral returns types to 64-bits,
    libffi always
    returns full 64-bit values that you can truncate in the calling code.
    It's
    just the way it is has always been.  Please don't change libffi.
    I'll document
    this clearly for the next version (perhaps there is a mention of
    this, I
    haven't looked yet).

    The same is true for returning 8-bit values, for instance, on
    32-bit systems.
    All ABIs extend those results to the full 32-bits so you need to
    provide a
    properly aligned buffer that's big enough to hold the result."

    https://bugzilla.gnome.org/show_bug.cgi?id=659881

 gobject/gclosure.c | 76
 ++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 59 insertions(+), 17 deletions(-)

commit c3133affcd55023a5e9cfbd87ec96e04a13c8e86
Author: Colin Walters <walters@verbum.org>
Date:   Wed Oct 5 11:27:45 2011 -0400

    gmacros: Hide G_STATIC_ASSERT from g-ir-scanner

    The C syntax here is twisted and confuses the scanner.  We don't
    need to see it, so let's just skip it.

    https://bugzilla.gnome.org/show_bug.cgi?id=660413

 glib/gmacros.h | 2 ++
 1 file changed, 2 insertions(+)

commit 9560423a6ea05d6f34b5ee8533974b8f41ab03fc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 5 13:16:05 2011 -0400

    Be sure to #include "gutils.h" in gbacktrace.c

    0e3f530185d494dbb9db1b47f72f10f3ae598564 introduced a compiler warning
    about implicit declaration of g_get_prgname().  Fix that.

    Problem caught and fix suggested by Rico Tzschichholz.

 glib/gbacktrace.c | 1 +
 1 file changed, 1 insertion(+)

commit f34908ef1555c8c579b0154e17932b84af04b81f
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Oct 5 12:33:55 2011 -0400

    GDBus: Regenerate code when the codegen or options passed to it
    changes

    https://bugzilla.gnome.org/show_bug.cgi?id=660498

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-2.0/codegen/Makefile.am                  | 2 +-
 gio/tests/Makefile.am                              | 2 +-
 gio/tests/gdbus-object-manager-example/Makefile.am | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 7ca83c6c9f369a88df98a86810596bb9efc73736
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 5 11:45:51 2011 -0400

    Fix up some doc comments that referred to threads not being enabled

    (and a few other unrelated comment fixes)

 gio/gasyncresult.c       |  6 ------
 gio/gioscheduler.c       |  2 +-
 gio/giotypes.h           |  6 +-----
 gio/gresolver.c          |  3 +--
 gio/gsimpleasyncresult.c |  2 +-
 gio/gsocketservice.c     | 12 +++++++-----
 glib/glib-unix.c         |  6 ------
 glib/gmain.c             |  2 +-
 glib/gthreadpool.c       |  2 +-
 9 files changed, 13 insertions(+), 28 deletions(-)

commit af55ff5a2b604399aa216bd731df97cba4474ad0
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Oct 5 10:56:11 2011 -0400

    GDBus: disable two more GDBus tests using fork()

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-proxy.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 2b963266b68a3b14afcaa237ed41319c99949e43
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Oct 4 11:37:16 2011 -0400

    GDBusProxy: Correctly handle unknown members when having an expected
    interface

    Since it is valid for a D-Bus interface / service to add new methods,
    signals or properties we must NEVER warn about unknown properties or
    drop unknown signals or disallow unknown method invocations when we
    have an expected interface.

    So this means that the expected_interface machinery is only useful for
    checking that the service didn't break ABI.

    Also update the docs so it is clear exactly what it means to have an
    expected interface.

    https://bugzilla.gnome.org/show_bug.cgi?id=660886

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c              | 165
 ++++++++++++++++++++++++++----------------
 gio/tests/gdbus-proxy.c       | 147 +++++++++++++++++++++++++++++++++++--
 gio/tests/gdbus-testserver.py |  12 +++
 3 files changed, 253 insertions(+), 71 deletions(-)

commit 2f48b4b7fb4d2d1f758ce5a8064ab51ac3d17a12
Author: Dan Winship <danw@gnome.org>
Date:   Wed Oct 5 08:36:03 2011 -0400

    gthreadedresolver: remove a bit of cruft

    Remove a test that only made sense when GThreadedResolver was the base
    class for the two non-threaded resolver classes that no longer exist.

 gio/gthreadedresolver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0e3f530185d494dbb9db1b47f72f10f3ae598564
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 4 01:25:26 2011 -0400

    Remove cruft from g_strerror and g_strsignal

    We can just assume that strerror/strsignal are available
    nowadays. At the same time, drop use of thread-private storage.
    Instead, always return interned strings.

    https://bugzilla.gnome.org/show_bug.cgi?id=660849

 configure.ac     |  33 ---
 glib/gstrfuncs.c | 627
 +++----------------------------------------------------
 2 files changed, 29 insertions(+), 631 deletions(-)

commit 5fef796126e2c74ccc619528414339cfb5dfcf9c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 01:04:42 2011 -0400

    Misc test coverage improvements

    https://bugzilla.gnome.org/show_bug.cgi?id=660849

 glib/tests/array-test.c | 6 +++++-
 glib/tests/fileutils.c  | 3 +++
 glib/tests/strfuncs.c   | 2 ++
 3 files changed, 10 insertions(+), 1 deletion(-)

commit ddbd4acdfbfd6766aaba2de5a3ff4c599dbf1b74
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 01:04:02 2011 -0400

    Need to check for prlimit

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit ea4bc6008f3acdd90a7da490a0cbc15f62ba608b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 5 00:28:53 2011 -0400

    Add a test for thread creation failure

 glib/tests/thread.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

commit 08a6d812312c6d164844bb77dad203d7781139e5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 20:31:33 2011 -0400

    gthread.h: a bunch of pointless whitespace changes

    Make it look pretty.

 glib/gthread.h | 223
 +++++++++++++++++++++++++++------------------------------
 1 file changed, 107 insertions(+), 116 deletions(-)

commit 674543d091d0561f3b6a28b4326d21ac56f093c1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 20:23:20 2011 -0400

    Move typedef GStaticPrivate to deprecated/

    This was missed in the earlier move.

 glib/deprecated/gthread.h | 1 +
 glib/gthread.h            | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 69c0b4440eabd5898066b36caccac9a34d783a78
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 19:09:43 2011 -0400

    Deprecate g_{mutex,cond}_{new,free}()

    Now that we have _init() and _clear(), these old calls are no longer
    useful.

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 glib/deprecated/gthread-deprecated.c | 84
 ++++++++++++++++++++++++++++++++++++
 glib/deprecated/gthread.h            |  4 ++
 glib/gthread.c                       | 72 -------------------------------
 glib/gthread.h                       |  4 --
 4 files changed, 88 insertions(+), 76 deletions(-)

commit 26a6b3c6ff4ee086f72612930d3134df90980211
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 20:07:31 2011 -0400

    gdbusprivate: fix a missed g_mutex_free()

    This should have been changed to g_mutex_clear()

 gio/gdbusprivate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6f343ca548af912e7ea6b0a35f5e12c8cb820126
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 19:04:41 2011 -0400

    Remove g_mutex_new()/g_cond_new() in testcases

    These were the last users of the dynamic allocation API.

    Keep the uses in glib/tests/mutex.c since this is actually meant
    to test
    the API (which has to continue working, even if it is deprecated).

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 gio/tests/contexts.c         | 30 +++++++++++++++---------------
 gio/tests/tls-interaction.c  | 28 ++++++++++++++++------------
 gobject/tests/dynamictests.c | 12 +++++-------
 gobject/tests/threadtests.c  | 27 ++++++++++++---------------
 tests/mainloop-test.c        | 30 ++++++++++++++----------------
 tests/memchunks.c            | 25 +++++++++----------------
 tests/onceinit.c             | 31 +++++++++++++++----------------
 tests/slice-concurrent.c     | 13 +++++--------
 tests/slice-test.c           |  2 --
 tests/thread-test.c          | 14 ++++++--------
 10 files changed, 97 insertions(+), 115 deletions(-)

commit 9793708931640df4d89f87d16678508d417fd1e6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 18:52:55 2011 -0400

    drop errorcheck mutex test

    We don't support errorchecking mutexes in GLib anymore.

 tests/.gitignore              |   1 -
 tests/Makefile.am             |   1 -
 tests/errorcheck-mutex-test.c | 131
 ------------------------------------------
 3 files changed, 133 deletions(-)

commit 4d5fe2704834e5038aa7a05a54445336cff831b6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 17:27:27 2011 -0400

    GVariant: add a clarification to the docs

    Add a note to the doc for g_viarnat_get_child_value() that the return
    value is non-floating and must be freed with g_variant_unref().

    https://bugzilla.gnome.org/show_bug.cgi?id=654412

 glib/gvariant-core.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6b566e1d0b672e156c0cb80ceddc21b2f01deeaf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 17:17:01 2011 -0400

    gtimer: remove warnings about threads

    GTimer no longer uses the thread system for time information and
    g_thread_init() no longer does anything, so remove the doubly-untrue
    warning about these topics.

    https://bugzilla.gnome.org/show_bug.cgi?id=527214

 glib/gtimer.c | 5 -----
 1 file changed, 5 deletions(-)

commit e3be556728831b03b448819741f2c1c69f939294
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 16:52:03 2011 -0400

    end the glib-ctor experiment

    This was a bad approach.  We attempt to handle initailisation in
    a more
    centralised way now.

 glib/Makefile.am |  1 -
 glib/glib-ctor.h | 25 -------------------------
 glib/gmem.c      |  2 --
 3 files changed, 28 deletions(-)

commit bb5d90a76806788c26a6a3ed2c8453b35cb8c86e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 16:36:53 2011 -0400

    Test that g_slice_set_config() works

    For a while it didn't work, due to the ctor-based initialisation of
    gslice.

    https://bugzilla.gnome.org/show_bug.cgi?id=660887

 glib/tests/.gitignore  |  1 +
 glib/tests/Makefile.am |  3 +++
 glib/tests/slice.c     | 28 ++++++++++++++++++++++++++++
 3 files changed, 32 insertions(+)

commit 5bfb64d50704f334ae6692184e53de6dbb2e6be4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 16:38:28 2011 -0400

    gslice: stop using ctors

    We can't initialise gslice from a ctor because g_slice_set_config()
    must
    be called before gslice initialisation.

    Instead, do the initialisation in a threadsafe way from the
    initialisation function for the thread private data.  This will
    only be
    called once per thread so the synchronisation doesn't pose a
    significant
    overhead here.

    Ensure that we try to grab the thread private data directly on
    entrance
    to g_slice_alloc() so that we force the initialisation to occur.
    Grabbing the private data is the common case anyway.

    https://bugzilla.gnome.org/show_bug.cgi?id=660887

 glib/gslice.c | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

commit f1512917e6e46e30000bcca2ebf06ef9d15b751d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 16:08:27 2011 -0400

    win32: stop leaking GPrivate data

    Instead of running the GPrivate destructors from our thread proxy
    code,
    run it from the DllMain handler for the DLL_THREAD_DETACH case.

    This should ensure that thread-local data is free at the exit of all
    threads -- not just the ones we created for ourselves.

    https://bugzilla.gnome.org/show_bug.cgi?id=660745

 glib/glib-init.c     |  4 +++
 glib/glib-init.h     |  1 +
 glib/gthread-win32.c | 95
 +++++++++++++++++++++++++++-------------------------
 3 files changed, 54 insertions(+), 46 deletions(-)

commit dd09a95543dd9e2156a635e81892d2c583177f08
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 16:02:16 2011 -0400

    Add GPrivate destroy notify testcase

    Ensure that GPrivate destroy notifies are properly called.

    This test currently fails on win32 (where we are leaking).

    https://bugzilla.gnome.org/show_bug.cgi?id=660745

 glib/tests/private.c | 52
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit 2e5cb6f52242a235f09d0b72954ed06591c01c06
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 15:44:48 2011 -0400

    win32 fixes from g_thread_init() deprecation

    I can't even begin to imagine how these fell through the cracks...

 glib/gmessages.c     |  4 ----
 glib/gthread-win32.c |  2 +-
 glib/gutils.c        | 23 +----------------------
 3 files changed, 2 insertions(+), 27 deletions(-)

commit 1bf01efb9f41a3b261e480f4cee0c3385ce3cfcb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 15:34:15 2011 -0400

    gitignore

 glib/tests/.gitignore | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 47444dacc069be5984df4064ae382d45a9ae8c9e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 15:30:39 2011 -0400

    Deprecate g_thread_init()

    Move the last few things that needed thread-safe initialisation to a
    global ctor.

    https://bugzilla.gnome.org/show_bug.cgi?id=660744

 glib/Makefile.am                     |   2 +
 glib/deprecated/gthread-deprecated.c |  49 +++++++
 glib/deprecated/gthread.h            |  15 +++
 glib/glib-init.c                     | 246
 +++++++++++++++++++++++++++++++++++
 glib/glib-init.h                     |  38 ++++++
 glib/gmain.c                         |   4 -
 glib/gmem.c                          |  54 +-------
 glib/gmessages.c                     |  87 +------------
 glib/grand.c                         |   2 -
 glib/gslice.c                        |   3 -
 glib/gstrfuncs.c                     |   2 -
 glib/gthread.c                       |  71 ----------
 glib/gthread.h                       |  14 --
 glib/gthreadpool.c                   |   1 -
 glib/gthreadprivate.h                |   3 -
 glib/gutils.c                        |  95 --------------
 glib/gwin32.c                        |   2 -
 gobject/gtype.c                      |   3 -
 gthread/gthread-impl.c               |  13 --
 19 files changed, 353 insertions(+), 351 deletions(-)

commit 310c3ed4cc733f47b88b44fb03757bd7213a4f9a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 21:20:07 2011 -0400

    Clean up process of calling g_debug_init()

    Make sure that it calls absolutely nothing that may ever recurse back
    into GLib again:

      - g_ascii_strcasecmp() is unsafe because it has g_return_if_fail()
      at
        the top.  As far as I know, the only ASCII character letter that
        would get special treatment here is "i" and that appears in
        neither
        "help" nor "all".

      - g_getenv() is very complicated on Windows, so use a simple version
        that is sufficient for our purposes.

    Now that it's completely safe, we can just call it from g_logv()
    in the
    usual way without all of the hacks.

    https://bugzilla.gnome.org/show_bug.cgi?id=660744

 glib/gmessages.c | 83
 ++++++++++++++++++++++----------------------------------
 glib/gutils.c    | 16 +++++++----
 2 files changed, 43 insertions(+), 56 deletions(-)

commit 1481b7bca3c24149a2970758bc8762e1318f361e
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 21 18:21:27 2011 -0400

    Add _g_io_module_get_default(), use to simplify other *_get_default()s

    Add _g_io_module_get_default(), which implements the
    figure-out-the-best-available-module-that-is-actually-usable logic,
    and use that to simplify g_proxy_resolver_get_default(),
    g_settings_backend_get_default(), g_tls_backend_get_default(), and
    g_vfs_get_default().

    https://bugzilla.gnome.org/show_bug.cgi?id=620932

 gio/giomodule-priv.h   |   5 ++
 gio/giomodule.c        | 127
 +++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gproxyresolver.c   |  52 ++------------------
 gio/gsettingsbackend.c |  63 ++++++++----------------
 gio/gtlsbackend.c      |  35 +-------------
 gio/gvfs.c             |  53 ++-------------------
 6 files changed, 161 insertions(+), 174 deletions(-)

commit 38d21f6d8a761cf211c0e0ca21c394b4824d13f2
Author: Dan Winship <danw@gnome.org>
Date:   Thu Sep 22 11:52:53 2011 -0400

    gsettingsbackend: remove useless check

    GMemorySettingsBackend is always present, so there's no need to check
    for "no backends available"

    https://bugzilla.gnome.org/show_bug.cgi?id=620932

 gio/gsettingsbackend.c | 4 ----
 1 file changed, 4 deletions(-)

commit afa604f88179b4c95bdfe4e1819a93318f7b1d3f
Author: Dan Winship <danw@gnome.org>
Date:   Tue Oct 4 13:19:21 2011 -0400

    gio/tests/socket-client: fix a crash (and some indentation)

 gio/tests/socket-client.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

commit 53fb4e986777ccad3b382151a23765c162a645c4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 4 23:52:38 2011 +0800

    Bug 660851: Update GIO for changes in GThread API

    gsocket.c: Use intern string instead of GStaticPrivate/
               g_static_private_set, as Dan suggested.

 gio/gsocket.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 82fae72ae9d68bcce23c47c9f7046a50bb226105
Author: Bastien Nocera <hadess@hadess.net>
Date:   Mon Oct 3 15:27:15 2011 +0100

    [gio] Improve doc for g_file_make_directory_with_parents()

    g_file_make_directory_with_parents() will fail for already
    existing directories, unlike g_mkdir_with_parents(), so mention
    this clearly in the docs.

    https://bugzilla.gnome.org/show_bug.cgi?id=660791

 gio/gfile.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 449a1e8bfd0ea7e8db1e3a436cf182b5cc71aa75
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 11:07:15 2011 -0400

    Fix an invalid non-looping use of GCond

    The GIOScheduler was using a GCond in a way that didn't deal with the
    possibility of spurious wakeups.  Add an explicit predicate and
    a loop.

    Problem caught by Matthias Clasen.

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 gio/gioscheduler.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c474cd71ba3fe205865966c4a1467916597d43c4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 3 23:44:37 2011 -0400

    GIO: switch a couple more GMutex users to _init()

    Move a couple more GIO users off of _new()/_free() to
    _init()/_clear().

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 gio/gioscheduler.c    | 41 ++++++++++++++++++-----------------------
 gio/gtlsinteraction.c | 38 +++++++++++++++++++-------------------
 2 files changed, 37 insertions(+), 42 deletions(-)

commit e517fb6cb030c678918932aad5c0e63b4e0b1beb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 11:52:47 2011 -0400

    Make G_ASSERT_STATIC work with clang

    A simplified variant of an approach proposed by Behdad.

    https://bugzilla.gnome.org/show_bug.cgi?id=660413

 glib/gmacros.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7d4dea748d74a648989fe5d62361c1b151725f61
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 00:09:53 2011 -0400

    GDBus codegen: generate code with embedded GMutex

    Modify GDBus code generator to emit code that uses GMutex embedded
    into
    the structure of the skeleton instead of a pointer.

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 gio/gdbus-2.0/codegen/codegen.py | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit 8bcdabf25a16bfcbc14696849ecf34689022469b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 00:02:36 2011 -0400

    GThreadedResolver: port to embedded GMutex/GCond

    This is the only case that was non trivial to port, due to some of the
    logic being based on checking the GCond* for being non-%NULL.

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 gio/gthreadedresolver.c | 41 ++++++++++++++++++++---------------------
 1 file changed, 20 insertions(+), 21 deletions(-)

commit 518feb45eb1522f3e80125372d78b225b4e2e6e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 3 23:52:13 2011 -0400

    GMain, ThreadPool: embed GCond in struct

    Use an embedded GCond and g_cond_init()/clear() instead of a pointer
    with g_cond_new() and _free().

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 glib/gmain.c       | 24 ++++++++----------------
 glib/gthreadpool.c | 14 +++++---------
 2 files changed, 13 insertions(+), 25 deletions(-)

commit 19cd57d4f3d1da19b3792f6294d354c2b3c70b85
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 3 23:33:57 2011 -0400

    GCancellable: use GCond and GMutex directly

    Use a statically-allocated GCond and directly use GMutex instead of
    making use of the undocumented G_LOCK_NAME() macro.

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 gio/gcancellable.c | 51
 +++++++++++++++++++++++++++------------------------
 1 file changed, 27 insertions(+), 24 deletions(-)

commit 5f48e2cde5cb2871abb4e07b16140f52244d36ff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 3 23:26:55 2011 -0400

    GDBus: switch to struct-embedded GMutex and GCond

    Now that we have those, we should use them.

    https://bugzilla.gnome.org/show_bug.cgi?id=660739

 gio/gdbusconnection.c          | 22 ++++++------
 gio/gdbusinterfaceskeleton.c   | 44 +++++++++++------------
 gio/gdbusobjectmanagerclient.c | 58 +++++++++++++++---------------
 gio/gdbusobjectmanagerserver.c | 52 +++++++++++++--------------
 gio/gdbusobjectproxy.c         | 44 +++++++++++------------
 gio/gdbusobjectskeleton.c      | 50 +++++++++++++-------------
 gio/gdbusprivate.c             | 80
 +++++++++++++++++++++---------------------
 7 files changed, 175 insertions(+), 175 deletions(-)

commit e03db42792220e75fe7587f6c37493fd071e2b65
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 4 13:56:30 2011 +0800

    gstringchunk.c: Include gutils.h

    This is due to usage of the inline keyword which may not be
    universally
    defined unless guils.h is included.

 glib/gstringchunk.c | 2 ++
 1 file changed, 2 insertions(+)

commit 13bd399d0a369cd62590777f8da6f3c3e7e21172
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 4 10:59:29 2011 -0400

    Add README notes about recent changes

 README.in | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 794c1a30bc27b4c8d77537813acb1213d5ac80f2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 3 14:40:00 2011 -0400

    macro wrappers for g_once_init_enter/leave

    Give the macro wrapper treatment to g_once_init_enter() and leave() in
    the same style that we did for gatomic.

    It is now possible to use these macros with any pointer-sized object,
    and not just gsize.  The leave() macro ensures that the initialisation
    result is a compatible type with the pointer that it is being written
    to.

    Just like with gatomic, there could be problems caused by use of
    (void*)
    casts.  We'll see how that goes, and reevaluate if necessary.

    https://bugzilla.gnome.org/show_bug.cgi?id=660743

 glib/deprecated/gthread-deprecated.c |  7 +++++++
 glib/deprecated/gthread.h            |  2 ++
 glib/gthread.c                       | 15 ++++++++------
 glib/gthread.h                       | 40
 ++++++++++++++++++++++--------------
 glib/tests/once.c                    | 12 +++++++++++
 5 files changed, 55 insertions(+), 21 deletions(-)

commit 8f58c2c0c43fadc19463aec214b27bc41c6a1651
Author: Antoine Jacoutot <ajacoutot@openbsd.org>
Date:   Tue Oct 4 07:52:10 2011 +0200

    Fix DATADIRNAME on OpenBSD.

    On OpenBSD translation files are always installed under
    PREFIX/share/locale,
    there is no such thing as PREFIX/lib/locale; according to that, set
    DATADIRNAME to "share".

 m4macros/glib-gettext.m4 | 4 ++++
 1 file changed, 4 insertions(+)

commit 037c91f845246b692acf5ff99c233b46514504ac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 12:08:56 2011 -0400

    rec-mutex testcase: add a performance test

    Add a reasonable performance test for uncontended and contended
    cases at
    different levels of recursion depth.

 glib/tests/rec-mutex.c | 88
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

commit 7973d9f8bac34fa090e330dec136b251f305d06c
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Oct 3 14:27:15 2011 +0100

    In the GVariant intro, mention lack of built-in endianness, and
    rationale

    Presumably, the rationale for not storing the endianness is that
    GVariant is a recursive type system, and in a sane format, endianness
    only needs to be stored once per blob of data (once per D-Bus message,
    once per file on disk, etc.).

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=632049
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gvariant.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit ebb544f549c77d0e98431ee38c55824ff4de81ab
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Oct 3 14:20:51 2011 +0100

    g_variant_get_data: mention what you need to know to deserialise

    Also include a shorter version in the docs for g_variant_store, with a
    pointer to g_variant_get_data.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=632049
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gvariant-core.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 3869e40ac339a9395e47a9aa81b017dbaf8ad925
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Oct 3 14:19:58 2011 +0100

    g_variant_new_from_data: mention that the caller might need to
    byteswap

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=632049
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gvariant.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 3d7264ce703f7dd55b6deac91562d64db69059ef
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 4 12:39:08 2011 +0100

    Fix a typo in describing GVariant serialisation functions

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=632049
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 83afcc0a29202f7171e185c93ab0183dbf80cb39
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 4 10:46:13 2011 +0100

    Escape percent sign in g_variant_new_parsed documentation

    Strings matching /%[a-z]/ are special syntax for gtk-doc.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=632049
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gvariant-parser.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d34c9bc6f335b22260df25d849cb3f26d3998349
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Oct 13 12:22:41 2010 +0100

    g_variant_get_fixed_array: document which types are appropriate

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=632049
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gvariant.c | 33 ++++++++++++++++++++++++++++-----
 1 file changed, 28 insertions(+), 5 deletions(-)

commit 9e827ab6152cf1c83c27bbffa2686390c78fe46e
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Wed Oct 13 12:21:22 2010 +0100

    GVariant docs: be clear that the serialisation format isn't the same
    as D-Bus

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=632049
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Ryan Lortie <desrt@desrt.ca>

 glib/gvariant.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f778564ba2c389856904de3cc80126d7cfb988c2
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 4 09:48:35 2011 +0100

    Be clear that g_str_hash etc. don't accept NULL

    This covers the str, double, int, int64 hash and equal functions,
    but not
    anything that takes an "object", since the convention is that "object
    methods" never accept NULL anyway.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=592715
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 glib/ghash.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

commit 34a122454966546fed0ccbb73338b28021e76481
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 4 09:44:27 2011 +0100

    Be completely clear about what g_direct_hash, g_direct_equal do

    Also annotate them as (allow-none), more for the benefit of gtk-doc
    readers than introspection.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=592715
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 glib/ghash.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

commit 06c96ab1e59dead8a920433498624b946abdb9ab
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Oct 4 09:42:28 2011 +0100

    GHashTable: be more clear what g_int_hash wants

    Using g_int_hash, g_int_equal with keys like GINT_TO_POINTER (n)
    seems to
    be a reasonably common GLib-novice mistake. It doesn't help that the
    documentation for GHashFunc was ambiguous about this.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=592715
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 glib/ghash.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

commit 5bed8317ea0dc615b02f34bde9b5dfa7374c5600
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Oct 3 18:48:15 2011 +0100

    Warn when classes/instances exceed the allowed size, if possible

    It's impossible to check this if the library user is using
    g_type_register_static, but in that case their compiler should
    hopefully
    warn about the truncation. This fixes it for G_DEFINE_TYPE and
    friends,
    at least.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=659916
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Colin Walters <walters@verbum.org>

 gobject/gtype.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 29a71915d87aa3053ed60efbe30bd7cc63ae2114
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Oct 4 14:06:10 2011 +0800

    Update glibconfig.h.win32(.in)

    Update typedef of GStaticMutex here to match the typedef of GMutex
    in glib/gthread.h (due to commit c5634df6)

 glib/glibconfig.h.win32.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ca6a9850395ede6f8de8a1a34096eb32de3ba94d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 4 00:46:10 2011 -0400

    Improve test coverage in the thread tests

    Use g_thread_new_full() in some places.

 glib/tests/thread.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit e6fa27a5f80f05a6661b803620639e6f0ae96852
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 4 00:45:42 2011 -0400

    Improve test coverage in the GString tests

 glib/tests/string.c | 51
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

commit fc3248065813557c37e1f5ec3442b652d4b0d404
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Oct 4 00:44:58 2011 -0400

    Improve testcoverage in the rec-mutex test

    Test g_rec_mutex_trylock() in both locked and unlocked cases.

 glib/tests/rec-mutex.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 823e32655e2fc4810dee34ba1bdd5553bb383a42
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 3 23:55:02 2011 -0400

    Add a few more tests

    This brings test coverage for glist.c and glist.c to the
    coveted 100% lines mark.

 glib/tests/list.c  | 69
 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 glib/tests/slist.c | 53 ++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 119 insertions(+), 3 deletions(-)

commit 1fe4429318b147f275e730ef5a69cb94a0a25062
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 3 23:54:08 2011 -0400

    Remove bits of dead code identified by coverage tests

    These lines could were not hit by our tests, and examination
    of the code reveals that they can't ever be hit.

 glib/glist.c  | 16 ++++++----------
 glib/gslist.c | 12 ++----------
 2 files changed, 8 insertions(+), 20 deletions(-)

commit b74f46db6b585abe7fb665651e51888aea88b356
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 3 22:22:55 2011 -0400

    Add some more thread tests

 glib/tests/Makefile.am |   3 ++
 glib/tests/thread.c    | 119
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 122 insertions(+)

commit 070aefcf59b0238f4cf644cb9ec75cc0b2d4ffaf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 3 22:18:01 2011 -0400

    GAsyncQueue: properly set free function

    The copying of code from g_async_queue_new() to
    g_async_queue_new_full()
    in ef08aa786bca87c520ef319b97df4b3ed0782233 copied the setting of the
    free function to NULL (instead of the one passed in by the user).

    Fix that up so that the test passes again.

    https://bugzilla.gnome.org/show_bug.cgi?id=660843

 glib/gasyncqueue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3f982cb9ab1dc9a435c5bba2f0438f165eba25dc
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 29 23:46:28 2011 -0400

    GUnixMountPoint: expose options

    Make the options from an /etc/fstab entry available as public API -
    this can be used to support options such as

     comment=gvfs.name=Foo\040Bar

    to e.g. set the name of an fstab mount in the UI to "Foo Bar".

    https://bugzilla.gnome.org/show_bug.cgi?id=660536

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gunixmounts.c                   | 28 ++++++++++++++++++++++++++++
 gio/gunixmounts.h                   |  1 +
 4 files changed, 31 insertions(+)

commit 3106391694408877ebf6e8451146c5ac5d7bb017
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 3 10:19:14 2011 -0400

    Revert "GSettings: don't abort on missing schemas"

    This reverts commit c841c2ce3fda6f754c88ae2c9099f36dff2f0814.

    This approach has been an unmitigated disaster.  We're getting
    all sorts
    of crashes due to functions that are returning NULL because they can't
    find the schema for the default value.  The people who get these
    crashes
    are then confused about the root cause of the problem and waste a
    lot of
    time trying to figure it out.

    Until we find a better solution, we should go back to what we had
    before.

    https://bugzilla.gnome.org/show_bug.cgi?id=655366

 gio/gsettings.c       | 77
 +++++++++++----------------------------------------
 gio/gsettingsschema.c |  5 +---
 gio/tests/gsettings.c | 26 -----------------
 3 files changed, 17 insertions(+), 91 deletions(-)

commit 9d989c7b8aebda0e56aaadb843def0f48f909156
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 23:53:56 2011 -0400

    Cosmetics

 glib/gthread.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit fa6710ab6f365b512281049276413747b311821d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 23:43:17 2011 -0400

    Documentation fixes

 docs/reference/glib/glib-sections.txt | 113 +++++++++++++++--------------
 glib/deprecated/gthread-deprecated.c  |   9 +--
 glib/gthread-posix.c                  |   3 +-
 glib/gthread.c                        | 133
 ++++++++++++++++++----------------
 4 files changed, 135 insertions(+), 123 deletions(-)

commit 65b84bb7d0e429a30f344ebc149dc3d8d79bddda
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 22:38:49 2011 -0400

    Fix doc build

    The markup here was not only broken, it was also unnecessary,
    since gtk-doc knows to apply <function></function> tags to things
    that end with () already.

 glib/gthread-posix.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

commit 65056180dd2fee9187426354e8ef5161bf980578
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 23:37:20 2011 -0400

    locks: Add initialisation notes

    For each of the 4, mention that static storage or _init() is needed.

 glib/gthread.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit c5634df6d3ffe2da013a246880b183140b8f1260
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 20:59:15 2011 -0400

    locks: change the ABI just a bit

    Add a little bit more room in the ABI for our synchronisation
    primatives
    since we're going to need it when we add native implementations on
    Linux.

    Also: rename the pointer field and add /*< private >*/ annotations.

 glib/deprecated/gthread.h |  2 +-
 glib/gthread-posix.c      | 42 +++++++++++++++++++++---------------------
 glib/gthread-win32.c      | 15 +++++++--------
 glib/gthread.h            | 20 ++++++++++++++------
 4 files changed, 43 insertions(+), 36 deletions(-)

commit 2a677d1370a1983c2c5e1a4a6dd5f0d9fa9868b3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 20:51:38 2011 -0400

    locks: drop _INIT macros

    All locks are now zero-initialised, so we can drop the G_*_INIT macros
    for them.

    Adjust various users around GLib accordingly and change the docs.

    https://bugzilla.gnome.org/show_bug.cgi?id=659866

 docs/reference/glib/glib-sections.txt |  4 ---
 gio/gunionvolumemonitor.c             |  2 +-
 glib/deprecated/gthread.h             |  2 +-
 glib/gbitlock.c                       |  2 +-
 glib/glib-ctor.h                      |  2 +-
 glib/gmem.c                           |  2 +-
 glib/gmessages.c                      |  2 +-
 glib/gslice.c                         |  2 +-
 glib/gthread-posix.c                  | 17 ++++-----
 glib/gthread-win32.c                  |  9 ++---
 glib/gthread.c                        | 67
 ++++-------------------------------
 glib/gthread.h                        |  7 +---
 glib/gvarianttypeinfo.c               |  2 +-
 glib/tests/cond.c                     |  4 +--
 glib/tests/mutex.c                    |  8 ++---
 glib/tests/private.c                  |  6 ++--
 glib/tests/rec-mutex.c                |  6 ++--
 glib/tests/rwlock.c                   | 18 +++-------
 gmodule/gmodule.c                     |  2 +-
 gobject/gparam.c                      |  2 +-
 gobject/gtype.c                       |  4 +--
 tests/thread-test.c                   |  2 +-
 22 files changed, 44 insertions(+), 128 deletions(-)

commit 3315aee70915deb12374ab1d6134e4414114bec3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 21:03:49 2011 -0400

    Re-enable 'include' testcase

    The bug is fixed now.

    https://bugzilla.gnome.org/show_bug.cgi?id=659866

 glib/tests/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e081eadda598bc708fbf9dd53a190fc3b0e7fa76
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 20:43:28 2011 -0400

    GThread posix: switch to Windows ABI

    Modify the POSIX implementation of the synchronisation primatives
    to use
    the same ABI as Windows: one pointer for each type.

    This frees us from having to #include <pthread.h> and avoids the
    problem
    with pthread_rwlock_t not being defined under certain compiler
    defines.

    A few more changes are expected to the ABI -- they will be committed
    separately.

    https://bugzilla.gnome.org/show_bug.cgi?id=659866

 glib/gthread-posix.c | 198
 +++++++++++++++++++++++++++++++++++++++------------
 glib/gthread.h       |  29 --------
 2 files changed, 152 insertions(+), 75 deletions(-)

commit 151756631dcac8e74df37c02bf0cf13d9df2e18b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 22:31:45 2011 -0400

    Don't use g_thread_foreach in tests

 tests/threadpool-test.c | 30 +++---------------------------
 1 file changed, 3 insertions(+), 27 deletions(-)

commit 3d4846d92309d001697c2827660fa41b5c63dbc4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 01:29:08 2011 -0400

    Deprecate GStaticPrivate and g_thread_foreach

    This commit moves GStaticPrivate, g_thread_foreach and all
    related functions and variables to gthread-deprecated.c. We
    introduce some internal API to make this possible.

    g_thread_foreach is not a very useful function, since there is
    virtually nothing you can do with a GThread*, and implementing
    it requires us to keep a list of threads around.

    GStaticPrivate has been made redundant by adding comparable
    capabilities to GPrivate.

    https://bugzilla.gnome.org/show_bug.cgi?id=660635

 glib/deprecated/gthread-deprecated.c | 324
 +++++++++++++++++++++++++++++++-
 glib/deprecated/gthread.h            |  18 +-
 glib/gthread.c                       | 348
 ++---------------------------------
 glib/gthread.h                       |  16 --
 glib/gthreadprivate.h                |  20 ++
 5 files changed, 371 insertions(+), 355 deletions(-)

commit 12287c8cc70fc65bc7bbeb4f7079b262337fce09
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 09:51:13 2011 -0400

    Don't put threads created with g_thread_new() on the list

    This lets us avoid the overhead of maintaining the global
    list in the non-deprecated case.

    https://bugzilla.gnome.org/show_bug.cgi?id=660635

 glib/deprecated/gthread-deprecated.c |  4 +-
 glib/gthread.c                       | 76
 ++++++++++++++++++++++--------------
 glib/gthreadprivate.h                |  8 ++++
 3 files changed, 56 insertions(+), 32 deletions(-)

commit 1909d2398ad299b86fb708104d82ce5ab7415d36
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 09:27:08 2011 -0400

    Make thread names useful in a debugger

    Associate the name with the system thread, so that debuggers
    can see it. This is currently only implemented for Linux, using
    prctl.

    https://bugzilla.gnome.org/show_bug.cgi?id=660635

 configure.ac          |  1 +
 glib/gthread-posix.c  | 12 +++++++++++-
 glib/gthread-win32.c  |  6 ++++++
 glib/gthread.c        |  3 +++
 glib/gthreadprivate.h |  1 +
 5 files changed, 22 insertions(+), 1 deletion(-)

commit 0d1a92ca3d234a4291ef3ecbf7df2d57442a63e5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 10:01:57 2011 -0400

    Add new thread creation API

    Deprecate both g_thread_create functions and add
    g_thread_new() and g_thread_new_full(). The new functions
    expect a name for the thread.

    Change GThreadPool, GMainContext and GDBus to create named threads.

    https://bugzilla.gnome.org/show_bug.cgi?id=660635

 gio/gdbusprivate.c                   |  9 +++---
 glib/deprecated/gthread-deprecated.c | 36 ++++++++++++++++++++--
 glib/deprecated/gthread.h            |  4 +++
 glib/glib.symbols                    |  9 +++---
 glib/gmain.c                         |  2 +-
 glib/gthread.c                       | 59
 ++++++++++++++++++++++--------------
 glib/gthread.h                       |  6 ++--
 glib/gthreadpool.c                   |  2 +-
 8 files changed, 91 insertions(+), 36 deletions(-)

commit bc67c23bf939d3ad719e860362bdda0737c512a1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 21:57:06 2011 -0400

    Define GLIB_COMPILATION when building libgthread.so

    This is necessary, because gthreadprivate.h can only be
    included inside GLib, otherwise single-include guards trigger.

 gthread/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 34ce4dd0324acd02ceb51d43fdaed5640041d8c1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 21:57:40 2011 -0400

    Replace static privates by privates

    GStaticPrivate is heading for deprecation soon, and GPrivate
    can replace these uses now.

 gio/gcancellable.c | 12 ++++++------
 glib/gutf8.c       | 10 +++++-----
 gmodule/gmodule.c  |  6 +++---
 3 files changed, 14 insertions(+), 14 deletions(-)

commit 6f711518230cbb2e09c56a7853e191eb6269faef
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 21:13:14 2011 -0400

    win32: fix GPrivate fallout

    Fix minor mistake in win32 GPrivate code.

 glib/gthread-win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cdd43d43c9be3914bfeca4b1548885b9b44dcabb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 2 20:24:18 2011 -0400

    locks: rename a bunch of parameters

 glib/gthread-posix.c | 84
 ++++++++++++++++++++++++++--------------------------
 glib/gthread.h       | 16 +++++-----
 2 files changed, 50 insertions(+), 50 deletions(-)

commit 8e43470c3827f5980f39bf9da0bc510858daf2be
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 30 14:22:04 2011 -0400

    Stop dithering over GPrivate

    Take out the half-private g_private_init() stuff and replace it with a
    G_PRIVATE_INIT macro that allows specifying a GDestroyNotify.

    Expose the GPrivate structure in a public header.

    Add a g_private_replace() to (sort of) match the functionality of
    g_static_mutex_set().

    Improve the documentation.

    Deprecate g_private_new().

 docs/reference/glib/glib-overrides.txt |  22 +---
 docs/reference/glib/glib-sections.txt  |   6 +-
 glib/deprecated/gthread-deprecated.c   |  26 ++++-
 glib/deprecated/gthread.h              |   3 +
 glib/glib.symbols                      |   1 +
 glib/gmessages.c                       |   7 --
 glib/gslice.c                          |   4 +-
 glib/gthread-posix.c                   | 197
 +++++++++++++++++++++++++++------
 glib/gthread-win32.c                   |  83 +++++++++-----
 glib/gthread.c                         | 100 +----------------
 glib/gthread.h                         |  11 +-
 glib/gthreadprivate.h                  |  14 ---
 12 files changed, 273 insertions(+), 201 deletions(-)

commit 7a75f56aa16ac13607a13f4e455a4fa4248ff750
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 19:10:16 2011 -0400

    Add a few comments

 glib/gthread.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 7df7c535574fc634461ed17750fdf5bb1e777d2f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 19:09:24 2011 -0400

    Add another GCond test

    This test shows how to implement a barrier using a GCond.

 glib/tests/cond.c | 95
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)

commit 1a5cc98ca2f1474c300a13247533bf0b0b05f1df
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 01:21:46 2011 -0400

    Rework the way GStaticPrivate data is freed

    To avoid iterating threads in g_static_private_free(), defer freeing
    the per-thread data to thread exit. The one complication here is
    that it is possible for the static private index to be reused while
    'old' data is still around. To deal with that case, store the 'owner'
    with each per-thread data node, and free old data in
    g_static_private_get() if the owner doesn't match. The remaining
    possibility that a private index could be reused by a GStaticPrivate
    with the same address is sufficiently unlikely that we can probably
    ignore it.

    With this change, per-thread data is now truly private again,
    and we can drop the lock for it as well.

    https://bugzilla.gnome.org/show_bug.cgi?id=660635

 glib/gthread.c | 169
 +++++++++++++++++----------------------------------------
 1 file changed, 50 insertions(+), 119 deletions(-)

commit 6a31cc66cde646aee5efdd2ba8cc8a203e29f1ed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 09:59:26 2011 -0400

    Whitespace fixes

 glib/gthread.c | 50 +++++++++++++++++++++++++-------------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

commit 3c02c64474351a2decdab3348b4e9f7ab473bff8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 17:05:03 2011 -0400

    Clean up includes

 glib/gthread.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 6d2b2ccaa0dea75b848bcff6d83ab03db547b0fe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 16:48:17 2011 -0400

    Add tests for GPrivate and GStaticPrivate

 glib/tests/Makefile.am |   3 +
 glib/tests/private.c   | 337
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 340 insertions(+)

commit 3659ca99f5ae2058b53a2fefe052926fe2e1858f
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 30 17:21:52 2011 +0100

    tests: Use G_VALUE_INIT

 tests/gobject/gvalue-test.c    | 12 ++++++------
 tests/gobject/paramspec-test.c | 10 +++++-----
 2 files changed, 11 insertions(+), 11 deletions(-)

commit 91713e950ff20b6330ca66fe51c32beb1453e87e
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 30 17:04:23 2011 +0100

    docs: Use G_VALUE_INIT

 docs/reference/gobject/tut_gobject.xml | 2 +-
 docs/reference/gobject/tut_gtype.xml   | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 406f7d2b39dab16cd38ccdbd4c978490eb1a2ba1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 30 23:05:27 2011 -0400

    mutex testcase: add a performance test

    Add a reasonable performance test for uncontended and contended cases.

 glib/tests/mutex.c | 68
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

commit 6ef022bbb3b6dbe6f0f34858d7521a7b0ab331e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 00:08:54 2011 -0400

    Move all hash functions to ghash.c

    This matches their location in the headers.

 glib/ghash.c   | 204
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gstring.c |  95 ++++++---------------------
 glib/gutils.c  | 153 +------------------------------------------
 3 files changed, 226 insertions(+), 226 deletions(-)

commit e7ca67f20c9f44478cdaf5832a91dc39086f4c38
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 2 00:08:13 2011 -0400

    GHash: Cosmetic changes

 glib/ghash.c | 424
 +++++++++++++++++++++++++++++++----------------------------
 glib/ghash.h | 134 ++++++++-----------
 2 files changed, 281 insertions(+), 277 deletions(-)

commit ed325b18798f29ce1efbc5377056c0e07cfe4175
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 23:38:52 2011 -0400

    One forgotten moved doc

 glib/gmessages.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 10d86cda0266d7467cab449892e5fbb9258c607f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 23:38:23 2011 -0400

    Move GStringChunk into its own files

 glib/Makefile.am    |   2 +
 glib/glib.h         |   1 +
 glib/gstring.c      | 271 -------------------------------------------
 glib/gstring.h      |  17 ---
 glib/gstringchunk.c | 325
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gstringchunk.h |  53 +++++++++
 6 files changed, 381 insertions(+), 288 deletions(-)

commit 0e8bcc3ed7121c672af6ce52d8985a4d60f8545b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 23:27:45 2011 -0400

    Move GString docs inline

 docs/reference/glib/tmpl/.gitignore   |   1 +
 docs/reference/glib/tmpl/strings.sgml | 369
 ----------------------------------
 glib/gstring.c                        |  29 +++
 glib/gstring.h                        |  12 --
 4 files changed, 30 insertions(+), 381 deletions(-)

commit 459b14d89ae1065041d55089b82c170ec8e0f631
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 23:23:40 2011 -0400

    GString: cosmetic cleanups

 glib/gstring.c | 535
 +++++++++++++++++++++++++++++----------------------------
 glib/gstring.h | 180 ++++++++++---------
 2 files changed, 357 insertions(+), 358 deletions(-)

commit 7154d44c5c5a23e0a631f571bc689ff43995ee82
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 23:03:09 2011 -0400

    Move file utility docs inline

 docs/reference/glib/tmpl/.gitignore     |   1 +
 docs/reference/glib/tmpl/fileutils.sgml | 536
 --------------------------------
 glib/gdir.c                             |   6 +
 glib/gfileutils.c                       | 135 ++++++++
 glib/gmappedfile.c                      |  10 +-
 5 files changed, 151 insertions(+), 537 deletions(-)

commit ca77b0e252aa783ff25db7a247986a5ec45ea84f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 22:48:27 2011 -0400

    Move string utility docs inline

 docs/reference/glib/tmpl/.gitignore        |   1 +
 docs/reference/glib/tmpl/string_utils.sgml | 903
 -----------------------------
 glib/gstrfuncs.c                           | 427 ++++++++++++--
 3 files changed, 378 insertions(+), 953 deletions(-)

commit 793ff83527bd6be8117b483d4b8dde55f1d6f3b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 22:00:41 2011 -0400

    Move test docs inline

 docs/reference/glib/tmpl/.gitignore   |   2 +
 docs/reference/glib/tmpl/testing.sgml | 691
 ----------------------------------
 glib/gtestutils.c                     | 369 +++++++++++++++++-
 3 files changed, 370 insertions(+), 692 deletions(-)

commit 9d3b37ac3fa7d5ea25a897e5baa7c7a66da0873f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 21:03:14 2011 -0400

    Move keyfile docs inline

 docs/reference/glib/tmpl/keyfile.sgml | 939
 ----------------------------------
 glib/gkeyfile.c                       | 364 ++++++++++++-
 2 files changed, 361 insertions(+), 942 deletions(-)

commit 3d814e7a2ae80f422889c5f830af7e26c1f88a02
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 20:16:32 2011 -0400

    GAsyncQueue: simplify an internal function

    g_cond_timed_wait() behaves like g_cond_wait() when given
    NULL, so no need have different branches for that in
    g_async_queue_pop_intern_unlocked().

 glib/gasyncqueue.c | 27 +++++++--------------------
 1 file changed, 7 insertions(+), 20 deletions(-)

commit 8c5400ff45b28a68cd97965abe16ce45dca2548c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 20:11:38 2011 -0400

    GAsyncQueue: internal cleanup

    Turn the 'try' parameter of g_async_queue_pop_intern_unlocked
    into a 'wait', for better alignment with the GCond api.

 glib/gasyncqueue.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 793cf54275dea80d15e724d803273e79195308d0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 20:09:35 2011 -0400

    GAsyncQueue: embed the GCond

    Use g_cond_init/clear, now that we have them.

 glib/gasyncqueue.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

commit ef08aa786bca87c520ef319b97df4b3ed0782233
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 19:24:24 2011 -0400

    GAsyncQueue: Cosmetic fixes

    Mostly doc formatting and whitespace fixes.

 glib/gasyncqueue.c | 496
 ++++++++++++++++++++++++++++-------------------------
 glib/gasyncqueue.h |  70 ++------
 2 files changed, 281 insertions(+), 285 deletions(-)

commit 93abf20d3bc17fcf14cfb605b2142113dc1fd8e9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 18:42:48 2011 -0400

    GAsyncQueue: Move private API to a private header

 glib/Makefile.am          |  5 +++--
 glib/gasyncqueue.c        |  1 +
 glib/gasyncqueue.h        |  3 ---
 glib/gasyncqueueprivate.h | 31 +++++++++++++++++++++++++++++++
 glib/gthreadpool.c        | 23 +++++++++++++----------
 5 files changed, 48 insertions(+), 15 deletions(-)

commit b17b02da796628afe7829f5e8929c7666eb54f31
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 18:20:27 2011 -0400

    GThreadPool: cosmetic cleanups

    Mostly documentation and formatting trivial, but also add
    boolean return types to GError taking functions.

 glib/gthreadpool.c | 809
 +++++++++++++++++++++++++++--------------------------
 glib/gthreadpool.h |  49 ++--
 2 files changed, 444 insertions(+), 414 deletions(-)

commit 81e161edf261b4a8943f256531c57f440bcea2a4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 18:43:15 2011 -0400

    GThread: cosmetic fix

    Explicitly include gthread.h, don't rely on gthreadprivate.h
    to pull it in.

 glib/gthread.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 5135241633cd13fa2ff6bee9b15f763c4c5d90e4
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sun Oct 2 11:21:18 2011 +1100

    Updated Vietnamese translation

 po/vi.po | 152
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 75 insertions(+), 77 deletions(-)

commit 98818afa0859dac68f57d07d6fec0b72d2b45ff7
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sun Oct 2 11:08:49 2011 +1100

    po/vi: import from Damned Lies

 po/vi.po | 75
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 38 insertions(+), 37 deletions(-)

commit 1af5ac0179cfc98c8f7c0c2ed700e56ba072ec35
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 13:47:54 2011 -0400

    Add an index for 2.32 api additions

 docs/reference/glib/glib-docs.sgml | 4 ++++
 1 file changed, 4 insertions(+)

commit b4dc4902c6b7099266985421b775084b68e5d44e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 1 13:47:09 2011 -0400

    Mark g_thread_create_with_stack_size as new API

 glib/gthread.c | 2 ++
 1 file changed, 2 insertions(+)

commit 65b7a20c67406f9309b2b8e1e7d7aaef98b81d02
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 26 11:21:55 2011 -0400

    GSettings schemas: allow for zero items in schema

    GVDB deals with empty lists by returning NULL for the list instead
    of a
    zero-length (non-NULL) strv.  We can work around that in
    GSettingsSchema
    by checking for the NULL case and treating it like a zero-length list.

    https://bugzilla.gnome.org/show_bug.cgi?id=660147

 gio/gsettingsschema.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e147d7aa2f1e4aba555df32b80763e2bc8199798
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Sat Oct 1 10:46:52 2011 +0200

    Fix URL to strlcpy(3) manpage in comment.

 glib/gstrfuncs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c48a0d881313676f2c215b30ba2f8674673071ad
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Sep 29 15:42:47 2011 +0100

    markup-subparser test: use a real GError domain

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660371

 glib/tests/markup-subparser.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 7aad93c5b43faa383ccb609852209d480548dd64
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Sep 29 15:42:33 2011 +0100

    sleepy-stream test: use a real GError domain

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660371

 gio/tests/sleepy-stream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e60e4999b9d4904b74e1a38bd5c24b9fd047f95d
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Sep 29 13:57:09 2011 +0100

    g_dbus_error_encode_gerror: don't segfault on bad domains

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>
    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=660371

 gio/gdbuserror.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 5156d1b2d42d89d7ad916ca3c53db517a2674f31
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 29 23:32:20 2011 -0400

    Prevent data loss in gdesktopappinfo.c

    Don't loose the content of mimeapps.list when it doesn't contain
    a [Added Associations] group. Pointed out by Alexander Larsson.

    https://bugzilla.gnome.org/show_bug.cgi?id=660130

 gio/gdesktopappinfo.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit e6c76d9fd44a5e7c42f10a4833a03cbb44edeb5d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 29 23:13:49 2011 -0400

    Clean up atomic cruft

    Nothing is using these defines anymore, and the messages
    are misleading. Based on a patch by Kean Johnston.

    https://bugzilla.gnome.org/show_bug.cgi?id=660013

 config.h.win32.in | 32 --------------------
 configure.ac      | 90
 ++-----------------------------------------------------
 2 files changed, 2 insertions(+), 120 deletions(-)

commit cde8cf16faa14df3c688adc39f26a45aa0d88d38
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 25 01:51:33 2011 -0400

    Some more gthread reshuffling

 glib/gthread.c | 49 +++++++++++++++++++++++++++----------------------
 1 file changed, 27 insertions(+), 22 deletions(-)

commit 934e0a7470fbcfccfd7c4d3e589d59e8778fa973
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 29 15:49:09 2011 -0400

    GUnixFileMonitor: Clean up /proc/mounts monitoring

    Most suggestions from Colin Walters <walters@verbum.org>.

    https://bugzilla.gnome.org/show_bug.cgi?id=660511

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gunixmounts.c | 45 +++++++++++++++++++++++++++------------------
 1 file changed, 27 insertions(+), 18 deletions(-)

commit 55065461bfc5ace53e736dfa8181909e918c161b
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 29 15:09:43 2011 -0400

    GUnixFileMonitor: Use /proc/mounts for monitoring mount changes

    On recent Linux distros /etc/mtab is just a symlink to /proc/mounts
    and GFileMonitor does not work there because of how the kernel conveys
    that the file changes.

    https://bugzilla.gnome.org/show_bug.cgi?id=660511

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gunixmounts.c | 53
 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 48 insertions(+), 5 deletions(-)

commit 6d05f684eb0193f7b272cbbe42cd7e72eb0f5174
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Sep 29 20:00:16 2011 +0100

    gfile: Be clear about freeing GFile objects

 gio/gfile.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit f992c240e86986dbede0124d1038e0223d8491dd
Author: Dan Winship <danw@gnome.org>
Date:   Thu Sep 29 09:58:57 2011 -0400

    gthread: remove a stray reference to GStaticMutex

 glib/gthread.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 76d2f7fa6a6835058d29381b50f763b12e97a861
Author: Tiffany Antopolski <tiffany.antopolski@gmail.com>
Date:   Thu Sep 29 06:24:55 2011 +0200

    Updated Esperanto translation

 po/eo.po | 1878
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1014 insertions(+), 864 deletions(-)

commit 0f4b278a4b35c54b4a5e887b35dc100c068fd52f
Author: Dan Winship <danw@gnome.org>
Date:   Wed Sep 28 12:18:10 2011 -0400

    update .gitignores

 gio/tests/.gitignore  | 4 ++++
 glib/tests/.gitignore | 5 +++++
 2 files changed, 9 insertions(+)

commit 6feff14f197f7e24d128d7f24ad5a15be5769016
Author: Dan Williams <dcbw@redhat.com>
Date:   Mon Sep 26 19:51:42 2011 -0500

    tests: add signal marshalling return tests for int/uint

    https://bugzilla.gnome.org/show_bug.cgi?id=659881

 gobject/tests/signals.c | 104
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

commit a343904596a68458682da5707cc35fcc3ee7fa47
Author: Dan Williams <dcbw@redhat.com>
Date:   Mon Sep 26 13:07:51 2011 -0500

    tests: fix generic closure marshalling tests

    We're testing enums here, not flags, so we need to make sure
    we're trying to send enums through the marshalling.

    https://bugzilla.gnome.org/show_bug.cgi?id=659881

 gobject/tests/signals.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit adf7e0740c6bb7ec31c7acb32d7ea28951ec1027
Author: Dan Williams <dcbw@redhat.com>
Date:   Fri Sep 23 11:36:35 2011 -0500

    tests: Add some return value torture testcases for the generic
    marshaller

    Ensure that ENUM types are properly marshalled back from libffi types
    to glib types, which was failing on ppc64.

    https://bugzilla.gnome.org/show_bug.cgi?id=659881

 gobject/tests/signals.c | 106
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)

commit 51166d0127d6d77ae7e4782887a76462858fdd91
Author: Dan Winship <danw@gnome.org>
Date:   Mon Sep 26 14:17:43 2011 -0400

    Add thread-safety warnings to the g_setenv() and g_unsetenv() docs

    https://bugzilla.gnome.org/show_bug.cgi?id=659326

 glib/gutils.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit 104ea17125aa70f926bddb3889d594b6f5642a21
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 26 03:56:22 2011 -0400

    GDesktopAppInfo: simplify how defaults work

    Previously, we took the default application for a particular mimetype
    from the system and copied it into the user's configuration as the
    default there.

    Instead of doing that we leave the user's default unset, and at
    time of
    use, if the user has no explicitly-set default value, we use the
    system
    default.

    This avoids complicated situations where inappropriate applications
    were
    being set as the default in the user's configuration.

    https://bugzilla.gnome.org/show_bug.cgi?id=658188

 gio/gdesktopappinfo.c | 66
 +++++++++++++++++++++------------------------------
 1 file changed, 27 insertions(+), 39 deletions(-)

commit 5b2c809dda6ae04bcf3205702b2cc91b1b47cc64
Author: Edward Sheldrake <ejsheldrake@gmail.com>
Date:   Wed Sep 21 19:14:50 2011 +0100

    Add another mimeapps test

    This tests the interaction between mimeinfo.cache, defaults.list and
    mimeapps.list to ensure g_app_info_set_as_last_used_for_type doesn't
    incorrectly change the default.

    https://bugzilla.gnome.org/show_bug.cgi?id=658188

 gio/tests/mimeapps.c | 142
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 142 insertions(+)

commit eba49a4f7fb5b8c85a84e28a31ff0b3ba7bc82ea
Author: Dan Winship <danw@gnome.org>
Date:   Mon Sep 26 12:42:23 2011 -0400

    g_simple_async_result_complete_in_idle: add a minor doc clarification

 gio/gsimpleasyncresult.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 6bd959b7276c557ec70a363497d2c4e432ec294f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 26 09:05:53 2011 -0400

    glib tests: Compile new thread tests on win32

    They accidentally got added inside of a 'if OS_UNIX'.  Move them out.

 glib/tests/Makefile.am | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit fdc594e963b52b1b554fbbc522b91937a39bb5dc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 26 04:44:41 2011 -0400

    winxp threads: detect SRWLock emulation reentrancy

    We lack SRWLock on Windows XP, so we use CRITICAL_SECTION to
    emulate it
    there.  SRWLock is non-recursive, but CRITICAL_SECTION will happily
    allow itself to be acquired multiple times by the same thread.

    We need to detect if our second acquire succeeded because of the
    recursive nature of CRITICAL_SECTION.  In the case of a _lock()
    operation, we would normally have deadlocked, so abort.  In the
    case of
    a _trylock() operation, we need to ensure that FALSE is properly
    returned.

    Problem caught by Matthias Clasen and Chun-wei Fan.

    https://bugzilla.gnome.org/show_bug.cgi?id=660096

 glib/gthread-win32.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

commit 5ef7b964e5d7022c9ecc6b75b2a670e407c18698
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Mon Sep 26 14:40:23 2011 +0200

    [l10n]Updated Catalan (Valencian) translation

 po/ca@valencia.po | 809
 ++++++++++++++++++++++++++++--------------------------
 1 file changed, 418 insertions(+), 391 deletions(-)

commit f032536416c08a14bd42ea8833f81b2c91a63fe2
Author: Petr Kovar <pknbe@volny.cz>
Date:   Sun Sep 25 23:35:27 2011 +0200

    Update Czech translation

 po/cs.po | 260
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 130 insertions(+), 130 deletions(-)

commit 31ddbd688a8551aa00a082dafb92ad82b5ec744a
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sun Sep 25 23:12:36 2011 +0200

    [l10n]Updated Catalan translation

 po/ca.po | 267
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 133 insertions(+), 134 deletions(-)

commit 5a95e19a462712010fece9c71079d5c311c77304
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Fri Sep 23 10:57:55 2011 +0200

    gvariant: Add g_variant_get_fixed_array()

    Using g_variant_new_from_data() for creating new byte arrays is
    non-obvious.
    This patch adds a g_variant_new_fixed_array() function.

    https://bugzilla.gnome.org/show_bug.cgi?id=659923

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gvariant.c                       | 65
 +++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |  5 ++-
 glib/tests/gvariant.c                 | 16 ++++++++-
 5 files changed, 86 insertions(+), 2 deletions(-)

commit 81e395b00b4270e5af16b572e5d2c82daa845374
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 25 01:32:41 2011 -0400

    More GThread docs tweaks

 docs/reference/glib/glib-sections.txt |   2 +-
 glib/gthread.c                        | 256
 ++++++++++++++++------------------
 glib/gthread.h                        |  18 +--
 3 files changed, 123 insertions(+), 153 deletions(-)

commit 900c467fd0f5f375acabad78246ed320d1f208a1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 25 00:53:47 2011 -0400

    Move GThread docs around

 glib/gthread-posix.c | 138 ------------------------------------------
 glib/gthread.c       | 165
 +++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 152 insertions(+), 151 deletions(-)

commit db04f59780a40ada3c7abb77ca39652c35cfa9e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 25 00:42:37 2011 -0400

    Move includes to the top of the file

 glib/gthread-posix.c | 37 ++++++++++++++++---------------------
 1 file changed, 16 insertions(+), 21 deletions(-)

commit 0ea89987e237ed30dad40ae589728d744b249fca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 25 00:37:31 2011 -0400

    Move deprecated GThread functions to a separate file

 glib/Makefile.am                     |    3 +-
 glib/deprecated/gthread-deprecated.c |  977
 ++++++++++++++++++++++++++++++
 glib/gthread.c                       | 1089
 ++--------------------------------
 glib/gthreadprivate.h                |    3 +
 4 files changed, 1047 insertions(+), 1025 deletions(-)

commit e34861da087aed7417b82efeb2621aad9ee0df61
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 24 23:40:18 2011 -0400

    GThread: more doc updates

 glib/gthread.c | 42 +++++++++++++++---------------------------
 1 file changed, 15 insertions(+), 27 deletions(-)

commit 4e44e235172f63c78f5dcd8d8cb55208e204a60a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 24 23:13:55 2011 -0400

    Drop G_THREADS_IMPL_NONE from the docs

    GLib can no longer be built without thread support.

 docs/reference/glib/glib-sections.txt | 1 -
 glib/gthread.c                        | 8 --------
 2 files changed, 9 deletions(-)

commit 8f340e2d75020991931d867b569137cb984ee233
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 23 11:27:45 2011 +0800

    Fix warning/error C4013 (implicit declarations)

    -Include gthread.h in gregex.c as g_once_init_enter and
    g_once_init_leave
     are used.
    -Define prototype for g_thread_DllMain in gthreadprivate.h for Windows

 glib/gregex.c         | 1 +
 glib/gthreadprivate.h | 4 ++++
 2 files changed, 5 insertions(+)

commit 2b391940c090b050c6a4ec30fabb4a1c49207046
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 23 13:37:08 2011 +0800

    gthread.c: Declare variable at start of block

    This is so that C89 compilers will not complain.

 glib/gthread.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit a485a0e56504437ba88cfac2309ab4d18f7a32fc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 24 19:04:46 2011 -0400

    Document G_THREADS_IMPL_WIN32

 docs/reference/glib/glib-sections.txt | 1 +
 glib/gthread.c                        | 8 +++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

commit d6b0af99d711584ca4e44f218a4cd2151a9ccef4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 24 19:00:19 2011 -0400

    GThread doc additions

 docs/reference/glib/glib-sections.txt |  41 +++-
 glib/deprecated/gthread.h             |   3 +
 glib/gthread-posix.c                  | 406
 +++++++++++++++++++++++++++++++---
 glib/gthread.c                        |  66 ++++--
 4 files changed, 458 insertions(+), 58 deletions(-)

commit df9e5c2435d6e57f868d75b474ef1d047fd7ee36
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 24 16:38:51 2011 -0400

    Fix an uninialized variable warning

 glib/tests/cond.c | 2 ++
 1 file changed, 2 insertions(+)

commit ef883fd0dcc7bec8c7b7b883635bca168b889988
Author: Peter Mráz <etkinator@gmail.com>
Date:   Sat Sep 24 21:52:10 2011 +0200

    Updated Slovak translation

 po/sk.po | 2105
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1124 insertions(+), 981 deletions(-)

commit aeee16e4a396b2f19bc2d6602c2e9266245226f6
Author: Kenneth Nielsen <k.nielsen81@gmail.com>
Date:   Sat Sep 24 14:42:07 2011 +0200

    Updated Danish translation

 po/da.po | 642
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 333 insertions(+), 309 deletions(-)

commit cf9623767a721607cb972d300440e91dc8a57861
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 24 00:39:59 2011 -0400

    Add a testcase for bug 659866

    Mere inclusion of glib headers should not require you to define
    any XYZ_SOURCE macros.

 glib/tests/Makefile.am |  6 ++++++
 glib/tests/include.c   | 17 +++++++++++++++++
 2 files changed, 23 insertions(+)

commit e1f68c129233f79b244692f35d4bba4792c0e4ad
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 23:38:26 2011 -0400

    Add a test for GCond

 glib/tests/cond.c | 134
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 134 insertions(+)

commit a11831359992dc9be6ca0f9a80d97d8f241ad3ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 22:07:32 2011 -0400

    Add a nontrivial read-write lock test

 glib/tests/rwlock.c | 88
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

commit 158a0366be6ea2af574f13208068104adb7ea2e7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 21:10:40 2011 -0400

    Add GOnce tests

 glib/tests/Makefile.am |   3 ++
 glib/tests/once.c      | 125
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 128 insertions(+)

commit dd002113f1ce4114f6f39b562f895aab6b47c8dc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 07:26:33 2011 -0400

    Make the rec mutex test a little more verbose

 glib/tests/rec-mutex.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit bec571dc790f67a9ee13683b13011ae45ffd393c
Author: Dan Winship <danw@gnome.org>
Date:   Fri Sep 23 08:53:47 2011 -0400

    giostream: "closed" property should not be marked writable

    https://bugzilla.gnome.org/show_bug.cgi?id=659920

 gio/giostream.c | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

commit 7aa824da6ea3600ae72dc5a7f4c999719ffdacb4
Author: Dan Winship <danw@gnome.org>
Date:   Fri Sep 23 07:46:55 2011 -0400

    gio-2.0.pc.in: drop stray reference to libasyncns

    gio-2.0.pc's Libs.private was still using @LIBASYNCNS_LIBADD@, which
    was no longer being substituted to anything and so broke "pkg-config
    --static". Fix it to be @NETWORK_LIBS@ instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=659889

 gio-2.0.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cf020d8250c04abf52b5cde68076c09c02f6655d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 07:21:53 2011 -0400

    Add a non-trivial GRWLock test

    This one tests that the writer lock behaves like a mutex.
    Adapted from the corresponding test in GMutex.

 glib/tests/rwlock.c | 77
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

commit 0a9885ebd84b9e7762346be3153c2428bc95ec50
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 07:14:13 2011 -0400

    Add a non-trivial GRecMutex test

    Adapted from the corresponding GMutex test.

 glib/tests/rec-mutex.c | 86
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

commit de39df9dc1fee88d9d21dcfd40e70d61678508d9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 07:13:47 2011 -0400

    Remove an unused variable

 glib/tests/mutex.c | 1 -
 1 file changed, 1 deletion(-)

commit 16086900af6ec72cf6c83ca4dae87a3c1a9a410f
Author: Manoj Kumar Giri <mgiri@dhcp193-76.pnq.redhat.com>
Date:   Fri Sep 23 16:23:44 2011 +0530

    Updated Oriya Translation

 po/or.po | 240
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 126 insertions(+), 114 deletions(-)

commit 798a7d5abee46eb8b1ddb1c72ffa17a9cefc4ab0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 06:31:12 2011 -0400

    Add some more rw lock tests

    These test some simple mixed reader/writer api usage.

 glib/tests/rwlock.c | 50
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

commit 81b37081848c7638e6edc42a5c61e791320d23af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 23 06:29:36 2011 -0400

    Add a mutex test

    This tests that mutexes do what they are supposed to do.
    Copied from a similar test for bitlocks in gthread/tests/bitlock.c.

 glib/tests/mutex.c | 77
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

commit bcd02d7a755154ec8760cae1a8c4a4dd085ac410
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Sep 23 08:23:25 2011 +0300

    Updated Hebrew translation

 po/he.po | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

commit 4f3026ea230aeb73e5d24e9b8c72852c097e4354
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 22 22:44:53 2011 -0400

    Add headers

 glib/tests/mutex.c     | 31 ++++++++++++++++++++++++++++++-
 glib/tests/rec-mutex.c | 28 +++++++++++++++++++++++++++-
 2 files changed, 57 insertions(+), 2 deletions(-)

commit d4d203e3cb320a80f61231f5834b289e03667846
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 22 22:44:05 2011 -0400

    Fix g_rwlock_{writer,reader}_trylock

 glib/gthread-posix.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit ff139135372cb9d8d88fba19d553f6b68b3ffa37
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 22 22:43:29 2011 -0400

    Add basic tests for GRWLock

    Just basic api usage, no functional test cases yet.

 glib/tests/Makefile.am |  3 ++
 glib/tests/rwlock.c    | 77
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+)

commit b2717740a23ee37d057cc293ee4f92d91993c648
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 23 10:41:19 2011 +0800

    VS support updates

    -Fix GLib project/filter files generation as some source items
    are under
     the "deprecated" subfolder, and filter out the gthread-*.c
    -Explicitly specify gthread-win32.c in the GLib project/filter file
     templates, since tarballs are done on Linux.
    -Don't define g_static_mutex_get_mutex in the pregenerated
     glibconfig.h.win32(.in) as it is defined in deprecated/gthread.h
     for Windows

 build/win32/vs10/glib.vcxproj.filtersin |  3 ++
 build/win32/vs10/glib.vcxprojin         |  1 +
 build/win32/vs9/glib.vcprojin           | 77
 +++++----------------------------
 glib/Makefile.am                        | 12 ++---
 glib/glibconfig.h.win32.in              |  2 -
 5 files changed, 20 insertions(+), 75 deletions(-)

commit 9de564bf1f0f0c874ea311479f1561158e0d55e8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 22 21:58:28 2011 -0400

    Fix g_rec_mutex_trylock

 glib/gthread-posix.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 295af777e4c251559f15502e6082f540a7a0f325
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 22 21:55:43 2011 -0400

    Add trivial tests for GMutex and GRecMutex

    Not testing any mutual exclusion with threads yet, just
    basic api use. This is already enough to reveal g_rec_mutex_trylock
    as broken...

 glib/tests/Makefile.am |  6 +++++
 glib/tests/mutex.c     | 63
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/rec-mutex.c | 52 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 121 insertions(+)

commit 9958909fb2cf818a24737dc3a90e98e6f2f02910
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Sep 22 22:10:23 2011 +0800

    gmappedfile.c: Define S_IFREG on Win32 when it's not available

    Make a workaround for S_IFREG in gmappedfile.c on Windows as it may
    not be
    available for a given compiler on that platform

 glib/gmappedfile.c | 4 ++++
 1 file changed, 4 insertions(+)

commit f42fe6cdc056b77f74ff6e332389d444c50ae7dc
Author: Colin Walters <walters@verbum.org>
Date:   Thu Sep 22 16:08:35 2011 -0400

    gvalue: Add explicitly signed g_value_get_schar() and
    g_value_set_schar()

    The documentation for G_TYPE_CHAR says:

    "The type designated by G_TYPE_CHAR is unconditionally an 8-bit signed
     integer."

    However the return value for g_value_get_char() was just "char" which
    in C has an unspecified signedness; on e.g. x86 it's signed (which
    matches the GType), but on e.g. PowerPC or ARM, it's not.

    We can't break the old API, so we need to suck it up and add new API.
    Port most internal users, but keep some tests of the old API too.

    https://bugzilla.gnome.org/show_bug.cgi?id=659870

 gio/gsettings-mapping.c        |  4 ++--
 gio/tests/gsettings.c          |  6 +++---
 gobject/gclosure.c             |  2 +-
 gobject/glib-genmarshal.c      |  2 +-
 gobject/gmarshal.c             |  2 +-
 gobject/gobject.symbols        |  2 ++
 gobject/gvaluetypes.c          | 42
 +++++++++++++++++++++++++++++++++++++++++-
 gobject/gvaluetypes.h          |  5 +++++
 gobject/tests/param.c          | 13 ++++++++++---
 tests/gobject/gvalue-test.c    |  1 +
 tests/gobject/paramspec-test.c | 16 ++++++++++++++++
 11 files changed, 83 insertions(+), 12 deletions(-)

commit 1df8160fa675b225809eed2f86d2489133e5e54d
Author: Colin Walters <walters@verbum.org>
Date:   Thu Sep 22 17:52:08 2011 -0400

    tests: Add a some torture test cases for the generic marshaller

    In particular this has a test case for a G_TYPE_ENUM which we were
    running into a failure on ppc64.

    https://bugzilla.gnome.org/show_bug.cgi?id=659881

 gobject/tests/signals.c | 136
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 136 insertions(+)

commit c59846086bdc464b8bff97a83c09d91e8c860369
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 22 13:47:25 2011 -0400

    Add gthread.h to deprecated headers

    ...not deprecated sources

 glib/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 8e716cbb497ba0cee11a86410c6faff805ea7d90
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Sep 22 17:16:55 2011 +0100

    Fix annotations for source/target in g_object_bind_property_*

    We use gpointer for convience of the C API users, but introspection
    users will not like it.

    https://bugzilla.gnome.org/show_bug.cgi?id=659838

 gobject/gbinding.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 35829d28b9f731e2443d48d868ec6b49cb202e5c
Author: Manoj Kumar Giri <mgiri@dhcp193-76.pnq.redhat.com>
Date:   Thu Sep 22 19:46:01 2011 +0530

    Updated Oriya Translation

 po/or.po | 277
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 156 insertions(+), 121 deletions(-)

commit 558955dd85ffaa8435c95eacca27db7134ab4c11
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 22 01:16:41 2011 -0400

    Some gthread doc updates

    Marking things as deprecated, mostly.

 glib/gthread.c | 169
 ++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 100 insertions(+), 69 deletions(-)

commit cedc82290f860683d695d0c5326db153893eec21
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 22 00:52:18 2011 -0400

    Use adaptive mutexes when available

    These are supposedly better on multi-cpu systems - and who doesn't
    have multiple cpus nowadays. One single-processor systems, they
    are identical to normal mutexes.
    See e.g. http://bugzilla.mozilla.org/show_bug.cgi?id=132089

    https://bugzilla.gnome.org/show_bug.cgi?id=659423

 glib/gthread-posix.c | 13 ++++++++++++-
 glib/gthread.h       |  4 ++++
 2 files changed, 16 insertions(+), 1 deletion(-)

commit 19e7026fe728678c33e4cf38290ea88f0941d648
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 20:19:32 2011 -0400

    GDateTime test: fix a race

    We have a GDateTime test that compares the time now (as per the
    libc) to
    the time now (as per GDateTime).  The problem is that the time could
    change between those two "now"s.

 glib/tests/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit af9e40dc5def1352e01368de56577addb2c7bbc1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 20:13:57 2011 -0400

    gslice: remove single-threaded case

    GPrivate always works, so use it normally at all times.

 glib/gslice.c | 35 ++++-------------------------------
 1 file changed, 4 insertions(+), 31 deletions(-)

commit ca154c399b879ad17804af5d9a81e607e049861e
Author: Philip Van Hoof <philip@codeminded.be>
Date:   Wed Sep 21 19:59:03 2011 +0200

    GMappedFile: Add API to create from an existing file descriptor

    At Tracker we want to mmap files using O_NOATIME. With GMappedFile
    this is at
    the moment impossible. For that reason I added the constructor
    new_from_fd to
    the GMappedFile type.

    https://bugzilla.gnome.org/show_bug.cgi?id=659754

 glib/glib.symbols       |   1 +
 glib/gmappedfile.c      | 174
 +++++++++++++++++++++++++++++++-----------------
 glib/gmappedfile.h      |   3 +
 glib/tests/mappedfile.c |  48 +++++++++++++
 4 files changed, 164 insertions(+), 62 deletions(-)

commit 24652730a9faaedb19b9e90024077eb7f75a6907
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 14:57:22 2011 -0400

    Deprecate GStatic{,Rec,RW}Mutex

    The new versions use the primatives of the OS directly and don't
    have an
    annoying ABI.

 glib/deprecated/gthread.h | 65
 +++++++++++++++++++++++++++++++++++++++++++++++
 glib/gthread.h            | 65
 -----------------------------------------------
 2 files changed, 65 insertions(+), 65 deletions(-)

commit aecec33c4949e022abe6b335f83223495004c09f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 14:39:59 2011 -0400

    gtype: port from GStaticRWLock to GRWLock

 gobject/gtype.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit b6140c2f89e3d9a613623b7eacad631360837df3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 14:37:34 2011 -0400

    Port internal GStaticRecMutex users to GRecMutex

 gio/gunionvolumemonitor.c | 38 +++++++++++++++++++-------------------
 glib/gvarianttypeinfo.c   | 12 ++++++------
 gmodule/gmodule.c         | 20 ++++++++++----------
 gobject/gtype.c           | 22 +++++++++++-----------
 4 files changed, 46 insertions(+), 46 deletions(-)

commit ad187e3a9b2efff3c773d361e78ec3acda36136e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 14:36:53 2011 -0400

    Add a new recursive mutex type, GRecMutex

    This is implemented using the native facilities of each platform
    instead
    of manually.

 glib/glib.symbols    |  5 ++++
 glib/gthread-posix.c | 72
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gthread-win32.c | 68
 +++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gthread.h       | 13 ++++++++++
 4 files changed, 158 insertions(+)

commit 3d4102776e59e748ee8b6e4d456a06a33593f308
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 10:19:36 2011 -0400

    Add GRWLock

 glib/glib.symbols     |  8 ++++++++
 glib/gthread-posix.c  | 50
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gthread-win32.c  | 51
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gthread.h        | 26 ++++++++++++++++++++++++--
 glib/tests/strfuncs.c |  1 -
 5 files changed, 133 insertions(+), 3 deletions(-)

commit 42af8eb39d2744af68a470bcd9f7aae3c8f43602
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 00:33:16 2011 -0400

    gthread: remove impl init functions

 glib/gthread-posix.c  | 14 +++-----------
 glib/gthread-win32.c  | 20 +++-----------------
 glib/gthread.c        |  2 --
 glib/gthreadprivate.h |  3 ---
 4 files changed, 6 insertions(+), 33 deletions(-)

commit 2539bd007d34c7e75788c34f8d9a1e0d5f225ea0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 20 10:06:57 2011 -0400

    win32: Add 'shared' support to SRWLock emulation

 glib/gthread-win32.c | 108
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 108 insertions(+)

commit 9f42e3be1b7b9e7588eb84e21c321dfbde0a6f9a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 20 00:05:34 2011 -0400

    gthread-win32: trivial condition change

    Make another do-nothing change to the SRWLock emulation.

 glib/gthread-win32.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 391aea32f31506cd07b251385450a84d705cc798
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 20 00:04:43 2011 -0400

    gthread-win32: rename a struct member

    Our SRWLock is about to become a real reader/writer lock, so rename an
    instance variable to prepare for that.

 glib/gthread-win32.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit d7aeae97effab17a0562023497ed8baf46dcc09a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 13:58:36 2011 -0400

    gthread.h: remove some bogus decl/comments

    These are no longer relevent since the possibility of a
    thread-disabled
    GLib disappeared.

 glib/gthread.h | 10 ----------
 1 file changed, 10 deletions(-)

commit 894dd4f62b5df008e9372394c0fb4ef2fd1dc527
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 13:51:07 2011 -0400

    Revert "Drop an unused variable"

    This reverts commit c7f9cd17d446938aaf4126e0753302676f66fd22.

    The old macros in gthread.h used this variable, so it must remain in
    place to keep ABI compatibility.

 glib/gthread.c | 1 +
 1 file changed, 1 insertion(+)

commit 8ef30eb3da2e371bf6cbaa4d102b89b948fc04bb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 19 07:19:17 2011 -0400

    Drop an unused variable

 glib/gthread.c | 1 -
 1 file changed, 1 deletion(-)

commit 7d859fb67f42a88368f8c5d404cf7ade07dbf27d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 19 07:16:30 2011 -0400

    More header cosmetics

 glib/gthread.h | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

commit c291259c659a2dd48f1202863852f61a34290a84
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 19 00:29:53 2011 -0400

    trivial: small header reordering

 glib/gthread.h | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit ae2ac9e809a91635c6ff9751145cd09b6de8dab9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 01:11:11 2011 -0400

    Move some things to deprecated/gthread.h

 glib/Makefile.am          |   3 +-
 glib/deprecated/gthread.h | 112
 ++++++++++++++++++++++++++++++++++++++++++++++
 glib/glib.h               |   1 +
 glib/gthread.c            |   2 +-
 glib/gthread.h            |  83 +---------------------------------
 5 files changed, 118 insertions(+), 83 deletions(-)

commit 97972fbb3a1d9234fbb5753802afd0c13db45f25
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 01:02:44 2011 -0400

    g_thread_init: take a gpointer as the arg

    GThreadFunctions is about to disappear.

 glib/gthread.h         | 2 +-
 gthread/gthread-impl.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit abba53e39630fd9df7249e239db06b391ba1f47a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:55:16 2011 -0400

    disable glib-ctor on win32

 glib/glib-ctor.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 14e6377a603abd03a3c9d7130da1c1113cec4d7b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:45:19 2011 -0400

    Deprecate g_thread_create_full()

    Replace it with g_thread_create_with_stack_size() and a real function
    implementation of g_thread_create().

    Modify a testcase that was calling g_thread_create_full()
    inappropriately (it was using the default values anyway).

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  2 ++
 glib/gthread.c                        | 64
 +++++++++++++++++++++++++++--------
 glib/gthread.h                        | 17 ++++++++--
 tests/slice-test.c                    |  4 +--
 5 files changed, 68 insertions(+), 20 deletions(-)

commit 9621b1093e7b745e6f8184012bc3c18ab1d261b1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:31:33 2011 -0400

    Drop g_thread_fail()

    This is now unused.

 glib/gthread.c | 7 -------
 1 file changed, 7 deletions(-)

commit b2c1364ab29f82d863990c9b1b17abce798f9a84
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:30:30 2011 -0400

    g_system_thread_create: drop unused args

    The 'bound' and 'priority' arguments are no longer in use, so
    drop them.

 glib/gthread-posix.c  | 2 --
 glib/gthread-win32.c  | 2 --
 glib/gthread.c        | 2 +-
 glib/gthreadprivate.h | 2 --
 4 files changed, 1 insertion(+), 7 deletions(-)

commit 2b4c303d61d614af90a92de4c85532fcc245118e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:27:56 2011 -0400

    Remove the concept of 'bound'

    This was ignored on Windows.  On POSIX, where supported, it controlled
    if we ended up with a proper system thread or a user-mode thread.
    Linux
    did not support this.

 glib/gthread-posix.c |  7 -------
 glib/gthread.c       | 10 +++-------
 2 files changed, 3 insertions(+), 14 deletions(-)

commit cebcfed78347e7f0e5853cdc192319168cd811a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 19 00:25:12 2011 -0400

    Remove a leftover from errorcheck mutexes

 glib/gthread.h | 3 ---
 1 file changed, 3 deletions(-)

commit cffed9a03a54f92f04cf9648253a907573752975
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:11:46 2011 -0400

    Remove g_thread_functions_for_glib_use_old

    This has been unused for a while and it should definitely go away now
    that g_thread_functions_for_glib_use is back in gthread.c.

 glib/gthread.c | 39 ---------------------------------------
 1 file changed, 39 deletions(-)

commit 6972ed340b702a2b2674cab4338207e2a74a19f0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:03:40 2011 -0400

    Merge g_thread_functions_for_glib_use

    Move the now-identical copies of g_thread_functions_for_glib_use from
    gthread-{posix,win32}.c back into gthread.c.

 glib/gthread-posix.c | 25 -------------------------
 glib/gthread-win32.c | 25 -------------------------
 glib/gthread.c       | 25 +++++++++++++++++++++++++
 3 files changed, 25 insertions(+), 50 deletions(-)

commit 6ea1721191efc27cef0236bf10174dd0a81125bb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:01:29 2011 -0400

    gthread.h: drop the vtable access macros

    We're finally free of these.  Drop them.

 glib/gthread.h | 14 --------------
 1 file changed, 14 deletions(-)

commit 3422dcfd28c2e33b5dffbcc0f59cfa507b89a468
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 19 00:00:12 2011 -0400

    NULL g_system_thread_{exit,equal} in the vtable

    These were never used from gthread.h and are no longer used from
    gthread.c.

 glib/gthread-posix.c | 4 ++--
 glib/gthread-win32.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 7a69d46dc562188a8673c6057919b4d65798491d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 23:58:12 2011 -0400

    GSystemThread: port 'self' 'join' and 'create'

    Switch 'self' 'join' and 'create' from using the vtable to being
    called
    via normal g_system_thread_* internal API (implemented in each of
    gthread-{posix,win32}.c).

    Again, we can put NULL in the vtable since these were never used from
    gthread.h.

 glib/gthread-posix.c  | 32 ++++++++++++++++----------------
 glib/gthread-win32.c  | 32 ++++++++++++++++----------------
 glib/gthread.c        | 18 +++++++++---------
 glib/gthreadprivate.h | 10 ++++++++++
 4 files changed, 51 insertions(+), 41 deletions(-)

commit 51d92adeee67d1df30d13fe41e97af9e563f62ec
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 23:43:27 2011 -0400

    GThread: deprecate thread priorities

    Thread priorities were already documented as not working on Solaris,
    and
    they are meaningless on Linux unless the process separately requests
    realtime scheduling (and even then, it appears only to work as root).

    We can safely put a NULL into the vtable for set_priority since
    nothing
    outside of gthread.c ever calls this (and that call is gone).

 glib/gthread-posix.c | 106
 +--------------------------------------------------
 glib/gthread-win32.c |  38 +-----------------
 glib/gthread.c       |  59 +++++++---------------------
 glib/gthread.h       |  10 +++--
 4 files changed, 22 insertions(+), 191 deletions(-)

commit a10306060c409c45b2ae7dc38813918ce5d611d4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 23:18:17 2011 -0400

    Don't use the thread_exit vfunc

    Instead, just have the backends implement an internal function
    named g_system_thread_exit.

 glib/gthread-posix.c  |  6 +++---
 glib/gthread-win32.c  | 10 +++++-----
 glib/gthread.c        |  9 ++++-----
 glib/gthreadprivate.h |  2 ++
 4 files changed, 14 insertions(+), 13 deletions(-)

commit cc7631cd197756a1f804342a39f6ab10a28bc4f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 23:10:25 2011 -0400

    Don't use the thread_equal vfunc anymore

    Just move the g_system_thread_equal implementation into
    the posix and win32 implementations, and drop some micro macro
    optimization.

 glib/gthread-posix.c  |  7 ++++---
 glib/gthread-win32.c  |  7 +++++++
 glib/gthread.c        | 11 +++++------
 glib/gthreadprivate.h | 10 ++--------
 4 files changed, 18 insertions(+), 17 deletions(-)

commit e00bcfcdecbc25bf6e34492a328a855771ff08ef
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 23:07:24 2011 -0400

    gthread-win32: use __stdcall markers where needed

    The "unknown reason" that the native thread implementation was
    broken is
    because functions in kernel32.dll are (obviously) following
    Microsoft's
    __stdcall ABI, not the GCC ABI.

    Change our function pointers to be __stdcall pointers and change our
    emulated implementation to match.

 glib/gthread-win32.c | 61
 +++++++++++++++++++++++++---------------------------
 1 file changed, 29 insertions(+), 32 deletions(-)

commit 835c9b75c8adb20f8a095a2bea486d59f16e72cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 22:48:53 2011 -0400

    g_private_new: use GSlice

    We no longer call g_private_new() from anywhere in GLib, so we can use
    gslice instead of malloc().

 glib/gthread.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0ebd842d240f74cee6654e02beb15966b058c603
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 22:11:12 2011 -0400

    And move the g_thread_yield() docs too

 glib/gthread-posix.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 71df02658053cab2b18a15f02323a139f1de2092
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 21:39:35 2011 -0400

    Don't use the thread vtable for g_thread_yield()

 glib/gthread-posix.c |  6 +++---
 glib/gthread-win32.c |  6 +++---
 glib/gthread.c       | 15 ---------------
 3 files changed, 6 insertions(+), 21 deletions(-)

commit 862e086b79aa285c22f53b6351f6b8816adf2ed5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 21:24:25 2011 -0400

    Move g_private_new() to common code

    The implementations for posix and win32 were identical, so
    move it to gthread.c, to go with g_mutex_new() and g_cond_new().

 glib/gthread-posix.c | 39 ---------------------------------------
 glib/gthread-win32.c | 13 -------------
 glib/gthread.c       | 37 +++++++++++++++++++++++++++++++++++++
 3 files changed, 37 insertions(+), 52 deletions(-)

commit dffca808469f372352a2f6cfe58f8ad026ce3a5e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 21:17:33 2011 -0400

    Move docs around

    Move the docs of functions to the actual functions. Also add
    docs for some new apis.

 glib/gthread-posix.c | 237 ++++++++++++++++++++++++++++++++++++++++++++
 glib/gthread.c       | 275
 ++++++++++-----------------------------------------
 2 files changed, 290 insertions(+), 222 deletions(-)

commit 0044763a715ac5cec27fab5a7f247d3a1045d9aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 20:04:28 2011 -0400

    Clean up g_thread_yield implementation

    This was the last macro wrapper that was directly accessing the
    vtable. Make it a regular function, like the rest.

 glib/glib.symbols    |  1 +
 glib/gthread-posix.c |  2 +-
 glib/gthread.c       | 27 ++++++++++++++++-----------
 glib/gthread.h       |  2 +-
 4 files changed, 19 insertions(+), 13 deletions(-)

commit c4a69e784ebd5c19a79463c2593f8b9316aeb7b2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 02:27:03 2011 -0400

    gmem: move to glib-ctor

 glib/gmem.c           | 114
 +++++++++++++++++++++-----------------------------
 glib/gthread.c        |   3 --
 glib/gthreadprivate.h |   2 -
 3 files changed, 47 insertions(+), 72 deletions(-)

commit ae4419610cf920acc2ada9df0e5320a500e9965c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 02:17:17 2011 -0400

    gslice: move initialisation to glib-ctor

 glib/gslice.c         | 28 +++++-----------------------
 glib/gthread.c        |  3 ---
 glib/gthreadprivate.h |  1 -
 3 files changed, 5 insertions(+), 27 deletions(-)

commit 8f74c927f609139c51b0a0c067ad63c60ac9139b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 02:16:07 2011 -0400

    Add glib-ctor functionality

    A pair of macros to define a constructor function (on compilers that
    support such a concept) and to ensure that the function is run exactly
    once (on compilers that lack such support).

    Presently only GCC is implemented.

 glib/Makefile.am |  1 +
 glib/glib-ctor.h | 25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+)

commit 0e604ef0b527129f947637bc3ae742e9e2c30c90
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 01:24:27 2011 -0400

    GThread: always initialise the system thread

    It's always safe to call the thread implementation 'self' function.

 glib/gthread.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 4596dfbc7587c20261b56b58a0a3e5fdeb7ff79a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 01:21:01 2011 -0400

    gmessages: do implicit GPrivate initialisation

    Initialise the GPrivate implicitly at the site of first use rather
    than
    explicitly from the thread initialisation function.

 glib/gmessages.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 90679997ec7439ae520c97eb37b5ae36e0da6bba
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 01:10:07 2011 -0400

    Continue GPrivate rework

    We remove the macros while at the same time switching all libglib
    users
    from g_private_new() to g_private_init().  We deal with the strange
    expectations of the libglib code that g_private_* should work
    before the
    GPrivate has been initialised with a temporary shim.

 glib/gmessages.c      | 10 +++++-----
 glib/gslice.c         |  8 ++++----
 glib/gthread-posix.c  | 18 ++++++++++++++----
 glib/gthread-win32.c  | 17 ++++++++++++++---
 glib/gthread.c        | 12 ++++++------
 glib/gthread.h        | 14 +++-----------
 glib/gthreadprivate.h |  2 ++
 7 files changed, 48 insertions(+), 33 deletions(-)

commit b0d83576e26191505ce450cd3eae596be9aff1e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 22:00:27 2011 -0400

    Rework GPrivate

     - expose the structure types for GLib internal use only

     - avoid infinite recursion hazards by ensuring that GPrivate never
       calls back into any other part of GLib

     - substantially rework the Windows implementation so that it never
       holds locks, contains no arbitrary limits and doesn't waste
       100*sizeof(void*) per thread

    We have to keep the macro hacks for the time being since some code
    inside libglib depends on it.

 glib/glib.symbols     |   3 +
 glib/gthread-posix.c  |  81 +++++++++++----------
 glib/gthread-win32.c  | 192
 +++++++++++++++++++++++---------------------------
 glib/gthread.h        |   5 ++
 glib/gthreadprivate.h |  12 ++++
 5 files changed, 155 insertions(+), 138 deletions(-)

commit 4ec6d47806dbb4934aeeb748196d24f7cd0eb10c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 20:15:07 2011 -0400

    GStaticMutex: remove ./configure checks

    Now that GMutex is exposed we can avoid the dance we did in
    ./configure
    to allocate the correct amount of space for it within the
    GStaticMutex.

    Remove the checks and move the definitions to gthread.h, trying very
    hard to keep ABI-stable (even though we will be deprecating this
    soon).

 configure.ac   | 63
 +---------------------------------------------------------
 glib/gthread.h | 22 +++++++++++---------
 2 files changed, 14 insertions(+), 71 deletions(-)

commit c33cd007398cfc81a9405b95280e99a231f58ff8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 19:33:30 2011 -0400

    Stop using GStaticMutex in two testcases

 gthread/tests/gwakeuptest.c | 14 ++++++--------
 tests/thread-test.c         | 14 +++++++-------
 2 files changed, 13 insertions(+), 15 deletions(-)

commit 1da913a7a3f120d7097a7474f7cccbeeb1a8383c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 19:32:57 2011 -0400

    GParamSpecPool: port from GStaticMutex to GMutex

 gobject/gparam.c | 35 ++++++++++++++++-------------------
 1 file changed, 16 insertions(+), 19 deletions(-)

commit 806de91cd55c7ba2599a637346dbecd3bb3a5562
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 19:26:41 2011 -0400

    GSettings: port from GStaticMutex to GMutex

 gio/gdelayedsettingsbackend.c | 46
 +++++++++++++++++++++----------------------
 gio/gsettingsbackend.c        | 18 ++++++++---------
 2 files changed, 32 insertions(+), 32 deletions(-)

commit 646de11ae789fb19a878091491fa645788d89368
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 18:30:07 2011 -0400

    Remove "temporary until GLib is fixed" code

    The original GMutex/GCond rework patch introduced some temporary
    code to
    cope with GLib's old approach to thread initialisation.  These are no
    longer required.

 glib/gthread-posix.c | 20 --------------------
 glib/gthread-win32.c | 20 --------------------
 2 files changed, 40 deletions(-)

commit e996a836e854934c0c45e17cfa26b22a8a1bc8bb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 18:07:39 2011 -0400

    Port g_cond_new to use GSlice

    Now that nothing inside of GLib is using g_cond_new(), we can
    implement
    it using GSlice.  Since the implementations for POSIX and Windows are
    now the same, move it to gthread.c.

 glib/gthread-posix.c | 23 -----------------------
 glib/gthread-win32.c | 22 ----------------------
 glib/gthread.c       | 18 ++++++++++++++++++
 3 files changed, 18 insertions(+), 45 deletions(-)

commit f1d34d0187cd658a95fba64473942b55d27bfcea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 18:05:24 2011 -0400

    libglib: stop using g_cond_new in some places

    Port a couple of low-level users of g_cond_new to use G_COND_INIT or
    g_cond_init() as appropriate.

 glib/gbitlock.c | 13 ++++++-------
 glib/gthread.c  | 13 +++++--------
 2 files changed, 11 insertions(+), 15 deletions(-)

commit 22b3e26034017f19c81a3f2bfa7e9c8ec5a690a8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 17:59:03 2011 -0400

    Port g_mutex_new to use GSlice

    Now that nothing inside of GLib is using g_mutex_new, we can implement
    it using GSlice.  Since the implementations for POSIX and Windows are
    now the same, move it to gthread.c.

 glib/gthread-posix.c | 21 ---------------------
 glib/gthread-win32.c | 21 ---------------------
 glib/gthread.c       | 19 +++++++++++++++++++
 3 files changed, 19 insertions(+), 42 deletions(-)

commit cf26a6fc32e32bd71d4652245257477ae34d9a15
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 18:33:25 2011 -0400

    G_LOCK: port from GStaticMutex to GMutex

    GCancellable made use of the undocumented G_LOCK_NAME macro in an
    invalid way.  Fix that up while we're at it.

 gio/gcancellable.c |  6 ++----
 glib/gthread.h     | 16 ++++++++--------
 2 files changed, 10 insertions(+), 12 deletions(-)

commit 2c7388c19a3f7895ee49a5bc7219822a50b5b514
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 17:56:33 2011 -0400

    libglib: stop using g_mutex_new

    Use G_MUTEX_INIT or g_mutex_init() as appropriate.

 glib/gasyncqueue.c | 46 ++++++++++++++++++------------------
 glib/gmem.c        | 17 ++++++--------
 glib/gmessages.c   | 53 +++++++++++++++++++++---------------------
 glib/gslice.c      | 68
 +++++++++++++++++++++++++-----------------------------
 glib/gthread.c     | 29 +++++++++++------------
 5 files changed, 101 insertions(+), 112 deletions(-)

commit f35362f3ae4a4bcc6c0d03b129758b2989e8cd79
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 17:47:46 2011 -0400

    libglib: drop use of GStaticMutex

    Use GMutex directly instead.

 glib/gbitlock.c | 12 ++++++------
 glib/gmain.c    | 19 +++++++++----------
 2 files changed, 15 insertions(+), 16 deletions(-)

commit 80730bc75ca8b0ad71f1372c9652bee39391244e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 16 18:05:23 2011 -0400

    Rework GMutex and GCond APIs

    Do a substantial rework of the GMutex and GCond APIs.

     - remove all of the macro indirection hackery which is no longer
     needed
       since we dropped support for switchable thread implementations

     - expose the structure types and add G_MUTEX_INIT and G_COND_INIT
       static initialiser macros

     - add g_mutex_init() and g_mutex_clear() for use when embedding
     GMutex
       into another structure type and do the same for GCond as well

     - avoid infinite recursion hazards by ensuring that neither GCond or
       GMutex ever calls back into any other part of GLib

     - substantially rework the Windows implementation of GCond and GMutex
       to use the SRWLock and CONDITION_VARIABLE APIs present on Windows
       2008/Vista and later, emulating these APIs on XP

 glib/glib.symbols    |  16 ++
 glib/gthread-posix.c | 363 ++++++++++++++++--------
 glib/gthread-win32.c | 759
 ++++++++++++++++++++++++++++++++++++++-------------
 glib/gthread.h       |  96 ++++---
 glib/gutils.c        |   3 +
 5 files changed, 907 insertions(+), 330 deletions(-)

commit c6f84faa17227da437eeceb58ce79334ffdfdb57
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Sep 21 15:46:24 2011 -0400

    Forgotten part of an earlier mismerge

    This is making gmappedfile.c identical to the glib-2-30 branch again.

 glib/gmappedfile.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 43254e8c4c60f102be1212a1919953ad7ddf31db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 21 15:27:37 2011 -0400

    gmessage.c: mark a private function static

 glib/gmessages.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aabdb7e190fc4db595484e05e40315985c6c4645
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Sep 21 08:16:43 2011 -0400

    GDBusObject{Proxy,Skeleton}: Prefix properties with g- to avoid
    collisions

    Otherwise we might collide with an interface called Connection.

    https://bugzilla.gnome.org/show_bug.cgi?id=659699

    This is for the same reason that GDBusProxy has its properties
    prefixed with g-.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-2.0/codegen/codegen.py |  4 ++--
 gio/gdbusobjectmanagerclient.c   |  4 ++--
 gio/gdbusobjectmanagerserver.c   |  2 +-
 gio/gdbusobjectproxy.c           | 28 ++++++++++++++--------------
 gio/gdbusobjectskeleton.c        | 16 ++++++++--------
 5 files changed, 27 insertions(+), 27 deletions(-)

commit 1f5262d2c96f888c21bd113d43528cf3964f163d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 20 10:07:35 2011 -0400

    gunixmounts: exempt entries with "none" mountpoint

    We ignore entries with mountpoint of "swap" and "ignore".  Add "none"
    to
    that list, since Debian uses it.

    Probably we should move to using our already-existing internal list of
    things to ignore, but this patch is more minimally intrusive for now.

    https://bugzilla.gnome.org/show_bug.cgi?id=654563

 gio/gunixmounts.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 6b39085016110dc92d0b17d605ee80b0a0e80eb6
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Wed Sep 21 13:41:10 2011 +0200

    gdbus-codegen: prepend arg_ to method/signal arg names

    This is to avoid shadow declaration warning in the case an arg name
    is "time" for example.

    https://bugzilla.gnome.org/show_bug.cgi?id=659690

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-2.0/codegen/codegen.py | 36
 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

commit 933ad70c32f146d324b8fc1e9b79711e83472909
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Sep 21 07:12:32 2011 -0400

    gdbus-codegen: Clarify how naming and Ugly_Case handling works

    Basically, move some paragraphs around.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 92
 ++++++++++++++++++------------------
 1 file changed, 47 insertions(+), 45 deletions(-)

commit 30537b84de1b41e1813d2624968bb99271d45763
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Sep 21 06:57:29 2011 -0400

    gdbus-codegen: Update man page to reflect how --annotate actually
    works

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 32
 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

commit 70515ffe928fa4dc2cadeddfa68a67a7cd727cfe
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Tue Sep 20 23:46:23 2011 +0200

    gdbus-codegen: Fix build errors in generated code

    https://bugzilla.gnome.org/show_bug.cgi?id=659646

 gio/gdbus-2.0/codegen/codegen.py | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 447eb0395623112ebf583988f7aa95b4a2be7c2f
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Sep 21 12:20:30 2011 +0530

    Removed the glib.glib-2-30.gu.po file that was wrongly committed

 po/glib.glib-2-30.gu.po | 3739
 -----------------------------------------------
 1 file changed, 3739 deletions(-)

commit 45dd6801cf368997b707a9cb0af5b6bba432dd49
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Sep 21 12:17:29 2011 +0530

    Updated Gujarati Translations

 po/gu.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 06560292c665b463ce948eb36e23acf11edfbfda
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Sep 21 12:14:29 2011 +0530

    Updated Gujarati Translations

 po/gu.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a7057f5c6ee78c8822090bbcc957a5db670fb2fb
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Sep 21 12:11:20 2011 +0530

    Updated Gujarati Translations

 po/gu.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 0c1dba064383154759d497568f8f3f95835fd6ea
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Sep 21 12:07:00 2011 +0530

    Updated Gujarati Translations

 po/gu.po | 355
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 166 insertions(+), 189 deletions(-)

commit 855e13cc0acadd9d87baf55a2dd9a50e721ec6b1
Author: Dan Winship <danw@gnome.org>
Date:   Tue Sep 20 16:58:34 2011 -0400

    GThreadedResolver: don't overwrite errors

    If a dns op was cancelled and then the abandoned op failed, it would
    try to overwrite the original error. Fix that.

    https://bugzilla.gnome.org/show_bug.cgi?id=658769

 gio/gthreadedresolver.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

commit 88b3f6b866749d273247ccccf6dbfd6ddb6b647d
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Sat Sep 10 00:35:09 2011 -0400

    timeval: add introspection annotations to g_time_val_from_iso8601()

    The GTimeVal argument is missing an (out) annotations.

    https://bugzilla.gnome.org/show_bug.cgi?id=658692

 glib/gtimer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0db338bdb0e9a0216681b6db7286ffb0f1711db1
Author: Antoine Jacoutot <ajacoutot@openbsd.org>
Date:   Tue Sep 20 01:18:45 2011 +0200

    gunixmounts: Fix compilation on BSD

    Commit afa82ae805f9c8bb875a3f863a7b4669953f159f introduced a
    compilation
    regression on BSD systems that use the sysctl(3) interface; we need to
    declare the buffer len in _g_get_unix_mount_points()
    BZ #659528

 gio/gunixmounts.c | 1 +
 1 file changed, 1 insertion(+)

commit 11217edaaf3386c8504a6ed6f8f0fb69092ddfca
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Sep 20 15:40:29 2011 +0200

    Updated Slovenian translation

 po/sl.po | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 9365bc57611f21621c4ef88e302ae07611c2c6d3
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Sep 20 15:35:31 2011 +0200

    Updated Slovenian translation

 po/sl.po | 1897
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 911 insertions(+), 986 deletions(-)

commit f8dda0955ecddd02a4e300fba2714ea8cfa093ae
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Tue Sep 20 13:31:07 2011 +0530

    Updated Gujarati Translations

 po/glib.glib-2-30.gu.po | 3739
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 3739 insertions(+)

commit 88f2b32eb00311da9799d2a71a55dedd92ff60bb
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Sep 19 17:31:21 2011 -0400

    GDBusObjectManagerServer: Add test for export_uniquely() method

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-test-codegen.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit b1c08ca41981da9ad62841b1a0cb7095ccc111f4
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Mon Sep 19 16:45:05 2011 -0400

    GDBusObjectManagerServer: Use correct object path in export_uniquely()
    method

    In registration_data_export_interface(), the object_path is obtained
    using:

    object_path = g_dbus_object_get_object_path (G_DBUS_OBJECT
    (data->object));

    But when exporting an object uniquely, the object_path is not assigned
    to the GDBusObject until after all the interfaces are exported.
    Therefore, registration_data_export_interface() is trying to export
    the interface on the non-unique object path, which can lead to
    run-time errors if an object already exists on that path.

    Instead, registration_data_export_interface() should be passed the
    object_path explicitly, as is done in
    g_dbus_object_manager_server_export_unlocked().

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectmanagerserver.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit fe27bf003764e453cd15cab67e8a99fcda84db1d
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Mon Sep 19 10:13:52 2011 +0200

    Don't close stream twice when splicing

    Ensure that the output/target stream in a
    g_output_stream_splice_async()
    operation is marked as closed if G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET
    is
    passed to g_output_stream_splice_async(). This removes the
    possibility of
    local FDs being closed twice because the stream's not marked as
    closed.

    This is implemented by calling g_output_stream_close() from within
    g_output_stream_splice_async() instead of calling the stream's
    close_fn()
    directly.

    Closes: bgo#659324

 gio/goutputstream.c | 88
 ++++++++++++++++++++++++++++++++---------------------
 1 file changed, 53 insertions(+), 35 deletions(-)

commit 808035666ac2f730b8819232f86cd3fac9de0d44
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 22:20:08 2011 -0400

    gbitlock: #include "gslice.h"

    This is needed if we're doing emulated futexes.

 glib/gbitlock.c | 1 +
 1 file changed, 1 insertion(+)

commit bb1ada779161b0c552573c33a10cd2251d5cdea0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 22:14:19 2011 -0400

    Fix a merge accident

 glib/tests/mappedfile.c | 1 +
 1 file changed, 1 insertion(+)

commit 8b03fed0cfdd07b367d4deb66980980d44f115ce
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 14:22:07 2011 -0400

    Remove unused header gdebug.h

    This was only included from gmessages.c.  Nuke the unused parts and
    merge the rest into gmessages.c.

 glib/Makefile.am |  1 -
 glib/gdebug.h    | 59 -------------------------------------
 glib/gmessages.c | 89
 ++++++++++++++++++++++++++++++--------------------------
 3 files changed, 47 insertions(+), 102 deletions(-)

commit 37c740d50946e59c5a5767e4b7aee5f34fcab268
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 18:59:20 2011 -0400

    Don't #include <glib/gslice.h> from gmem.h

    It looks like this was done just to help people port from gmem to
    gslice, but nothing in this header actually requires gslice.h to be
    included.

 glib/garray.c           | 1 +
 glib/gbuffer.c          | 2 +-
 glib/gcache.c           | 1 +
 glib/gchecksum.c        | 1 +
 glib/gdataset.c         | 1 +
 glib/gdatetime.c        | 1 +
 glib/gerror.c           | 1 +
 glib/ghash.c            | 1 +
 glib/ghmac.c            | 1 +
 glib/ghook.c            | 1 +
 glib/glist.c            | 1 +
 glib/gmarkup.c          | 1 +
 glib/gmem.c             | 1 +
 glib/gmem.h             | 1 -
 glib/gnode.c            | 2 ++
 glib/gqueue.c           | 1 +
 glib/gsequence.c        | 1 +
 glib/gslist.c           | 2 ++
 glib/gtestutils.c       | 1 +
 glib/gtimezone.c        | 1 +
 glib/gtree.c            | 1 +
 glib/gvariant-parser.c  | 1 +
 glib/gvariant.c         | 1 +
 glib/gvarianttypeinfo.c | 2 +-
 24 files changed, 25 insertions(+), 3 deletions(-)

commit e88a12caa0a4852a505911b12fe7ed93cd0068dc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 20:36:30 2011 -0400

    Move deprecated GCompletion to deprecated/

    Keep the docs for now, though.  We'll remove them after a few more
    cycles.

    https://bugzilla.gnome.org/show_bug.cgi?id=659427

 glib/Makefile.am                    |  4 ++--
 glib/{ => deprecated}/gcompletion.c | 12 +++++-------
 glib/{ => deprecated}/gcompletion.h |  4 ----
 glib/glib.h                         |  2 +-
 4 files changed, 8 insertions(+), 14 deletions(-)

commit c3fc0c285f001b3463eda4a63654d645594df08b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 20:31:09 2011 -0400

    Move deprecated GRel to deprecated/

    Keep the docs for now, though.  We'll remove them after a few more
    cycles.

    https://bugzilla.gnome.org/show_bug.cgi?id=659427

 glib/Makefile.am             |  8 ++++----
 glib/{ => deprecated}/grel.c | 17 ++++++++---------
 glib/{ => deprecated}/grel.h |  4 ----
 glib/glib.h                  |  2 +-
 4 files changed, 13 insertions(+), 18 deletions(-)

commit a2ea02d01ee7b0fe8f2be7f9a34decb17ec8193b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 18 20:17:59 2011 -0400

    Move GAllocator/GMemChunk to separate file

    Create a deprecated/ directory that we can start moving ancient chunks
    of code to.  Start with GAllocator, GMemChunk and related APIs.

    Also drop all mention of them from the docs.

    https://bugzilla.gnome.org/show_bug.cgi?id=659427

 docs/reference/glib/glib-docs.sgml    |   2 -
 docs/reference/glib/glib-sections.txt |  56 -----
 glib/Makefile.am                      |   7 +
 glib/deprecated/gallocator.c          |  99 ++++++++
 glib/deprecated/gallocator.h          |  72 ++++++
 glib/glib.h                           |   4 +
 glib/glist.c                          |  33 ---
 glib/glist.h                          |   5 -
 glib/gmem.c                           | 442
 ----------------------------------
 glib/gmem.h                           |  44 ----
 glib/gnode.c                          |  31 ---
 glib/gnode.h                          |   5 -
 glib/gslist.c                         |  32 ---
 glib/gslist.h                         |   5 -
 14 files changed, 182 insertions(+), 655 deletions(-)

commit 45d2ba8683b730d556bfbf71341fe2c3ff9248eb
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Mon Sep 19 03:07:41 2011 +0200

    Updated Serbian translation

 po/sr.po       | 7956
 ++++++++++++++++++++++----------------------------------
 po/sr@latin.po | 7956
 ++++++++++++++++++++++----------------------------------
 2 files changed, 6294 insertions(+), 9618 deletions(-)

commit 1e82f73f8b26393403e126916e9348e5dc8169d9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 18 14:50:31 2011 -0400

    Fix g_ascii_formatd tests

    The test was not changing to the locales it was looping over.

 glib/tests/strfuncs.c | 1 +
 1 file changed, 1 insertion(+)

commit eb45a590fa1c41d5c04cae98313d82146d03051a
Author: Dan Winship <danw@gnome.org>
Date:   Sun Sep 18 10:49:58 2011 -0400

    gsocks5proxy, gsocks4aproxy: simplify some error messages

    There's no need to include the exact max length in the error messages,
    and it makes it look like the strings need to use ngettext() if
    you do.

    https://bugzilla.gnome.org/show_bug.cgi?id=658206

 gio/gsocks4aproxy.c |  9 ++++-----
 gio/gsocks5proxy.c  | 12 +++++-------
 2 files changed, 9 insertions(+), 12 deletions(-)

commit feafdad228bb35264b2b3a169ff1785461275289
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Sun Sep 18 08:04:58 2011 +0300

    Updated Bulgarian translation

 po/bg.po | 339
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 162 insertions(+), 177 deletions(-)

commit e02b062635a5b41f997a169eb8b48de902116d5a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 17 22:44:28 2011 -0400

    Use xlocale functions where available

    Implement g_ascii_strto{d,ll,ull} and g_ascii_formatd using
    xlocale functions where available. This is slightly faster
    and a lot less icky than our homegrown code.

    https://bugzilla.gnome.org/show_bug.cgi?id=640293

 configure.ac     |  2 ++
 glib/gstrfuncs.c | 61
 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 56 insertions(+), 7 deletions(-)

commit 7b9571e4dd8ff9f8a123542c56c146d365368f98
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 17 20:27:16 2011 -0400

    Remove redundant checks

    g_set_error() handles error == NULL, so no need to check.
    Patch by Ignacio Casal Quinteiro.

    https://bugzilla.gnome.org/show_bug.cgi?id=640975

 glib/gconvert.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

commit f18eab2ac75ee457a4ff76a30bc4b727887be8da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 17 19:58:28 2011 -0400

    GMappedFile: return an error when trying to map a device

    Previously, we were returning an empty buffer for all filenames
    where fstat() gives a size of 0. But this is only appropriate
    for regular files.

    Also improve the documentation around this issue. Based on a
    patch by Ryan Lortie.

    Conflicts:

            glib/tests/mappedfile.c

    https://bugzilla.gnome.org/show_bug.cgi?id=659212

 docs/reference/glib/tmpl/fileutils.sgml |  4 ++--
 glib/gmappedfile.c                      | 13 +++++++++----
 glib/tests/mappedfile.c                 | 12 ++++++++++++
 3 files changed, 23 insertions(+), 6 deletions(-)

commit b83e0a39fbab49430767484a3af1a35dd21404e0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 19:11:10 2011 -0400

    glib-compile-schemas: remove --uninstall option

    This option does nothing as has been documented as "will be removed
    soon" for the vast majority of its life.

 gio/glib-compile-schemas.c | 2 --
 1 file changed, 2 deletions(-)

commit 2c9c72dc8cf180ae3a819f18eaf8cc140b49f4cd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 17:32:42 2011 -0400

    GVariant: avoid 'ARRAY_INFO' as function name

    Turns out that ARRAY_INFO isn't such a great name for a function since
    Windows appears to declare this symbol these days.  Use a different
    name.

 glib/gvarianttypeinfo.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit f20294614616a4ae4fdfb34f1360354e6b2fbf27
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 17 17:32:18 2011 -0400

    gmain: fix some win32 build errors

 glib/gmain.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 928ce3e5efad6befb9f8d3ad97da576ceb6be9ca
Author: Aron Xu <aronxu@gnome.org>
Date:   Sat Sep 17 16:18:03 2011 +0000

    Update Simplified Chinese translation.

 po/zh_CN.po | 215
 +++++++++++++++++++++++++++++-------------------------------
 1 file changed, 105 insertions(+), 110 deletions(-)

commit a0eefd65bc66b4520ba91008ef39f5b67c493efc
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Sat Sep 17 00:03:56 2011 +0200

    Updated Serbian translation

 po/sr.po       | 7958
 +++++++++++++++++++++++++++++++++----------------------
 po/sr@latin.po | 7963
 ++++++++++++++++++++++++++++++++++----------------------
 2 files changed, 9624 insertions(+), 6297 deletions(-)

commit e2ae75ad4be9107ee172c644c096e5949598c4a8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 16 17:50:13 2011 -0400

    gatomic: use pthread mutexes instead of GMutex

    GStaticMutex makes use of atomic operations to initialise itself.  We
    were using GStaticMutex from the emulated case of gatomic.
    Use pthreads
    directly to avoid unbounded recursion in this case.

 glib/gatomic.c | 85
 +++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 51 insertions(+), 34 deletions(-)

commit 48494dd55244fc95357a88fc1f01944d950b7b7b
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Sep 16 16:01:13 2011 -0400

    gdbus-codegen: Support Ugly_Case for given C namespace

    https://bugzilla.gnome.org/show_bug.cgi?id=658976

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-2.0/codegen/codegen.py   |   9 +-
 gio/gdbus-2.0/codegen/dbustypes.py |  57 ++--
 gio/tests/Makefile.am              |   2 +-
 gio/tests/gdbus-test-codegen.c     | 572
 ++++++++++++++++++-------------------
 4 files changed, 325 insertions(+), 315 deletions(-)

commit c6c2c109467f61b324f9261c4c0b7eb27214360c
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Sep 16 15:20:00 2011 -0400

    gdbus-codegen: Single letter namespaces get dropped from symbol names

    https://bugzilla.gnome.org/show_bug.cgi?id=659082

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-2.0/codegen/codegen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e34e8a25a04f31e7436af297fced96bbfc4b4f79
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Sep 12 18:42:36 2011 +0100

    _g_dbus_worker_new: hold a ref until we have done the initial read

    Otherwise, we could use-after-free the GDBusWorker, if its last-unref
    is immediately after _g_dbus_worker_new returns (before the worker
    thread
    does its initial read).

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=651268
    Bug-NB: NB#271520
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 698eeb3ef6992d551b310bba474d8a38c22ea9b7
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Sep 12 18:26:45 2011 +0100

    GDBusWorker: as a precaution, access 'stopped' boolean atomically

    This member is written in _g_dbus_worker_stop from arbitrary
    threads, and
    read by the worker thread, so it should be accessed atomically.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=651268
    Bug-NB: NB#271520
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

commit 20497f7af908697f958e43c06e38eca256bb58bf
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Sep 12 18:24:24 2011 +0100

    Regression test for closing a stream, slowly, while a message
    is queued

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=651268
    Bug-NB: NB#271520
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/Makefile.am           |   5 +
 gio/tests/gdbus-close-pending.c | 396
 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 401 insertions(+)

commit c180ea13ae29db3e06411a149b9487328aea29e0
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Sep 8 17:21:02 2011 +0100

    GDBusWorker: annotate more functions with lock/pending state

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=651268
    Bug-NB: NB#271520
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c | 71
 +++++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 60 insertions(+), 11 deletions(-)

commit 8097e2de85e03667c2b8646326c007b213b55870
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Sep 13 17:31:27 2011 +0100

    GDBusConnection: delegate to the worker to close the stream

    We can't safely close the output part of the I/O stream until any
    pending write or flush has been completed. In the worst case,
    this could
    lead to an assertion failure in the worker (when the close wins the
    race) or not closing the stream at all (when the write wins the race).

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=651268
    Bug-NB: NB#271520
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c |  64 +++++++------
 gio/gdbusprivate.c    | 247
 ++++++++++++++++++++++++++++++++++++++++----------
 gio/gdbusprivate.h    |   5 +
 3 files changed, 240 insertions(+), 76 deletions(-)

commit a8f75f21b4b2264b385022496c597573ecb709da
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue Sep 13 17:37:33 2011 +0100

    GDBusWorker: combine num_writes_pending with flush_pending

    num_writes_pending was a counter, but it only took values 0 or 1,
    so make
    it a boolean: it would never make sense to be trying to write out two
    messages at the same time (they'd get interleaved).

    Similarly, we can never be writing and flushing at the same time
    (that'd
    mean we were flushing halfway through a message, which would be
    pointless)
    so combine it with flush_pending too, calling the result
    output_pending.

    Also assert that it takes the expected value whenever we change it,
    and document the locking discipline used for it, including a subtle
    case in write_message_in_idle_cb where it's not obvious at first
    glance
    why we don't need the lock.

    (Having the combined boolean at the top of the block of write-related
    struct members improves struct packing on 64-bit platforms, by packing
    read_num_ancillary_messages and output_pending into one word.)

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=651268
    Bug-NB: NB#271520
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

commit 05ef173466e32d8b3d212803e4a72239913a362d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 16 11:06:50 2011 -0400

    Disable two GDBus tests

    These tests try to use GMainContext across fork() which now fails
    a lot
    more violently than it used to.

    See https://bugzilla.gnome.org/show_bug.cgi?id=658999 for information.

 gio/tests/gdbus-exit-on-close.c | 3 ++-
 gio/tests/gdbus-non-socket.c    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 0bb01a150f131b409218e9710b0f75d7d1ec09bc
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Fri Sep 16 16:09:56 2011 +0200

    Revert "Add g_memory_input_stream_new_from_data_full/add_data_full()
    apis"

    I'm not sure that this API is right now that I try to use it.

    This reverts commit 42738469d15585791bd5613356c47bcc2c413c20.

 gio/gmemoryinputstream.c | 70
 ++----------------------------------------------
 gio/gmemoryinputstream.h | 29 +++++++-------------
 2 files changed, 11 insertions(+), 88 deletions(-)

commit 42738469d15585791bd5613356c47bcc2c413c20
Author: Tristan Van Berkom <tristanvb@openismus.com>
Date:   Fri Sep 16 13:46:01 2011 +0200

    Add g_memory_input_stream_new_from_data_full/add_data_full() apis

    Add an extra state pointer and an extra GDestroyNotify function
    to the 'Chunk' definition... allowing bindings to attach some extra
    state to memory chunks (to get memory management correctly from
    language bindings).
    Bug #589887

 gio/gmemoryinputstream.c | 70
 ++++++++++++++++++++++++++++++++++++++++++++++--
 gio/gmemoryinputstream.h | 29 +++++++++++++-------
 2 files changed, 88 insertions(+), 11 deletions(-)

commit b7051e8da82d955ca8f431c65079294747de0e1c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Sep 15 16:51:22 2011 -0400

    Fix docs

 glib/gunidecomp.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 43007aa2d2f0d1fe3e63f7c61abb927dccaf799b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 13 21:57:30 2011 -0400

    GApplication: don't create a mainloop

    Just iterate the main context directly.  Also: avoid calling the
    virtual
    functions for mainloops.

    https://bugzilla.gnome.org/show_bug.cgi?id=658805

 gio/gapplication.c | 45 ++++++---------------------------------------
 1 file changed, 6 insertions(+), 39 deletions(-)

commit 39294664a679dbfa89d0d23ebfea2a44c1dee42b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 14 11:06:02 2011 -0400

    GApplication test: fix testcase to avoid fork()

    The GApplication test case tried to fork() while using GMainLoop,
    causing problems.  Avoid doing that by splitting the child process
    into
    a separate program and spawning it in the usual way.

    https://bugzilla.gnome.org/show_bug.cgi?id=658999

 gio/tests/.gitignore          |   1 +
 gio/tests/Makefile.am         |   3 +
 gio/tests/basic-application.c |  81 +++++++++++++++++++++
 gio/tests/gapplication.c      | 160
 +++++++-----------------------------------
 4 files changed, 111 insertions(+), 134 deletions(-)

commit 01ed78d525cf2f8769022e27cc2573ec7ba123b3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 13 19:56:22 2011 -0400

    mainloop: detect fork() and abort

    Abort if the child process returns to the mainloop after a fork().

    https://bugzilla.gnome.org/show_bug.cgi?id=658999

 glib/gmain.c | 39 ++++++++++++++++++++++++++++-----------
 1 file changed, 28 insertions(+), 11 deletions(-)

commit 01f9479438694d0e1f4ddd738ddf046f179cbd0e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 14 14:00:08 2011 -0400

    GApplication: add chain-up checks

    Make sure ::startup and ::shutdown are being chained up.

 gio/gapplication.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

commit 15b1c1bf4f782189cf881a44b9116460a066c5da
Author: Brian Koning <brkoning@gmail.com>
Date:   Wed Sep 14 13:42:35 2011 -0400

    GApplication: introduce ::shutdown

    Introduce ::shutdown as a dual to ::startup.

    https://bugzilla.gnome.org/show_bug.cgi?id=643934

 gio/gapplication.c | 22 ++++++++++++++++++++++
 gio/gapplication.h |  5 ++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

commit 8d52bdfd97843ec0ad4a8086423cdf7c63afb467
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Wed Sep 14 21:26:49 2011 +0400

    Updated Russian translation

 po/ru.po | 1224
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 577 insertions(+), 647 deletions(-)

commit 659b287a92d951d7121584587cb7aefa28e88416
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Wed Sep 14 19:02:01 2011 +0200

    gdbus-codegen: Fix segfault when remote property is invalidated

    The 'key' variable is no longer valid outside the cycle, owned and
    probably already freed by GVariant. This causes apps to segfault
    when proxy is constructed and a property on remote d-bus service
    changes (actually is invalidated). Looks like a typo anyway.

    https://bugzilla.gnome.org/show_bug.cgi?id=659070

 gio/gdbus-2.0/codegen/codegen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 53e52d9f72e8c367b177852d1bbc40235bab6d2d
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Wed Sep 14 09:14:02 2011 -0400

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 192
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 99 insertions(+), 93 deletions(-)

commit 8152e3f54e8f7fd309d19ae35dd8f036067db754
Author: Richard Hughes <richard@hughsie.com>
Date:   Tue Sep 13 16:38:40 2011 +0100

    Fix the description for g_app_info_get_icon()

    It can return NULL when there is no default icon.

 gio/gappinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 2dd32d24f34ed12da74b9714feb3dfadd8aec021
Author: I Felix <ifelix25@gmail.com>
Date:   Tue Sep 13 15:40:27 2011 +0530

    Updated Tamil Translations

 po/ta.po | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

commit d1bcb0032d52709e5b208f76c6303cd5040cd8a1
Author: I Felix <ifelix25@gmail.com>
Date:   Tue Sep 13 15:34:22 2011 +0530

    Updated Tamil Translations

 po/ta.po | 909
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 535 insertions(+), 374 deletions(-)

commit 1b033919845cef366842373da9f1cfb56f522d01
Merge: 2d44a45 92652ac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 12 08:12:57 2011 -0400

    Merge remote-tracking branch 'gvdb/master'

commit 92652ac79177bcdced5f01122debb50eabdb3e2c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 12 08:06:13 2011 -0400

    hashing: always use signed chars

    Our hashing of non-ASCII strings was undefined due to the fact that
    'char' is signed on some platforms, unsigned on others.  Always use a
    signed char.

    Discovered by Alexander Larsson.

    https://bugzilla.gnome.org/show_bug.cgi?id=658806

 gvdb-builder.c | 2 +-
 gvdb-reader.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 2d44a45b6ba2cf8de2ba1468013cad501e9858d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 12 01:56:45 2011 -0400

    GDesktopAppInfo: Improve docs

 gio/gdesktopappinfo.c | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

commit 05342d0a930054647989c7d9bc5d248eb566f99d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 12 01:49:01 2011 -0400

    Fix formatting in a doc comment

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 73c427fab9c61f523c57dff2107c959cb5d86751
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 12 01:46:48 2011 -0400

    Expand mimeapps test

    This adds a test involving both defaults.list and mimeapps.list.

 gio/tests/Makefile.am |   2 +-
 gio/tests/mimeapps.c  | 359
 +++++++++++++++++++++++++++++++++++++-------------
 2 files changed, 267 insertions(+), 94 deletions(-)

commit 2ba5a79a706d472a3040ac2956ae65a21d56b71a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 11 23:39:29 2011 -0400

    Also check api results

    In addition to looking at mimeapps.list, check that the default
    and recommended apps returned by g_app_info api are as expected.

 gio/tests/mimeapps.c | 52
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit 75c989b9ab7e5f4b55ec21c82184904557d86759
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 11 23:28:06 2011 -0400

    Revert "Fix default setting generation in
    g_desktop_app_info_set_as_last_used"

    This reverts commit a13f5ca4da05c3a7edaed9a70c508f63772897cb.

 gio/gdesktopappinfo.c | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

commit 938e57dd4b403c3fe494c8c63b50abfb3673c6f6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 11 23:25:20 2011 -0400

    Adapt tests to string changes

 gio/tests/gschema-compile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit cab5b8abd3407bc9a7a32a6fd9b8873799507c74
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 11 15:44:39 2011 -0400

    GType tutorial: clarify class struct initialisation

    Make the information on how the class structure is initialised less
    confusing to first-time readers.

 docs/reference/gobject/tut_gtype.xml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 61b51555ec83413397b85916bd9e9e1eb61b2cab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 11 13:08:14 2011 -0400

    Cosmetics

    Make configure --help output a little more regular, by using
    AC_HELP_STRING() more consistently.

 configure.ac | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

commit 5b8623125133c16ebd51856a5da2db9e439c3527
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Sep 11 11:05:50 2011 +0200

    Updated Spanish translation

 po/es.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0db179e75e332de3bdecb1309ffe8018ab567484
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 10 16:09:39 2011 -0400

    GKeyFile: Unify error messsages a bit

    This marks a few forgotten error messages for translation, and
    makes some other strings more uniform. String change!

    https://bugzilla.gnome.org/show_bug.cgi?id=658715

 glib/gkeyfile.c | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

commit ec3653be00725556625072e39e032e8b9e7c7e34
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Sep 10 10:36:00 2011 -0400

    glib-compile-schemas: Pedantic string fixes

    Replace 'can not' by 'cannot' in several places. String change!

    https://bugzilla.gnome.org/show_bug.cgi?id=658207

 gio/glib-compile-schemas.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b1e04b2986cadc6fbb8c966eb7bffa73ff848316
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Sat Sep 10 14:39:43 2011 +0200

    Updated Hungarian translation

 po/hu.po | 173
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 87 insertions(+), 86 deletions(-)

commit a13f5ca4da05c3a7edaed9a70c508f63772897cb
Author: Josselin Mouette <joss@debian.org>
Date:   Sat Sep 10 08:26:12 2011 +0200

    Fix default setting generation in g_desktop_app_info_set_as_last_used

     * Do not ignore the system default
     * Do not exclude the last used being set from the default list

    This fixes the default applications dialog in control-center.

    https://bugzilla.gnome.org/show_bug.cgi?id=658188

 gio/gdesktopappinfo.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit 011c0b488f0b2461e079a58cc4eacb4b92f23990
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 9 23:43:02 2011 -0400

    Add some tests for mimeapps.list handling

    These tests directly look at mimeapps.list to verify that
    we make the expected changes to the database.

 gio/tests/Makefile.am |   7 ++
 gio/tests/mimeapps.c  | 212
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

commit 66a1dfc84facad7e233b8cfeb4772bb243ea5923
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 9 23:42:47 2011 -0400

    Avoid some compiler warnings

 gio/tests/socket-client.c | 3 +++
 1 file changed, 3 insertions(+)

commit 644ab6a7d3f3462b782258e5bb8bac35d46064a0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 22:33:33 2011 -0400

    Nix inaccurately named g_main_context_init_pipe()

    ...and fold its contents into g_main_context_new()

 glib/gmain.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

commit 1c8c408c51c85230356cc95c06f2e1bd3f376624
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 21:40:05 2011 -0400

    gmain: get rid of poll_waiting

    This variable, which is the cause of much grief, exists for two
    reasons:

      - ensuring the the wakeup pipe doesn't fill up

      - preventing the first poll() after adding a source from waking up
        immediately

    The first point is no longer an issue with GWakeup.

    The second point is addressed by using different logic: we only
    signal a
    wakeup in the case that the context is currently acquired by a thread
    that is not us.

    As an added bonus, we can now implement g_main_context_wakeup()
    without
    taking a lock.

    https://bugzilla.gnome.org/show_bug.cgi?id=583511
    https://bugzilla.gnome.org/show_bug.cgi?id=320888

 glib/gmain.c | 44 ++++++++++----------------------------------
 1 file changed, 10 insertions(+), 34 deletions(-)

commit e15d5313af8bc1fd4f68e7ddc59cd73a3a2c9502
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 5 14:01:05 2010 +0100

    Add macros for GSourceFunc return values

    The boolean values to be returned by a GSourceFunc are always
    ambiguous,
    and even in case of experienced developers then can lead to confusion.

    The Perl bindings for GLib have two simple constants, mapping to TRUE
    and FALSE, that make the return values less confusing:
    G_SOURCE_CONTINUE
    and G_SOURCE_REMOVE respectively.

    https://bugzilla.gnome.org/show_bug.cgi?id=631413

 docs/reference/glib/glib-sections.txt |  4 ++++
 glib/gmain.h                          | 20 ++++++++++++++++++++
 2 files changed, 24 insertions(+)

commit e5653c0050e232e1834a31c85672319873f7612b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 9 20:35:01 2011 -0400

    Keep up with the standards

    More choices, always better.

 gio/gdesktopappinfo.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 066c7b81211fe203d2f7a4c7556c05bd53293097
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 19:54:06 2011 -0400

    GRegex: fix thread-unsafe initialiser code

 glib/gregex.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f1494c156dcbbe125807ef2a1b5ab0ca4b2acc66
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 19:48:14 2011 -0400

    Clean up l10n threading stuff

    Remove the explicit thread initialisation functions for
    g_get_charset(),
    g_get_filename_charsets() and g_get_language_names().

    Add a lock around one remaining case of access to libcharset
    (the other
    2 cases already have the lock).

    Do a proper g_once_init_enter() style initialisation for the GLib
    gettext functions.

    https://bugzilla.gnome.org/show_bug.cgi?id=658683

 glib/gconvert.c       | 10 ----------
 glib/gthread.c        |  4 ----
 glib/gthreadprivate.h |  2 --
 glib/gutf8.c          |  2 ++
 glib/gutils.c         | 19 ++++++-------------
 5 files changed, 8 insertions(+), 29 deletions(-)

commit bceaf3a7194ecd5303b6cbc9797586ba4849b1bc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 16:05:55 2011 -0400

    glib-private: #include <glib.h>

    This is really our only choice if we don't want to annoy the
    single-include checking when we use this from inside of gio.

 glib/glib-private.h | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit e27b5a2ea7f117028fb5b645033085866a804fb7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 15:47:01 2011 -0400

    Drop long-removed atomic thread init from header

 glib/gthreadprivate.h | 1 -
 1 file changed, 1 deletion(-)

commit 9e1d4aa257843849872abdf78326f5a29877c322
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 15:21:07 2011 -0400

    Remove now-useless glibprivate.h

    The only symbol in glibprivate.h was moved to glib-private.h.

 glib/Makefile.am   | 1 -
 glib/glibprivate.h | 6 ------
 2 files changed, 7 deletions(-)

commit d86386159d3fe1e592d813c6d8d6e293c2599231
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 14:30:25 2011 -0400

    glib worker: move to glib-private framework

    Remove the private glib_get_worker_context() symbol and move it
    over to
    using the glib-private stuff like GWakeup is doing.

    https://bugzilla.gnome.org/show_bug.cgi?id=657992

 glib/glib-private.c |  7 ++++---
 glib/glib-private.h | 24 ++++++++++++++----------
 glib/glib.symbols   |  1 -
 glib/gmain.c        |  6 +++---
 4 files changed, 21 insertions(+), 17 deletions(-)

commit 3022ef47313648e10fd415ef132d746ee2db88e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 14:30:01 2011 -0400

    gwakeup.h: add missing header for GPollFD

 glib/gwakeup.h | 2 ++
 1 file changed, 2 insertions(+)

commit 9bf59d4a14b3fc4bb62f10c3665e99f9d8788bdc
Author: Colin Walters <walters@verbum.org>
Date:   Thu Sep 1 14:32:11 2011 -0400

    Add glib__private__() API to share between glib,gio; port GWakeup
    to it

    Historically we've added random symbols to the public API with
    warnings
    that they're private; examples are:

    glib_gettext(), glib_pgettext()
    g_thread_functions_for_glib_use, g_thread_use_default_impl, etc.

    And we almost added "GWakeup" to public API just to share between
    glib and
    gio.

    This new glib__private__() API exports a hidden vtable, and adds
    a macro
    GLIB_PRIVATE_CALL() that makes it generally convenient to use.

    This adds an extremely tiny cost for the double indirection; but
    it has
    the benefit that we don't need to either:

    1) compile the code into both glib and gio (like GWakeup), with the
       inefficiency that implies.
    2) Export a "do not use this" symbol; the serious problem with this is
       that someone CAN use it pretty easily.  Particularly if we document
       it.  It's far, far harder to peek into a structure without a public
       header file.

    https://bugzilla.gnome.org/show_bug.cgi?id=657992

 gio/Makefile.am     |  1 -
 gio/gcancellable.c  | 16 ++++++++--------
 glib/Makefile.am    |  2 ++
 glib/glib-private.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
 glib/glib-private.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 glib/glib.symbols   |  1 +
 6 files changed, 104 insertions(+), 9 deletions(-)

commit b891b3616fa1c2af542cd188c00e074295bad4fe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 30 13:32:58 2011 -0400

    GMainLoop: remove wall clock time cache

    Since GMainLoop is now purely monotonic, it really doesn't make
    sense to
    cache the wallclock time just for the sake of making a deprecated call
    more efficient.

 glib/gmain.c | 37 +++++--------------------------------
 1 file changed, 5 insertions(+), 32 deletions(-)

commit 940a728fdabca90ce7f5769de97f12a81c264cc5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 23:02:03 2011 -0400

    gtester: Remove SIGCHLD race workarounds

    With the GMainLoop changes, gtester should now be race-free.

 glib/gtester.c | 23 -----------------------
 1 file changed, 23 deletions(-)

commit ba7019e19e83ef46184e39e1d546ba08500dbfd7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 22:58:26 2011 -0400

    Modify child and signal sources to use worker

 glib/gmain.c | 370
 ++++++++++++++++++++++++-----------------------------------
 1 file changed, 151 insertions(+), 219 deletions(-)

commit 7eae486179e2799c369ed9ffcea663bf9161ce79
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 22:07:02 2011 -0400

    GMain: simplify logic for g_wakeup_acknowledge()

    Instead of messing around with context->poll_waiting, just look at the
    GPollFD to see if the GWakeup needs to be acknowledged.

 glib/gmain.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 87880dfa571926678bf671bce7ce5e56adcf07a2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 18:33:32 2011 -0400

    GMainLoop: remove single-threaded case

    Since we now always have thread support in libglib, we can remove the
    buggy single-threaded codepath for GMainContext.

 glib/gmain.c          | 207
 +++++++++++---------------------------------------
 glib/gthread.c        |   1 -
 glib/gthreadprivate.h |   1 -
 3 files changed, 43 insertions(+), 166 deletions(-)

commit 1facd36d00fc5fc18fa9d690979f9e73c0f1d312
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 18:20:24 2011 -0400

    Add private glib_get_worker_context() API

    The first time this is called, this creates a GMainContext * and a
    thread to run it.  Future calls return the same.  There are a lot of
    places that we could use this in GLib.

 glib/Makefile.am   |  1 +
 glib/glib.symbols  |  1 +
 glib/glibprivate.h |  6 ++++++
 glib/gmain.c       | 36 ++++++++++++++++++++++++++++++++++++
 4 files changed, 44 insertions(+)

commit b6a2f502f28b112d791c8834b4ff7e5c8aa0fcd5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 13:39:22 2011 -0400

    GRand: Make sure to g_thread_init_glib()

    The last commit should g_thread_init_glib() before attempting to use
    GOnce.

 glib/grand.c | 2 ++
 1 file changed, 2 insertions(+)

commit 71c72d5e13748c2a7e0fd52c5693240aed808238
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 13:31:21 2011 -0400

    GRand: remove setup from g_thread_init_glib

    Use g_once_init_enter instead.

 glib/grand.c          | 17 ++++-------------
 glib/gthread.c        |  1 -
 glib/gthreadprivate.h |  1 -
 3 files changed, 4 insertions(+), 15 deletions(-)

commit 413186a962973cff5dfbee66ef920016f4cb5c2d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 13:20:40 2011 -0400

    emufutex: remove init from g_thread_init_glib

    Use a GStaticMutex instead.

 glib/gbitlock.c            | 19 ++++++-------------
 glib/gthread.c             |  1 -
 glib/gthreadprivate.h      |  1 -
 gthread/tests/1bit-mutex.c |  6 ++----
 4 files changed, 8 insertions(+), 19 deletions(-)

commit 80109acef586a5a1d34f604414a36e7e18b0cede
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 9 13:15:17 2011 -0400

    win32: remove version init from g_thread_init_glib

    Instead, make this use g_once_init_enter() in the usual way.

 glib/gthread.c        |  3 ---
 glib/gthreadprivate.h |  4 ----
 glib/gwin32.c         | 33 ++++++++-------------------------
 3 files changed, 8 insertions(+), 32 deletions(-)

commit 6c0dda8265a547d89b4c546298d0a29519f68749
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 18:07:55 2011 -0400

    make g_thread_init_glib() idempotent

 glib/gthread.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit cfa1d0540e4aaf83641f3876a2589a1e8f2b1242
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 18:00:03 2011 -0400

    Move the GThread implementations to glib/

    We can now get threads initialised from inside of libglib by calling
    g_thread_init_glib().

 glib/Makefile.am                  | 10 ++++++++--
 {gthread => glib}/gthread-posix.c |  8 +++-----
 {gthread => glib}/gthread-win32.c | 11 +++--------
 glib/gthread.c                    |  4 +++-
 glib/gthreadprivate.h             |  1 +
 gthread/Makefile.am               |  8 +-------
 gthread/gthread-impl.c            |  6 ++++--
 7 files changed, 23 insertions(+), 25 deletions(-)

commit 96e489680423f87428c74b1f6ec8a6b8a9c99645
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 17:40:01 2011 -0400

    invert gthread-impl includes

    configure.ac defined G_THREAD_SOURCE and gthread-impl would
    #include it.

    Instead, since we only have two thread implementations now, and
    since we
    always use the Windows one only on Windows, move the logic to the
    Makefile, predicated on 'if OS_WIN32'.  Then have the chosen
    backend do
    the #include "gthread-impl.c" from there.

    Remove the G_THREAD_SOURCE define from configure.ac.

 configure.ac            | 2 --
 gthread/Makefile.am     | 6 +++++-
 gthread/gthread-impl.c  | 7 -------
 gthread/gthread-posix.c | 5 +++++
 gthread/gthread-win32.c | 3 +++
 5 files changed, 13 insertions(+), 10 deletions(-)

commit fc6a9275a4c1e14edb0b9948672ec77af980bc23
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 17:18:43 2011 -0400

    win32 threads: assume TryEnterCriticalSection

    Remove the dynamic lookup for TryEnterCriticalSection, which has
    existed
    since Windows 2000.

 gthread/gthread-win32.c | 90
 ++++---------------------------------------------
 1 file changed, 7 insertions(+), 83 deletions(-)

commit 7cf89847e26af7817827a47cc2f4857d1742f4d0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 17:02:21 2011 -0400

    Stop using HAVE_G_THREAD_IMPL_INIT

    Just always call the init function.

 gthread/gthread-impl.c  | 5 +----
 gthread/gthread-posix.c | 3 ---
 gthread/gthread-win32.c | 1 -
 3 files changed, 1 insertion(+), 8 deletions(-)

commit 46af418e05de82cfd6174575ef3f376aecfe8795
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 16:30:04 2011 -0400

    Move thread priority translation into the backends

    The translation of GLib priorities into the thread priorities of
    different operating systems belongs in the implementation -- not
    half-way in the front end.

 gthread/gthread-impl.c  | 26 --------------------------
 gthread/gthread-posix.c | 30 ++++++++++++++++++++++++++++--
 gthread/gthread-win32.c | 32 +++++++++++++++++++++++---------
 3 files changed, 51 insertions(+), 37 deletions(-)

commit a4777122c84bfa33f710dceccf9e05087b89a301
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 16:46:32 2011 -0400

    Remove useless macros from when we supported DCE

    These are non-ops now, and easily replaced.

 gthread/gthread-posix.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

commit 715f94e95147097d6caf86b0be230e52a64ed738
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 16:41:24 2011 -0400

    Remove support for DCE threads

 configure.ac                      | 25 +++-------------
 docs/reference/glib/building.sgml |  2 +-
 gthread/gthread-posix.c           | 60
 +++------------------------------------
 3 files changed, 9 insertions(+), 78 deletions(-)

commit 7d885253fa72e0a529a5a262082e6347c30198ee
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 16:10:55 2011 -0400

    Remove support for custom thread implementations

 gthread/gthread-impl.c | 64
 ++++++++------------------------------------------
 1 file changed, 10 insertions(+), 54 deletions(-)

commit cef0acb945271a85d1e2283af7785f3b3f93ac41
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 16:03:22 2011 -0400

    Remove the dead 'none' thread implementation

 gthread/Makefile.am    |  1 -
 gthread/gthread-none.c | 37 -------------------------------------
 2 files changed, 38 deletions(-)

commit 3f931412434083a69f3fb794f01d82a3de8224ee
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 16:01:09 2011 -0400

    GThread: remove errorcheck mutex support

    This can only possibly work if we call g_thread_init(), which we are
    moving away from.

 glib/gthread.h         |  13 ---
 gthread/gthread-impl.c | 228
 ++-----------------------------------------------
 2 files changed, 8 insertions(+), 233 deletions(-)

commit 41cbb40dca659799f05567bca0477f630eeeda16
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 15:53:36 2011 -0400

    gthread: remove some unused forward declarations

 gthread/gthread-impl.c | 7 -------
 1 file changed, 7 deletions(-)

commit e48573c402326a9428b032b0d33dd06644316990
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 15:49:35 2011 -0400

    Deprecated (undocumented) g_thread_gettime

    g_thread_gettime() is an undocumented public function pointer that
    points to a function that returns the monotonic time in nanoseconds.
    g_get_monotonic_time() does the same in microseconds, so it can
    be used
    instead.

    GLib had one internal user in GFileMonitor that only cared about
    millisecond accuracy; it has been ported to g_get_monotonic_time().

 gio/gfilemonitor.c      |  2 +-
 glib/gthread.c          | 21 ++-------------------
 glib/gthread.h          |  2 ++
 gthread/gthread-impl.c  |  2 --
 gthread/gthread-none.c  |  2 --
 gthread/gthread-posix.c | 29 +----------------------------
 gthread/gthread-win32.c | 16 ----------------
 7 files changed, 6 insertions(+), 68 deletions(-)

commit 3534ff418c85481d245631abb06e89b8898790f4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 16:43:15 2011 -0400

    Update building docs to mention mandatory threads

    The docs used to say thread support was optional -- it's mandatory
    now.

 docs/reference/glib/building.sgml | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 5a30712dc7e4adc36b0e8fd82cf5ccec19bbbdc5
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 31 14:33:33 2011 -0400

    Remove !g_thread_supported() codepaths in gio

    In particular, remove the libasyncns import, which was only used by
    GUnixResolver, which is only used when threads are not available.
    Likewise remove GWin32Resolver, and the hacky broken non-threaded
    parts of GIOScheduler.

    https://bugzilla.gnome.org/show_bug.cgi?id=616754

 configure.ac               |    5 -
 gio/Makefile.am            |   10 +-
 gio/gcancellable.c         |    2 +-
 gio/gio.symbols            |    6 -
 gio/gioscheduler.c         |   60 +-
 gio/gresolver.c            |   18 +-
 gio/gthreadedresolver.c    |    8 +-
 gio/gunixresolver.c        |  516 ---------------
 gio/gunixresolver.h        |   53 --
 gio/gwin32resolver.c       |  483 --------------
 gio/gwin32resolver.h       |   49 --
 gio/libasyncns/Makefile.am |   15 -
 gio/libasyncns/README      |    7 -
 gio/libasyncns/asyncns.c   | 1533
 --------------------------------------------
 gio/libasyncns/asyncns.h   |  163 -----
 gio/libasyncns/g-asyncns.h |   33 -
 gio/libasyncns/update.sh   |   20 -
 gio/tests/resolver.c       |   41 +-
 18 files changed, 23 insertions(+), 2999 deletions(-)

commit aa586f63543fd584b782dbc1f90bcfae2c96502e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 31 14:30:11 2011 -0400

    Revert "GIOSchedulerJob: Improve struct packing"

    This reverts commit a2094d5e564433ed3a4398afeacce80519bbda44.

    https://bugzilla.gnome.org/show_bug.cgi?id=616754

 gio/gioscheduler.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5bc7729d16b641022f5eb8a4022515a163063ce9
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 31 14:01:45 2011 -0400

    Make threads mandatory

    G_THREADS_ENABLED still exists, but is always defined. It is still
    possible to use libglib without threads, but gobject (and everything
    above it) is now guaranteed to be using threads (as, in fact, it was
    before, since it was accidentally impossible to compile with
    --disable-threads).

    https://bugzilla.gnome.org/show_bug.cgi?id=616754

 configure.ac            | 440
 ++++++++++++++++++++++--------------------------
 gio/Makefile.am         |   6 +-
 glib/gmain.c            |  60 -------
 glib/gthread.c          |  11 +-
 glib/gthread.h          |  71 ++++----
 gobject/Makefile.am     |   6 +-
 gobject/gtype.c         |   2 -
 gthread/gthread-impl.c  |  18 --
 tests/asyncqueue-test.c |   2 -
 tests/child-test.c      |   6 +-
 tests/mainloop-test.c   |   4 -
 tests/thread-test.c     |   4 -
 tests/threadpool-test.c |   5 -
 13 files changed, 240 insertions(+), 395 deletions(-)

commit 0d1a2eb4bfcd733e0c015c76fb0ca0308b8a61f0
Author: David Schleef <ds@schleef.org>
Date:   Sun Aug 21 14:54:39 2011 -0700

    Fix spelling of G_IO_FLAG_IS_WRITEABLE

    Fixes #657045.

 glib/giochannel.c | 7 ++++---
 glib/giochannel.h | 5 ++++-
 glib/giowin32.c   | 4 ++--
 3 files changed, 10 insertions(+), 6 deletions(-)

commit 7a45dde4fe64b4f6c6d3ebc54dfb54d106290e9d
Author: Kushal Das <kdas@redhat.com>
Date:   Fri Sep 2 12:15:21 2011 +0530

    g_key_file_parse_value_as_integer: Integers can have trailing
    whitespaces or tabs

    Now it can parse integer values with trailing whitespaces or tabs
    before CR.
    Using g_ascii_isspace() as suggested.

    https://bugzilla.gnome.org/show_bug.cgi?id=653987

 glib/gkeyfile.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 4a1d79842a177e45210736c71bf0c7d277d73179
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Thu Sep 8 21:07:54 2011 +0200

    Updated Polish translation

 po/pl.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 687144edc7c11fb7a1aff5860b95ab5616320f1f
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Thu Sep 8 20:44:03 2011 +0200

    Updated Polish translation

 po/pl.po | 188
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 85 insertions(+), 103 deletions(-)

commit c8ef5b7d6c08c2e455527d42e1a1845261d30f09
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Sep 8 14:25:41 2011 +0100

    simpleaction: Fix documentation of :enabled

    An over-zealous sed, most likely, transformed g_action_.*() into
    g_simple_action.*().

    https://bugzilla.gnome.org/show_bug.cgi?id=658558

 gio/gsimpleaction.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e03b70c4a2e8e44b8084de7f8a25b166727316e1
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Wed Sep 7 11:43:36 2011 +0200

    Update French translation

 po/fr.po | 189
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 89 insertions(+), 100 deletions(-)

commit 571185f0f6054c8bdb0927809c0b08c6fd86b012
Author: Federico Mena Quintero <federico@gnome.org>
Date:   Thu Sep 8 09:11:56 2011 -0500

    bgo#640212 - Replace "error stating file" with friendlier messages

    Non-technical users won't know that "stating" refers to stat(2), so we
    just use "error when getting information" now.

    Signed-off-by: Federico Mena Quintero <federico@gnome.org>

 gio/gdbusauthmechanismsha1.c | 2 +-
 gio/glocalfileinfo.c         | 4 ++--
 gio/glocalfileoutputstream.c | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

commit 62a648953b5985456d34a563e519ce8059d97998
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Wed Sep 7 16:58:57 2011 +0100

    Updated British English translation

 po/en_GB.po | 171
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 86 insertions(+), 85 deletions(-)

commit b95237ba53b3454996790042312e4f9a3447a2a7
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Wed Sep 7 00:33:39 2011 +0200

    Updated Italian translation

 po/it.po | 85
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 43 insertions(+), 42 deletions(-)

commit ef0f90a0171aa73b4516483ffa49742b6abf3df5
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Wed Sep 7 01:29:04 2011 +0300

    Updated Belarusian translation.

 po/be.po | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

commit cfe04105f4b95f00c2bd52f0759736aa5197fd2a
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Sep 6 21:49:06 2011 +0200

    Added Norwegian bokmål translation

 po/nb.po | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

commit 27fbaf371278e792c79a3478c2282e43f12472f5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 6 14:01:52 2011 -0400

    GSettingsBackend: emit changes to correct thread

    When g_settings_apply() is called on a delayed settings backend and
    there is a D-Bus error when communicating with dconf-service, recent
    versions of the dconf GSettingsBackend call a function in GLib that
    improperly delivered the signal directly instead of using
    g_main_context_invoke().

    This patch fixes this function to route in the same way as the
    others so
    that the signal is dispatched in the proper GMainContext.

 gio/gsettingsbackend.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 8060a7a207192297e62d29b4e5e1b551eab48622
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 6 10:55:09 2011 -0400

    'master' is now glib 2.31.0

 configure.ac                              |  4 ++--
 docs/reference/glib/tmpl/date.sgml        | 16 +++++++++++++---
 docs/reference/glib/tmpl/fileutils.sgml   | 29
 +++++++++++++++++++++++++++++
 docs/reference/glib/tmpl/glib-unused.sgml |  8 ++++++++
 docs/reference/glib/tmpl/macros.sgml      |  2 ++
 docs/reference/glib/tmpl/messages.sgml    | 27
 ++++++---------------------
 docs/reference/glib/tmpl/modules.sgml     | 10 ++++++----
 docs/reference/glib/tmpl/testing.sgml     |  8 ++++++++
 8 files changed, 74 insertions(+), 30 deletions(-)

commit 9d6b55499f92a1d846f822d2f1aded2137b86999
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 10:28:54 2011 -0400

    glib 2.29.90

 NEWS         | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 50 insertions(+), 1 deletion(-)

commit 6f6c924b08915c93e411370ea670b6e8af37ac5d
Author: Andika Triwidada <andika@gmail.com>
Date:   Tue Sep 6 16:50:11 2011 +0700

    Updated Indonesian translation

 po/id.po | 533
 +++++++++++++++++----------------------------------------------
 1 file changed, 146 insertions(+), 387 deletions(-)

commit 8a7d33024a377c99ca17b37ff5f02854bb71463b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 6 00:12:12 2011 -0400

    gio docs: lots more fixes

 docs/reference/gio/Makefile.am       |  2 +-
 docs/reference/gio/gdbus-codegen.xml |  2 +-
 docs/reference/gio/gio-sections.txt  | 20 --------------------
 docs/reference/gio/gio.types         |  1 +
 gio/Makefile.am                      |  2 +-
 gio/gappinfo.h                       |  1 +
 gio/gapplication.c                   |  2 --
 gio/gasynchelper.c                   |  2 +-
 8 files changed, 6 insertions(+), 26 deletions(-)

commit e88d735787b4cbd3ddacef024a03135a32bab6ac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 6 00:01:29 2011 -0400

    gio docs: only include GTlsInteraction once

    It was included twice in the gio-docs.xml file.

 docs/reference/gio/gio-docs.xml | 1 -
 1 file changed, 1 deletion(-)

commit f333aeb29771babd1b8d12a26c3d0d21c6410301
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 23:56:33 2011 -0400

    gio docs: drop GTimeZoneMonitor from docs

 docs/reference/gio/gio-docs.xml | 1 -
 1 file changed, 1 deletion(-)

commit a44b225ae7f01f124e7d54f25a98cde300923b5f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 23:54:42 2011 -0400

    Remove enums from gio.types

    Only objects and interfaces should go in here.  If enums are in here
    then gtk-doc responds by outputting two anchors for the same name
    (which
    results in many warnings being printed).

 docs/reference/gio/gio.types | 33 ---------------------------------
 1 file changed, 33 deletions(-)

commit fb700d7ea3d79be927918b4638cc705b280bbf8b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 19:41:16 2011 -0400

    GDBus object manager example: update -sections.txt

 .../gdbus-object-manager-example-sections.txt                         |
 4 ----
 1 file changed, 4 deletions(-)

commit c2e7ef17ac8da3ef911a5b6f86cd369b46b196bb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 19:35:16 2011 -0400

    gio docs: ignore private .h files

 docs/reference/gio/Makefile.am | 66
 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 57 insertions(+), 9 deletions(-)

commit 1f9c189e2095ed0372fa1960da5cce2d6774af65
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 19:10:04 2011 -0400

    gio docs: don't scan subdirectories

    This clears up >50% of the huge warning spew from building GIO docs.

 docs/reference/gio/Makefile.am      | 11 +++++++++++
 docs/reference/gio/gio-sections.txt |  3 +--
 2 files changed, 12 insertions(+), 2 deletions(-)

commit c14a971f32d87a85d68137ba2dea5afe8ca5fea2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 19:00:11 2011 -0400

    docs fixups for glib/

 docs/reference/glib/glib-sections.txt | 2 +-
 glib/gwakeup.c                        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 9829d04be86fde5741340ed20b5bc0ae876c95e9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 18:46:59 2011 -0400

    GObject docs: resolve broken links

    Some links were broken due to typos, because functionality was removed
    in GLib 2.0 or for various other reasons.  Fix up as many of them
    as is
    reasonable.

 docs/reference/gobject/tut_gobject.xml | 8 +++-----
 docs/reference/gobject/tut_gsignal.xml | 7 ++++---
 docs/reference/gobject/tut_gtype.xml   | 2 +-
 docs/reference/gobject/tut_howto.xml   | 4 ++--
 gobject/gobject.c                      | 4 ++--
 gobject/gparam.h                       | 4 ++--
 gobject/gparamspecs.c                  | 2 +-
 gobject/gsignal.h                      | 4 ++--
 gobject/gtype.c                        | 6 +++---
 gobject/gtype.h                        | 9 +++++----
 gobject/gvalue.h                       | 2 +-
 gobject/gvaluecollector.h              | 1 -
 12 files changed, 26 insertions(+), 27 deletions(-)

commit b402c3f014096dfa9e5cce47bcf60ca33aceb5ca
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 18:05:05 2011 -0400

    gobject docs: add symbols from GMainLoop boxing

 docs/reference/gobject/gobject-sections.txt | 6 ++++++
 1 file changed, 6 insertions(+)

commit b407086b3807fd691c4de7e3e80ac1cc71362ed0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 17:54:52 2011 -0400

    Back out some changes to docs Makefiles

    Commit ab0e9dbfa76e056f875e969c0d7b6e133ec75431 introduced some
    changes
    to the documentation Makefiles designed to clean-up the process of
    deciding which headers get scanned for the docs.

    Unfortunately, the gtk-doc Makefile doesn't use HFILE_GLOB for
    actually
    generating the docs -- only for knowing when it needs to redo the
    generation.  Because of this, we need to use IGNORE_HFILES or
    otherwise
    we get hundreds of symbols in the *-unused.txt files.

    Revert the changes that that commit made to the docs Makefiles (but
    leave the generation of the *-public-headers.txt files in place).

 docs/reference/gio/Makefile.am     |  2 +-
 docs/reference/glib/Makefile.am    | 28 ++++++++++++++++++++++++++--
 docs/reference/gobject/Makefile.am |  9 ++++++++-
 3 files changed, 35 insertions(+), 4 deletions(-)

commit c54bffb9e6cd9bec13b676c3e8e6ab596c58fa49
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Mon Sep 5 22:30:09 2011 +0100

    Updated Portuguese translation

 po/pt.po | 156
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 77 insertions(+), 79 deletions(-)

commit 88c118aab3382824cbef245c2687d4b3c6326ff9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 11:39:04 2011 -0400

    one missed docs fix

 glib/gbookmarkfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ba6d70a99e735161fb34cf67aef81b29c45e2a5c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 11:36:48 2011 -0400

    include 'hmac' in the docs

    It wasn't added to glib-docs.sgml, so it wasn't being included in
    the html.

 docs/reference/glib/glib-docs.sgml | 1 +
 1 file changed, 1 insertion(+)

commit 3b25e975b3272f73e9e3d61ffd67ce89b6edfc8a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 11:30:58 2011 -0400

    gtk-doc fixups for glib/

 docs/reference/glib/tmpl/date.sgml |   2 +-
 glib/gbookmarkfile.c               |   4 +-
 glib/gdatetime.c                   | 100
 ++++++++++++++++++-------------------
 glib/glib-unix.c                   |   2 +-
 glib/glib-unix.h                   |  10 ++--
 glib/gmain.c                       |   2 +-
 glib/gtestutils.c                  |   2 +-
 glib/gunicode.h                    |   4 +-
 glib/guniprop.c                    |   2 +-
 9 files changed, 64 insertions(+), 64 deletions(-)

commit 118fa5d5022e570834d518ba03ae36bc20ed7a18
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 10:29:09 2011 -0400

    doc: Remove reference to non-existent #GChildWatch

    The g_spawn_ documentation was talking about #GChildWatch, which
    doesn't
    exist.  Refer to g_child_watch_add() instead.

 glib/gspawn.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

commit c32c9526ad2507ca9f4bcbc117cf7dc057ad047e
Author: Alexandre Franke <alexandre.franke@gmail.com>
Date:   Mon Sep 5 13:22:37 2011 +0200

    Fix missing semi-colon after struct definition

 docs/reference/gobject/tut_howto.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2fce869f10d5534d339421c1646468e996707fe7
Author: Fran Dieguez <fran@openhost.es>
Date:   Mon Sep 5 11:55:50 2011 +0200

    Updated galician translations

 po/gl.po | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 66e124005563f345a904a526896a01e545cfcf30
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon Sep 5 08:24:30 2011 +0200

    Updated Spanish translation

 po/es.po | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 041a086256d90f6316c7cf23d8d6c6187a460296
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 00:38:14 2011 -0400

    pa.po: prefer pa_IN date/time formats

    It's clear that the other GDateTime formats in this file correspond
    with
    those in pa_IN, not pa_PK, so prefer those for the newly-added strings
    as well.

 po/pa.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 76c49589064c38ce9fe4789677f65e3e09021b40
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 00:03:39 2011 -0400

    Populate missing GDateTime format strings

    Use the glibc locale database to add GDateTime strings only for
    those locales
    that had not specifically added them for themselves.

    Some locales have different translations from what is in the C
    library and we
    leave those alone with this commit.

 po/af.po          |  2 +-
 po/am.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/as.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/ast.po         | 62 +++++++++++++++++++++++++-------------------------
 po/az.po          | 62 +++++++++++++++++++++++++-------------------------
 po/be.po          |  2 +-
 po/be@latin.po    | 62 +++++++++++++++++++++++++-------------------------
 po/bg.po          |  5 ++--
 po/bn.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/bn_IN.po       |  5 ++--
 po/bs.po          | 62 +++++++++++++++++++++++++-------------------------
 po/ca.po          |  2 +-
 po/ca@valencia.po |  2 +-
 po/cs.po          |  6 ++---
 po/cy.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/da.po          |  2 +-
 po/de.po          |  2 +-
 po/dz.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/el.po          |  5 ++--
 po/en_CA.po       |  3 +--
 po/en_GB.po       |  5 ++--
 po/et.po          |  2 +-
 po/eu.po          |  5 ++--
 po/fa.po          | 62 +++++++++++++++++++++++++-------------------------
 po/fi.po          |  2 +-
 po/fr.po          |  2 +-
 po/ga.po          |  2 +-
 po/gu.po          |  5 ++--
 po/he.po          |  5 ++--
 po/hi.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/hr.po          | 62 +++++++++++++++++++++++++-------------------------
 po/hu.po          |  5 ++--
 po/hy.po          | 62 +++++++++++++++++++++++++-------------------------
 po/id.po          |  2 +-
 po/is.po          | 66
 ++++++++++++++++++++++++++---------------------------
 po/it.po          |  2 +-
 po/ja.po          |  5 ++--
 po/ka.po          | 62 +++++++++++++++++++++++++-------------------------
 po/kk.po          | 62 +++++++++++++++++++++++++-------------------------
 po/kn.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/ko.po          |  3 +--
 po/ku.po          | 62 +++++++++++++++++++++++++-------------------------
 po/lv.po          |  2 +-
 po/mai.po         | 68
 +++++++++++++++++++++++++++----------------------------
 po/mg.po          | 62 +++++++++++++++++++++++++-------------------------
 po/mk.po          | 62 +++++++++++++++++++++++++-------------------------
 po/ml.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/mn.po          | 62 +++++++++++++++++++++++++-------------------------
 po/mr.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/ms.po          | 64
 +++++++++++++++++++++++++--------------------------
 po/nds.po         | 62 +++++++++++++++++++++++++-------------------------
 po/ne.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/nl.po          |  2 +-
 po/nn.po          | 62 +++++++++++++++++++++++++-------------------------
 po/oc.po          | 62 +++++++++++++++++++++++++-------------------------
 po/or.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/pa.po          |  5 ++--
 po/pl.po          |  2 +-
 po/ps.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/pt.po          |  2 +-
 po/ro.po          |  2 +-
 po/ru.po          |  2 +-
 po/rw.po          | 62 +++++++++++++++++++++++++-------------------------
 po/si.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/sk.po          | 64
 +++++++++++++++++++++++++--------------------------
 po/sl.po          |  2 +-
 po/sq.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/sr.po          |  5 ++--
 po/sr@ije.po      | 64
 +++++++++++++++++++++++++--------------------------
 po/sr@latin.po    |  5 ++--
 po/sv.po          |  2 +-
 po/ta.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/te.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/th.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/tl.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/tr.po          |  5 ++--
 po/tt.po          | 62 +++++++++++++++++++++++++-------------------------
 po/ug.po          |  2 +-
 po/uk.po          | 62 +++++++++++++++++++++++++-------------------------
 po/vi.po          |  5 ++--
 po/wa.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/xh.po          | 62 +++++++++++++++++++++++++-------------------------
 po/yi.po          | 68
 +++++++++++++++++++++++++++----------------------------
 po/zh_CN.po       |  5 ++--
 po/zh_HK.po       |  5 ++--
 po/zh_TW.po       |  5 ++--
 86 files changed, 1522 insertions(+), 1543 deletions(-)

commit 2752f8668e74fc080bda22994fdbddc3cc77cd6b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 5 00:01:02 2011 -0400

    po/: update all .po files with 'make update-po'

    This should get the proper Report-Msgid-Bugs-To: into each file.

 po/af.po          | 1431 ++++++++++++++++-------------
 po/am.po          | 2373 +++++++++++++++++++++++++++++++++---------------
 po/ar.po          | 1899 ++++++++++++++++++++------------------
 po/as.po          | 2400 +++++++++++++++++++++++++++++++++---------------
 po/ast.po         | 2438
 ++++++++++++++++++++++++++++++++++---------------
 po/az.po          | 2375 +++++++++++++++++++++++++++++++++---------------
 po/be.po          |  204 +++--
 po/be@latin.po    | 2465
 +++++++++++++++++++++++++++++++++++---------------
 po/bg.po          |  389 ++++----
 po/bn.po          | 2395 +++++++++++++++++++++++++++++++++---------------
 po/bn_IN.po       | 1523 +++++++++++++++++--------------
 po/bs.po          | 2383 +++++++++++++++++++++++++++++++++---------------
 po/ca.po          | 1467 +++++++++++++++++-------------
 po/ca@valencia.po |  960 +++++++++++---------
 po/cs.po          | 1434 ++++++++++++++++-------------
 po/cy.po          | 2401
 ++++++++++++++++++++++++++++++++++---------------
 po/da.po          | 1441 ++++++++++++++++-------------
 po/de.po          |  555 +++++++-----
 po/dz.po          | 2385 +++++++++++++++++++++++++++++++++---------------
 po/el.po          | 1502 +++++++++++++++++--------------
 po/en@shaw.po     | 2496
 +++++++++++++++++++++++++++++++++++---------------
 po/en_CA.po       |   95 +-
 po/en_GB.po       | 1457 +++++++++++++++++-------------
 po/eo.po          | 1049 ++++++++++++---------
 po/es.po          |  250 ++---
 po/et.po          | 1096 ++++++++++++++++++++--
 po/eu.po          | 1816 +++++++++++++++++++++----------------
 po/fa.po          | 2403
 ++++++++++++++++++++++++++++++++++---------------
 po/fi.po          |  808 ++++++++++++++++-
 po/fr.po          |  553 +++++++-----
 po/ga.po          | 1046 ++++++++++++---------
 po/gl.po          |  204 +++--
 po/gu.po          | 1507 +++++++++++++++++--------------
 po/he.po          |  420 +++++----
 po/hi.po          | 2394 +++++++++++++++++++++++++++++++++---------------
 po/hr.po          | 2393 +++++++++++++++++++++++++++++++++---------------
 po/hu.po          | 1658 +++++++++++++++++++---------------
 po/hy.po          | 2299 +++++++++++++++++++++++++++++-----------------
 po/id.po          |  957 ++++++++++++--------
 po/is.po          | 2375 +++++++++++++++++++++++++++++++++---------------
 po/it.po          |  482 +++++-----
 po/ja.po          | 1442 ++++++++++++++++-------------
 po/ka.po          | 2389 +++++++++++++++++++++++++++++++++---------------
 po/kk.po          | 2226 +++++++++++++++++++++++++++++++--------------
 po/kn.po          | 2411
 ++++++++++++++++++++++++++++++++++---------------
 po/ko.po          |  266 +++---
 po/ku.po          | 2379 +++++++++++++++++++++++++++++++++---------------
 po/lt.po          | 1347 +++++++++++++--------------
 po/lv.po          |  588 +++++++-----
 po/mai.po         | 2401
 ++++++++++++++++++++++++++++++++++---------------
 po/mg.po          | 2385 +++++++++++++++++++++++++++++++++---------------
 po/mk.po          | 2407
 ++++++++++++++++++++++++++++++++++---------------
 po/ml.po          | 2394 +++++++++++++++++++++++++++++++++---------------
 po/mn.po          | 2406
 ++++++++++++++++++++++++++++++++++---------------
 po/mr.po          | 2394 +++++++++++++++++++++++++++++++++---------------
 po/ms.po          | 2375 +++++++++++++++++++++++++++++++++---------------
 po/nb.po          |  252 +++---
 po/nds.po         | 2379 +++++++++++++++++++++++++++++++++---------------
 po/ne.po          | 2381 +++++++++++++++++++++++++++++++++---------------
 po/nl.po          | 1459 +++++++++++++++++-------------
 po/nn.po          | 2422
 ++++++++++++++++++++++++++++++++++---------------
 po/oc.po          | 2379 +++++++++++++++++++++++++++++++++---------------
 po/or.po          | 2394 +++++++++++++++++++++++++++++++++---------------
 po/pa.po          |  615 ++++++-------
 po/pl.po          | 1452 +++++++++++++++++-------------
 po/ps.po          | 2386 +++++++++++++++++++++++++++++++++---------------
 po/pt.po          | 1443 ++++++++++++++++-------------
 po/pt_BR.po       |  285 +++---
 po/ro.po          | 1503 +++++++++++++++++--------------
 po/ru.po          | 1414 +++++++++++++++--------------
 po/rw.po          | 2389 +++++++++++++++++++++++++++++++++---------------
 po/si.po          | 2381 +++++++++++++++++++++++++++++++++---------------
 po/sk.po          | 2391 +++++++++++++++++++++++++++++++++---------------
 po/sl.po          | 2601
 +++++++++++++++++++++++++++++++----------------------
 po/sq.po          | 2460
 +++++++++++++++++++++++++++++++++++---------------
 po/sr.po          |  380 ++++----
 po/sr@ije.po      | 2375 +++++++++++++++++++++++++++++++++---------------
 po/sr@latin.po    |  419 +++++----
 po/sv.po          |  256 +++---
 po/ta.po          | 2394 +++++++++++++++++++++++++++++++++---------------
 po/te.po          | 2394 +++++++++++++++++++++++++++++++++---------------
 po/th.po          | 2402
 ++++++++++++++++++++++++++++++++++---------------
 po/tl.po          | 2393 +++++++++++++++++++++++++++++++++---------------
 po/tr.po          |  555 +++++++-----
 po/tt.po          | 2379 +++++++++++++++++++++++++++++++++---------------
 po/ug.po          |  398 ++++----
 po/uk.po          | 2413
 ++++++++++++++++++++++++++++++++++---------------
 po/vi.po          | 1490 ++++++++++++++++--------------
 po/wa.po          | 2379 +++++++++++++++++++++++++++++++++---------------
 po/xh.po          | 2387 +++++++++++++++++++++++++++++++++---------------
 po/yi.po          | 2394 +++++++++++++++++++++++++++++++++---------------
 po/zh_CN.po       | 1448 ++++++++++++++++-------------
 po/zh_HK.po       |  327 ++++---
 po/zh_TW.po       |  270 +++---
 94 files changed, 103729 insertions(+), 52698 deletions(-)

commit b6fdbb8e448be794fd9d098dc5f2bd327b2f23f0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 4 18:01:55 2011 -0400

    g_date_time_format: honour T_FMT_AMPM for '%r'

    We had the 12 hour time format hard-coded to "%02d:%02d:%02d %s"
    but it
    actually changes depending on the locale.  Just with the other
    formats,
    use nl_langinfo() if we have it, otherwise fall back on gettext().

 configure.ac     |  2 ++
 glib/gdatetime.c | 17 +++++++----------
 2 files changed, 9 insertions(+), 10 deletions(-)

commit 9ddd25c18b59c443945ff9dcb19675e00caeca63
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 4 20:35:31 2011 -0400

    GDateTime: translate "AM"/"PM", not "am"/"pm"

    "AM" and "PM" are the POSIX locale values.

    Modify the 14 translations that have been updated since then to save a
    headache to those translators.

 glib/gdatetime.c |  4 ++--
 po/be.po         |  8 ++++----
 po/en_CA.po      |  8 ++++----
 po/es.po         | 16 ++++++++--------
 po/gl.po         | 16 ++++++++--------
 po/ko.po         |  4 ++--
 po/lt.po         | 16 ++++++++--------
 po/nb.po         |  8 ++++----
 po/pt_BR.po      | 16 ++++++++--------
 po/ru.po         |  4 ++--
 po/sr.po         | 16 ++++++++--------
 po/sr@latin.po   | 16 ++++++++--------
 po/sv.po         | 16 ++++++++--------
 po/zh_HK.po      |  8 ++++----
 po/zh_TW.po      |  8 ++++----
 15 files changed, 82 insertions(+), 82 deletions(-)

commit e39a03e14d2f22ca6acbb772df908faa78a7d73e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 4 21:00:54 2011 -0400

    Update en_CA.po (Canadian English translation)

 po/en_CA.po | 3047
 +++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 2042 insertions(+), 1005 deletions(-)

commit a2b350d9c3bcc979f1ce4dd6efc7ca79c07624b3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 4 21:31:13 2011 -0400

    po/Makefile.in.in: intltool compatibility fixes

    Our infrastructure for updating the glib20.pot file was incompatible
    with intltool in a couple of ways:

     - we didn't set the Report-Msgid-Bugs-To to

     - we used paths relative to the $(top_srcdir), rather than po/

    This resulted in spamming of pointless changes to the .po files
    whenever
    'make update-po' was run (since all of the translators are using
    intltool-based tools).

 po/Makefile.in.in | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 6274386e52efd7c951d5e40ed2eacd5d0a843b83
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 4 20:06:53 2011 -0400

    Only use gcc-specific options when the compiler is gcc

    The -Wstrict-aliasing option that we use to compile atomic
    tests does not exist with compilers other than gcc, so
    don't pass it to those.
    https://bugzilla.gnome.org/show_bug.cgi?id=652272
    https://bugzilla.gnome.org/show_bug.cgi?id=656152

 configure.ac           | 2 ++
 glib/tests/Makefile.am | 5 ++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

commit 350a1cda0a4ef7ad29f0c041239a96ea1ea1c8c5
Author: Dan Winship <danw@gnome.org>
Date:   Sun Sep 4 17:33:21 2011 -0400

    update .gitignore

 tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 749fa587bc081e0f5b9c4af1ed8bdf90bd0856d2
Author: Dan Winship <danw@gnome.org>
Date:   Sun Sep 4 17:17:11 2011 -0400

    fix a few warnings on non-Linux

    mostly #ifdeffing functions that are only called by #ifdeffed code

 gio/gsocketaddress.c       | 1 +
 gio/xdgmime/xdgmimemagic.c | 2 ++
 glib/gfileutils.c          | 3 +++
 glib/tests/option-argv0.c  | 2 ++
 4 files changed, 8 insertions(+)

commit afa82ae805f9c8bb875a3f863a7b4669953f159f
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Thu Sep 1 10:10:38 2011 +0100

    Avoid getmntinfo

    - getmntinfo can take struct statfs or statvfs depending on the
      OS. Use getvfsstat and if not found getfsstat instead. Idea from
      Dan Winship.
    - g_local_file_query_filesystem_info(): use statvfs.f_fstypename
      if available

    https://bugzilla.gnome.org/show_bug.cgi?id=617949

 configure.ac      |  5 +++--
 gio/glocalfile.c  | 12 ++++++++----
 gio/gunixmounts.c | 54
 ++++++++++++++++++++++++++++++++++++------------------
 3 files changed, 47 insertions(+), 24 deletions(-)

commit 5cea24fc88ec1fa9ce0d37e368d6041ea4e8bc7e
Author: Fran Dieguez <fran@openhost.es>
Date:   Sun Sep 4 18:37:11 2011 +0200

    Updated galician translations

 po/gl.po | 166
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 88 insertions(+), 78 deletions(-)

commit a78ffde652d1a9c6a2004519a8385d3df2c0d668
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Sun Sep 4 18:52:29 2011 +0300

    Updated Belarusian translation.

 po/be.po | 196
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 101 insertions(+), 95 deletions(-)

commit e74ca39dae4f90a365f9d83fb216e5b2f0de6113
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Sun Sep 4 18:31:33 2011 +0300

    Updated Lithuanian translation

 po/lt.po | 621
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 343 insertions(+), 278 deletions(-)

commit 15f1ba47219be9cf92b1a6a1b615c090afde836d
Author: Dan Winship <danw@gnome.org>
Date:   Sun Sep 4 10:33:37 2011 -0400

    gio/tests/tls-interaction: fix two sporadic errors

    The threaded tests are using the default main context in the worker
    thread, but were not g_main_context_acquire()ing it first, which meant
    that g_tls_interaction_invoke_ask_password() in the main thread would
    sometimes succeed in acquiring it itself and thus performing the
    operation in the wrong thread. Fix that.

    Also, we can't unref the loop from the worker thread, because the main
    thread isn't holding a reference on it, and so it might end up being
    destroyed while that thread is still inside g_main_loop_quit().

 gio/tests/tls-interaction.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 655c9f5753e5a2a6be863632149459d0952d208b
Author: Dan Winship <danw@gnome.org>
Date:   Sun Sep 4 08:42:31 2011 -0400

    gsocket: fix win32 build

    https://bugzilla.gnome.org/show_bug.cgi?id=658157

 gio/gsocket.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit e943366de5cd4da4bdaf625f709b66ff9101ee3b
Author: Dan Winship <danw@gnome.org>
Date:   Sun Sep 4 08:42:03 2011 -0400

    configure: fix win32 build

    Only require -lresolv on unix, like before

    https://bugzilla.gnome.org/show_bug.cgi?id=645336

 configure.ac | 68
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 35 insertions(+), 33 deletions(-)

commit 2d7051e3a33a70a01d5ee06c1f10c347f6c08baf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 3 20:12:53 2011 -0400

    g_date_time_format: improve support for alt digits

    Improve a few situations where g_date_time_format() was getting the
    padding wrong when displaying alt digits (eg: Arabic numerals) for
    formatting time.

    We now depend on nl_langinfo (_NL_CTYPE_OUTDIGITn_WC) to do the
    conversion, which is very likely glibc-specific, but our previous
    method
    relied on a glibc-specific printf() feature, so no harm done there.

    Add a configure check for nl_langinfo (_NL_CTYPE_OUTDIGITn_WC).

    Uncomment a few testcases that were failing previously.

    https://bugzilla.gnome.org/show_bug.cgi?id=658107

 configure.ac           |  20 ++++++
 glib/gdatetime.c       | 167
 +++++++++++++++++++++++++------------------------
 glib/tests/gdatetime.c |  19 +++---
 3 files changed, 114 insertions(+), 92 deletions(-)

commit 4a371c2ce5262cdecc48ab998e9b66ce7b46ee4b
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 3 19:49:19 2011 -0400

    g_network_address_parse: deprecate symbolic port names

    (which shouldn't ever have been part of the API. Grr.)

    Solaris /etc/services doesn't even have "http", which was causing
    tests/network-address to fail...

 gio/gnetworkaddress.c       | 8 ++++++--
 gio/tests/network-address.c | 1 -
 2 files changed, 6 insertions(+), 3 deletions(-)

commit af2a905e5480bc7eb82e7a43ef7fead7b3b90dd7
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 3 19:14:16 2011 -0400

    gsocket: fix g_socket_details_from_fd() on Solaris

    On Solaris, getsockname() on an unconnected socket gives an addrlen of
    0 and doesn't set the sockaddr. So use the SO_DOMAIN sockopt to find
    the socket family in that case. (SO_DOMAIN doesn't exist everywhere,
    so we can't use it unconditionally. Also, we have to only use it if
    getsockname() fails, since SO_DOMAIN returns a bogus value for
    accept()ed sockets on both Linux and Solaris...)

 gio/gsocket.c | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

commit 0d637931299f254e1b9a2cdb2d4e050b157ec8d9
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 3 18:37:43 2011 -0400

    configure: check if -lsocket is needed (for Solaris)

    Also, link libgio to -lresolv explicitly, rather than depending on
    getting it implicitly via the libasyncns build (which should
    eventually be going away).

    https://bugzilla.gnome.org/show_bug.cgi?id=645336

 configure.ac               | 66
 ++++++++++++++++++++++++----------------------
 gio/Makefile.am            |  1 +
 gio/libasyncns/Makefile.am |  2 +-
 3 files changed, 37 insertions(+), 32 deletions(-)

commit a636dfd7fbe5757384773460dc01e2727d7ede75
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 3 19:44:13 2011 -0400

    Revert "g_date_time_format: support %D"

    This reverts commit 46ce7907720074089040275280bb20208bafeb6a.

    git-bz mishap (I think?)

 glib/gdatetime.c | 10 ----------
 1 file changed, 10 deletions(-)

commit 4d382a5a1c23f33b9c21b4ad8314787cbc5347af
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Sat Sep 3 18:39:01 2011 -0400

    Merged improvements from 2-28 branch Brazilian Translations from
    Adorilson Bezerra <adorilson@gmail.com>.

 po/pt_BR.po | 234
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 119 insertions(+), 115 deletions(-)

commit 793dae876d43420f9d80112735d65ab1f03ffe07
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Sat Sep 3 17:50:36 2011 -0400

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 192
 ++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 108 insertions(+), 84 deletions(-)

commit 46511fd2ca0bbe660040a4aa8a995d456d4cb4c4
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Sat Sep 3 21:15:43 2011 +0900

    Update Korean translation

 po/ko.po | 473
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 266 insertions(+), 207 deletions(-)

commit c2b385c5c23d5f553add320f223282e96fd1c88a
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat Sep 3 13:47:44 2011 +0200

    Added Norwegian bokmål translation

 po/nb.po | 94
 ++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 50 insertions(+), 44 deletions(-)

commit 8e7112a2d37323c29a8072a7ffe3fc6f44c17bb0
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Sep 3 13:38:38 2011 +0200

    Updated Spanish translation

 po/es.po | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit f091c6a99b1c9e23e8e60a9e5ef35290e0ab4853
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 2 23:36:03 2011 -0400

    gdatetime: Fix locale-changing code

    As pointed out by Ryan Lortie, the code didn't actually ever
    switch back to the old locale.

    https://bugzilla.gnome.org/show_bug.cgi?id=658104

 glib/tests/gdatetime.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 9860c83ad63ec664a25cf1719ceaeeed70b059d9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 21:12:16 2011 -0400

    g_date_time_format: add standards notes to the doc

    Explicitly mention C99's strftime() in the documentation for
    g_date_time_format() as the one that we aim for compatibility with.
    Specifically list the formats we do not support as well as the extra
    ones that we borrow from glibc.

 glib/gdatetime.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit bdb34e3217e46236cafa61991a15b9aa2e80ba61
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 21:04:02 2011 -0400

    GDateTime: test _format against strftime()

    Test g_date_time_format() against strftime().  This test found quite a
    few cases of incorrect behaviour on our part (fixes already committed
    for those).

 glib/tests/gdatetime.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit dcbfeb579a0890c3e3251f4c1ce0c16dc46f7c72
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 21:03:33 2011 -0400

    GDateTime test: plug a couple of leaks

 glib/tests/gdatetime.c | 3 +++
 1 file changed, 3 insertions(+)

commit 1b04f0d9730e94c80db35f3dbd21cdfbb7e2c9da
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 20:54:51 2011 -0400

    g_date_time_format: rip out non-working %W format

    Our implementation of %W is incorrect.  Nobody should want to use this
    format anyway and the implementation is non-trivial, so rip it out
    rather than fixing it.

    Remove the testcase for %W as well.

 glib/gdatetime.c       | 9 ---------
 glib/tests/gdatetime.c | 1 -
 2 files changed, 10 deletions(-)

commit b8c2fd7e05e18cb45eb83c751df394e0e3174084
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 20:53:02 2011 -0400

    g_date_time_format: clarify documentation

    Add some clarification to the documentation for %g, %G, %V and %u
    formats (which all concern themselves with ISO 8601 week dates).

 glib/gdatetime.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

commit 46ce7907720074089040275280bb20208bafeb6a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 19:38:45 2011 -0400

    g_date_time_format: support %D

    %D represents the date in mm/dd/yy format.

    https://bugzilla.gnome.org/show_bug.cgi?id=658061

 glib/gdatetime.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 4b35f12552ebd9d064c7e6dc97e0e1e9c57b6215
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 19:34:33 2011 -0400

    g_date_time_format: small fixups

    Add missing 'break;' from the case: block for %c.  Reorder the
    cases so
    that %F comes before %g/%G and %n comes in its correct alphabetical
    order.

 glib/gdatetime.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

commit 65fe8b73c50b89358732e0c0d093587b62a1cea0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 19:33:32 2011 -0400

    g_date_time_format: fix padding for some formats

    %e is supposed to be space-padded and %W is supposed to be 0-padded

    Adjust the testcase accordingly since it expects the wrong behaviour.

 glib/gdatetime.c       | 4 ++--
 glib/tests/gdatetime.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit b4591aa3dc5689de4e3520f803ed6cf13ef570a0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 21:02:27 2011 -0400

    GDateTime test: don't test removed %N

 glib/tests/gdatetime.c | 1 -
 1 file changed, 1 deletion(-)

commit a1b665c1112912152c45b68dfe73c0da027ebdea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 14:53:21 2011 -0400

    g_date_time_format: support %g and %G

    These are the 2-digit and 4-digit ISO week-numbering years.

    https://bugzilla.gnome.org/show_bug.cgi?id=658061

 glib/gdatetime.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 034952ead64842b95b75a9ebaed45741edd0c7aa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 2 13:38:03 2011 -0400

    g_date_time_format: drop %N format

    %N is not specified in any standards document, but we use it to
    display
    the number of microseconds.

    The fact that our our current implementation of it is nearly useless
    (since it does not zero-pad) coupled with the high chance that
    a future
    version of the C standard may specify it with another meaning
    means that
    we should drop it.

    https://bugzilla.gnome.org/show_bug.cgi?id=658061

 glib/gdatetime.c | 8 --------
 1 file changed, 8 deletions(-)

commit f421f0b88323b2a07d3cf18bf2aa3e2acf509738
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 2 17:22:14 2011 +0100

    g_date_time_format: support %w

    %w represents the day of the week as a decimal, range 0 to 6,
    Sunday being 0.

    https://bugzilla.gnome.org/show_bug.cgi?id=658061

 glib/gdatetime.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit e975b5b75c6e61ae417ad6a56cf9b9a86ec7d61a
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 2 17:09:07 2011 +0100

    g_date_time_format: support %C

    %C represents the century number (year/100) as a 2-digit integer

    https://bugzilla.gnome.org/show_bug.cgi?id=658061

 glib/gdatetime.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 6f80dc60429e7310300a5df75a03a093c3fd4767
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 2 16:32:21 2011 +0100

    g_date_time_format: support %c

    %c represents the preferred  date  and  time  representation  for the
    current locale.

    https://bugzilla.gnome.org/show_bug.cgi?id=658061

 glib/gdatetime.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit b42d15490b88f5e1fdd6385143a4fd58040260db
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Sep 2 14:52:37 2011 +0100

    g_date_time_format: support %V

    %V represents the  ISO 8601  week  number of the current year as a
    decimal number, range 01 to 53, where week 1 is the  first  week
    that  has  at least 4 days in the new year

    https://bugzilla.gnome.org/show_bug.cgi?id=658061

 glib/gdatetime.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 0ea581b80a703f181dc10e5c5fbf9c3a4643d20b
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Fri Sep 2 20:56:39 2011 +0300

    Updated Belarusian translation.

 po/be.po | 506
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 296 insertions(+), 210 deletions(-)

commit 275f1864d836e76ff36ff3f4473370e981679698
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Sep 2 08:39:54 2011 +0800

    Update Visual C++ README.txt's a bit

    LibFFI 3.0.10 is now out officially...

 build/win32/vs10/README.txt | 4 ++--
 build/win32/vs9/README.txt  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 8beda5806ae6fb5ad994edecda89ea1df6473ba6
Author: Daniel Nylander <po@danielnylander.se>
Date:   Thu Sep 1 22:24:07 2011 +0200

    Updated Swedish translation

 po/sv.po | 1156
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 619 insertions(+), 537 deletions(-)

commit b0048bb44413af26a4941f36aac0f904773c4822
Author: Daniel Nylander <po@danielnylander.se>
Date:   Thu Sep 1 22:22:32 2011 +0200

    Updated Swedish translation

 po/sv.po | 161
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 86 insertions(+), 75 deletions(-)

commit a020fbf8f6cd345c0e7cbd5eb0dae194c5dc6650
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Sep 1 14:28:57 2011 -0400

    gdbus-codegen: post-process all interfaces when parsing >1 file

    This also fixes a crash when you run gdbus-codegen with no arguments.

    https://bugzilla.gnome.org/show_bug.cgi?id=656323

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-2.0/codegen/codegen_main.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dbfb56bda94c76366026f0ea738f5472fb7cd0c1
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Aug 31 21:17:10 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

commit ab8938c64da8f9cf68faca2b8afb3bfa49ff4fa0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 30 21:31:40 2011 -0400

    Revert "gdatetime: Add g_date_time_source_new()"

    This reverts three commits:

     - 1feb752996b404965a2f58b29a569a273d4374fa
     - 5763c631473539746646697e6a775f6eacaa08e2
     - 21a538934091e1449e0479daf066fa20df2dc2ef

    https://bugzilla.gnome.org/show_bug.cgi?id=655129

 configure.ac                          |  17 ---
 docs/reference/glib/glib-sections.txt |   3 -
 glib/gdatetime.c                      | 232
 ----------------------------------
 glib/gdatetime.h                      |   3 -
 glib/glib.symbols                     |   1 -
 glib/gmain.h                          |   1 -
 glib/tests/Makefile.am                |   4 -
 glib/tests/glib-clock.c               |  38 ------
 glib/tests/timeout.c                  |  70 ----------
 9 files changed, 369 deletions(-)

commit fe4fc3e8b5a5ad8d4113c4df1fe8e0e9f295035e
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Aug 30 16:20:55 2011 +0200

    Make GMainLoop, GMainContext and GSource boxed types

    Also add some annotations for better usage of these types in bindings.

    https://bugzilla.gnome.org/show_bug.cgi?id=657725

 glib/gmain.c            | 35 ++++++++++++++++++-----------------
 glib/gmain.h            |  8 ++++----
 gobject/gboxed.c        |  3 +++
 gobject/glib-types.h    | 30 ++++++++++++++++++++++++++++++
 gobject/gobject.symbols |  3 +++
 5 files changed, 58 insertions(+), 21 deletions(-)

commit 3354b02ccdb5bdc714cdfbe9bbe9a10589c84153
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Aug 31 13:01:04 2011 +0800

    Update Win32 and VS Readme files

    Tell people about the GNOME Live! page that outlines building
    GLib and its dependencies with Visual C++.

 README.win32                | 5 +++++
 build/win32/vs10/README.txt | 5 +++++
 build/win32/vs9/README.txt  | 5 +++++
 3 files changed, 15 insertions(+)

commit dab38147aec8bd415a6816422baa59863c941ead
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 30 21:13:08 2011 -0400

    es.po: stop translating "kB" to "KiB", etc.

    "kB" is used by GLib to mean 1000 bytes exactly -- not 1024.  It is
    therefore incorrect to translate this to KiB.  Same for the other
    units.

    The original commit ef3e5917ca1239b39db2cb433c4306d0152f18f5
    fixing this
    problem was reverted, so I'm applying it again.

    See http://mail.gnome.org/archives/gnome-i18n/2011-July/msg00078.html
    for more information.

 po/es.po | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 2955981569808304399d16847712f0ef97c6355b
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 16 19:12:59 2011 -0400

    g_get_monotonic_time: fix race condition

    Since there was nothing guaranteeing synchronization of the
    assignments to checked and clockid, it would be possible for one
    thread to set clockid = CLOCK_MONOTONIC, and for another thread to see
    checked = TRUE but still clockid = CLOCK_REALTIME.

    https://bugzilla.gnome.org/show_bug.cgi?id=655129

 glib/gmain.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

commit c0eb77bfc8be7c30c271f2415c08f8f3186113c3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 30 09:45:52 2011 -0400

    unix signal watch: make API match other sources

    Change the unix signal watch API to match other sources in both
    available functions, names of those functions and order of the
    parameters to the _full function.

    https://bugzilla.gnome.org/show_bug.cgi?id=657705

 docs/reference/glib/glib-sections.txt |  3 ++-
 glib/glib-unix.c                      | 36
 ++++++++++++++++++++++++++++-------
 glib/glib-unix.h                      | 16 ++++++++++------
 glib/glib.symbols                     |  3 ++-
 glib/tests/unix.c                     | 12 ++----------
 5 files changed, 45 insertions(+), 25 deletions(-)

commit 1292ffc7805773312f42409eeee7a7ce6b5837fc
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Aug 30 22:52:59 2011 +0100

    glib.doap: Add glib to "platform" category

 glib.doap | 1 +
 1 file changed, 1 insertion(+)

commit ae8dcf429d0e16f944f0f8e8ceab5569408ae410
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Aug 30 19:14:04 2011 +0200

    Updated Spanish translation

 po/es.po | 125
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 66 insertions(+), 59 deletions(-)

commit c6bd78f31c29a06d948b675da7f5682fe1c3c218
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Aug 30 19:00:15 2011 +0200

    Updated Spanish translation

 po/es.po | 225
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 109 insertions(+), 116 deletions(-)

commit 49bb7cff4b2f238453363b032f2c401055158026
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Sun Aug 28 20:24:56 2011 +0200

    gio: Add GTlsInteraction interaction method invocation guarantees

     * Add 'invoke' style method, which can be used to call an interaction
       from any thread. The interaction will be run in the appropriate
       #GMainContext
     * Sync methods can be called whether main loop is running or not.
     * Derived classes can choose to implement only sync or async
       interaction method, and the invoke method will fill in the blanks.
     * Documentation for the above.
     * Tests for the above.

    https://bugzilla.gnome.org/show_bug.cgi?id=657567

 .gitignore                  |   1 +
 gio/gio.symbols             |   1 +
 gio/gtlsinteraction.c       | 423 +++++++++++++++++++++++-----
 gio/gtlsinteraction.h       |  12 +-
 gio/tests/Makefile.am       |   3 +
 gio/tests/tls-interaction.c | 661
 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 1036 insertions(+), 65 deletions(-)

commit 116b2932abfa7727cd0486e6e74624aaf4012ab7
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Tue Aug 30 18:00:49 2011 +0200

    glocalfile: Fix the grammar

 gio/glocalfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 780591b542dbd15f6165eb011e2e38b0c10bfe47
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 30 11:44:57 2011 -0400

    Post-release version bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c6850add98dd0dde66217c47e632a121fee88e80
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 30 11:10:40 2011 -0400

    2.29.18

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 229234111c418c2186868c47bfdd6684be8ee1cf
Author: Bastien Nocera <hadess@hadess.net>
Date:   Fri Aug 26 16:36:12 2011 +0100

    gio: Error out when we cannot modify a GAppInfo

    g_desktop_app_info_set_as_default_for_type() and
    g_desktop_app_info_set_as_last_used_for_type () require the
    application's ID, but depending on how the GAppInfo was created,
    we might not be have one, and would thus silently fail to set
    the default application, or last used application.

    https://bugzilla.gnome.org/show_bug.cgi?id=657445

 gio/gdesktopappinfo.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit 619b77319619d84523866fd11e2cc484b470ed80
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 30 10:25:42 2011 -0400

    More updates

 NEWS | 6 ++++++
 1 file changed, 6 insertions(+)

commit 302a5072c915fc95e187e733acab139bca692e0b
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 27 11:33:43 2011 -0400

    gio/tests/gdbus-peer: make this work on non-Linux unixes

    The test was using a socket in a temporary directory, but not actually
    creating that temporary directory. This worked fine on Linux since it
    actually ended up using an abstract socket instead, but failed on
    unixes without abstract sockets.

    https://bugzilla.gnome.org/show_bug.cgi?id=657517

 gio/tests/gdbus-peer.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

commit d156492c8333097d969e933abbde2cab6011b321
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 30 00:00:37 2011 -0400

    Add a forgotten section

 docs/reference/gio/gio-docs.xml | 1 +
 1 file changed, 1 insertion(+)

commit 258ecdfbe643c76ac6c30d008541e17df27cfb47
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 30 00:00:21 2011 -0400

    More doc additions

 docs/reference/gio/gio-sections.txt | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 08208e3ce22ef5f42697fc9b015df7bff61e2859
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 23:55:48 2011 -0400

    Fix a doc comment

 gio/giomodule.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit b57f2e9327c572c2823cebd53afb1e79589c476f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 23:42:24 2011 -0400

    Clean up gobject docs

 docs/reference/gobject/gobject-sections.txt | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 0196fcc9ce0492235f681584037de2f61557f3ac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 23:36:27 2011 -0400

    Correct a doc typo

 glib/ghmac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a8b128a01cb0798481c56c4c4a1f84625415d904
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 23:33:48 2011 -0400

    Remove no-longer existing api

 docs/reference/glib/glib-sections.txt | 1 -
 1 file changed, 1 deletion(-)

commit fb74f6e303ee89ab8b37708556a24b5e219c1db1
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 27 19:46:51 2011 -0400

    GSocketAddress: create IPv4 addresses for IPv6 mapped-IPv4 addresses

    IPv6-mapped-IPv4 addresses are annoying. Just translate them to real
    IPv4 addresses.

    based on a patch from Jonny Lamb
    https://bugzilla.gnome.org/show_bug.cgi?id=646082

 gio/gsocketaddress.c |  15 +++++++-
 gio/tests/socket.c   | 107
 ++++++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 116 insertions(+), 6 deletions(-)

commit c938250c3335cac58cca8e6747ba8359534989c5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 21:43:50 2011 -0400

    Add a 'since 2.30' index to gobject docs

 docs/reference/gobject/gobject-docs.sgml | 4 ++++
 1 file changed, 4 insertions(+)

commit a21ee644c83b4a6cfabdc9b34d6f829277fe9253
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 19:02:33 2011 -0400

    Don't distribute MAINTAINERS

    ...it does not exist anymore.

 Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit 4fb921439b2b4aa874d0e88cb7cf800c4178bda4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 18:29:16 2011 -0400

    First round of NEWS updates for 2.29.18

 NEWS | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

commit 027b63ab96f2c978f6670f42c27fe7c8dcdfd4aa
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 29 16:46:45 2011 -0400

    GDBusObjectManagerServer: Add locking

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectmanagerserver.c | 157
 +++++++++++++++++++++++++++++------------
 1 file changed, 110 insertions(+), 47 deletions(-)

commit 4e7ef619ebe025bd97d2a3ef8dd8c1b7baa903b2
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 29 16:20:50 2011 -0400

    GDBusObjectManagerClient: Add locking

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectmanagerclient.c | 107
 +++++++++++++++++++++++++++++++++--------
 1 file changed, 88 insertions(+), 19 deletions(-)

commit fcefc71d5932f2828a27c4064d8a64a0382891a9
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 29 15:29:27 2011 -0400

    GDBusObjectProxy: Add locking

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectproxy.c | 62
 +++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 54 insertions(+), 8 deletions(-)

commit dc38967fd35286f9489a8cdcb3d811d34113ceca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 15:18:29 2011 -0400

    Don't call close on invalid fds

    If an fd is -1, don't call close() on it, since that leads to
    EBDAF and complaints from valgrind.

    https://bugzilla.gnome.org/show_bug.cgi?id=657593

 glib/gtestutils.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit fb94a0299bbe23e8531556002cb7e2f895d736e0
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 29 15:19:42 2011 -0400

    GDBusObjectSkeleton: Add locking

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectskeleton.c | 84
 ++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 69 insertions(+), 15 deletions(-)

commit faec5d6b5cebd1075cc75c8be75b8e7f225d4595
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 29 14:23:02 2011 -0400

    GDBusInterfaceSkeleton: Add locking

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterfaceskeleton.c | 75
 ++++++++++++++++++++++++++++++++++++++------
 1 file changed, 66 insertions(+), 9 deletions(-)

commit 4e4505b8deaad39d5a6dd598ad49f5cb5dd72480
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Sun Aug 28 06:58:29 2011 +0200

    Print out URL to HTML coverage report after 'make lcov'

    * For easy clicking

    https://bugzilla.gnome.org/show_bug.cgi?id=657540

 Makefile.decl | 1 +
 1 file changed, 1 insertion(+)

commit 21a538934091e1449e0479daf066fa20df2dc2ef
Author: Colin Walters <walters@verbum.org>
Date:   Mon Aug 29 15:05:34 2011 -0400

    gdatetime: Tweak g_date_time_source_new() documentation

 glib/gdatetime.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 1b28408b8bfe282f671716a39bba3208d3fef39a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 29 14:49:32 2011 -0400

    Spelling fixes

    Spelling fixes in comments and docs, provided by
    Kjartan Maraas in bug 657336.

 gio/gapplicationcommandline.c  |  2 +-
 gio/gasyncinitable.c           |  2 +-
 gio/gbufferedinputstream.c     |  4 ++--
 gio/gcancellable.c             |  2 +-
 gio/gconverter.c               |  4 ++--
 gio/gdatainputstream.c         |  2 +-
 gio/gdbusconnection.c          |  6 +++---
 gio/gdbusserver.c              |  2 +-
 gio/gdesktopappinfo.c          |  2 +-
 gio/gdrive.c                   |  2 +-
 gio/gfile.c                    |  4 ++--
 gio/gfileattribute.c           |  2 +-
 gio/gfileenumerator.c          |  8 ++++----
 gio/gfileinputstream.c         |  4 ++--
 gio/gfilemonitor.c             |  4 ++--
 gio/ginitable.c                |  8 ++++----
 gio/ginputstream.c             | 16 ++++++++--------
 gio/giomodule.h                |  2 +-
 gio/giostream.c                | 12 ++++++------
 gio/giotypes.h                 |  2 +-
 gio/gloadableicon.c            |  4 ++--
 gio/glocalfile.c               |  2 +-
 gio/gmount.c                   | 16 ++++++++--------
 gio/goutputstream.c            | 22 +++++++++++-----------
 gio/gproxyaddressenumerator.c  |  2 +-
 gio/gregistrysettingsbackend.c |  4 ++--
 gio/gseekable.c                |  4 ++--
 gio/gsettings.c                |  6 +++---
 gio/gsettingsbackend.c         |  4 ++--
 gio/gsimplepermission.c        |  2 +-
 gio/gsocket.c                  |  2 +-
 gio/gsocketaddress.c           |  2 +-
 gio/gsocks5proxy.c             |  4 ++--
 gio/gunionvolumemonitor.c      |  2 +-
 gio/gvolume.c                  |  6 +++---
 gio/gwin32mount.c              |  2 +-
 gio/strinfo.c                  |  4 ++--
 glib/gbsearcharray.h           |  2 +-
 glib/gconvert.c                | 18 +++++++++---------
 glib/gdataset.c                |  2 +-
 glib/gdatetime.c               | 10 +++++-----
 glib/gfileutils.c              |  2 +-
 glib/gmain.c                   |  2 +-
 glib/gregex.c                  | 16 ++++++++--------
 glib/gregex.h                  |  2 +-
 glib/gslice.c                  |  6 +++---
 glib/gstdio.h                  |  2 +-
 glib/gstrfuncs.c               |  2 +-
 glib/gthread.c                 |  6 +++---
 glib/gthreadpool.c             |  4 ++--
 glib/gthreadprivate.h          |  2 +-
 glib/gtimezone.c               |  2 +-
 glib/gutf8.c                   | 12 ++++++------
 glib/gutils.c                  |  2 +-
 glib/gvariant-parser.c         |  2 +-
 glib/gvariant-serialiser.c     |  4 ++--
 glib/gvariant.c                |  2 +-
 glib/gvarianttypeinfo.c        |  2 +-
 glib/gvarianttypeinfo.h        |  6 +++---
 glib/gwin32.c                  |  2 +-
 gmodule/gmodule.c              |  2 +-
 gmodule/gmodule.h              |  2 +-
 gobject/gboxed.c               |  4 ++--
 gobject/gclosure.c             |  4 ++--
 gobject/glib-genmarshal.c      |  2 +-
 gobject/gobject.c              |  2 +-
 gobject/gobject.h              |  6 +++---
 gobject/gparam.c               |  4 ++--
 gobject/gparam.h               |  2 +-
 gobject/gsignal.c              |  4 ++--
 gobject/gtype.c                |  4 ++--
 gobject/gvaluearray.c          |  4 ++--
 tests/memchunks.c              |  2 +-
 tests/threadpool-test.c        |  4 ++--
 74 files changed, 167 insertions(+), 167 deletions(-)

commit 5763c631473539746646697e6a775f6eacaa08e2
Author: Colin Walters <walters@verbum.org>
Date:   Wed Aug 17 13:09:27 2011 -0400

    Add Linux timerfd_create() backend for g_date_time_source_new()

    This makes the source efficient on Linux.

    Tested on Fedora 15 x86_64 + updates, kernel-2.6.40-4.fc15.x86_64
    Also tested fallback code for unsupported flag TFD_TIMER_CANCEL_ON_SET
    on kernel 2.6.38.

    https://bugzilla.gnome.org/show_bug.cgi?id=655129

 configure.ac     | 17 ++++++++++++
 glib/gdatetime.c | 79
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 94 insertions(+), 2 deletions(-)

commit 1feb752996b404965a2f58b29a569a273d4374fa
Author: Colin Walters <walters@verbum.org>
Date:   Sat Aug 13 08:55:20 2011 -0400

    gdatetime: Add g_date_time_source_new()

    Several different codebases in GNOME want to implement wall clocks.
    While we could pretty easily share a private library, it's not a
    substantial amount of code, and GLib already has a lot of the
    necessary system-specific detection and handling infrastructure.

    Note this initial implementation just wakes up once a second in the
    cancel_on_set case; we'll add the Linux-specific handling in a
    subsequent commit.

    https://bugzilla.gnome.org/show_bug.cgi?id=655129

 docs/reference/glib/glib-sections.txt |   3 +
 glib/gdatetime.c                      | 156
 ++++++++++++++++++++++++++++++++++
 glib/gdatetime.h                      |   3 +
 glib/glib.symbols                     |   1 +
 glib/gmain.h                          |   1 +
 glib/tests/Makefile.am                |   4 +
 glib/tests/glib-clock.c               |  38 +++++++++
 glib/tests/timeout.c                  |  70 +++++++++++++++
 8 files changed, 276 insertions(+)

commit 1dfe332e4505d9de9d5819087a60a591b40dde28
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Mon Aug 29 19:18:28 2011 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1410
 +++++++++++++++++++++++++++++++---------------------------
 po/zh_TW.po | 1412
 ++++++++++++++++++++++++++++++++---------------------------
 2 files changed, 1551 insertions(+), 1271 deletions(-)

commit 67613478ebeda4c8bcc4aff154ef38cc07387cbf
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Sun Aug 28 22:24:49 2011 +0400

    Updated Russian translation

 po/ru.po | 160
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 89 insertions(+), 71 deletions(-)

commit 965232049f66a53005166e6c17d509ed92ec4b72
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Aug 28 19:07:09 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 141
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 75 insertions(+), 66 deletions(-)

commit b2b2f443ef3effd993de6ba3ba0883c9f81ef06f
Author: Fran Dieguez <fran@openhost.es>
Date:   Sun Aug 28 16:01:03 2011 +0200

    Updated galician translations

 po/gl.po | 97
 +++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 56 insertions(+), 41 deletions(-)

commit 41e4db80768e0155fdc5eaa71c59a7f4011e624a
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Mon Aug 15 16:09:18 2011 +0300

    gio/tests/gtlsconsoleinteraction: Work around missing getpass()
    on win32

    Loosely based on a patch by Sam Thursfield <ssssam@gmail.com>.
    https://bugzilla.gnome.org/show_bug.cgi?id=656341

 gio/tests/gtlsconsoleinteraction.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

commit a0029515caa2cce46fdd865d90043003bb6cd9b0
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Aug 28 10:14:54 2011 +0200

    Updated Spanish translation

 po/es.po | 141
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 75 insertions(+), 66 deletions(-)

commit 4d08b2094e6b657e4427e8ea5cc266010aa92987
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Aug 28 10:08:05 2011 +0200

    Updated Spanish translation

 po/es.po | 174
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 97 insertions(+), 77 deletions(-)

commit be555ed2d035759236db20d0f4b4ef9644350779
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 27 23:30:43 2011 -0400

    Fix symbol lists

 gio/gio.symbols | 1 +
 1 file changed, 1 insertion(+)

commit 6e80885c8d4efe20b5fe507af81ddaa7f408e8c5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 27 13:18:45 2011 -0400

    Spell out file descriptors in a message

    Translators don't necessarily know what 'fds' are.
    Pointed out in bug 657454.

 gio/gdbusmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1a2265889b174c069a58beb16dc57fc13a009263
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 27 13:15:42 2011 -0400

    GDBusMessage: Use ngettext() where appropriate

    Pointed out in bug 657452.

 gio/gdbusmessage.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit 06b23e2b5416e994d29560436587a04b762e21cd
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 27 12:08:32 2011 -0400

    gsocketaddress: don't return ABSTRACT if the OS doesn't support it

    FreeBSD apparently has non-0-length (but nameless) ANONYMOUS sockets.
    Fix the heuristics here.

 gio/gsocketaddress.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit aa10574dc37982457765783781f5e0e67015d4ae
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 27 11:36:05 2011 -0400

    gunixcredentialsmessage: fix this on FreeBSD

    pointed out by Henry Hu
    https://bugzilla.gnome.org/show_bug.cgi?id=628904

 gio/gunixcredentialsmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cef679d004b9fe89ae08519861e235818dd57b46
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 27 09:59:02 2011 -0400

    GSocket: fix GIOCondition on timed-out socket operation

    The docs for g_socket_set_timeout() claimed that if an async operation
    timed out, the GIOCondition passed to the source callback would be
    G_IO_IN or G_IO_OUT (thus prompting the caller to call
    g_socket_receive/send and get a G_IO_ERROR_TIMED_OUT), but in fact it
    ended up being 0, and gio/tests/socket.c was erroneously testing for
    that instead of the correct value. Fix this.

 gio/gsocket.c      | 3 ++-
 gio/tests/socket.c | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

commit 60f23ecbbc7d65eb5188875dc2c50a5f793a82a4
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Fri Aug 26 11:07:57 2011 -0400

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c04496d98d05edf3fa77db8d0a2c61634471f46b
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Fri Aug 26 11:07:32 2011 -0400

    Fixed typo: s/ether/enter.

 gio/gtlspassword.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 54b34bd4e41f5cfaeee6eff1aeb925c80ced699b
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Fri Aug 26 11:06:13 2011 -0400

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

commit d789e78dff26d787b5a55c4b7f5858a7219d5a96
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Fri Aug 26 15:27:19 2011 +0200

    giomodule: When loading GIO_EXTRA_MODULES skip duplicates

     * Load modules from paths listed in GIO_EXTRA_MODULES environment
       variable first.
     * Ignore duplicate modules based on module basename.
     * Add the concept of GIOModuleScope which allows other callers to
       skip duplicate loaded modules, or block specific modules based on
       basename.
     * Document behavior.

    https://bugzilla.gnome.org/show_bug.cgi?id=656914

 docs/reference/gio/gio-sections.txt |   5 +
 gio/gio.symbols                     |   5 +
 gio/gioenums.h                      |  16 +++
 gio/giomodule.c                     | 202
 +++++++++++++++++++++++++++++++++---
 gio/giomodule.h                     |  12 +++
 5 files changed, 224 insertions(+), 16 deletions(-)

commit 78ec02647e1b85596732e99beb31ac4d2285af34
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Fri Aug 26 09:04:41 2011 -0400

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 1805
 ++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 1093 insertions(+), 712 deletions(-)

commit 41432cb375eb04729c8fe506c40ce79fc803028b
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Sat Aug 13 14:03:53 2011 +0200

    Make GTlsInteraction virtual methods cancellable

     * Add cancellable argument to g_tls_interaction_ask_password
       and g_tls_interaction_ask_password_async.
     * This is API breakage, but this API has not yet been released
       in a stable release (and very unlikely used yet).
     * Since we're breaking unreleased API, expand amount of padding
       on GTlsInteractionClass because we're going to need it.

    https://bugzilla.gnome.org/show_bug.cgi?id=656443

 gio/gioenums.h                     | 12 ++++----
 gio/gtlsinteraction.c              | 57
 ++++++++++++++++++++++++++++++++------
 gio/gtlsinteraction.h              | 18 ++++++++----
 gio/tests/gtlsconsoleinteraction.c | 25 +++++++++++++----
 4 files changed, 87 insertions(+), 25 deletions(-)

commit 7d679717f0007dac2f86f05edc763f373135aeee
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Aug 23 07:37:05 2011 +0200

    Add gdbus-codegen to glib-zip.in

    https://bugzilla.gnome.org/show_bug.cgi?id=650763

 glib-zip.in | 3 +++
 1 file changed, 3 insertions(+)

commit a2614efd145eb4e20b0d7643c6f53c50a4d09296
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Aug 23 06:36:47 2011 +0100

    Make gdbus-codegen 'relocatable' at runtime on Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=650763

 gio/gdbus-2.0/codegen/gdbus-codegen.in | 3 +++
 1 file changed, 3 insertions(+)

commit acb5b852c1175675d0edd2f05f76aefdaa29e1c7
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Thu Aug 25 10:45:40 2011 +0100

    gdbus-codegen: Revert to using /usr/bin/env for Python

    After a lot of discussion, we decided /usr/bin/env is the most
    flexible for now.

    https://bugzilla.gnome.org/show_bug.cgi?id=650763

 gio/gdbus-2.0/codegen/Makefile.am      | 2 +-
 gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit cd0cd950785515d826abbe55d6b5948c411e1490
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Aug 23 16:38:36 2011 +0100

    Introduce the UNINSTALLED_GLIB_SRCDIR environment variable

    This makes it possible to avoid setting PYTHONPATH in
    Makefile.am files.

    https://bugzilla.gnome.org/show_bug.cgi?id=650763

 gio/gdbus-2.0/codegen/gdbus-codegen.in             | 13 +++++++++----
 gio/tests/Makefile.am                              |  4 ++--
 gio/tests/gdbus-object-manager-example/Makefile.am |  4 ++--
 3 files changed, 13 insertions(+), 8 deletions(-)

commit 5391aae0093c8046208ed1c7e3ae32ce9186057f
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Aug 23 17:37:35 2011 +0200

    Introduce the UNINSTALLED_GLIB_BUILDDIR environment variable

    This makes it possible to also use relative imports for
    gdbus-codegen's config module.

    https://bugzilla.gnome.org/show_bug.cgi?id=650763

 gio/gdbus-2.0/codegen/__init__.py                  | 29
 ++++++++++++++++++++
 gio/gdbus-2.0/codegen/codegen.py                   |  2 +-
 gio/gdbus-2.0/codegen/codegen_docbook.py           |  2 +-
 gio/gdbus-2.0/codegen/codegen_main.py              |  2 +-
 gio/tests/Makefile.am                              | 32
 ++++++++++++----------
 gio/tests/gdbus-object-manager-example/Makefile.am | 16 ++++++-----
 6 files changed, 58 insertions(+), 25 deletions(-)

commit 5dc3c2efc89ef57fe159736ab52aae8ff25a745c
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Aug 23 07:35:01 2011 +0200

    Use relative imports for the gdbus/codegen package

    But not yet for the config module (but is taken care
    of in a followup patch).

    https://bugzilla.gnome.org/show_bug.cgi?id=650763

 gio/gdbus-2.0/codegen/codegen.py         |  4 ++--
 gio/gdbus-2.0/codegen/codegen_docbook.py |  6 +++---
 gio/gdbus-2.0/codegen/codegen_main.py    | 10 +++++-----
 gio/gdbus-2.0/codegen/dbustypes.py       |  2 +-
 gio/gdbus-2.0/codegen/parser.py          |  4 ++--
 5 files changed, 13 insertions(+), 13 deletions(-)

commit 0eaec4e59a9a9662f82d9ceb0c00c15a396adc3f
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Tue Aug 23 07:32:18 2011 +0200

    Avoid using - (hyphen) in gdbus-codegen directory name

    It's an invalid character in Python module names and prevents us from
    being able to import it.

    https://bugzilla.gnome.org/show_bug.cgi?id=650763

 configure.ac                                                | 4 ++--
 gio/Makefile.am                                             | 2 +-
 gio/{gdbus-codegen => gdbus-2.0/codegen}/.gitignore         | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/Makefile.am        | 2 +-
 gio/{gdbus-codegen => gdbus-2.0/codegen}/__init__.py        | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/codegen.py         | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/codegen_docbook.py | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/codegen_main.py    | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/config.py.in       | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/dbustypes.py       | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/gdbus-codegen.in   | 2 +-
 gio/{gdbus-codegen => gdbus-2.0/codegen}/parser.py          | 0
 gio/{gdbus-codegen => gdbus-2.0/codegen}/utils.py           | 0
 13 files changed, 5 insertions(+), 5 deletions(-)

commit 33831bda2465c8f1e5d4a3fd2bf4e3618a812282
Author: Ionut Biru <ibiru@archlinux.org>
Date:   Wed Aug 24 19:09:53 2011 +0000

    Use detected PYTHON shebang in gdbus-codegen

    Change the hardcoded /usr/bin/python shebag from gdbus-codegen.in into
    @PYTHON@. Is used in Makefile.am to use detected python binary.

    $(AM_V_GEN) sed -e 's,@libdir\@,$(libdir),' -e
    's,@PYTHON\@,$(PYTHON),'
    $< > $@.tmp && mv $@.tmp $@

    Signed-off-by: Ionut Biru <ibiru@archlinux.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=657274

 gio/gdbus-codegen/gdbus-codegen.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fe8ca95882a88877ff8a7eac817a4d33149767c1
Author: Yuri Myasoedov <omerta13@yandex.ru>
Date:   Thu Aug 25 18:59:56 2011 +0400

    Updated Russian translation

 po/ru.po | 1302
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 632 insertions(+), 670 deletions(-)

commit 2e05470e3a8928e960dd093a89bb325a21e64df9
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Aug 25 12:26:27 2011 +0100

    glib.doap: Fix download location

 glib.doap | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 471593ebf0e133f97c08b27f357bc16ece5f81ec
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 24 21:23:36 2011 -0400

    GCancellable: Small annotation additions

    https://bugzilla.gnome.org/show_bug.cgi?id=657243

 gio/gcancellable.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit 3cb189c1ce5cc99c3c872becf38c4be95a0ed6e9
Author: Fran Dieguez <fran@openhost.es>
Date:   Wed Aug 24 20:59:50 2011 +0200

    Updated Galician translations

 po/gl.po | 210
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 113 insertions(+), 97 deletions(-)

commit 28e6ad2dbcc9a7fb1ae3850ac7d1a10b17215e78
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Aug 24 19:57:14 2011 +0200

    Updated Spanish translation

 po/es.po | 214
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 115 insertions(+), 99 deletions(-)

commit 2cd3c200687751c9cc26774f650b7651bffcc598
Author: Dan Winship <danw@gnome.org>
Date:   Mon Aug 22 11:37:48 2011 -0400

    gfileutils: fix docs/annotations for temp file methods

    https://bugzilla.gnome.org/show_bug.cgi?id=657084

 glib/gfileutils.c | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

commit 24e03ed409570cd026c459436db1b1a3e4bf3789
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 24 18:20:32 2011 +0100

    Add DOAP file and remove MAINTAINERS

 MAINTAINERS | 12 ------------
 glib.doap   | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 12 deletions(-)

commit b11eb65c67d2bc29fbcb52f3d14bb0e121f22201
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Aug 24 15:38:46 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 166
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 85 insertions(+), 81 deletions(-)

commit 4d544b51a47c6d0172229c60c3e2ac59d0c12a66
Author: Daniel Nylander <po@danielnylander.se>
Date:   Wed Aug 24 09:19:20 2011 +0200

    Updated Swedish translation

 po/sv.po | 274
 +++++++++++++++++++++++++++------------------------------------
 1 file changed, 117 insertions(+), 157 deletions(-)

commit ff0cf7b681a2aac3b0f4b5608c8500db969ad4b7
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Aug 23 23:47:54 2011 +0100

    Bug 657206 — GInputStream leaked in g_file_icon_load_async()

    Add a missing unref to g_file_icon_load_async().

    Closes: bgo#657206

 gio/gfileicon.c | 1 +
 1 file changed, 1 insertion(+)

commit 30d9636df24000812179f6910cf5c4c3de23cdcd
Author: Eduardo Lima Mitev <elima@igalia.com>
Date:   Thu Jul 29 13:59:42 2010 +0200

    GIO: Add more missing GI annotations

     - g_io_extension_point_register()
     - g_io_extension_point_lookup()
     - g_io_extension_point_implement()

    https://bugzilla.gnome.org/show_bug.cgi?id=625383

 gio/giomodule.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 47987eaf1411bd2fb197524d204b43af9a4a41ac
Author: Мирослав Николић <miroslavnikolic@rocketmail.com>
Date:   Tue Aug 23 19:02:55 2011 +0200

    Updated Serbian translation

 po/sr.po       | 1408
 +++++++++++++++++++++++++++++++-------------------------
 po/sr@latin.po | 1408
 +++++++++++++++++++++++++++++++-------------------------
 2 files changed, 1554 insertions(+), 1262 deletions(-)

commit e604b2d0aff562c364b22cb7074a9261774c491f
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 23 12:57:14 2011 -0400

    gdbus-codegen: update comment in code to reflect reality

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 4 ----
 1 file changed, 4 deletions(-)

commit 05448a6befddb83eefa1214ca699efed248c32e5
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 23 12:46:32 2011 -0400

    gdbus-codegen: Rework C property getters

    Rework property getters to use a vfunc so we can take the fast path
    and avoid allocating memory for both the skeleton and the proxy
    cases. This requires some special case because of how GVariant expects
    you to free memory in some cases, see #657100. Add test cases for
    this.

    Document the _get_ functions as not being thread-safe and also
    generate _dup_ C getters (which are thread-safe).

    Mark all the generated _get_, _dup_ and _set_ as (skip) as non-C
    languages should just use GObject properties and not the (socalled)
    "C binding".

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 .../gdbus-object-manager-example-sections.txt      |   2 +
 gio/gdbus-codegen/codegen.py                       | 267
 ++++++++++++++++-----
 gio/gdbus-codegen/dbustypes.py                     |  42 ++++
 gio/tests/gdbus-test-codegen.c                     |  23 ++
 4 files changed, 274 insertions(+), 60 deletions(-)

commit a9e2305dce176fdeedc5f1b049a2f740005df539
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 23 08:28:15 2011 -0400

    po: add missing gtls files to POTFILES.in

    Pointed out by Daniel Mustieles
    https://bugzilla.gnome.org/show_bug.cgi?id=657138

 po/POTFILES.in | 2 ++
 1 file changed, 2 insertions(+)

commit d617091d8005279cb055e3de125f41898b427e24
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 22 22:01:39 2011 -0400

    gdatetime: Don't include langinfo.h unconditionally

    It doesn't exist on Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=657083

 glib/gdatetime.c | 3 +++
 1 file changed, 3 insertions(+)

commit d51e0615f9a6c1aa1898c46f2cf3135ca5ccd463
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Aug 23 00:22:06 2011 +0800

    Update VS property sheets

    Stop the "installation" of gio/gtimezonemonitor.h as it has been
    removed
    from GIO (commit 5b68b49b2072)

 build/win32/vs10/glib.props  | 2 --
 build/win32/vs9/glib.vsprops | 1 -
 2 files changed, 3 deletions(-)

commit 7e5874dd174e3761e1fec4d15ca7c2a66013f4b1
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Aug 23 00:08:24 2011 +0800

    Update GLib Visual C++ Projects

    Define USE_SYSTEM_PCRE for all configurations which uses the PCRE that
    was already built and "installed" beforehand (i.e. the *_ExtPCRE
    configurations) so that the compilation will not pick up the
    GLib-bundled pcre.h when one wants to use the PCRE "installation" on
    his/her system.

 build/win32/vs10/glib.vcxprojin | 8 ++++----
 build/win32/vs9/glib.vcprojin   | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 09a322c8e4822327130b91e16fa827c410996bce
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Aug 23 00:03:51 2011 +0800

    Update config.h.win32.in

    Make the pre-configured config.h(.win32.in) for Windows more like the
    config.h that would be produced during ./configure on Windows systems.

 config.h.win32.in | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

commit 5b68b49b2072c371c72ee96175e3d6a727eb5e8b
Author: Colin Walters <walters@verbum.org>
Date:   Fri Aug 19 03:27:16 2011 -0400

    GTimeZoneMonitor: Revert addition of this class

    The main rationale for adding it was to avoid having gnome-shell
    mmap'ing /etc/localtime once a second.  However, we can just as easily
    run inotify there, and given no one else was clamoring for a way to
    detect when the time zone changes, I don't see a need for public API
    here - at least not yet.

    In the bigger picture, I just don't believe that the vast majority of
    applications are going to go out of their way to instantiate and keep
    around a random GTimeZoneMonitor class.  And if they do, it's has the
    side effect that for other bits of code in the process, local
    GDateTime
    instances may start varying again!

    So, if code can't rely on local GDateTime instances being in a
    consistent state anyways, let's just do that always.  The
    documentation now says that this is the case.  Applications have
    always been able to work in a consistent local time zone by
    instantiating a zone and then using it for GDateTime constructors.

    We fix the "gnome-shell stats /etc/localtime once a second" issue by
    using timerfd (in glib) and inotify (in gnome-shell).

    https://bugzilla.gnome.org/show_bug.cgi?id=655129

 docs/reference/gio/gio-sections.txt   |  13 ---
 docs/reference/gio/gio.types          |   1 -
 docs/reference/glib/glib-sections.txt |   2 -
 gio/Makefile.am                       |   2 -
 gio/gio.h                             |   1 -
 gio/gio.symbols                       |   2 -
 gio/gtimezonemonitor.c                | 156
 ----------------------------------
 gio/gtimezonemonitor.h                |  47 ----------
 glib/glib.symbols                     |   1 -
 glib/gtimezone.c                      |  66 ++------------
 glib/gtimezone.h                      |   2 -
 glib/tests/gdatetime.c                |  17 ----
 12 files changed, 5 insertions(+), 305 deletions(-)

commit 5fbf3c93b236970e1c68be05c08322099a51e6bf
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Aug 22 22:35:31 2011 +0800

    Update VS property sheets

    -Added glib/ghmac.h to the list of files to copy during the "install"
    stage
    -Cleaned up a bit (glib-2.0->glib-$(ApiVersion), where $(ApiVersion)
    is
     2.0)

 build/win32/vs10/glib.props  |   8 +-
 build/win32/vs9/glib.vsprops | 443
 ++++++++++++++++++++++---------------------
 2 files changed, 229 insertions(+), 222 deletions(-)

commit f0db0d22cc2e22a9033947f5139b359962a3f81e
Author: Colin Walters <walters@verbum.org>
Date:   Sat Aug 13 06:03:18 2011 -0400

    gmain: Clarify that timeouts are in terms of monotonic time

    Also note that monotonic time does not include time spent while
    suspended (at least on Linux).

    https://bugzilla.gnome.org/show_bug.cgi?id=655129

 glib/gmain.c | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

commit 527dc867225ae815356d2d1a72213abe981bd067
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 21 23:48:07 2011 -0400

    GDateTime: use nl_langinfo() when available

    This makes g_date_time_format() react to LC_TIME, which is
    what people expect.

    Translators: this change means that the GDateTime strings
    are only used when the C library does not already provide
    suitable translated strings for these (month names, etc).

 configure.ac     | 17 +++++++++++++++++
 glib/gdatetime.c | 38 ++++++++++++++++++++++++++++++++++----
 2 files changed, 51 insertions(+), 4 deletions(-)

commit 040dcc8a7882a6e99fe80a712c3c9804b23b16f4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 21 23:36:31 2011 -0400

    GDateTime: cosmetics

    Shuffle things around a bit, to move locale-dependent
    things together.

 glib/gdatetime.c | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

commit 6fae33b10aa46f1b1bde7f8b0c871f2f13add6e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 21 23:32:28 2011 -0400

    GDateTime: cosmetics

    Don't hide the recursion in g_date_time_format() behind
    a macro, make it explicit.

 glib/gdatetime.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 76856241d0e845b3fc05812348af004a75bd1c50
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 21 21:33:30 2011 -0400

    Add a quick utility to test datetime formatting

 tests/Makefile.am |  4 +++-
 tests/datetime.c  | 43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)

commit 2282036b5df46741e33441033dac466b3614b4f9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 21 20:45:57 2011 -0400

    GDateTime: don't use separate strings for upper/lowercase am/pm

    We can just as well change the case ourselves.

 glib/gdatetime.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

commit 414c8ce532c19fe65deb8dfb80222d0164be5cbe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 21 19:51:45 2011 -0400

    g_date_time_format: support %T

    strftime supports it, and there is no reason not to do the same.

 glib/gdatetime.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit fd1a12ca4dd164be612fbcd7ab8874b91193cdac
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Sun Aug 21 17:15:52 2011 +0200

    [gi] Add signal annotations

 gobject/gsignal.c | 41 +++++++++++++++++++++--------------------
 gobject/gsignal.h |  4 ++--
 2 files changed, 23 insertions(+), 22 deletions(-)

commit e7a9b3196becd11482abf854b250ef06d6904fe1
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Sun Aug 21 17:12:18 2011 +0200

    [gi] Add annotations to g_quark functions

 glib/gdataset.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit af210cd0eed755eb461da0ccce38fe99545ffd08
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Fri Aug 19 10:34:02 2011 +0200

    Add missing GClosure annotations

 gobject/gclosure.c |  7 ++++---
 gobject/gclosure.h | 19 +++++++++++--------
 2 files changed, 15 insertions(+), 11 deletions(-)

commit de6566b07d54dcfefff4d1e18239e7e865fd4a51
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Fri Aug 19 10:34:37 2011 +0200

    Add missing (allow-none) annotations to g_value_set_string functions

 gobject/gvaluetypes.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 26548e05bbb9bc2278fabeee07f6601f39d1a4dc
Merge: f07b854 54579bf
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Fri Aug 19 11:21:11 2011 +0200

    Merge branch 'concurrent-cancellable'

commit 54579bf88f2af4056fd19e539cc336bd17baea18
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Fri Aug 12 11:49:31 2011 +0200

    gio: GCancellable can be used concurrently

     * Update documentation to note that GCancellable can be used
       concurrently by multiple operations.
     * Add documentation to g_cancellable_reset that behavior is
       undefined if called from within cancelled handler.
     * Add test for multiple concurrent operations using the same
       cancellable.

    https://bugzilla.gnome.org/show_bug.cgi?id=656387

 gio/gcancellable.c      |   7 +-
 gio/tests/.gitignore    |   1 +
 gio/tests/Makefile.am   |   3 +
 gio/tests/cancellable.c | 224
 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 233 insertions(+), 2 deletions(-)

commit f07b854a2b28dde75b3b0eb4746e674b2a220a42
Author: A S Alam <aalam@users.sf.net>
Date:   Fri Aug 19 08:26:25 2011 +0530

    update translation for Punjabi

 po/pa.po | 1369
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 772 insertions(+), 597 deletions(-)

commit 931196a4d87a55aa4835cfaaf01db9888a52fca3
Author: Abduxukur Abdurixit <abdurixit@gmail.com>
Date:   Fri Aug 19 19:42:26 2011 +0200

    Added UG translation

 po/ug.po | 264
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 156 insertions(+), 108 deletions(-)

commit 654b349c30432ac03d48e6e9a8aae7fb543a78bb
Author: Christian Dywan <christian@twotoasts.de>
Date:   Thu Aug 18 01:38:34 2011 +0200

    Use actual uint64 values to compare uint64 variants

    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=656772

 glib/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d4c5e3b1566616bf65b2d92b625c712dab961052
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Wed Aug 17 07:37:36 2011 +0200

    Add (allow-none) annotation for GValue setters.

    Assorted g_value_set_xxx() and g_value_take_xxx() functions actually
    allow NULL in source parameter.

 gobject/gboxed.c      | 8 ++++----
 gobject/gobject.c     | 6 +++---
 gobject/gparam.c      | 6 +++---
 gobject/gvalue.c      | 2 +-
 gobject/gvaluetypes.c | 4 ++--
 5 files changed, 13 insertions(+), 13 deletions(-)

commit e3219c8425e9417ee888dd2aa8b5c826da62edc1
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Aug 17 12:13:17 2011 +0200

    Fixup max decomposition len guarantee

    Unicode Technical Committee agreed to limit decomposition length to
    18 in both cases.  Reflect that.

 glib/gunidecomp.c | 9 ++++++---
 glib/guniprop.c   | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

commit b5f1ea4bb1070f1fbf6fc5170136254192c9bff0
Author: Brian Cameron <brian.cameron@oracle.com>
Date:   Wed Aug 17 03:01:14 2011 -0500

    void functions should not return.  Fixes bug #656675.

 gio/gdbusconnection.c       | 4 ++--
 gio/gdbusmethodinvocation.c | 4 ++--
 gio/gdbusproxy.c            | 4 ++--
 gio/gtlsdatabase.c          | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

commit b18ca488aef461295c0a728d0111e401cc482b57
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 15 21:01:52 2011 -0400

    post-release bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e17ce3594e9d6d9ed6c9d2fd48a82ddcbb1ffcbc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 15 21:01:28 2011 -0400

    glib 2.29.16

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0a4663343f81902f16cf43cd4a5bfc3ccf510200
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 15 21:01:23 2011 -0400

    distcheck fixes

 gio/tests/Makefile.am | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 4cd5762cccae21fe8c24b0679022974043c19114
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 15 18:51:42 2011 -0400

    More NEWS updates

 NEWS | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 472bd4d8a14977ed35c5948b6ed7cafde9a85b05
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 15 13:33:27 2011 -0400

    Updated Esperanto translation

    Esperanto weekdays and month days are written in lowercase (as in
    French).

 po/eo.po | 76
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 38 insertions(+), 38 deletions(-)

commit 67cf3ea3682a0bd5b94e7b546675ec685a686a5a
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Aug 15 16:00:51 2011 +0100

    Add a stress-test for GDBusProxy in threads with no default main
    context

    Destroying a GDBusProxy in a thread used to race with NameOwnerChanged
    being delivered to the main context's thread (GNOME #651133).

    Also, g_dbus_proxy_call_sync in a thread would race with
    NameOwnerChanged
    being delivered to the main context's thread and rewriting the
    name_owner
    (GNOME #656039).

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=656039
    Bug-NB: NB#259760
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/.gitignore            |   1 +
 gio/tests/Makefile.am           |   5 +
 gio/tests/gdbus-proxy-threads.c | 253
 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 259 insertions(+)

commit 85214d1e7f1c1e065b2e05dae9d6cae29887e3d3
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Aug 15 15:59:45 2011 +0100

    GDBusProxy: hold properties_lock while using any mutable property

    This changes the meaning of "properties_lock" from "lock for D-Bus
    properties" to "lock for GObject properties".

    The most common problem, and the only one I've reproduced in a
    regression
    test, is name_owner, which can be updated by the thread that owns
    the GDBusProxy's main context (i.e. the thread-default main context of
    the thread that constructed it) at the same time that a blocking call
    is made. When a GDBusProxy is constructed in a thread-pool thread for
    short-term use, the main context will typically be the global default
    main context (which is actively running in the main thread!), making
    this extremely problematic.

    The interface info is perhaps a theoretical concern - one thread could
    conceivably set it at the same time that another thread uses it,
    but only
    in relatively pathological situations. The current API for this
    does have
    the problem that it returns a borrowed ref, but interface info is
    hopefully permanent anyway.

    The default timeout is probably only a theoretical concern - it's
    just an
    int, so writes are indivisible, and there's no worry about whether
    something has been freed - but to be safe, let's hold the lock
    for that
    too.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=656039
    Bug-NB: NB#259760

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 132
 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 109 insertions(+), 23 deletions(-)

commit 5909cb10315ca0f331ccb97225f008c11ca0d9d7
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Aug 8 18:29:20 2011 +0100

    GDBusProxy: factor out async_init_data_set_name_owner

    This removes the need for async_init_get_name_owner_cb to cope
    with being
    called without a real GAsyncResult, and will simplify the addition of
    correct thread-locking.

    In async_init_data_set_name_owner, use the name_owner parameter
    instead
    of the corresponding member of GDBusProxyPrivate, partly to reduce
    pointer-chasing but mainly to avoid needing to hold the lock.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 90
 +++++++++++++++++++++++++++++---------------------------
 1 file changed, 47 insertions(+), 43 deletions(-)

commit 03ae974f7cc992450907401f45e7de645caff141
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Aug 8 18:22:42 2011 +0100

    g_dbus_proxy_get_property: use accessors for all mutable state

    These ought to have thread-locking, and having it in the accessor
    seems
    better than duplicating it here.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 20387d262ff104f9de3defc264c5c2010d272857
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Aug 15 15:57:59 2011 +0100

    GDBusProxy: if a well-known name is not owned, don't GetAll from
    the dbus-daemon

    If you run:

        ( cd gio/tests && G_DBUS_DEBUG=all ./gdbus-proxy-well-known-name )

    you can see that in the case where the name com.example.TestService
    isn't
    owned yet, the GDBusProxy calls GetAll() with no destination,
    resulting
    in an error reply from the peer (the dbus-daemon itself). That's
    clearly
    not right!

    However, if priv->name is NULL, that indicates the special case
    where we
    really do want to talk directly to a peer, instead of via the
    bus daemon
    (most likely to be used on peer-to-peer connections); in that special
    case, do call GetAll().

    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

commit 2b0171a8080c233f85c1d66fa6df6d75640b37e5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 15 10:42:35 2011 -0400

    g_settings_bind: add some g_return checks

    https://bugzilla.gnome.org/show_bug.cgi?id=636405

 gio/gsettings.c | 3 +++
 1 file changed, 3 insertions(+)

commit e1b41dcb9118b6e182119cb85fd05b45f07c059c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 10 12:25:57 2011 +0200

    ghash: fix error in "as a set" documentation

 glib/ghash.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 20a4f2578fe74e80f58c442356bd2b91d790d7f8
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 15 05:43:24 2011 -0400

    GDBusObjectManagerClient: Emit signals on proxy before emitting
    on manager

    This is needed because the proxy may need to update its internal state
    which a signal handler connected to the manager may rely on.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectmanagerclient.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 230efe70f418017e809e99710e0519f716edebe3
Author: Antoine Jacoutot <ajacoutot@openbsd.org>
Date:   Sun Aug 14 01:23:36 2011 +0200

    open(2): POSIX compatibility.

    Posix allows for open(2) to fail with errno = EINTR.
    Normal this isn't seen when opening files. However in some case we are
    opening a fifo for write which will block until another process
    opens it
    for read. If a signal is received while blocked, open(2) fails with
    errno = EINTR.

    https://bugzilla.gnome.org/show_bug.cgi?id=656492

 glib/giounix.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit b76bb6713ba12a88fbccdaaf063d916ecd3af0b2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 14 14:09:58 2011 -0400

    Add g_mkdtemp in the spirit of g_mkstemp

    At the same time, also add g_mkdtemp_full and g_dir_make_tmp
    variants. The patch also unifies the unique-name-generating
    code for all variants of mkstemp and mkdtemp and adds tests
    for the new functions.

    Based on patches by Paolo Bonzini,
    http://bugzilla.gnome.org/show_bug.cgi?id=118563

 docs/reference/glib/glib-sections.txt |   3 +
 glib/gfileutils.c                     | 398
 +++++++++++++++++++++-------------
 glib/gfileutils.h                     |  17 +-
 glib/glib.symbols                     |   3 +
 tests/file-test.c                     |  52 +++++
 5 files changed, 313 insertions(+), 160 deletions(-)

commit 8377a886857396854069fb7a8309baeb77f144c2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 14 12:03:36 2011 -0400

    GHmac: pedantic doc fixes

    Add a link to an explanation of what HMAC is, and tweak
    some formatting.

 glib/ghmac.c | 44 +++++++++++++++++++++++++-------------------
 1 file changed, 25 insertions(+), 19 deletions(-)

commit 1cb8640ccc2fbd7ef301e6526ee2043ed5061359
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 14 00:47:04 2011 -0400

    News for 2.29.16

 NEWS | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

commit acbcb8f7e37b1c0ff872fdbb74df7de690bc2c6f
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Sun Aug 14 09:27:45 2011 +0200

    hmac: Implementation of HMAC in glib

    This implements g_hmac_xxx() functionality using the standard checksum
    functions supported by glib.

    HMAC is a secure way to hash a key and a password. Many other
    approaches fraught with append and prepend issues.

    Includes test cases defined in relevant RFCs

    https://bugzilla.gnome.org/show_bug.cgi?id=652480

 docs/reference/glib/glib-sections.txt |  16 ++
 glib/Makefile.am                      |   2 +
 glib/ghmac.c                          | 388
 ++++++++++++++++++++++++++++++++++
 glib/ghmac.h                          |  71 +++++++
 glib/glib.h                           |   1 +
 glib/glib.symbols                     |   9 +
 glib/tests/.gitignore                 |   1 +
 glib/tests/Makefile.am                |   3 +
 glib/tests/hmac.c                     | 268 +++++++++++++++++++++++
 9 files changed, 759 insertions(+)

commit d2ca14c270a8a0c01d8a897fad4ea2a9c2e31105
Author: Marc-André Lureau <marcandre.lureau@redhat.com>
Date:   Sun Jul 17 21:18:04 2011 +0200

    Add G_VALUE_INIT

    The implementation of GValue is not public or documented.  When
    allocated on the stack, initializing a GValue is usually done as
    documented with:

    GValue value = { 0, };

    There is lot code around (including WebKit) that added all the missing
    fields, resulting in this ugly and non-obvious:

    GValue value = { 0, { { 0 } } };

    However, this doesn't play nice with -Wmissing-field-initializers for
    example. Thus, G_VALUE_INIT.

    http://bugzilla.gnome.org/show_bug.cgi?id=654793
    http://bugzilla.gnome.org/show_bug.cgi?id=577231

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gvalue.c                            |  6 +++---
 gobject/gvalue.h                            | 16 ++++++++++++++++
 3 files changed, 20 insertions(+), 3 deletions(-)

commit a9ca74efb11bda0a90f482a44bb2ec214744ecc6
Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Date:   Wed Aug 10 15:56:13 2011 +0200

    Don't finish gtls connection if the handshake failed

    https://bugzilla.gnome.org/show_bug.cgi?id=656283

 gio/gsocketclient.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ae496a52a92c137b624eee3f5cf54e7756143086
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 13 16:09:41 2011 -0400

    GDBusProxy: on_properties_changed initialize some variables

    This avoids calling g_variant_unref and g_free on uninitialized memory
    if PropertiesChanged is received in the creating thread's
    thread-default
    main context's thread, at the same time as releasing the last ref in
    another thread. This would result in "goto out" before the variables
    freed after that label had been initialized to NULL.

    Based on a patch by Simon McVittie, bug 656282

 gio/gdbusproxy.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 655299a0579b8c9b418eab2301201c1fd25d89ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 13 15:48:47 2011 -0400

    gdatetime: Add a test for %OM

 glib/tests/gdatetime.c | 1 +
 1 file changed, 1 insertion(+)

commit be933706059a8d92fb8858219f5936f332b68f4a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 13 15:29:29 2011 -0400

    Remove a gccism

    Pointed out in bug 656152.

 glib/tests/checksum.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit 3c504e47656e7d26c0c24465f492b92f673a5cec
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 13 15:07:38 2011 -0400

    Fix statfs/statvfs decision

    We want to force use of statvfs when statfs is deficient.
    This does not make any difference on Linux.

    https://bugzilla.gnome.org/show_bug.cgi?id=656151

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f5472ed2325cac108f9faefaff5c86ec5d9e829b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 13 13:53:34 2011 -0400

    Trivial typo fix

 gobject/gsignal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 428f49b9c8d56ae18398d4bb33c70c80eda1d21d
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Aug 12 11:10:22 2011 -0400

    In addition to /media and $HOME, also show mounts in $XDG_USER_DIR

    Prepare for the future where udisks will use $XDG_USER_DIR/Volumes
    instead of /media when mounting filesystems on behalf of the user.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gunixmounts.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 9fafa343456ec7c6c6f5fce8b6a1116c149d7949
Author: Andika Triwidada <andika@gmail.com>
Date:   Fri Aug 12 15:48:34 2011 +0700

    Updated Indonesian translation

 po/id.po | 1803
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 869 insertions(+), 934 deletions(-)

commit ebc74835e09754c8a784e6f4f4eece3715ef03ea
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Aug 12 11:43:40 2011 +0800

    Update VS property sheets ("install" phase)

    Copy the new GioTLS headers that were introduced into the GIO
    library in commit       0f99cfa8822514dc6b7ccbc59efbe68f27aeb172
    during the
    "install" stage.

 build/win32/vs10/glib.props  | 8 ++++++++
 build/win32/vs9/glib.vsprops | 4 ++++
 2 files changed, 12 insertions(+)

commit 2f8664306d20772f47a46af26637615a54fdfc39
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Thu Aug 11 20:55:20 2011 +0300

    Updated Bulgarian translation

 po/bg.po | 632
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 345 insertions(+), 287 deletions(-)

commit ea6e2968bfdee766c8d3d5fd5b5bac34bcaaaf3e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Aug 11 19:02:14 2011 +0200

    [gobject] Fix G_DEFINE_BOXED_TYPE compilation with C++

 gobject/gtype.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c3fd789bb759aefb6fda144b953c2d09fc0dc20d
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Thu Aug 11 14:08:33 2011 +0200

    [gi] Add missing (out) annotation to
    g_dbus_{node,interface}_info_generate_xml()

 gio/gdbusintrospection.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 782f83938395c0ac57198ec081e9566c170ef8ef
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Thu Aug 11 11:36:22 2011 +0200

    [gi] Add missing Gio transfer annotations

 gio/gdbusproxy.c           | 5 +++--
 gio/gtimezonemonitor.c     | 2 +-
 gio/gtlsbackend.c          | 3 ++-
 gio/gtlsclientconnection.c | 2 +-
 gio/gtlsconnection.c       | 2 +-
 gio/gtlsfiledatabase.c     | 2 +-
 gio/gtlsserverconnection.c | 2 +-
 7 files changed, 10 insertions(+), 8 deletions(-)

commit 0e548251201db63eb0c80091877f44df14f4a0fe
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Thu Aug 11 11:05:31 2011 +0200

    [gi] Fix parameter name typos in Gio docstrings

    Found by GIR compiler when building gobject-introspection:

    gir/gio-2.0.c:33525: Warning: Gio: g_tls_password_set_description:
    unknown
    parameter 'flags' in documentation comment, should be one of
    'password',
    'description'
    gir/gio-2.0.c:14568: Warning: Gio:
    g_action_group_action_state_changed: unknown
    parameter 'state' in documentation comment, should be one of
    'action_group',
    'action_name', 'value'

 gio/gactiongroup.h | 2 +-
 gio/gtlspassword.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 77a10feafa4f77f1fcadb2ed1fd5da41dced3553
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Aug 11 15:30:48 2011 +0800

    Bug 652827: Update config.h.win32.in

    Add check macro for HAVE_WIN32_BUILTINS_FOR_ATOMIC_OPERATIONS,
    as it is
    now required for MSVC builds of glib/gatomic.c GLib 2.29.15+.

    It is true that the MinGW cross-compiler on Linux systems will have
    HAVE_GCC_BUILTINS_FOR_ATOMIC_OPERATIONS and
    HAVE_WIN32_BUILTINS_FOR_ATOMIC_OPERATIONS defined during the
    completion
    of ./configure, but since this file is primarily meant for people
    compiling -on- Windows (and that the "native" Windows MinGW would
    neither
    ./configure to define HAVE_GCC_BUILTINS_FOR_ATOMIC_OPERATIONS and
    HAVE_WIN32_BUILTINS_FOR_ATOMIC_OPERATIONS), this file will be
    updated as
    it is for now at least until the situation for "native" Windows MinGW
    change. (please see Bug 652827 regarding this paragraph)

 config.h.win32.in | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 349212211247781e7bec43b95cb57dddc1d0e5b1
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Aug 9 19:43:34 2011 +0200

    Bug 652827 - glib-2.29.8 no longer builds with mingw.org's toolchain

    Check for Win32 atomic intrinsics.

 configure.ac   | 12 +++++++++++-
 glib/gatomic.c |  2 +-
 2 files changed, 12 insertions(+), 2 deletions(-)

commit fc442bdbe6d8113caf25a4dd4b0e8e4dc8d3913a
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Aug 11 08:33:23 2011 +0200

    Cleanup gatomic checks

 configure.ac | 39 +++++++++++++++++----------------------
 1 file changed, 17 insertions(+), 22 deletions(-)

commit 21e682388dafb1de5308ac403c7ebdfe09e1030b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Aug 11 08:11:06 2011 +0200

    Fix typo

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b2c6b801bc12429305f022c332b693a142098177
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Wed Aug 10 22:50:26 2011 +0200

    [gi] Add missing transfer annotation to
    g_dbus_node_info_lookup_interface()

 gio/gdbusintrospection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 27599d671e0f0c13f102f6d7ffc58e23825eba67
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Aug 10 15:12:54 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 391
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 249 insertions(+), 142 deletions(-)

commit c783bfd4e7ebbfa258bce49e5381e2c2afe0110f
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Tue Aug 9 14:51:34 2011 +0200

    [gi] Add missing (allow-none) annotations to
    g_dbus_connection_register_object()

 gio/gdbusconnection.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 3a631aa863ec8337bd7ea4ab55eed3a2fd3ef1b4
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Aug 8 17:18:08 2011 +0100

    Ignore lcov-produced files in top-level .gitignore

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=656162
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 8f503548701eb8c14ac37c0b84629da5d4493495
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Mon Aug 8 15:48:27 2011 +0100

    Allow current lcov (version 1.9) to be used for coverage

    It seems to work fine with the same invocation already used.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=656162
    Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9bcf89cd70946be7c724cbeac9cd1c028f74ea6e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 8 23:16:07 2011 +0200

    Document libffi as new dependency

 INSTALL.in        | 1 +
 README.in         | 8 ++++++++
 gobject/gsignal.c | 2 +-
 3 files changed, 10 insertions(+), 1 deletion(-)

commit 5f9e5c1124c6362fe463b5295c7a2b00afcec135
Author: Fran Dieguez <fran@openhost.es>
Date:   Sat Aug 6 22:33:00 2011 +0200

    Updated Galician translations

 po/gl.po | 467
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 258 insertions(+), 209 deletions(-)

commit 2512341fa6b1842adc5b403ce9eb22b9f3478ee3
Author: Colin Walters <walters@verbum.org>
Date:   Sat Aug 6 09:36:49 2011 -0400

    Require Python 2.5 explicitly

    Without someone to regularly test 2.4, and since the code in reality
    requires 2.5, switch to that for now.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b3111f87e2f340f45106f24b640ba2ac68b9086b
Author: Colin Walters <walters@verbum.org>
Date:   Sat Aug 6 09:22:44 2011 -0400

    configure: Fix statvfs/statfs detection

    Add missing 'x' as pointed out by declanw@is.bbc.co.uk

    https://bugzilla.gnome.org/show_bug.cgi?id=656048

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 871da75ca38b4b931c4fbcd500856b71596c1332
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Aug 6 16:02:50 2011 +0300

    Updated Hebrew translation.

 po/he.po | 580
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 315 insertions(+), 265 deletions(-)

commit 85d12096e4fdef6451033cbecc03de2cd4066eb1
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Fri Aug 5 16:31:06 2011 +0200

    Add missing GVariant annotations

    https://bugzilla.gnome.org/show_bug.cgi?id=656031

 glib/gvariant-core.c |  2 +-
 glib/gvariant.c      | 12 ++++++++----
 glib/gvarianttype.c  |  4 ++--
 3 files changed, 11 insertions(+), 7 deletions(-)

commit cfa90b8fc1c2b74bc309f0efe6c122e72be7d11a
Author: Dan Winship <danw@gnome.org>
Date:   Fri Aug 5 19:43:47 2011 -0400

    gio/tests/.gitignore: fix

 gio/tests/.gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 27b5dab0d6ebc7717243bd736bc10859713b0f73
Author: Claude Paroz <claude@2xlibre.net>
Date:   Fri Aug 5 17:04:50 2011 +0200

    Updated French translation

 po/fr.po | 1287
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 705 insertions(+), 582 deletions(-)

commit 6c8a61bc1bdea6c3434350d5c7c0fa0e7053664b
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Fri Aug 5 12:11:02 2011 +0200

    [l10n] Updated German translation

 po/de.po | 1245
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 686 insertions(+), 559 deletions(-)

commit d728c00a0488fb2bfbe69e95aba360a552a73d84
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Aug 4 21:47:07 2011 +0200

    gio enums: Remove trailing commas

 gio/gioenums.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 29aae440fb64e8811508e1a803ee524c752b3565
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Thu Aug 4 09:43:45 2011 +0200

    Fix up ABI symbols after GTlsDatabase merge.

    https://bugzilla.gnome.org/show_bug.cgi?id=636572

 gio/gio.symbols       | 28 ++++++++++++++++++++++++----
 gio/gtlsinteraction.c |  6 +++---
 2 files changed, 27 insertions(+), 7 deletions(-)

commit 0f99cfa8822514dc6b7ccbc59efbe68f27aeb172
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Thu Aug 4 08:54:55 2011 +0200

    GTlsDatabase and related objects

    The database is an abstract object implemented by the various TLS
    backends, which is used by GTlsConnection to lookup certificates
    and keys, as well as verify certificate chains.

    Also add GTlsInteraction, which can be used to prompt the user
    for a password or PIN (used with the database).

    https://bugzilla.gnome.org/show_bug.cgi?id=636572

 docs/reference/gio/gio-docs.xml     |   4 +
 docs/reference/gio/gio-sections.txt | 117 +++++
 docs/reference/gio/gio.types        |   2 +
 gio/Makefile.am                     |   8 +
 gio/gdummytlsbackend.c              | 105 +++-
 gio/gio.h                           |   4 +
 gio/gio.symbols                     |  21 +
 gio/gioenums.h                      |  70 +++
 gio/giotypes.h                      |   4 +
 gio/gtlsbackend.c                   |  44 ++
 gio/gtlsbackend.h                   |  28 +-
 gio/gtlsconnection.c                | 146 +++++-
 gio/gtlsconnection.h                |  12 +-
 gio/gtlsdatabase.c                  | 967
 ++++++++++++++++++++++++++++++++++++
 gio/gtlsdatabase.h                  | 235 +++++++++
 gio/gtlsfiledatabase.c              | 104 ++++
 gio/gtlsfiledatabase.h              |  56 +++
 gio/gtlsinteraction.c               | 197 ++++++++
 gio/gtlsinteraction.h               |  88 ++++
 gio/gtlspassword.c                  | 436 ++++++++++++++++
 gio/gtlspassword.h                  | 101 ++++
 gio/tests/.gitignore                |   1 +
 gio/tests/Makefile.am               |   4 +-
 gio/tests/gtlsconsoleinteraction.c  | 107 ++++
 gio/tests/gtlsconsoleinteraction.h  |  56 +++
 gio/tests/socket-client.c           | 291 +++++++----
 26 files changed, 3082 insertions(+), 126 deletions(-)

commit a187199efd7eb16f500cef31c950d4eafbfe3a4b
Author: kotarou <nospam.kotarou.dono@gmail.com>
Date:   Wed Aug 3 08:46:04 2011 -0400

    build: Pass ZLIB_CFLAGS for gio build

    Otherwise we will fail if zlib is in an alternative prefix.

    Commit message written by Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=655769

 gio/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit ee63179b71f6a4153f08bc5c84c24a0d0ac76263
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Fri Jul 29 15:38:54 2011 -0400

    g_cancellable_get_fd: silently return -1 for NULL cancellable

    This keeps compatibility with previous behavior.

    https://bugzilla.gnome.org/show_bug.cgi?id=655598

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gcancellable.c | 3 +++
 1 file changed, 3 insertions(+)

commit 659ba3d0b3eca1ee3af13d277ac8c847651b0a6a
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 1 11:54:47 2011 -0400

    GDBusConnection: Only apply exit-on-closed semantics if properly
    initialized

    Otherwise there is no point in gracefully handling the error...

    https://bugzilla.gnome.org/show_bug.cgi?id=655664

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fcc415b16cb9e618acabb921231dc2e49637f14c
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Mon Aug 1 00:10:59 2011 +0400

    Updated Russian translation

 po/ru.po | 134
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 69 insertions(+), 65 deletions(-)

commit bf21a693fa47cd0c4300822f24909b35892311df
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Fri Jul 29 19:59:58 2011 +0200

    Updated Spanish translation

 po/es.po | 301
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 145 insertions(+), 156 deletions(-)

commit c3af3d8d2c191fe3b5b654e3925effa32b3d0daa
Author: Daniel Nylander <po@danielnylander.se>
Date:   Fri Jul 29 09:50:43 2011 +0200

    Updated Swedish translation

 po/sv.po | 2100
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 1101 insertions(+), 999 deletions(-)

commit d15f8682c006c8f5c3d4a93db0f211f687fb656e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 27 23:27:24 2011 -0400

    Revert "Optimize g_[s]list_free_full a bit"

    This reverts commit 98b667d052b1274f80b8898a32d0753e9e2e5c1a.

    The commit was not actually an optimization, since g_list_free is
    pretty smart.

 glib/glist.c  | 11 +++--------
 glib/gslist.c | 17 ++++++-----------
 2 files changed, 9 insertions(+), 19 deletions(-)

commit dbb78fe57de0792d409b1baf88661844384c2762
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Mon Jul 25 15:59:58 2011 -0400

    Added TLS PEM parser unit test

 gio/tests/Makefile.am       |   4 +
 gio/tests/cert-key.pem      |  32 +++++
 gio/tests/cert-list.pem     |  52 ++++++++
 gio/tests/cert1.pem         |  17 +++
 gio/tests/cert2.pem         |  17 +++
 gio/tests/cert3.pem         |  17 +++
 gio/tests/gtesttlsbackend.c | 312
 ++++++++++++++++++++++++++++++++++++++++++++
 gio/tests/gtesttlsbackend.h |  49 +++++++
 gio/tests/key-cert.pem      |  32 +++++
 gio/tests/key.pem           |  15 +++
 gio/tests/nothing.pem       |   0
 gio/tests/tls-certificate.c | 279 +++++++++++++++++++++++++++++++++++++++
 12 files changed, 826 insertions(+)

commit fdfb42b9f2bdbed44ad4f469bf2794b2057587c1
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Mon Jun 20 18:49:39 2011 -0400

    Rework PEM parsing to not be order dependent

    Some valid PEM file would not work because the private key was put
    before the certificate.

 gio/gtlscertificate.c | 149
 ++++++++++++++++++++++++++++++++------------------
 1 file changed, 95 insertions(+), 54 deletions(-)

commit fb45baaf8cc62278c71030c284d4ed3d5f4f849d
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Tue Jul 26 17:32:53 2011 +0200

    Docs: Correct the namespace for g_file_query_filesystem_info()

 gio/gfile.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ac5dd614aa796223dc49a100b016abb7996fd418
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jul 26 23:23:31 2011 +0800

    Updated glib-zip.in a bit further

    Missed the bin/gsettings.exe part (corrected from bin/gsettings.)

 glib-zip.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 82a0733751b2dc3306e7dcf76358621eaea02bcb
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Jul 26 16:44:18 2011 +0200

    utf8: annotate the end pointer in g_utf8_validate as out + allow-none

 glib/gutf8.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b7f3638e5c3917d6007040747eb3ef1ccc338a0b
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jul 26 10:05:57 2011 -0400

    More gdbus-codegen fixed to build on non-Unix

    https://bugzilla.gnome.org/show_bug.cgi?id=655148#c6

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 12 ++++++++----
 gio/tests/Makefile.am        | 22 +++++++++++++++++-----
 2 files changed, 25 insertions(+), 9 deletions(-)

commit 494db61c1946f0b06cc2d68a1194e8812871540e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 26 13:49:20 2011 +0200

    gtester: small Windows fix

    This code was unconditionally present in the gtester Makefile:

    test-nonrecursive: ${TEST_PROGS}

    On Windows, our testcases are compiled with a .exe suffix.  That means
    that if we had 'foo' in TEST_PROGS, running "make check" would
    depend on
    'foo' (not foo.exe) being compiled.

    We could bring the EXEEXT in here to fix that up, but gtester doesn't
    work on Windows at all, so better to just disable it in that case.

 Makefile.decl | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 44e85f73643ca24656aa89906d33a1385dcc87a5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 26 13:38:04 2011 +0200

    GDateTime test: 1970 doesn't exist on Windows

    It is not safe to call the system library mktime() function on Windows
    with a date in the 70s.  Use 1990 instead.

 glib/tests/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d62d0336b8fb2d3369f02758c20c6ea38bee9464
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 26 13:29:01 2011 +0200

    g_format_size: fix on Windows

    The long format that displays the exact number of bytes with
    separators
    (ie: "123,456,789 bytes") uses the ' format modifier, which is
    unsupported on Windows.  Disable that for now, until we come up with a
    better solution.

 glib/gfileutils.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 01744c2d69fb11a8dfde62666540da91adafd6a8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 26 13:26:10 2011 +0200

    g_format_size: avoid silly GString use

    We were using a GString for the purpose of doing a single printf().
    Do
    g_strdup_printf() instead.

 glib/gfileutils.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 81d0b28a4de87805c6f8c6661a8c2e0de3893267
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Mon Jul 18 14:20:18 2011 +0200

    Update glib-zip.in

 glib-zip.in | 48 +++++++++++++++++++++++++++++++-----------------
 1 file changed, 31 insertions(+), 17 deletions(-)

commit 633fd86815fafa0ffb9cd0d8e5b958b0d3abe141
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 26 11:20:12 2011 +0200

    glocalfile: don't bother with fstype on win32

    Fixes the broken build on Windows.

 gio/glocalfile.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 12f516b44cb3b91d99a9ea0f0c51aaeeb3562688
Merge: 32b1349 39b72a1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 26 10:50:25 2011 +0200

    Merge branch 'gwakeup'

commit 39b72a166e72ebbafbb7e85383db954a31b929c2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 18:59:27 2011 +0200

    GWakeup: fix Windows build breakage

    ...from the attempt to make it private.

 glib/gwakeup.c | 3 +++
 1 file changed, 3 insertions(+)

commit d87eddbb130bbc35ea17c5d4f0c3ee724b1c6d61
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 18:52:36 2011 +0200

    .gitignore the gwakeup-fallback testcase

 gthread/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 6615349ffb1335ca506fd476d65dd864eb2ee494
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 18:52:18 2011 +0200

    Remove g_wakeup_* from glib.symbols

 glib/glib.symbols | 5 -----
 1 file changed, 5 deletions(-)

commit c81eb121a1a29c7068b775d0f7665d05c0dd4dad
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 18:50:45 2011 +0200

    GWakeup: make it private API

    Colin requests that we keep this one private for now.

    Include it at each point of use (libglib, libgio, tests).

 docs/reference/glib/Makefile.am            |  3 +++
 docs/reference/glib/glib-docs.sgml         |  1 -
 docs/reference/glib/glib-sections.txt      | 10 -------
 gio/Makefile.am                            |  1 +
 gio/gcancellable.c                         |  1 +
 glib/Makefile.am                           |  2 +-
 glib/glib.h                                |  1 -
 glib/gwakeup.c                             | 17 ++++++++++++
 glib/gwakeup.h                             | 15 +++++------
 gthread/tests/Makefile.am                  |  3 ++-
 gthread/tests/{gwakeup.c => gwakeuptest.c} | 43
 ++++++------------------------
 11 files changed, 39 insertions(+), 58 deletions(-)

commit 0584f0c50495e4c1d6691f30d9f598799a5d54ce
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 17:43:28 2011 +0200

    GWakeup: test fallback case

    We need to test the case of eventfd in the libc but no kernel support.

    In order to do that, we add a separate compile of the GWakeup testcase
    that interposes an 'eventfd' symbol that always returns -1 with errno
    set.  That will trigger the fallback case.

 configure.ac              |  1 +
 gthread/tests/Makefile.am |  7 +++++++
 gthread/tests/gwakeup.c   | 39 +++++++++++++++++++++++++++++++++++++--
 3 files changed, 45 insertions(+), 2 deletions(-)

commit 7f15910e7907e17606ba9e149cc3b04be4887bbf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 16:35:08 2011 +0200

    GWakeup: add signal safety note

    Note that g_wakeup_signal() is safe to call from a UNIX signal handler
    (since this is a likely place to want to call it from).

 glib/gwakeup.c | 2 ++
 1 file changed, 2 insertions(+)

commit 32b1349a23ff050b8026ede150a25cae56799901
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jul 25 10:31:17 2011 -0400

    More fixes for non-Unix builds

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 8 ++++++++
 gio/gdbusproxy.c      | 8 ++++++++
 2 files changed, 16 insertions(+)

commit f8b98841ad44d4603c60fdbad6f3e58a64eb9043
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jul 25 09:56:01 2011 -0400

    Fix the build on non-Unix

    https://bugzilla.gnome.org/show_bug.cgi?id=655148

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 4 ----
 1 file changed, 4 deletions(-)

commit 3c25f9f609cfa6c1a180c46f267e73bbd87dd542
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 15:08:47 2011 +0200

    GWakeup .gitignore fixes

 docs/reference/glib/tmpl/.gitignore | 1 +
 gthread/tests/.gitignore            | 1 +
 2 files changed, 2 insertions(+)

commit 452b6277d4badf7d471c73555277a5afd3393602
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 14:37:18 2011 +0200

    gtk-doc GWakeup

 docs/reference/glib/glib-docs.sgml    |  1 +
 docs/reference/glib/glib-sections.txt | 10 ++++
 glib/gwakeup.c                        | 93
 ++++++++++++++++++++++++++++++++---
 glib/gwakeup.h                        |  2 +-
 4 files changed, 99 insertions(+), 7 deletions(-)

commit 0a971e46bf4158b7f58ac283db40d212b6f2d274
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 15:02:28 2011 +0200

    GCancellable: port to GWakeup

 gio/gcancellable.c | 235
 ++++++++---------------------------------------------
 1 file changed, 32 insertions(+), 203 deletions(-)

commit 777e40989e66e583e6636e7b80ab8770cf15ff8c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 15:07:33 2011 +0200

    port GMainContext to GWakeup

 glib/gmain.c | 113
 +++++++----------------------------------------------------
 1 file changed, 13 insertions(+), 100 deletions(-)

commit 4026b3317425ea7880930787faeedbe526588b11
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 15:07:16 2011 +0200

    add a couple of testcases for GWakeup

 gthread/tests/Makefile.am |   3 +
 gthread/tests/gwakeup.c   | 268
 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 271 insertions(+)

commit 78545a641cb93811640e95792eb7f87f810e7aea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 15:05:03 2011 +0200

    Add GWakeup

    GWakeup is a utility class to handle the cross-thread signalling needs
    of GMainContext and GCancellable.  It may find some other users
    as well.

    The desire here is to properly hide the implementation details in a
    module which can be properly unit tested and used in GMainContext and
    GCancellable without a rats nest of #ifdef.

 glib/Makefile.am  |   2 +
 glib/glib.h       |   1 +
 glib/glib.symbols |   5 ++
 glib/gwakeup.c    | 157
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gwakeup.h    |  38 +++++++++++++
 5 files changed, 203 insertions(+)

commit 15a1cf804974c3fa526bab8a6b80eb27518313f3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 15:25:13 2011 +0200

    g_unix_open_pipe: fix some bugs

    Fix some bugs in the fallback case of g_unix_open_pipe:

      - close both halves of the pipe on error (not just one)

      - set the cloexec flag on both halves of the pipe (instead of
      settings
        it twice on one half)

 glib/glib-unix.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit aa4d704e632df68be9843074ea8197c30ebc52ed
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 25 15:09:57 2011 +0200

    Windows (mingw32) .gitignore additions

 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 3769c1e1732a7f3889b5d819552c79512571e169
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Mon Jul 25 09:23:51 2011 +0200

    Docs: Fix tiny typo.

 gio/gfileattribute.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e6f37ca472860535606ef0f898f85f3ad6a7167c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 25 11:42:17 2011 +0800

    Update Windows READMEs

    -Tell people about that libFFI is now needed.
    -Tell people not to compile GLib in paths containing spaces.

 README.win32                | 16 +++++++++++-----
 build/win32/vs10/README.txt |  4 +++-
 build/win32/vs9/README.txt  |  4 +++-
 3 files changed, 17 insertions(+), 7 deletions(-)

commit eac8d47e373bd57e3cb117508c0812b53963a732
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jul 24 14:55:05 2011 -0400

    gio/tests/socket: add some basic IPv4 and IPv6 tests

 gio/tests/socket.c | 381
 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 378 insertions(+), 3 deletions(-)

commit aefda965f650c6713ef895a9156dd1297793f1ff
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jul 24 14:52:03 2011 -0400

    GSocket: fix connected state after async connect

    socket->priv->connected was only being set if g_socket_connect()
    succeeded right away; in the case where it returns G_IO_ERROR_PENDING,
    it never got set. Fix that by having g_socket_check_connect_result()
    set it on success.

 gio/gsocket.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit b8a0475e7a2ef6d49e61e7be684bff017ee22fa9
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jul 24 12:41:11 2011 -0400

    update .gitignore

 glib/tests/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 4cb33b158b43b54108b20cb9c3f1143acbef9124
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 23 21:59:49 2011 -0400

    Explicitly unset the session bus address for the peer tests

    Otherwise, we may run into trouble as opening a peer-to-peer
    connection uses a socket client, which uses a proxy resolver
    which may end up using gsettings, whose dconf backend may end
    up using the session bus to talk to dconfd...

 gio/tests/gdbus-peer.c | 2 ++
 1 file changed, 2 insertions(+)

commit d344e69dc291df5e5da15d6e1c1b0ef897fdeea3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 23 21:16:28 2011 -0400

    Properly bring up a session bus for application tests

    As pointed out in bug 644601, session_bus_up() requires
    us to set up environment variables for things to work.

 gio/tests/gapplication.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 1f9e84896bb1621e54fc5d0cb45006400e121043
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 23 21:07:39 2011 -0400

    Fix a typo

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e488cbd24b611e6648cc36049e503aa8d18b9fd6
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Sat Jul 23 18:54:03 2011 +0400

    Updated Russian translation

 po/ru.po | 428
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 236 insertions(+), 192 deletions(-)

commit 9c46740afdb5cf545fbc69bc55be274b8758fecb
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Sat Jul 23 14:52:13 2011 +0200

    [l10n] Updated Italian translation

 po/it.po | 1311
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 705 insertions(+), 606 deletions(-)

commit ae7c48b955cd6979a799574bb92e654081769c62
Author: Vincent Untz <vuntz@gnome.org>
Date:   Thu Jul 21 15:23:00 2011 +0200

    GDesktopAppInfo: Add g_desktop_app_info_get_show_in()

    Necessary for rebasing gnome-menus on top of GDesktopAppInfo.

    https://bugzilla.gnome.org/show_bug.cgi?id=655044

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gdesktopappinfo.c               | 111
 +++++++++++++++++++++++-------------
 gio/gdesktopappinfo.h               |   2 +
 gio/gio.symbols                     |   1 +
 4 files changed, 76 insertions(+), 39 deletions(-)

commit 8ef050f9675e2ee097663c6a436a7b7f7abbe816
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jul 22 13:39:21 2011 -0400

    glib.symbols: Update for expected ABI changes

 glib/glib.symbols | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b79eae5c197aeec8d57f39c0f7bf5d5114068bea
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jul 22 12:41:41 2011 -0400

    glib-2.0.pc: Add -lrt to private libraries to assist static linking

    https://bugzilla.gnome.org/show_bug.cgi?id=654078

 glib-2.0.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8b061e023ce97171d817e07ea7068f567129ae8a
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jul 22 10:31:27 2011 -0400

    Revert addition of g_key_file_has_key_full

    Per IRC discussion, we can just ask bindings to use
    g_key_file_get_value() to test for the existence of a key.

    I left the "fixed" code in the source tree as static because it makes
    more sense to me.

 glib/gkeyfile.c      | 90
 ++++++++++++++++++++++------------------------------
 glib/gkeyfile.h      |  5 ---
 glib/tests/keyfile.c | 16 ----------
 3 files changed, 38 insertions(+), 73 deletions(-)

commit 753948316915e834801347af08b773c24078a3bd
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Jul 22 10:33:47 2011 -0400

    Don't use deprecated G_UNICODE_COMBINING_MARK

 glib/gen-unicode-tables.pl |   2 +-
 glib/gunichartables.h      | 388
 ++++++++++++++++++++++-----------------------
 glib/guniprop.c            |   2 +-
 3 files changed, 196 insertions(+), 196 deletions(-)

commit 804e3ba4dddbcb00279ba0ab1a148606bc10a414
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 15:47:11 2011 +0200

    gitignore tweaks

 docs/reference/glib/tmpl/.gitignore | 1 +
 gobject/tests/.gitignore            | 1 +
 gthread/tests/.gitignore            | 2 ++
 3 files changed, 4 insertions(+)

commit a14f2fa1a0ea2b453be35373f9d4c5d80b842d7d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 13:44:31 2011 +0200

    Rename a few arguments

    To fix header/function/doc-string mismatches.

 glib/gdataset.c | 4 ++--
 glib/gunicode.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 6492548b6f4d1805f7817911207648f0b1eeae19
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 13:41:13 2011 +0200

    Have gtk-doc ignore some #defines

    We prefer to have gtk-doc pick up the function rather than the macro.

 glib/gstdio.h | 2 ++
 glib/gwin32.h | 2 ++
 2 files changed, 4 insertions(+)

commit 5dbc12e9f1477eb699a92b1ef7363b62bdca68eb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 13:25:32 2011 +0200

    Replace @Varargs with @...

    to make gtk-doc happy.

 glib/gerror.c     |  4 ++--
 glib/gfileutils.c |  4 ++--
 glib/gmarkup.c    |  2 +-
 glib/gmessages.c  |  4 ++--
 glib/gprintf.c    |  8 ++++----
 glib/grel.c       | 10 +++++-----
 glib/gstrfuncs.c  |  6 +++---
 glib/gstring.c    |  8 ++++----
 glib/gtestutils.c |  6 +++---
 9 files changed, 26 insertions(+), 26 deletions(-)

commit ea63f16c59b661d080c54c44147cedb4ad27e102
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 12:59:44 2011 +0200

    Remove duplicate 'struct real_pcre' declaration

    The redundant forward declaration of 'struct real_pcre' before the
    typedef was tripping up gtk-doc.  Remove it.

 glib/pcre/pcre.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 668c399077b48ef49d2fdb6eb808226c9f127e70
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 12:59:11 2011 +0200

    Add deprecation guard to G_UNICODE_COMBINING_MARK

    ...since it's deprecated now and documented as such.

 glib/gunicode.h | 2 ++
 1 file changed, 2 insertions(+)

commit 4f36eb0f6d1eed7b720a53114e60c8d334782fab
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 12:57:59 2011 +0200

    Reword some docs comments to avoid 'Returns ...'

    If gtk-doc sees 'Returns ...' written in the text of the documentation
    for a macro, it thinks that you are talking about the return value.

    Avoid doing that and use 'Returns:' explicitly if we mean to.

 glib/gmessages.h | 21 +++++++++++++--------
 glib/gutils.h    | 10 +++++++---
 2 files changed, 20 insertions(+), 11 deletions(-)

commit a0ed2537184f35e9cdde9ac2771f32667db570e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 12:57:06 2011 +0200

    move 'Since:' tags down

    gtk-doc wants the Since: tag to be the absolute last thing in the docs
    comment.

 glib/gkeyfile.c | 3 +--
 glib/gmain.c    | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

commit eec69a75eeddc9e298f218e5b3e4bb5084adfe6f
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Thu Jul 14 10:51:06 2011 +0200

    Add g_ptr_array_new_full

    Fixes bug #654450

 docs/reference/glib/glib-sections.txt |  1 +
 glib/garray.c                         | 28 ++++++++++++++++++++++++++++
 glib/garray.h                         |  2 ++
 3 files changed, 31 insertions(+)

commit 7df304a2d8c325726a13e072bcd1b647943928eb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 09:48:34 2011 +0200

    Bump the version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a6c936c45fd959117e24a4e7b6f01f124963bf72
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 22 08:55:35 2011 +0200

    Release 2.29.14

 NEWS         | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 50 insertions(+), 1 deletion(-)

commit b30ca6e5a57fd40cf8f94ef2869e742498bc0577
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Jul 21 16:05:43 2011 -0400

    Bug 655076 - Our normalization code misses some
    Full_Composition_Exclusion=True.

 glib/gen-unicode-tables.pl |  4 ++++
 glib/tests/unicode.c       | 16 ++++++++++++++++
 2 files changed, 20 insertions(+)

commit c404dbed11bc8bf4212d15719ef3a87ebf76efff
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jul 21 16:03:27 2011 -0400

    gdbus-codegen: Add support for new org.gtk.GDBus.C.UnixFD annotation

    Also add convenience _with_unix_fd_list variants to GDBusConnection,
    GDBusProxy and GDBusMethodInvocation types to easily support this.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml |  21 +-
 docs/reference/gio/gio-sections.txt  |   7 +
 gio/gdbus-codegen/codegen.py         | 148 ++++++++--
 gio/gdbusconnection.c                | 557
 ++++++++++++++++++++++++-----------
 gio/gdbusconnection.h                |  30 ++
 gio/gdbusmethodinvocation.c          |  76 +++--
 gio/gdbusmethodinvocation.h          |   3 +
 gio/gdbusproxy.c                     | 495
 ++++++++++++++++++++++---------
 gio/gdbusproxy.h                     |  23 ++
 gio/gio.symbols                      |   7 +
 gio/tests/test-codegen.xml           |   8 +
 11 files changed, 1012 insertions(+), 363 deletions(-)

commit 7b22a8308f2a914b704051cd772edfa15e9a3b04
Author: Dan Williams <dcbw@redhat.com>
Date:   Wed Jul 20 17:28:20 2011 -0500

    Document how to free return values from g_key_file_get_*_list

    Makes the docs consistent with the string list getters.  Add
    GOI annotations while we're at it.

 glib/gkeyfile.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit 3af40c204dab8fbd3bec0dceb7cbed0896178a4b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Jul 21 10:30:36 2011 -0400

    Bug 655025 - #define G_UNICODE_SPACING_MARK G_UNICODE_COMBINING_MARK

 glib/gunicode.h | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

commit 03f673abc20693b907d5e4f1deb775737774d7ae
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jul 21 09:43:59 2011 -0400

    GDBus: Don't convert GVariant type 'h' to gint

    The code-generator already uses GVariant* so generated code didn't
    really work at all. We want that instead of gint to avoid confusion
    because a 'h' instance is an _index_ into a GUnixFDList, not a file
    descriptor.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusutils.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

commit 419bfe325c40604268dbb7fa050e355c9681577e
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jul 21 09:32:38 2011 -0400

    gdbus-codegen: Use G_TYPE_STRV/gchar** for GVariant type 'ao'

    This is possible now that we have better support for object path
    arrays, see

     http://git.gnome.org/browse/glib/commit/?id=19878998bc386db78614f1c92ff8524a81479c7b

    Note that this breaks the ABI of generated code but since
    gdbus-codegen(1) has never yet been in a stable GLib release, this is
    fine.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml |  3 ++-
 gio/gdbus-codegen/codegen.py         |  2 ++
 gio/gdbus-codegen/dbustypes.py       |  8 ++++++++
 gio/gdbusutils.c                     | 15 ++++++++++++++-
 gio/tests/gdbus-test-codegen.c       | 24 +++++++++++++-----------
 5 files changed, 39 insertions(+), 13 deletions(-)

commit b34eac204f54cefaf8a702a96dc537144f8c2d92
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Jul 21 10:22:01 2011 +0100

    g_atomic_int_add: document that the return value is new

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=654988
    Reviewed-by: Matthias Clasen <mclasen@redhat.com>

 glib/gatomic.c | 3 +++
 1 file changed, 3 insertions(+)

commit 79b80579282b2749a9eafe8b95845f434db95969
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 21 09:21:18 2011 +0200

    Advise against using GPrivate

    GStaticPrivate is really a lot better in almost every way.

 glib/gthread.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 706b2751166bb8590e41800d0b3c3056ba529daa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 21 08:33:50 2011 +0200

    GParam: try to avoid further invalid uses

    In an attempt to avoid some potential future abuses of the GParamSpec
    API, qualify the 'name' field of the structure as 'const' and add a
    comment noting that it is an interned string.

    This is a theoretical API break, but it will only ever result in
    warnings -- and even then, only if you were already doing something
    questionable.

    Clean up some of the warnings that were caused internally in gparam.c
    from these changes.

 gobject/gparam.c | 39 ++++++++++++++++++++++-----------------
 gobject/gparam.h |  2 +-
 2 files changed, 23 insertions(+), 18 deletions(-)

commit 9bcb3d74572cf99a17ff5a1fd4becb1a1136291c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Jul 20 22:11:08 2011 -0400

    Add g_unicode_script_from_iso15924()

    And adjust g_unicode_script_to_iso1592().

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gunicode.h                       |  1 +
 glib/guniprop.c                       | 43
 +++++++++++++++++++++++++++++++++--
 glib/tests/unicode.c                  |  9 ++++++--
 5 files changed, 51 insertions(+), 4 deletions(-)

commit a5e94cbd36304ac48e20599ad39fd4bfbd6a5cbe
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 21 02:56:05 2011 +0200

    glocalfile: Fix compilation without USE_STATFS and USE_STATVFS

 gio/glocalfile.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 7e03b28870a514e655f31298d31158a69f11de40
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Jul 20 19:04:29 2011 -0400

    Bug 648271 - Add g_unicode_script_to_iso15924()

    Add g_unicode_script_to_iso15924() and tests.

 docs/reference/glib/glib-sections.txt |   1 +
 glib/glib.symbols                     |   1 +
 glib/gunicode.h                       |   2 +
 glib/guniprop.c                       | 146
 +++++++++++++++++++++++++++++++++-
 glib/tests/unicode.c                  |   8 ++
 5 files changed, 157 insertions(+), 1 deletion(-)

commit d8d67d1596ed9fd394bb0427e9154bfad9b4b504
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Jul 20 22:32:38 2011 +0200

    Updated Spanish translation

 po/es.po | 207
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 133 insertions(+), 74 deletions(-)

commit e43a2969114e91332b127a479bcb078be6649353
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Wed Jul 20 22:26:59 2011 +0200

    Updated Spanish translation

 po/es.po | 637
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 316 insertions(+), 321 deletions(-)

commit 8cadef1a88abf77569da2e65894a855b0f1376d4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 21:49:16 2011 +0200

    Change order of GFormatSizeFlags

    David requested that I change the order of the flags.

    Also, assign numerical values to the flags in the usual way.  This
    wasn't a bug yet, but only by chance.

 glib/gfileutils.c | 6 +++---
 glib/gfileutils.h | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

commit c26462ab98e47fd629177d52984b69055f8fe37a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 21:47:00 2011 +0200

    g_format_size: just use GString

    Matthias wasn't too impressed by the homebrew stack-allocated string
    building I
    was doing.

    Switch to GString.

 glib/gfileutils.c | 81
 +++++++++++++++++++++++--------------------------------
 1 file changed, 34 insertions(+), 47 deletions(-)

commit 4aff6119812bb1dac40a6fca4833dab0520148d9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 21:30:03 2011 +0200

    g_format_size: Return 'gchar' instead of 'char'

    I meant to do that in the first place.

 glib/gfileutils.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ef3e5917ca1239b39db2cb433c4306d0152f18f5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 19:58:43 2011 +0200

    [ast, es, fr, nn] Update byte unit translations

    The Asturian, French, Norwegian Nynorsk and Spanish translations
    incorrectly translated "MB" and friends to "MiB" (french: "Mio"), etc.

    This was in response to the incorrect use of "MB" in the (now
    deprecated) g_format_size_for_display() function.

    These strings are now used (correctly) in g_format_size(), so I have
    updated the translations accordingly.

    Additionally, the Norwegian Nynorsk translation was incorrectly
    translating several larger units to "KiB", so that has been
    corrected as
    well.

 po/ast.po |  6 +++---
 po/es.po  | 12 ++++++------
 po/fr.po  | 12 ++++++------
 po/nn.po  | 12 ++++++------
 4 files changed, 21 insertions(+), 21 deletions(-)

commit afd1e3697065c1bd23fe9a1cacf43d8744d0bc9b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 19:44:39 2011 +0200

    Change GLib size units policy

    This commit changes GLib size units policy.  We now prefer SI
    units and
    allow for use of proper IEC units where desired.

    g_format_size_for_display() which incorrectly mixed IEC units with SI
    suffixes is left unmodified, but has been deprecated.

    g_format_size() has been introduced which uses SI units and suffixes.

    g_format_size_full() has also been added which takes a flags
    argument to
    allow for use of IEC units (with correct suffixes).  It also
    allows for
    a "long format" output which includes the total number of bytes.  For
    example: "238.5 MB (238,472,938 bytes)".

 docs/reference/glib/glib-sections.txt |   5 +
 glib/gfileutils.c                     | 193
 ++++++++++++++++++++++++++++++++++
 glib/gfileutils.h                     |  13 +++
 glib/glib.symbols                     |   2 +
 glib/tests/fileutils.c                |  12 +++
 5 files changed, 225 insertions(+)

commit 90cccf14b2b1dfea574d35c605669c4773d6eba6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 17:30:56 2011 +0200

    g_format_size_for_display: some internal renames

    Rename the size constants from KILOBYTE to KIBIBYTE (etc.) since
    that's
    what they really are.

    This is a strictly internal change with no externally-visible
    effect in
    terms of API or functionality.

 glib/gfileutils.c | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

commit 4e015d36a06a896c8f5ec575c1b02fedefe47397
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Fri Jul 1 01:59:13 2011 +0200

    gdbusintrospection: fix introspection annotations

    g_dbus_interface_info_lookup_* were incorrectly considered
    (transfer full) by introspected bindings, and this caused memory
    corruptions.

    https://bugzilla.gnome.org/show_bug.cgi?id=622921

 gio/gdbusintrospection.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 4e213f385b45d8ce5d2fdb612d3706e214a7b368
Author: Vincent Untz <vuntz@gnome.org>
Date:   Wed Jul 20 09:22:12 2011 +0200

    Stop using deprecated g_unicode_canonical_decomposition()

    https://bugzilla.gnome.org/show_bug.cgi?id=654948

 glib/guniprop.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 33c977917c1dbcfec56168083dc05837da8ea57c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 16:34:55 2011 +0200

    GVariant: document avoiding g_variant_iter_loop

    The choice between g_variant_iter_next() and g_variant_iter_loop()
    is a
    bit confusing for some people.  Add a note to the documentation of
    g_variant_iter_loop() to clarify that it should be avoided except in a
    few specific cases.

 glib/gvariant.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 19878998bc386db78614f1c92ff8524a81479c7b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 13:11:19 2011 +0200

    GVariant: better support for object path arrays

    Add G_VARIANT_TYPE_OBJECT_PATH_ARRAY along with accessor functions
    g_variant_new_objv, g_variant_get_objv and g_variant_dup_objv.
    Also add
    support for '^ao' and '^a&o' format strings for g_variant_new() and
    g_variant_get().

    https://bugzilla.gnome.org/show_bug.cgi?id=654955

 docs/reference/glib/glib-sections.txt    |   4 +
 docs/reference/glib/gvariant-varargs.xml |  39 ++++++-
 glib/glib.symbols                        |   3 +
 glib/gvariant.c                          | 168
 +++++++++++++++++++++++++++++--
 glib/gvariant.h                          |   6 ++
 glib/gvarianttype.h                      |   7 ++
 glib/tests/gvariant.c                    |  53 ++++++++++
 7 files changed, 270 insertions(+), 10 deletions(-)

commit c841c2ce3fda6f754c88ae2c9099f36dff2f0814
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 14:04:52 2011 +0200

    GSettings: don't abort on missing schemas

    Give a g_critical instead.

 gio/gsettings.c       | 77
 ++++++++++++++++++++++++++++++++++++++++-----------
 gio/gsettingsschema.c |  5 +++-
 gio/tests/gsettings.c | 26 +++++++++++++++++
 3 files changed, 91 insertions(+), 17 deletions(-)

commit 06941419e347a8a37711e65873b6c59729873ddc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 10:52:07 2011 +0200

    Add some blacklisted mount directories

    Another long-carried Debian patch.  No reason that we should not have
    these few extra items in the (already long) upstream list.

 gio/gunixmounts.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit dbd0d63b6b45036c2b485b8e1993edf97970afd2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 20 10:49:48 2011 +0200

    wait longer in threadpool test case

    If we are going to fail an assert, wait for a bit longer before
    doing so
    (up to 5 seconds, if needed).

    This is a long-standing Debian patch to fix build failures on really
    slow machines.

 tests/threadpool-test.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 265f245376a3af5a006854ee96a484cf30fbc170
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 19 23:04:04 2011 -0400

    post-release bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c073ce3a3b8fb8282b244dd8e8dbb6fa8676e84e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 19 23:02:05 2011 -0400

    2.29.12

 NEWS         | 35 +++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 36 insertions(+), 1 deletion(-)

commit 4c64e75ec59317cf36d2bb9765c56477acf2acd7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 19 20:40:28 2011 -0400

    Drop the warnings.sgml template

 docs/reference/glib/tmpl/.gitignore    |   1 +
 docs/reference/glib/tmpl/warnings.sgml | 236
 ---------------------------------
 glib/gbacktrace.c                      |  63 +++++++++
 glib/gbacktrace.h                      |  18 +--
 glib/gmessages.c                       | 124 +++++++++++++----
 glib/gmessages.h                       |  81 +++++++++--
 6 files changed, 238 insertions(+), 285 deletions(-)

commit d1e5161ab0206adc6f17325152e337d44ae6ec73
Author: Holger Berndt <hb@gnome.org>
Date:   Thu Jun 3 03:22:36 2010 +0200

    Document how to unset attributes

    Unsetting won't work on all attributes. Currently, only
    metadata attributes are supported.

    https://bugzilla.gnome.org/show_bug.cgi?id=620423

 gio/gfile.c | 3 +++
 1 file changed, 3 insertions(+)

commit ec98953e42a20061427b20681d1e31501907e2fa
Author: Johan Dahlin <johan@gnome.org>
Date:   Tue Jul 19 14:18:10 2011 -0300

    Pass in NULL instead of g_cclosure_marshal_generic

    NULL is now a shortcut for g_cclosure_marshal_generic, so avoid
    referencing it directly.

    https://bugzilla.gnome.org/show_bug.cgi?id=654917

 gio/gactiongroup.c             | 4 ++--
 gio/gapplication.c             | 4 ++--
 gio/gdbusauthobserver.c        | 2 +-
 gio/gdbusconnection.c          | 2 +-
 gio/gdbusinterfaceskeleton.c   | 2 +-
 gio/gdbusobjectmanager.c       | 4 ++--
 gio/gdbusobjectmanagerclient.c | 4 ++--
 gio/gdbusobjectskeleton.c      | 2 +-
 gio/gdbusproxy.c               | 4 ++--
 gio/gdbusserver.c              | 2 +-
 gio/gfilemonitor.c             | 2 +-
 gio/gmountoperation.c          | 6 +++---
 gio/gsettings.c                | 4 ++--
 gio/gsocketservice.c           | 2 +-
 gio/gthreadedsocketservice.c   | 2 +-
 gio/gtlsconnection.c           | 2 +-
 16 files changed, 24 insertions(+), 24 deletions(-)

commit fa2861e3b6109e002b68aa105b5ecbcba88724c1
Author: Johan Dahlin <johan@gnome.org>
Date:   Tue Jul 12 13:39:45 2011 -0300

    Use a generic marshaller if one is not specified

    Since g_cclosure_marshal_generic is always enabled, it makes
    sense to always use that instead of using generated ones.

    https://bugzilla.gnome.org/show_bug.cgi?id=654917

 gobject/gsignal.c | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

commit fe6dad271b06e6243d17137c2e0991f56a256cca
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 19 16:12:30 2011 +0200

    GSettings: remove key length restrictions

    The key length now stands effectively unlimited at 1024 characters.

    https://bugzilla.gnome.org/show_bug.cgi?id=654536

 gio/glib-compile-schemas.c | 4 ++--
 gio/gsettings.c            | 3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

commit 9fd0f6c8e23e8cd8353039c99fa73583a7892b4f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 19 00:02:57 2011 -0400

    Fix doc formatting errors

 glib/gunicode.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit c9379bcfe1423c43b09ea7e979242a3621dab2b2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 18 23:58:32 2011 -0400

    Move GError docs inline and ditch template

 docs/reference/glib/tmpl/.gitignore           |   1 +
 docs/reference/glib/tmpl/error_reporting.sgml | 531
 --------------------------
 glib/gerror.c                                 | 324 ++++++++++++++++
 glib/gerror.h                                 |   9 +
 4 files changed, 334 insertions(+), 531 deletions(-)

commit 09e2d2a61c3e9f93f61f5d94b3976bbc4a16839a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 18 23:23:17 2011 -0400

    Move Unicode docs inline, ditch template

 docs/reference/glib/tmpl/.gitignore   |   1 +
 docs/reference/glib/tmpl/unicode.sgml | 908
 ----------------------------------
 glib/gunicode.h                       | 424 +++++++++++++---
 glib/gunidecomp.c                     |  23 +
 4 files changed, 372 insertions(+), 984 deletions(-)

commit 2358616d6ad5c4db4fb037550eb40aeb8886e7ec
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 18 23:00:09 2011 -0400

    Remove queue.sgml

 docs/reference/glib/tmpl/queue.sgml | 438
 ------------------------------------
 1 file changed, 438 deletions(-)

commit 615977d337c7ba776ac2eda6c688bf6f69316c4d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Jul 18 18:00:40 2011 -0400

    Simplify Hangul Jamo decomposition

    The algorithm is not copy/paste from Unicode anymore, but it's easy
    enough to follow the logic.

 glib/gunidecomp.c | 62
 +++++++++++++++++--------------------------------------
 1 file changed, 19 insertions(+), 43 deletions(-)

commit 0584fe33de86f9fd8effe006d911cf5948b4ad05
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Jul 18 17:52:40 2011 -0400

    Bug 654651 - Better g_unicode_canonical_decomposition()

    Add g_unichar_fully_decompose().
    Deprecate g_unicode_canonical_decomposition().

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  3 +-
 glib/gunicode.h                       |  9 ++--
 glib/gunidecomp.c                     | 78
 ++++++++++++++++++++++++++++++++---
 glib/tests/unicode.c                  | 66 ++++++++++++++++++++++++++++-
 5 files changed, 147 insertions(+), 10 deletions(-)

commit 7f289c924bdc78bff9b5a96cf9e7c0ed943d64c6
Author: Patrick Welche <prlw1@quantz.inf.phy.cam.ac.uk>
Date:   Mon Jul 18 17:58:01 2011 +0100

    Avoid failing arguments to statfs() test on systems which use statvfs.

    - move choice of statfs vs statvfs from gio/glocalfile.c to
    configure.ac
    - if statvfs is the choice, then don't check number of arguments
    to statfs()
    - use choice in gio/gunixmounts.c as well

    https://bugzilla.gnome.org/show_bug.cgi?id=617949

 configure.ac      | 30 +++++++++++++++++++++++++++++-
 gio/glocalfile.c  | 22 ----------------------
 gio/gunixmounts.c | 32 +++++++++++++++++++++++++++++---
 3 files changed, 58 insertions(+), 26 deletions(-)

commit 75b30dc51c3926392483094a6228a3646a43e798
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jul 18 14:10:35 2011 +0200

    gtester: Count inability to run a test in a binary as a failure

    Previously, when a binary did not run a single test - for whatever
    reason, from the binary not existing to the binary not using the
    gtester
    framework - no failures were recorded. Now we record a non-successful
    run of a binary that did not start any tests as a failure, too.

    Note that this does not change the behavior of any binaries that exit
    successfully or that report the start of any gtester test.

 glib/gtester.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 4a25d6002341df796e13643695478a4ecb4c7a49
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jul 18 13:39:36 2011 +0200

    gtester: Return a failure exit code when a test fails

    Previously, gtester used the testcase_fail_count as the number
    of tests
    that failed in the latest run testcase, but then use that as the
    return
    value of main().

    Now we count the failed testcases of the whole run.

 glib/gtester.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit dd1316ba92eba170bcba0425ec1b55faeb2bceed
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Jul 18 13:13:11 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 693
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 362 insertions(+), 331 deletions(-)

commit adc325fac0b1b8b0a8c21384f50fc759d2800572
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 17 23:50:31 2011 -0400

    Move version docs inline

 docs/reference/glib/tmpl/.gitignore   |   2 +
 docs/reference/glib/tmpl/version.sgml | 115
 ----------------------------------
 glib/gutils.c                         |  40 ++++++++++++
 glib/gutils.h                         |  18 ++++++
 4 files changed, 60 insertions(+), 115 deletions(-)

commit 20cd4936b9d16ee8121d7082d359a76af65081db
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 17 23:38:58 2011 -0400

    Move GQueue docs inline

 glib/gqueue.c | 25 ++++++++++++++++
 glib/gqueue.h | 91
 +++++++++++++++++++++++++++++++++++++----------------------
 2 files changed, 82 insertions(+), 34 deletions(-)

commit d3b09eee75f0f433779b0b6a6d9222453bc9df16
Author: Tommi Vainikainen <thv@iki.fi>
Date:   Mon Jul 18 00:45:45 2011 +0300

    Updated Finnish translation

 po/fi.po | 1485
 +++++++++++++++++++++++++-------------------------------------
 1 file changed, 603 insertions(+), 882 deletions(-)

commit d6c30e1766c975dd79e6f252d73c6c0581b64b01
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 14 18:08:25 2011 +0200

    GParamSpec: intern property names

    Make it so that the ->name property on all GParamSpec objects is an
    interned string.

    https://bugzilla.gnome.org/show_bug.cgi?id=654627

 gobject/gparam.c | 18 ++++++++++++------
 gobject/gparam.h |  2 +-
 2 files changed, 13 insertions(+), 7 deletions(-)

commit 7041b701dd9fd4f617ca762860447d8fc015a2ab
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Jul 14 16:53:12 2011 -0400

    Remove comp_step_table table

    Reuse the pre-existing composition data.

 glib/gen-unicode-tables.pl |   15 +-
 glib/gunidecomp.c          |   66 +--
 glib/gunidecomp.h          | 1020
 --------------------------------------------
 3 files changed, 3 insertions(+), 1098 deletions(-)

commit 89a5d17d58c795f835642483bfbd9af6cf09f9fe
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Jul 14 16:26:58 2011 -0400

    Document, that the second part of a decompose() wouldn't decompose()

    This is not directly documented in Unicode, or I couldn't find it,
    but the test I just added confirms that it is currently the case.

 glib/gunidecomp.c    |  7 +++++++
 glib/tests/unicode.c | 16 ++++++++++++++++
 2 files changed, 23 insertions(+)

commit f4cf6c3db03440bb42771cf4b43f6c0f3b688e5f
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Jul 14 16:22:16 2011 -0400

    [test] Move non-utf8 tests into unicode.c

 glib/tests/Makefile.am |   3 +
 glib/tests/unicode.c   | 548
 +++++++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/utf8-misc.c | 513
 ---------------------------------------------
 3 files changed, 551 insertions(+), 513 deletions(-)

commit cff4b5b3a3bceeccd63a895ed795c31f7a20fcf0
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Jul 14 16:19:46 2011 -0400

    Remove stale comment

    Unicode guarantees that.

 glib/gunidecomp.c | 3 ---
 1 file changed, 3 deletions(-)

commit a73c66b1344c852c18279ba43e951cc71c5839a3
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Jul 14 16:18:30 2011 -0400

    Add tests for Unicode canonical composition/decomposition

    Also update compose()/decompose() API corner cases and docs.

 glib/gunidecomp.c      |  25 ++++++++++--
 glib/tests/utf8-misc.c | 107
 ++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 128 insertions(+), 4 deletions(-)

commit 7ad2f0eb803dee72beb49dc9a22d2b9578d2e8b8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Jul 13 23:18:53 2011 -0400

    Move declarations around

    So g_unichar API comes before g_utf8.

 glib/gunicode.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 761a1841eebedefeb7dc3675e442a56309f347c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 13 22:07:11 2011 -0400

    Bug 654195 - Add g_unichar_compose() and g_unichar_decompose()

 docs/reference/glib/glib-sections.txt |    2 +
 glib/gen-unicode-tables.pl            |   40 +
 glib/glib.symbols                     |    2 +
 glib/gunicode.h                       |    9 +
 glib/gunidecomp.c                     |  189 +-
 glib/gunidecomp.h                     | 3080
 +++++++++++++++++++++++++++++++++
 6 files changed, 3321 insertions(+), 1 deletion(-)

commit 8c7de592ff961410de0e8507d2334b4f18bc9a58
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Wed Jul 13 23:36:37 2011 +0300

    Updated Belarusian translation.

 po/be.po | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit f45631bebc62b60dec1e1021923a0dc27d9e2be3
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Wed Jul 13 23:30:49 2011 +0300

    Updated Belarusian translation.

 po/be.po | 44 +++++++++++++++++++++-----------------------
 1 file changed, 21 insertions(+), 23 deletions(-)

commit 09bba9fc60eb5d8c3156a0e907856a12037fe36a
Author: Aurimas Černius <aurisc4@gmail.com>
Date:   Tue Jul 12 23:21:25 2011 +0300

    Updated Lithuanian translation

 po/lt.po | 2113
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 1095 insertions(+), 1018 deletions(-)

commit 8926b612c8fce41db5bf72f87cce54f16079cd09
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Wed Jul 13 02:51:03 2011 +0900

    Updated Korean translation

 po/ko.po | 1172
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 626 insertions(+), 546 deletions(-)

commit 8f5e0cd24016cdf852a809dfb7b1356328542201
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 12 02:56:57 2011 +0200

    GDBusInterfaceSkeleton: fix odd use of floating refs

    The get_properties() function was documented as returning a floating

    Switch it over to returning a normal reference and patch a couple of
    uses.

    https://bugzilla.gnome.org/show_bug.cgi?id=654394

 gio/gdbusinterfaceskeleton.c   |  5 ++---
 gio/gdbusinterfaceskeleton.h   |  2 +-
 gio/gdbusobjectmanagerserver.c | 18 ++++++++++--------
 3 files changed, 13 insertions(+), 12 deletions(-)

commit 58c247e51bfc7d7ff4ed3b351ba4fdab0f012bac
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 11 14:27:53 2011 +0200

    GVariant: add g_variant_take_ref()

    This function implements the following logic:

      if (g_variant_is_floating (value))
        g_variant_ref_sink (value);

    which is used for consuming the return value of callbacks that may or
    may not return floating references.

    This patch also replaces a few instances of the above code with
    the new
    function (GSettings, GDBus) and lifts a long-standing restriction
    on the
    use of floating values as the return value for signal handlers by
    improving g_value_take_variant().

    https://bugzilla.gnome.org/show_bug.cgi?id=627974

 docs/reference/glib/glib-sections.txt |  1 +
 gio/gdbus-codegen/codegen.py          |  3 +--
 gio/gdbusconnection.c                 |  6 ++---
 gio/gsettings.c                       |  3 +--
 glib/glib.symbols                     |  1 +
 glib/gvariant-core.c                  | 51
 ++++++++++++++++++++++++++++++++++-
 glib/gvariant.h                       |  1 +
 gobject/gvaluetypes.c                 | 14 +++++-----
 8 files changed, 64 insertions(+), 16 deletions(-)

commit 2121e56ea7399091f6ef169a1da8a11aaa64b5c3
Author: Rudolfs Mazurs <rudolfs.mazurs@gmail.com>
Date:   Tue Jul 12 16:29:33 2011 +0300

    Updated Latvian translation.

 po/lv.po | 3578
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 2288 insertions(+), 1290 deletions(-)

commit bbe7eb09ec71b519adf50ef35bee28d5a1a8e1bd
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Tue Jul 12 12:09:31 2011 +0200

    Docs: Fixed a typo.

 gio/gappinfo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7654a848e2b575eaf278fafe05aa5be1b3afdc26
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Tue Jul 5 14:30:31 2011 +0100

    tests: fix glib_translations_work()

    If setlocale() to our test locale fails, translations
    won't work either.

    https://bugzilla.gnome.org/show_bug.cgi?id=654017

 gio/tests/gsettings.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 5eee90fbbc76ee129d7f846633a667889149ab03
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Thu Apr 15 08:23:00 2010 +0200

    add g_regex_escape_nul

    The function can be used to let regex compile non-NUL-terminated
    strings without redesigning the way the pattern is stored in GRegex
    objects and retrieved with g_regex_get_pattern.

    https://bugzilla.gnome.org/show_bug.cgi?id=615895

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gregex.c                         | 68
 +++++++++++++++++++++++++++++++++++
 glib/gregex.h                         |  2 ++
 glib/tests/regex.c                    | 42 ++++++++++++++++++++++
 5 files changed, 114 insertions(+)

commit 653c2f701a3e0a07a808f4e4fca7b846c50c93fa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 10 23:55:52 2011 -0400

    Fix gtk-doc cross-linking among glib/gobject/gio

    Patch by Daniel Macks, bug 644687.

 docs/reference/gio/Makefile.am  | 3 +++
 docs/reference/glib/Makefile.am | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit 2caddda5341a9a89ccaff4fdb04d638d54a8c635
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 10 23:11:30 2011 -0400

    Take out the timeout from the large-message test

    This is an attempt to make the test not fail on build slaves,
    which currently getting a timeout error here.

 gio/tests/gdbus-connection-slow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 436dbe77444f54bb8fcf7e55085dc60e1fc627a3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 10 21:57:45 2011 -0400

    Don't test negative values in ulong conversions

    This is failing on 32bit build slaves.

 gobject/tests/param.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 7c517bf3501ae68c4a87c8a126955281ad2393b2
Author: Martin Storsjo <martin@martin.st>
Date:   Wed Jul 6 16:41:44 2011 +0300

    Don't needlessly use "echo -e"

    The -e parameter to echo isn't recognized by echo in POSIX sh,
    but isn't needed when no escaped characters need to be
    interpreted.

    This fixes building glib with a mingw cross compiler on Mac OS X.

    https://bugzilla.gnome.org/show_bug.cgi?id=654085

 gio/Makefile.am     | 2 +-
 glib/Makefile.am    | 2 +-
 gmodule/Makefile.am | 2 +-
 gobject/Makefile.am | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 98b667d052b1274f80b8898a32d0753e9e2e5c1a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 10 20:42:58 2011 -0400

    Optimize g_[s]list_free_full a bit

    No need to iterate the list twice.
    Proposed by Luiz Augusto von Dentz,
    http://bugzilla.gnome.org/show_bug.cgi?id=653935

 glib/glist.c  | 11 ++++++++---
 glib/gslist.c | 17 +++++++++++------
 2 files changed, 19 insertions(+), 9 deletions(-)

commit 182ed958618a098895eb07959c0fb77eb5dcd13c
Author: Colin Walters <walters@verbum.org>
Date:   Sun Jul 10 12:19:15 2011 -0400

    GCancellable: Make eventfd() fall back to pipes on EINVAL too

    https://bugzilla.gnome.org/show_bug.cgi?id=654232

 gio/gcancellable.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 6079443b4871040b40271d078311500e51f5ec69
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Jul 8 16:15:52 2011 +0100

    docs: G_GNUC_DEPRECATED_FOR was added in Glib 2.26

 docs/reference/glib/tmpl/macros_misc.sgml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a3557577ef15054a062b0a42363f9b1eaf50ae68
Author: Muhammet Kara <muhammet.k@gmail.com>
Date:   Fri Jul 8 01:09:03 2011 +0300

    [l10n]Updated Turkish translation

 po/tr.po | 1274
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 654 insertions(+), 620 deletions(-)

commit 7e855ef4616c22210354b3ac1d2d48808fa02b16
Author: Abduxukur Abdurixit <abdurixit@gmail.com>
Date:   Thu Jul 7 16:31:17 2011 +0200

    Added UG translation

 po/ug.po | 439
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 218 insertions(+), 221 deletions(-)

commit c2dc66ccf2719df9813b0ab97f22af166770f944
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed Jul 6 22:13:05 2011 +0100

    Move documentation to inline comments: spawn

 docs/reference/glib/tmpl/.gitignore |   1 +
 docs/reference/glib/tmpl/spawn.sgml | 198
 ------------------------------------
 glib/gspawn.c                       |   9 ++
 glib/gspawn.h                       |  82 +++++++++++++++
 glib/gstring.h                      |  12 +++
 5 files changed, 104 insertions(+), 198 deletions(-)

commit 0e27a71899e7e08075e65cfdfa8b73fd3cb00197
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed Jul 6 21:49:55 2011 +0100

    Move documentation to inline comments: conversions

 docs/reference/glib/tmpl/.gitignore       |   1 +
 docs/reference/glib/tmpl/conversions.sgml | 218
 ------------------------------
 2 files changed, 1 insertion(+), 218 deletions(-)

commit 37ab5ced317342137c60c90feab26e1ac69b6285
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 7 17:15:17 2011 -0400

    g_output_stream_splice: deal with overflow

    On 32-bit machines in particular, bytes_written may overflow a gssize.
    Notice when that happens and just return G_MAXSSIZE instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=649246

 gio/goutputstream.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

commit 3b4a42d631b987714c1062c0c879da30fd40c4c7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jul 6 09:58:37 2011 +0800

    Revert distribution of build/win32/setup.py

    Revert commit on distribution of this file as it is meant to be
    used in
    a GIT checkout only.

 build/win32/Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit f18ba785cad59cbcae640d30b4cc40af9f020310
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jul 6 08:28:57 2011 +0800

    Add build/win32/setup.py to distribution

 build/win32/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c83c91a57486fc684ca3d884d6e288972e8b82a7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jul 6 08:25:41 2011 +0800

    Bug 653841: Update README.win32 and VS README.txt's

    This relates to my previous commit titled "add a script to generator
    files for building" on behalf of Shixin Zeng.

    Tell people about the availability of a python script to create the
    necessary files for a Visual C++ build from a GIT checkout.

    This is done with the courtesy of Shixin Zeng's python script
    which does
    the job and eliminates the troubles of getting a suitable shell
    environment
    to do the "make dist" job (which is especially not easy on Windows
    itself!)

 README.win32                | 705
 ++++++++++++++++++++++----------------------
 build/win32/vs10/README.txt |  11 +-
 build/win32/vs9/README.txt  |  11 +-
 3 files changed, 372 insertions(+), 355 deletions(-)

commit 004e2f060fa1865c8c14fdd399c5f8b3d7048289
Author: Shixin Zeng <zeng.shixin@gmail.com>
Date:   Wed Jun 29 00:04:14 2011 -0500

    add a script to generator files for building

    Signed-off-by: Chun-wei Fan <fanchunwei@src.gnome.org>

 build/win32/setup.py | 366
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 366 insertions(+)

commit 65c6ebddee9f913778c1484b9319229486bf5134
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 5 11:22:11 2011 -0400

    Post-release version bump

    Up to 2.29.11

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 89df070c1f0893e4a973aa563213dab2d192d83d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 5 11:21:40 2011 -0400

    2.29.10

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5f7be6c67d2bda1f6bac2e53c696b90a5a0c8353
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 5 10:20:48 2011 -0400

    build: Use --disable-maintainer-mode for distcheck

    Otherwise due to weird things like gtk-doc.make copying files back
    into the source directory, we may run into the maintainer mode
    bits mistakenly attempting to rerun.

 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e9d0c82252dab878ea3e631c48c40e97aa4f42ea
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jul 5 09:42:39 2011 -0400

    gio: Fix srcdir != builddir build for docs

 docs/reference/gio/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0f9c4590d8bb226dad4d93a9a3181ee42ccc8c7a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 5 09:17:02 2011 -0400

    Update NEWS for 2.29.10

 NEWS | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

commit 9c09a48f57c36ce1ceb458bc7708f9b589239d8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 4 16:03:33 2011 -0400

    Fix the build

    When renaming a variable from _SCRIPTS to _DATA, it helps to
    also rename all references.

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 34e571c46611a0b07bf3f81cd417b9bca2b7d833
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 4 13:09:54 2011 -0400

    Disable a failing test

 glib/tests/gdatetime.c | 2 ++
 1 file changed, 2 insertions(+)

commit c06e91bcaf32db7ea89abc18c0975d761093edc7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 4 22:21:05 2011 +0800

    Update GIO VS 2010 project templates

    Revert EOL of these files to Unix style as they are to be processed
    during "make dist"

 build/win32/vs10/gio.vcxproj.filtersin |  58 ++---
 build/win32/vs10/gio.vcxprojin         | 428
 ++++++++++++++++-----------------
 2 files changed, 243 insertions(+), 243 deletions(-)

commit fabbf82ae169af0b2ae2da5f45b3e8bc798027a0
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jul 4 21:47:59 2011 +0800

    Updated GIO Visual Studio Projects

    -In gio/Makefile.am, the name for one of the filters for capturing the
     sources for the GIO VS Project Files is corrected.
    -Remove the GIO source file items in the VS project files templates as
     a result for this change, and move the entry of the "new"
     gregistrysettingsbackend.c into the filter in gio/Makefile.am

 build/win32/vs10/gio.vcxproj.filtersin |  79 +++---
 build/win32/vs10/gio.vcxprojin         | 435
 +++++++++++++++----------------
 build/win32/vs9/gio.vcprojin           | 457
 ++++++++++++++++-----------------
 gio/Makefile.am                        |   7 +-
 4 files changed, 472 insertions(+), 506 deletions(-)

commit 7ba753b002ca9888a46137b65f347a2f5f408e9e
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Mon Jul 4 08:58:00 2011 +0200

    G_STATIC_REC_MUTEX_INIT: Fix missing initialization.

    Add the third struct field, zeroed, to avoid a compiler warning.

 glib/gthread.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8fdfa8bf3322c9ab3a1619750de47db978f8a32e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 3 17:37:35 2011 +0200

    Install completion scripts as DATA, not SCRIPTS

    They are sourced by the shell and don't include a #!/bin/sh, so
    they shouldn't
    be marked as executable.

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2080bb1dc0bd6e7fb137df0e28796cdb2024645c
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jun 29 08:29:16 2011 -0400

    gasyncresult: document that NULL GAsyncReadyCallback is allowed

    https://bugzilla.gnome.org/show_bug.cgi?id=653484

 gio/gasyncresult.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 2456db2c004d19cae0bca07a7de82feadc119b94
Author: Dieter Verfaillie <dieterv@optionexplicit.be>
Date:   Thu Jun 30 09:32:32 2011 -0400

    GCancellable: Fix build on Win32

    https://bugzilla.gnome.org/show_bug.cgi?id=653522

 gio/gcancellable.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 847a8eb911553a76df0fd2ce124cf77dbc7c8877
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 29 18:07:29 2011 +0100

    gio: Some more build fixes

 gio/gsimpleaction.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 87a542bc960ff230d1478d089436793fdde83db0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 29 18:00:53 2011 +0100

    Fix build

    The g_return_val_if_fail() macro takes a return value.

 gio/gsimpleaction.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b73e53f5776507427e1475ae184daf2ab969e3c2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 17:19:38 2011 +0100

    parameter guards for GSimpleAction constructors

 gio/gsimpleaction.c | 5 +++++
 1 file changed, 5 insertions(+)

commit bde41dacf7e52262df69f70ce00fa33272ea3afa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 17:13:58 2011 +0100

    GAction: make GObject properties read-only

    GAction is a read-only interface (as is visible by the lack of _set()
    functions
    on its API).  The properties on the interface currently force
    implementors to
    support writing of the properties at construct time, however.

    Lift that restriction.

    Take advantage of this from GSimpleAction by nuking the set_property
    function and setting the fields directly in the constructor.

 gio/gaction.c       |  9 +++----
 gio/gsimpleaction.c | 68
 +++++++++++++++++------------------------------------
 2 files changed, 25 insertions(+), 52 deletions(-)

commit e6a25caa82410038e635c30deefbe3d0812aa9d3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 16:10:38 2011 +0100

    actions: merge testcases change_state and entries

    Since we have support for change_state in GActionEntry now.

 gio/tests/actions.c | 67
 ++++++++++++++++++++++-------------------------------
 1 file changed, 28 insertions(+), 39 deletions(-)

commit 276750aa7aba853535a9f751429ef51aa9dcc924
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 16:04:09 2011 +0100

    Add 'change_state' callback to GActionEntry

 gio/gsimpleactiongroup.c | 6 ++++++
 gio/gsimpleactiongroup.h | 6 +++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

commit 535dcf4f22ba7621c6078f3fe96db6d3e64f0132
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 14:53:24 2011 +0100

    Add example for 'change-state' signal

    Pulled from the testcase.

 gio/gsimpleaction.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit d5915a4be3e790daf99c306c2d6651328b8dbb66
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 14:44:58 2011 +0100

    Add testcase for GSimpleAction::change-state

 gio/tests/actions.c | 73
 +++++++++++++++++++++++++++++++----------------------
 1 file changed, 43 insertions(+), 30 deletions(-)

commit 9a23ef6c2da48cd7f5c513f24ff478d6c5fab4d6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 14:35:12 2011 +0100

    Add 'change-state' signal to GSimpleAction

    If connected, allows the user to control the result of
    g_action_change_state().

 gio/gsimpleaction.c | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

commit 6383b3e7095790372982c6fe68c7e770a6f44a5e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 13:55:59 2011 +0100

    Add example to docs for using GActionEntry

 gio/gsimpleactiongroup.c | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit 5978a6edb59d39ef430a5b7b99ae1109de8e63f7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 13:02:30 2011 +0100

    Add a test case for GActionEntry

 gio/tests/actions.c | 107
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)

commit 7dd25022eeb1ef3f92b6352ba9ac9204dbb10305
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 13:00:30 2011 +0100

    Add g_simple_action_group_add_entries()

    A convenience API for creating lots of actions quickly.

 docs/reference/gio/gio-sections.txt |   4 ++
 gio/gio.symbols                     |   1 +
 gio/gsimpleactiongroup.c            | 111
 ++++++++++++++++++++++++++++++++++++
 gio/gsimpleactiongroup.h            |  23 ++++++++
 4 files changed, 139 insertions(+)

commit 695a9a799355713dc6df089801b7f67a010e3b13
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 12:28:15 2011 +0100

    allow NULL state in g_simple_action_new_stateful

    as an undocumented feature

 gio/gsimpleaction.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5ff65d869543587d10d78c123698e47effc5fb8c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 29 10:11:59 2011 +0100

    Make 4 incompatible changes to the GAction API

    This commit represents an API break to GAction in the following ways:

      - the 'set_state' entry in the GActionInterface vtable has been
        renamed to 'change_state'.  The number and order of vtable
        items has
        not otherwise changed.

      - g_action_set_state() has been renamed to g_action_change_state()
      to
        match the updated vtable entry.

      - the "state" property of the GAction interface has been changed to
        read-only to reflect the fact that g_action_set_state() no longer
        exists.

      - GSimpleActionClass has been hidden.  GSimpleAction can no
      longer be
        subclassed.

    >> Rationale

    g_action_set_state() has never been a true setter in the sense that
    calling it will update the value of the "state" property.  It has
    always
    been closer to "request 'state' to be changed to this value" with
    semantics defined by the implementor of the interface.  This is
    why the
    equivalent method in GActionGroup had its name changed from 'set' to
    'change'.  This change makes the two interfaces more consistent and
    removes any implication about the effect that calling set_state()
    should
    have on the 'state' property.

    >> Impact

    This incompatible API break was undertaken only because I strongly
    suspect that it will go entirely unnoticed.  If the break actually
    affects anybody, then we will accommodate them (possibly going as
    far as
    to revert this commit entirely).

    The virtual table change only impacts implementors of GAction.  I
    strongly suspect that this is nobody (except for GSimpleAction).

    The hiding of GSimpleActionClass only impacts impacts subclasses of
    GSimpleAction.  I strongly suspect that none of these exist.

    The changing of the property to be read-only only affects people who
    were trying to change the state by using GObject properties.
    I strongly
    suspect that this is nobody at all.

    The removal of the g_action_set_state() call is the most dangerous,
    but
    I still suspect that it will impact nobody outside of GLib.
    If anybody
    is impacted by this change then, at their request, I will reintroduce
    the API as a deprecated alias for g_action_change_state().

 docs/reference/gio/gio-sections.txt      |   3 +-
 gio/gaction.c                            |  25 +++--
 gio/gaction.h                            |  10 +-
 gio/gio.symbols                          |   3 +-
 gio/gsimpleaction.c                      | 158
 +++++++++++++++----------------
 gio/gsimpleaction.h                      |  45 +--------
 gio/gsimpleactiongroup.c                 |  10 +-
 gio/tests/actions.c                      |   6 +-
 gio/tests/gapplication-example-actions.c |  12 +--
 9 files changed, 117 insertions(+), 155 deletions(-)

commit d1e26c51c8298db782d253e0a5ff794b197270bf
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jun 29 14:07:38 2011 +0800

    Update Visual Studio README.txt's

    -The VS2010 README.txt should have Windows CRLF EOL.
    -Tell people about the added dependency on LibFFI

 build/win32/vs10/README.txt | 123
 ++++++++++++++++++++++++--------------------
 build/win32/vs9/README.txt  |  11 ++++
 2 files changed, 78 insertions(+), 56 deletions(-)

commit 1777614600bf844687a9f16cc57d68a87f212dce
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jun 29 12:36:24 2011 +0800

    Re-attempt to correct EOL on VS2010 solution

    This time I realized that I needed to set autocrlf=false on my
    Windows side
    ... ugh...

    This is one of those files that must have CRLF line endings to work
    orrectly :|

 build/win32/vs10/glib.sln | 470
 +++++++++++++++++++++++-----------------------
 1 file changed, 235 insertions(+), 235 deletions(-)

commit 315210ecdb98bc8effe6524ee24baba39cd48056
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 28 12:52:58 2011 -0400

    GCancellable: Fix build on Win32

    https://bugzilla.gnome.org/show_bug.cgi?id=653522

 gio/gcancellable.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 1b0e5e7683148f769189fc82ab731ee25d06c04c
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 28 10:03:15 2011 -0400

    gmain: Fall back to pipes if kernel doesn't support EFD_CLOEXEC
    for eventfd()

    Also remove the caching of checking for eventfd; just try it every
    time, it's
    cheap enough to do so.

    https://bugzilla.gnome.org/show_bug.cgi?id=653570

 glib/gmain.c | 46 +++++++++++++++++-----------------------------
 1 file changed, 17 insertions(+), 29 deletions(-)

commit 8b1a0764f98fe1ce0880e684fb4310089e8327e7
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Tue Jun 28 02:02:34 2011 +0300

    Updated Belarusian translation.

 po/be.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 62d695f52d746112f50684399d0db2d58e499b57
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Tue Jun 28 01:27:27 2011 +0300

    Updated Belarusian translation.

 po/be.po | 56 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

commit b07f2833c0d2ab8282fae0c19ef065a38721a985
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 27 11:28:55 2011 +0100

    Change to AM_MAINTAINER_MODE([enable])

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=653429

 configure.ac | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 4d0279dfd879224ac8228c349f26840eb9e6531f
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Sat Jun 25 19:14:09 2011 +0300

    Updated Belarusian translation.

 po/be.po | 3203
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 1530 insertions(+), 1673 deletions(-)

commit 3cbd5565ae32515e59e129e835b79b211b51d5d4
Author: Claudio Saavedra <csaavedra@igalia.com>
Date:   Fri Jun 24 16:04:54 2011 +0300

    GSimpleAction: fix typo

 gio/gsimpleaction.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cacbdf0ea8792d6c11ab224f9ecc38c920f84e37
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Fri Jun 24 13:20:06 2011 +0200

    Typo fix.

    Fixes jhbuilding gobject-introspection.

 gobject/glib-types.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 088b08bdfc8e6b3a7cc4d884e2186fe1a156fadb
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Jun 24 11:22:47 2011 +0800

    Refine Visual Studio Projects

    -Reinstate build/win32/vs10/glib.sln with the correct EOL
    (DOS/Windows) so
     that the file can be correctly recognized by Windows, rather
     than having
     the "Unrecognized Visual Studio Version".

    -Update the main GLib projects to output the DLL/LIB file into
    <Release or
     Debug>\<Win32 or x64>\bin for all configurations.

    -Update/simplify the property sheets to copy all DLL and LIB
    files from
     <Release or Debug>\<Win32 or x64>\bin for all configurations.

    -Update the VS 2008 property sheet to seperate the intermediate
    directories
     for all projects as well to avoid errors/warnings of being unable to
     write/access the PDB files as they are in use.

 build/win32/vs10/glib.props     |   5 +-
 build/win32/vs10/glib.sln       | 235
 ++++++++++++++++++++++++++++++++++++++++
 build/win32/vs10/glib.vcxprojin |   4 +
 build/win32/vs9/glib.vcprojin   |   4 +
 build/win32/vs9/glib.vsprops    |   4 +-
 5 files changed, 245 insertions(+), 7 deletions(-)

commit 92365b05c4075302920eab75cc7053b130032468
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Jun 24 11:13:33 2011 +0800

    Temporarily remove build/win32/vs10/glib.sln

    To fix up for the line endings (this needs to be in the DOS/Windows
    format)

 build/win32/vs10/glib.sln | 235
 ----------------------------------------------
 1 file changed, 235 deletions(-)

commit 9eb65dd3ed5e1a9638595cbe10699c7606376511
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 23 21:31:40 2011 -0400

    Unicode: add a g_utf8_substring convenience api

    This function is useful in the GTK+ accessibility implementations,
    and seems like a nice thing to have around in general.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     | 25 +++++++++++++------------
 glib/gunicode.h                       |  8 ++++++--
 glib/gutf8.c                          | 32
 ++++++++++++++++++++++++++++++++
 glib/tests/utf8-misc.c                | 21 +++++++++++++++++++++
 5 files changed, 73 insertions(+), 14 deletions(-)

commit c2b112bc56184e5ffdaf99df5aeaf8e06f84af21
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Jun 24 01:07:18 2011 +0200

    Typo fix

 glib/gregex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b1b8c95d3539d111632e5de88cadb0b547179a59
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 23 18:35:40 2011 +0200

    Plug a mem leak in the regex test

 glib/tests/regex.c | 1 +
 1 file changed, 1 insertion(+)

commit 316efa1b5d88f91df9d3384bfb1b0dd37134405d
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 23 18:31:29 2011 +0200

    Add boxed GType for GMatchInfo

 docs/reference/gobject/gobject-sections.txt |  2 ++
 gobject/gboxed.c                            |  2 ++
 gobject/glib-types.h                        | 10 ++++++++++
 gobject/gobject.symbols                     |  1 +
 4 files changed, 15 insertions(+)

commit 00afe3fed340cb87b638aaafa01a2829cb60efba
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 23 18:27:29 2011 +0200

    Make GMatchInfo refcounted

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/glib.symbols                     |  2 ++
 glib/gregex.c                         | 49
 +++++++++++++++++++++++++++++++----
 glib/gregex.h                         |  2 ++
 4 files changed, 50 insertions(+), 5 deletions(-)

commit 3393711f426f101d851697e1af4105ec1d22b402
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Thu Jun 23 15:08:46 2011 +0100

    build: fix gtk-doc when srcdir != builddir

    https://bugzilla.gnome.org/show_bug.cgi?id=653250

 docs/reference/gio/Makefile.am     | 2 +-
 docs/reference/glib/Makefile.am    | 2 +-
 docs/reference/gobject/Makefile.am | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 1e58d11a443e3c1b6228ff6e148ccbf244da9d84
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Thu Jun 23 09:34:59 2011 +0200

    Fix typo in GTime docs

    deprected -> deprecated

 docs/reference/glib/tmpl/date.sgml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5db5a46c3d8f5beb7f3b6d40b0c727125a626f6f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 21 00:54:00 2011 -0400

    Add tests for GValueArray

 gobject/tests/valuearray.c | 65
 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

commit f4da19daa67b3a021563c8185fd094a6e4b907d5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 21 00:52:43 2011 -0400

    Improve test coverage for GValue transformations

 gobject/tests/Makefile.am |   3 +-
 gobject/tests/param.c     | 152
 +++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 153 insertions(+), 2 deletions(-)

commit 6dfd21caef93b31c6a42025d7af928db37bca75c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 21 00:51:57 2011 -0400

    Run some tests with errorcheck mutexes too

    All in the name of better test coverage.

 gthread/tests/642026.c    | 4 ++++
 gthread/tests/Makefile.am | 5 +++++
 2 files changed, 9 insertions(+)

commit d8d25d8c96f1f2f9c0f110812e477c1a8e2e1edf
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Wed Jun 22 20:10:43 2011 +0400

    Updated Russian translation

 po/ru.po | 1025
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 549 insertions(+), 476 deletions(-)

commit 0e4507a296bbf15b9ba4799c9081c8efaab7f34f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jun 22 15:22:55 2011 +0800

    Update config.h.win32(.in)

    Make file contents more like the config.h(.in) contents

 config.h.win32.in | 3 +++
 1 file changed, 3 insertions(+)

commit fdca8060aa8dad34cd32a52553d831ef57f3f363
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 21 23:24:07 2011 -0400

    build: Cache check for futex() and eventfd()

 configure.ac | 28 ++++++++++------------------
 1 file changed, 10 insertions(+), 18 deletions(-)

commit fa873992800c64722a56782a9d288c05ce0df21f
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 21 21:43:19 2011 -0400

    GCancellable: Use Linux eventfd() instead of pipe

    See commit f626dd2b4311bd82137c5b208ab2de288c3e6fae for rationale;
    basically it's cheaper than a pipe.

    https://bugzilla.gnome.org/show_bug.cgi?id=653140

 gio/gcancellable.c | 88
 +++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 68 insertions(+), 20 deletions(-)

commit 3904c8761a60dbadbdfaf98fe23ff19cbdcc4a9a
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 21 19:01:10 2011 -0400

    gmain: use Linux eventfd() for main context wake up

    The Linux eventfd() call is basically tailor made for the main loop
    wake up pipe - all we want is a threadsafe way to write to a file
    descriptor, and wake up the context on the other end; we don't care
    about the content at all.

    The eventfd manual page basically explains the benefits:

           Applications can use an eventfd file descriptor instead of a
           pipe (see pipe(2)) in all cases where a pipe is used simply to
           signal events.  The kernel overhead of an eventfd file
           descriptor is much lower than that of a pipe, and only one file
           descriptor is required (versus the two required for a pipe).

    When writing my multithreaded spawn test case I actually hit the 1024
    file descriptor limit quickly, because we used 2 fds per main context.
    This brings that down to 1.

    https://bugzilla.gnome.org/show_bug.cgi?id=653140

 configure.ac | 20 ++++++++++++++++++
 glib/gmain.c | 69
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 83 insertions(+), 6 deletions(-)

commit 29bb7638a56cd692d82ad87956822070b0877ead
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 21 16:14:50 2011 -0400

    gio/Makefile.am: Remove stray references to $(marshal_sources)

 gio/Makefile.am | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

commit 9053ad07ba7210a5a2f8e7ca36f686fd9f96abe0
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 21 10:26:58 2011 -0400

    Fix a srcdir!=builddir issue, and export that we support it

    Future jhbuild versions will consume the BUILD API and automatically
    use a builddir, so mark us as supporting it.

 Makefile.am           | 3 +++
 gio/tests/Makefile.am | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

commit 3655178b14d3eaff59e8295906db84f414172507
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Jun 21 13:55:31 2011 +0200

    Updated Galician translations

 po/gl.po | 353
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 181 insertions(+), 172 deletions(-)

commit f6ed3571017e7ace55c78491ef4e79bfc914c07b
Author: Philip Van Hoof <philip@codeminded.be>
Date:   Sat Jun 18 19:40:34 2011 +0200

    Add iter_replace API to GHashTableIter

    https://bugzilla.gnome.org/show_bug.cgi?id=652822

 docs/reference/glib/glib-sections.txt |   1 +
 glib/ghash.c                          | 152
 ++++++++++++++++++++++++----------
 glib/ghash.h                          |   2 +
 glib/glib.symbols                     |   1 +
 glib/tests/hash.c                     |  23 +++++
 5 files changed, 135 insertions(+), 44 deletions(-)

commit 8f05da99cb88dfa6c79fb5ccdc640c775dcd631c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 20 22:49:34 2011 -0400

    Make gmarshal.c actually compile standalone

    It was lacking the necessary includes; in the past it has been
    included towards the bottom of gsignal.c, and gained its includes
    that way.

 gobject/gmarshal.c | 597
 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 550 insertions(+), 47 deletions(-)

commit b74e2a720a09fcb5ceb1cd3b38e3ce32d14c2234
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 20 09:06:07 2011 -0400

    Stop using glib-genmarshal at build time

    To help cross compilation, don't use glib-genmarshal in our
    build.  This is easy now that we have g_cclosure_marshal_generic().

    In gobject/, add gmarshal.[ch] to git (making the existing entry
    points stubs).

    In gio/, simply switch to using g_cclosure_marshal_generic().

    https://bugzilla.gnome.org/show_bug.cgi?id=652168

 gio/Makefile.am                |  23 ---
 gio/gactiongroup.c             |   5 +-
 gio/gapplication.c             |   5 +-
 gio/gcancellable.c             |   3 +-
 gio/gdbusauthobserver.c        |   3 +-
 gio/gdbusconnection.c          |   3 +-
 gio/gdbusinterface.c           |   1 -
 gio/gdbusinterfaceskeleton.c   |   3 +-
 gio/gdbusnameowning.c          |   7 +-
 gio/gdbusnamewatching.c        |   5 +-
 gio/gdbusobject.c              |   1 -
 gio/gdbusobjectmanager.c       |   5 +-
 gio/gdbusobjectmanagerclient.c |   5 +-
 gio/gdbusobjectskeleton.c      |   3 +-
 gio/gdbusproxy.c               |   5 +-
 gio/gdbusserver.c              |   3 +-
 gio/gfilemonitor.c             |   3 +-
 gio/gio-marshal.list           |  34 -----
 gio/gmountoperation.c          |   7 +-
 gio/gpollableinputstream.c     |   3 +-
 gio/gpollableoutputstream.c    |   1 -
 gio/gsettings.c                |   5 +-
 gio/gsettingsbackend.c         |   1 -
 gio/gsocket.c                  |   3 +-
 gio/gsocketservice.c           |   3 +-
 gio/gthreadedsocketservice.c   |   4 +-
 gio/gtlsclientconnection.c     |   1 -
 gio/gtlsconnection.c           |   3 +-
 gio/gtlsserverconnection.c     |   1 -
 gobject/.gitignore             |   1 -
 gobject/Makefile.am            |  37 +----
 gobject/gmarshal.c             | 338
 +++++++++++++++++++++++++++++++++++++++++
 gobject/gmarshal.h             | 187 +++++++++++++++++++++++
 gobject/gmarshal.list          |  27 +---
 gobject/gsignal.c              |   4 -
 35 files changed, 565 insertions(+), 178 deletions(-)

commit 322e25b535a63a631f2f53439a876a4d7d9c1f87
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jun 20 16:32:03 2011 -0400

    GDBus: Unref worker from worker-thread to avoid race

    ... otherwise we might end up using the worker after it has been
    freed. Reported by Dan Winship and Colin Walters.

    This fix uncovered a bug in the /gdbus/nonce-tcp test case so "fix"
    that as well to use a better way of having one thread wait for another
    (using quotes for the word "fix" since it's pretty hackish to
    busy-wait in one thread to wait for another).

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c     | 21 ++++++++++++++++++++-
 gio/tests/gdbus-peer.c |  2 +-
 2 files changed, 21 insertions(+), 2 deletions(-)

commit 4344838781ee4fcd1c459ec0761e531d20baacfb
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 20 14:09:31 2011 -0400

    gthread tests: Remove spurious return;

 gthread/tests/spawn-singlethread.c | 2 --
 1 file changed, 2 deletions(-)

commit 5e64717a5ffb61c51ca936d51d0d38e5abc08c3a
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 20 11:15:27 2011 -0400

    gclosure: Add G_TYPE_ENUM and G_TYPE_PARAM for
    g_cclosure_marshal_generic()

    These are fundamental types missed in the original commit.

 gobject/gclosure.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit d54c65448cf7426d132f11c645a1cd9eec034c03
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 20 13:41:52 2011 -0400

    gdbus-test-codegen: Allocate full integer space for uint16 properties

    Because there is no G_TYPE_[U]INT16, we need to use integer types,
    otherwise we'll end up overwriting memory (in this case on the stack).

 gio/tests/gdbus-test-codegen.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 49fac943f37d16ade1b3fdd0f5b0ee479a74e440
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jun 20 11:48:25 2011 +0100

    configure.ac: Generate xz tarballs by default

 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit c68683f780d4960d0fc0e659c86d8a1efaa4da19
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jun 20 11:50:57 2011 +0800

    Visual C++ 2010 project files update

    Consolidate my previous commit into property file... should have
    realized
    this sooner...

 build/win32/vs10/gio.vcxprojin                       |  8 --------
 build/win32/vs10/glib-compile-schemas.vcxproj        |  8 --------
 build/win32/vs10/glib-genmarshal.vcxproj             |  8 --------
 build/win32/vs10/glib.props                          |  2 +-
 build/win32/vs10/glib.vcxprojin                      | 16
 ----------------
 build/win32/vs10/gmodule.vcxproj                     |  8 --------
 build/win32/vs10/gobject.vcxprojin                   |  8 --------
 build/win32/vs10/gsettings.vcxproj                   |  8 --------
 build/win32/vs10/gspawn-win32-helper-console.vcxproj |  8 --------
 build/win32/vs10/gspawn-win32-helper.vcxproj         |  8 --------
 build/win32/vs10/gthread.vcxproj                     |  8 --------
 build/win32/vs10/testglib.vcxproj                    |  8 --------
 12 files changed, 1 insertion(+), 97 deletions(-)

commit 801e52f8099f6ae6dba61f0f54bc1c7a60f52681
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Jun 20 11:34:15 2011 +0800

    Update Visual C++ 2010 Projects

    -Seperate intermediate directories for each project to avoid
    intermittent
     MSBuild errors that a build log cannot be written while in use, and
     update the property sheet as necessary.
    -Minor cleanups of uneeded tags in the projects/properties

 build/win32/vs10/gio.vcxprojin                       |  9 ++++++++-
 build/win32/vs10/glib-compile-schemas.vcxproj        |  9 ++++++++-
 build/win32/vs10/glib-genmarshal.vcxproj             |  9 ++++++++-
 build/win32/vs10/glib.props                          |  3 +--
 build/win32/vs10/glib.vcxprojin                      | 17
 ++++++++++++++++-
 build/win32/vs10/gmodule.vcxproj                     |  9 ++++++++-
 build/win32/vs10/gobject.vcxprojin                   |  9 ++++++++-
 build/win32/vs10/gsettings.vcxproj                   |  9 ++++++++-
 build/win32/vs10/gspawn-win32-helper-console.vcxproj |  9 ++++++++-
 build/win32/vs10/gspawn-win32-helper.vcxproj         |  9 ++++++++-
 build/win32/vs10/gthread.vcxproj                     |  9 ++++++++-
 build/win32/vs10/testglib.vcxproj                    |  9 ++++++++-
 12 files changed, 97 insertions(+), 13 deletions(-)

commit f9cec26968fad4ddecae9b13077f63bc11b66f86
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jun 18 16:22:53 2011 +0200

    Clarify nul-termination of g_utf8_to_ucs4[_fast] result

    The docs for g_utf8_to_ucs4_fast didn't mention that the resulting
    string is terminated by a 0 character.

    Bug #652897.

 glib/gutf8.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 580e177dccce98e4f8490b9463321d01343cac2d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 19 01:42:48 2011 -0400

    Add tests for GCache

 glib/tests/Makefile.am |   3 +
 glib/tests/cache.c     | 147
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 150 insertions(+)

commit 9fa5b8e5c7701d9ea40577a9a317d02c79b17d18
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 19 01:05:26 2011 -0400

    asyncqueue: improve test coverage

 tests/asyncqueue-test.c | 57
 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 54 insertions(+), 3 deletions(-)

commit 63fa44251a24d01854b86c82ce7e625c0553b88d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 19 01:05:05 2011 -0400

    utils: silence tests unless verbose

 glib/tests/utils.c | 77
 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 74 insertions(+), 3 deletions(-)

commit e1d4e06ab3dc9be6e239eb27f2f168e277ae273c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 19 01:04:48 2011 -0400

    logging: improve test coverage

 glib/tests/logging.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit ed3ac87afe51de67b631abf5f8dc50622b141a8b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 19 01:04:30 2011 -0400

    hash: Improve test coverage

 glib/tests/hash.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit c4796a4d7a9bbbfbcf9ec82d0cdc442cdccb8113
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sat Jun 18 17:55:58 2011 +0800

    Update gsettings/glib-compile-schemas VS Projects

    These tools require the use of GModule headers also, so update
    the include
    directories so that the correct gmodule.h will be included instead
    of the
    system-installed version.

 build/win32/vs10/glib-compile-schemas.vcxproj | 4 ++++
 build/win32/vs10/gsettings.vcxproj            | 4 ++++
 build/win32/vs9/glib-compile-schemas.vcproj   | 4 ++++
 build/win32/vs9/gsettings.vcproj              | 4 ++++
 4 files changed, 16 insertions(+)

commit 4476e22a14af93d375d3a9d8cd2ab8deedf669ad
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 17 09:39:48 2011 -0400

    gvariant: Mark g_variant_new_variant as constructor

    https://bugzilla.gnome.org/show_bug.cgi?id=647796

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19610184c40b37c48ddf8006db26e14d563c7eda
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 17 08:52:05 2011 -0400

    gdatainputstream: Add Since: tags and update gio-sections.txt

    https://bugzilla.gnome.org/show_bug.cgi?id=652758

 docs/reference/gio/gio-sections.txt | 2 ++
 gio/gdatainputstream.c              | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

commit 28254a38a7f077d5fc03939ea7c03260aabe5188
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 16 14:00:36 2011 -0400

    GDataInputStream: Add _utf8() variants of _read_line

    These will validate the resulting line, and throw a conversion error.
    In practice these will likely be used by bindings, but it's good
    for even C apps too that don't want to explode if that text file
    they're reading into Pango actually has invalid UTF-8.

    https://bugzilla.gnome.org/show_bug.cgi?id=652758

 gio/gdatainputstream.c        | 82
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gdatainputstream.h        |  8 +++++
 gio/gio.symbols               |  2 ++
 gio/tests/data-input-stream.c | 74 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 166 insertions(+)

commit ff2f46a7f42d5c0d0b8af0d4328f960605420790
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 16 13:14:44 2011 -0400

    GDataInputStream: Clarify read_line() docs, mark as byte array

    g_data_input_stream_read_line() and
    g_data_input_stream_read_line_finish() don't do any encoding checks,
    so we shouldn't call the returned value a "string" (which I'd like to
    mean UTF-8).  Annotate them as byte arrays and add encoding warnings
    to the docstrings.

    https://bugzilla.gnome.org/show_bug.cgi?id=652758

 gio/gdatainputstream.c | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

commit de0519581ab7aedcfc8b6b5a46139a8c9728c596
Author: Patrick Welche <prlw1@cam.ac.uk>
Date:   Tue Jun 14 09:43:33 2011 +0100

    Fix build due to trivial typos in ab0e9dbf.

    https://bugzilla.gnome.org/show_bug.cgi?id=652750

 docs/reference/gio/Makefile.am     | 101
 -------------------------------------
 docs/reference/gobject/Makefile.am |   2 +-
 2 files changed, 1 insertion(+), 102 deletions(-)

commit 34b7126a4e0b743b07b9d55309fce0d15802b69c
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Wed Jun 15 10:47:13 2011 +0200

    G_STATIC_REC_MUTEX_INIT: Add a 0 to the initialization.

    This avoids a compiler warning about an incomplete initialization
    when using this.

 glib/gthread.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 23f684454f6f0151cb7181c527bf254f6b97ed35
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 14 22:44:10 2011 -0400

    Drop dead code in GVariant parser

    There is no chance that an unsigned integer value will be negative
    after
    we do the bounds check that enforces its non-negativity.

    Caught by Matthias running Coverity.

 glib/gvariant-parser.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a6b9db6907117639b2493e96f8dee9e54bdba788
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 20:44:15 2011 -0400

    Eliminate some dead code

 glib/gspawn.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

commit 9b68d9892a125e00958ff019d5edcf4f6b409cf8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 20:36:37 2011 -0400

    Remove a redundant NULL check

 gmodule/gmodule.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 28008138c3ef88ad7f44055580f2b19796b9c29f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 20:15:04 2011 -0400

    Silence a compiler warning

 gio/gdbusaddress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f966a0af9ac5524b26917b266abcbbac890c58e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 19:52:19 2011 -0400

    Add some argument checks to filename conversion functions

 glib/gconvert.c | 4 ++++
 1 file changed, 4 insertions(+)

commit c9f883f133bc83942484cb8a1349b58ada46b4bc
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 14 18:46:06 2011 -0400

    gmain: Close race condition in _g_main_wake_up_all_contexts()

    Running gthread/tests/spawn-multithreaded in a loop, I very easily
    hit:

    GLib-CRITICAL **: g_main_context_wakeup: assertion `g_atomic_int_get
    (&context->ref_count) > 0' failed

    Testing the refcount still left a window where we would fall into the
    assertion.  Fix this by just locking the context.

 glib/gmain.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

commit 211d7adf6e452c30dc0b76225e7bdcddee7c5f8f
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 8 11:31:14 2011 -0400

    gmain: Only run through signal delivery once per read()

    This is what I intended to do before.

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 glib/gmain.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit ed827deb7756bde270eb015eb4263324a313be14
Author: Colin Walters <walters@verbum.org>
Date:   Sat Jun 11 12:10:57 2011 -0400

    gmain: Use sigset_t for keeping track of installed signals

    Minor code cleanup.

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 glib/gmain.c | 37 ++++++++++---------------------------
 1 file changed, 10 insertions(+), 27 deletions(-)

commit 1874ad97d809950901246c940a2b80ba3a6d9390
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 10 10:48:07 2011 -0400

    gspawn: Reset signal handlers for synchronous spawning

    We should by default reset signal handlers; particularly with the
    ability to install them via g_unix_signal_source_new(), we don't
    want to call a user callback inside a fork()ed helper process.

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 glib/gspawn.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit b9c67b43690bfc3b9a869a285f542a420f5b0067
Author: Colin Walters <walters@verbum.org>
Date:   Sat Jun 11 17:25:13 2011 -0400

    glib/tests/unix.c: Also test SIGTERM

    We expect this to not kill the process, so it'd be a good one to test.

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 glib/tests/unix.c | 50 ++++++++++++++++++++++++++++++++------------------
 1 file changed, 32 insertions(+), 18 deletions(-)

commit c2364ce9a4e59ca0276c02b2b9a1356327f2cffb
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 10 10:35:27 2011 -0400

    spawn-multithreaded: Clean up IO channel code

    I modeled the new bits after how gunixmount.c handles GIOChannel;
    it's apparently easier not to look at the condition.

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 gthread/tests/spawn-multithreaded.c | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

commit 7e1886ba72a36f73296781c5ca5525ae5e8288aa
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 10 10:14:25 2011 -0400

    gspawn: Handle EINTR in a few more cases

    I was debugging gthread/tests/spawn-multithreaded.c, and while I
    don't think I actually hit EINTR in any of these cases, it'd be
    good to fix them anyways.

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 glib/gspawn.c | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

commit 922f6aa496b3907634b45efe7c95fe9e5ebc5107
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 10 07:29:28 2011 -0400

    spawn-singlethread.c: New test

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 gthread/tests/Makefile.am          |   4 +
 gthread/tests/spawn-singlethread.c | 194
 +++++++++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

commit 01ee9449e34d22c5527d30b70169f6ca2b778626
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 10 07:27:29 2011 -0400

    spawn-multithreaded: Also look for lt-test-echo

    I hate libtool =(

    https://bugzilla.gnome.org/show_bug.cgi?id=652072

 gthread/tests/spawn-multithreaded.c | 5 +++++
 1 file changed, 5 insertions(+)

commit b6a829c314a837824c63afec35bcf56742c4b71d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 16:32:55 2011 -0400

    If dup fails don't call close()

 gio/gunixfdlist.c | 1 -
 1 file changed, 1 deletion(-)

commit 6e7a7052e01ef8e44891e9290c5275c3b3d6e07d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 16:20:26 2011 -0400

    Remove a redundant assertion

    A gsize is never going below 0.

 gobject/gatomicarray.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit ba6e66bff1684c0ef0af603f18b0ca53ed7c45fd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 16:18:45 2011 -0400

    Don't compare unsigned numbers with 0

    It does not work.

 gio/gdbusaddress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a6d33d3a28071957e81d63ba389bdf759d29dc45
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jun 14 18:11:09 2011 -0400

    GDBusMessage: Optimize serializer and deserializer

    ... by using a switch instead of if-then-else.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c | 763
 +++++++++++++++++++++++++++--------------------------
 1 file changed, 390 insertions(+), 373 deletions(-)

commit 7963a4cf95293cbf368a0ff891ba661e4ea3cc63
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 14 12:28:57 2011 -0400

    gclosure: Add missing include

 gobject/gclosure.c | 1 +
 1 file changed, 1 insertion(+)

commit 01e6cf1360deffe49c7bb4d1fa3cbd3d904c6b30
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 11:40:32 2011 -0400

    Don't do < 0 on an unsigned value

    It won't work. read() returns a signed value, anyway.

 gio/tests/gdbus-sessionbus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 25a797fa25e17607a7b3618d3d098004b2be1cc8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 10:16:35 2011 -0400

    Silence a compiler warning

    Even though we are confident the filename will always
    end in .gmarkup, the compiler doesn't know that...

 glib/tests/markup-parse.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 6ac8e6108cf15884e28fe1ecd3042dfce0e11dfd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 10:12:46 2011 -0400

    Don't leak resources in error cases

 glib/gfileutils.c | 3 +++
 1 file changed, 3 insertions(+)

commit 83d34f630939aa13539e03895bef87da738c4127
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 10:07:22 2011 -0400

    Don't forget to free resources in an early return

 gio/xdgmime/xdgmimemagic.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 3dc34de0fffca527e9a9e75f00ef913dec14da08
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 10:04:06 2011 -0400

    Avoid a deref-before-NULL-check warning

 gio/gdbusaddress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 339cac8fc71f9409f97a4bfc3f42f912c262c06d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 09:53:26 2011 -0400

    Remove unneeded NULL check

    We ensure 10 lines up that parameters is not NULL.

 gio/gdbusconnection.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit cf7f50b28ee84eb4f490540d0ebe84a9d5cf8375
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 09:50:55 2011 -0400

    Remove an unneeded NULL check

    data->proxy cannot be NULL here, or we'd have crashed 10 lines up.

 gio/gdbusproxy.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4c63303f9fa1ea2737c6890a5e51188eaa534836
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 09:44:45 2011 -0400

    Silence an uninitialize variable warning

 gio/xdgmime/xdgmimeparent.c | 1 +
 1 file changed, 1 insertion(+)

commit 114b9b2504d6f093daadef6fe0b5b734ca78ec6e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 14 07:17:06 2011 -0400

    Fix up symbol lists and docs

 docs/reference/gio/gio-sections.txt | 1 +
 gio/gio.symbols                     | 1 +
 2 files changed, 2 insertions(+)

commit 42c2e42a39bb04aae8fae3b691e22b290d1da48a
Author: Xan Lopez <xlopez@igalia.com>
Date:   Thu Jun 9 23:50:22 2011 +0200

    gclosure: add missing fundamental types to generic marshaler

    for GObject type the ffi->gvalue conversion was not handled. The
    GFlags type was completely missing.

 gobject/gclosure.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit b87d9405be375ac5a5a690f10f6ec13fccd8e3bd
Author: Vincent Untz <vuntz@gnome.org>
Date:   Tue Jun 14 09:01:25 2011 +0200

    GDesktopAppInfo: Fix declaration of g_desktop_app_info_get_nodisplay

 gio/gdesktopappinfo.c | 2 +-
 gio/gdesktopappinfo.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 86ffdf55705ef0f76159707576174227df0c2c3a
Author: Vincent Untz <vuntz@gnome.org>
Date:   Sun Jun 12 12:22:59 2011 +0200

    GDesktopAppInfo: Add g_desktop_app_info_get_nodisplay

    Necessary for rebasing gnome-menus on top of GDesktopAppInfo.

    https://bugzilla.gnome.org/show_bug.cgi?id=652385

 gio/gdesktopappinfo.c | 21 +++++++++++++++++++++
 gio/gdesktopappinfo.h |  1 +
 2 files changed, 22 insertions(+)

commit 9a9cca97641cbfdbb7f0ceac73b4317b66b63685
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 13 23:54:59 2011 -0400

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f11f054eb3f38dd507dadd61706a7390ebf2d0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 13 21:58:33 2011 -0400

    2.29.8

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a0361ec04928be564e08189b6d40e67e4f0ff39e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 13 23:19:45 2011 -0400

    Fix doc generation

    It helps to use the same file name on both ends...

 docs/reference/gio/Makefile.am  | 2 +-
 docs/reference/glib/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 4dc3d3e9996a3ab260385f9452eec1edaeb614d5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 13 22:48:54 2011 -0400

    Use a realistic timeout in a test

    Who knew that g_test_trap_fork() takes a timeout in microseconds...

 glib/tests/dataset.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bc403e63614b87e3cf485441d267997978b89351
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 13 20:48:20 2011 -0400

    Update NEWS

 NEWS | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 5ec6eafb0ea79d21a13fea42628119197476bb3f
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 13 14:17:44 2011 -0400

    gdbus-codegen tests: Fix usage of top_srcddir

    Based on a patch from Rico Tzschichholz.

 gio/tests/Makefile.am                              | 2 +-
 gio/tests/gdbus-object-manager-example/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit fd772fbe95fd70a7f34401c85b048ed1460af898
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 13 09:27:41 2011 -0400

    Formally deprecate G_CONST_RETURN

 glib/gmacros.h | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit ce9681b87e64a53a35a3db25cdbc406f46e91602
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 13 09:27:28 2011 -0400

    Drop a few more G_CONST_RETURN

 gobject/gvaluetypes.c | 2 +-
 tests/testglib.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 7412e073d195d9c9b0fd83fd81962f3364f5d2be
Author: Dan Winship <danw@gnome.org>
Date:   Sun Jun 12 16:17:30 2011 -0400

    update .gitignores

 gio/.gitignore           | 1 +
 glib/.gitignore          | 1 +
 glib/tests/.gitignore    | 4 +++-
 gobject/.gitignore       | 1 +
 gthread/tests/.gitignore | 6 +++++-
 5 files changed, 11 insertions(+), 2 deletions(-)

commit 9d53e2bc4e806f8b0e142a1ed73c5f25e0dd2347
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 10 12:58:49 2011 -0400

    gspawn: Fix annotations

    g-ir-scanner wants guint8.

 glib/gspawn.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 28a9e91b136be5dc133651ae0ea2e70be3d99ba5
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Thu Jun 9 13:36:19 2011 +0200

    Fix regression in qsort_r BSD detection

    We can use AC_CHECK_FUNCS to detect if qsort_r is available on
    the system or not since it will unconditionnally define
    HAVE_QSORT_R, which we don't want since on BSD, qsort_r isn't usable
    for us, so we don't want to have HAVE_QSORT_R defined on such
    platforms.
    By using AC_CHECK_FUNC instead, we can defer defining HAVE_QSORT_R
    until
    we have actually tested it's usable.

    https://bugzilla.gnome.org/show_bug.cgi?id=651920

 configure.ac | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 73905434a4c32fc0c1a1024a66856cddc77b18db
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Jun 10 12:54:51 2011 +0300

    Updated Hebrew translation.

 po/he.po | 176
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 92 insertions(+), 84 deletions(-)

commit 6a088820c287d2ffa0276e366e4623f89ca028d3
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Fri Jun 10 11:17:15 2011 +0200

    [l10n] Updated German translation

 po/de.po | 331
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 171 insertions(+), 160 deletions(-)

commit 486c48fafba363bb6e0a2286bfc8a90467f6af3e
Author: Abduxukur Abdurixit <abdurixit@gmail.com>
Date:   Fri Jun 10 10:19:12 2011 +0200

    Added UG translation

 po/ug.po | 965
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 520 insertions(+), 445 deletions(-)

commit b5cadd8bb5bcae3d2fde60adada4461a03a1e257
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Thu Jun 9 23:00:04 2011 +0200

    Updated Spanish translation

 po/es.po | 192
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 92 insertions(+), 100 deletions(-)

commit 4db88bd6e2957893b9f232527cc46bda799f2027
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Jun 9 20:17:52 2011 +0200

    gioenums.h: Remove trailing commas

 gio/gioenums.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7ff248e822af910e95b68a352793b34db0cd8f8b
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 9 13:29:58 2011 -0400

    gdbus: Don't pass an unintialized GError pointer

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-tool.c | 1 +
 1 file changed, 1 insertion(+)

commit 30dfc353920df56e31555d9e58a690d9d552058f
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 9 13:22:18 2011 -0400

    gdbus: Add --recurse and --only-properties options

    These options are useful when debugging D-Bus services and working
    with bug reports.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus.xml |  47 ++++++++++-
 gio/gdbus-tool.c             | 185
 ++++++++++++++++++++++++++++++-------------
 2 files changed, 178 insertions(+), 54 deletions(-)

commit c672b73602e1cec90cf60e464de5c9a26d0dacd5
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 9 12:25:04 2011 -0400

    gdbus: Clarify the --xml option in the man page

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus.xml | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 13b93f0c48a39c3502f55e011362bcb4d40a5a7d
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 9 12:02:30 2011 -0400

    Bug 652197 – Improper handling of double values in GDBusMessage

    Matthew Bucknall pointed out

      GDBusMessage does not serialize/deserialize double values correctly
      on platforms with strict alignment constraints (in my particular
      case, ARM926EJ-S).

    This was reported in

     https://bugzilla.gnome.org/show_bug.cgi?id=652197

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

commit f819aa5f1715bb67fd4e269a6e8021144ecf91a6
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 9 11:51:47 2011 -0400

    gdbus-codegen: Fix build

    See https://bugzilla.gnome.org/show_bug.cgi?id=651998 for details.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen_main.py                  | 0
 gio/tests/Makefile.am                              | 2 +-
 gio/tests/gdbus-object-manager-example/Makefile.am | 2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

commit caa8d2ae18b16b200c7d401713733785fa818f5f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 12 22:04:53 2011 -0500

    Document the deprecatation of G_CONST_RETURN

    ...but don't actually deprecate it yet.

 docs/reference/glib/tmpl/macros.sgml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 8073759f8cad2033169730c1b95af5b763e3c126
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 12 21:50:45 2011 -0500

    Remove all uses of G_CONST_RETURN

    Just use 'const'.

    https://bugzilla.gnome.org/show_bug.cgi?id=644611

 glib/gchecksum.c      |  2 +-
 glib/gchecksum.h      |  2 +-
 glib/gconvert.c       |  4 ++--
 glib/gconvert.h       |  2 +-
 glib/gdataset.c       |  6 +++---
 glib/gdir.c           |  4 ++--
 glib/gdir.h           |  2 +-
 glib/giochannel.c     |  4 ++--
 glib/giochannel.h     |  4 ++--
 glib/glibintl.h       |  6 +++---
 glib/gmain.c          |  2 +-
 glib/gmain.h          |  2 +-
 glib/gmarkup.c        |  4 ++--
 glib/gmarkup.h        |  4 ++--
 glib/goption.c        |  4 ++--
 glib/goption.h        |  4 ++--
 glib/gquark.h         |  6 +++---
 glib/gstrfuncs.c      | 16 +++++++--------
 glib/gstrfuncs.h      | 18 ++++++++---------
 glib/gunicode.h       |  2 +-
 glib/gutf8.c          |  2 +-
 glib/gutils.c         | 56
 +++++++++++++++++++++++++--------------------------
 glib/gutils.h         | 40 ++++++++++++++++++------------------
 gmodule/gmodule.c     |  6 +++---
 gmodule/gmodule.h     |  4 ++--
 gobject/gbinding.c    |  4 ++--
 gobject/gbinding.h    |  4 ++--
 gobject/gparam.c      |  6 +++---
 gobject/gparam.h      |  6 +++---
 gobject/gsignal.c     |  2 +-
 gobject/gsignal.h     |  2 +-
 gobject/gtype.c       |  6 +++---
 gobject/gtype.h       |  6 +++---
 gobject/gvaluetypes.h |  2 +-
 34 files changed, 122 insertions(+), 122 deletions(-)

commit 8f21e8145cf084ecd66c30cd868f56f7dcd87334
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 9 11:11:30 2011 -0400

    gobject: remove -DG_DISABLE_CONST_RETURNS

    GObject had a few cases of depending on G_CONST_RETURN not being
    defined
    to 'const'.  Remove those in preparation for deprecation of
    G_CONST_RETURN.

 gobject/Makefile.am   | 3 +--
 gobject/gbinding.c    | 4 ++--
 gobject/gobject.c     | 2 +-
 gobject/gparam.c      | 3 ++-
 gobject/gtype.c       | 2 +-
 gobject/testgobject.c | 4 ++--
 6 files changed, 9 insertions(+), 9 deletions(-)

commit 5794393c6fc6d63f4f1c9dd6fdd72946728f4246
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Thu Jun 9 07:00:57 2011 +0300

    Updated Bulgarian translation

 po/bg.po | 902
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 479 insertions(+), 423 deletions(-)

commit b04f6dbca02e9f15e07fb82cb52287c5ce15e861
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 8 23:48:55 2011 -0400

    Move gmain docs inline

 docs/reference/glib/tmpl/.gitignore |   1 +
 docs/reference/glib/tmpl/main.sgml  | 906
 ------------------------------------
 glib/gmain.h                        |  16 +
 3 files changed, 17 insertions(+), 906 deletions(-)

commit 7648415a5012ee595b07490f818f940e2bea2f7c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 8 23:44:39 2011 -0400

    Move gutils docs inline

 docs/reference/glib/tmpl/.gitignore      |   1 +
 docs/reference/glib/tmpl/misc_utils.sgml | 458
 -------------------------------
 glib/gprimes.c                           |  20 +-
 glib/gtypes.h                            |   9 +
 glib/gutils.c                            |  59 ++++
 glib/gutils.h                            |  27 +-
 6 files changed, 102 insertions(+), 472 deletions(-)

commit e89f183cf66e6a0846f267853cf9bb44ff52fb8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 8 23:29:21 2011 -0400

    Remove unused template

 docs/reference/glib/tmpl/.gitignore  |   1 +
 docs/reference/glib/tmpl/gregex.sgml | 521
 -----------------------------------
 2 files changed, 1 insertion(+), 521 deletions(-)

commit 602f8baa0b572ef8693a6ec6711ecca0399a6b3f
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Wed Jun 8 11:18:26 2011 +0200

    bitlock: don't use asm goto on older gcc

    asm goto was addded in gcc 4.5 so don't try to use it on gcc versions
    older than this one. This is achieved by explicitly checking gcc
    version, an alternative would be to try to compile a program using
    asm volatile in configure.

    https://bugzilla.gnome.org/show_bug.cgi?id=651959

 glib/gbitlock.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit d6b341c38c94bf684e84a5d2f0af1a5bc3c5ae1c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 8 22:38:11 2011 -0400

    Test the previous fix

    Just make one of the existing GApplication test cases use
    a dash in the id.

 gio/tests/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f44cd4129356dd569fd90e3ea83e386bce0602a7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 8 22:21:15 2011 -0400

    GApplication: allow '-' in application ID

    By converting it to _ before trying to shove it into an object path.

    https://bugzilla.gnome.org/show_bug.cgi?id=652025

 gio/gapplicationimpl-dbus.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6418769e4cf5657104e5842c3f60d67863c70560
Author: Colomban Wendling <ban@herbesfolles.org>
Date:   Tue Jun 7 21:59:15 2011 +0200

    Fix a typo in GBinding

    https://bugzilla.gnome.org/show_bug.cgi?id=652081

 gobject/gbinding.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 20d56289b97f9e8fd290f5ff41e9bfb69329423c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed Jun 8 16:26:08 2011 +0100

    gconverter: Improve cross-references

 gio/gconverter.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit adf70f4596c18982b984639c1b697cd4cabad13f
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 7 17:22:58 2011 -0400

    Fix export_symbols variable in gio/Makefile.am

    https://bugzilla.gnome.org/show_bug.cgi?id=646608

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 686f32fcc24a380400846c20c824fa5ef6484772
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 7 17:19:24 2011 -0400

    Fix "Since" tags on g_data_input_stream_read_upto{,_async}

    https://bugzilla.gnome.org/show_bug.cgi?id=647930

 gio/gdatainputstream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 37c9775b82021045042ea98e8617210c1cc459ee
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sun Apr 3 18:53:04 2011 +0200

    gutils, gspawn: fix introspection annotations

    Fix various (out) arguments, (allow-none) and (array
    zero-terminated=1)
    for g_spawn_*() and some others.

    Some additional fixes by Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 glib/gspawn.c | 54 +++++++++++++++++++++++++++---------------------------
 glib/gutils.c |  6 +++---
 2 files changed, 30 insertions(+), 30 deletions(-)

commit f0620902b2991577fbf0f69d2564535e7306ce20
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 7 17:07:46 2011 -0400

    Update annotations from gobject-introspection/gir/glib-2.0.c

    This covers most of them.

 glib/gcompletion.c |  2 +-
 glib/gconvert.c    |  6 +++---
 glib/gfileutils.c  |  2 +-
 glib/giochannel.c  |  1 +
 glib/gkeyfile.c    | 15 ++++++++-------
 glib/gmain.c       |  6 +++++-
 glib/goption.c     |  4 ++--
 7 files changed, 21 insertions(+), 15 deletions(-)

commit dad374b1a05bc98a5b8c90e2de51ce87dc4fbd8f
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 7 16:26:43 2011 -0400

    glib-types.h: Include glib.h, since we use G_BEGIN_DECLS

    This header is included individually by g-ir-scanner.

 gobject/glib-types.h | 2 ++
 1 file changed, 2 insertions(+)

commit ab0e9dbfa76e056f875e969c0d7b6e133ec75431
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 3 14:53:27 2011 -0400

    Generate $module-public-headers.txt file, feed it to gtk-doc

    Rather than having the gtk-doc build machinery have a list of header
    files to exclude, change the GLib build to dump a list of public
    header files generated from the maintained Makefile.am files for
    each of glib/, gobject/, gio/.

    Also, for glib, always install glib-unix.h, even on non-Unix
    platforms, for the same reason we install gwin32.h even on Unix.

    https://bugzilla.gnome.org/show_bug.cgi?id=651745

 docs/reference/gio/Makefile.am     |  2 +-
 docs/reference/glib/Makefile.am    | 28 +---------------------------
 docs/reference/gobject/Makefile.am |  7 +------
 gio/Makefile.am                    | 10 +++++++++-
 glib/Makefile.am                   | 12 +++++++++---
 gobject/Makefile.am                |  8 ++++++++
 6 files changed, 29 insertions(+), 38 deletions(-)

commit 003e05244259aeb8e221065a7f41137cc523aefb
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 7 14:17:11 2011 -0400

    gdbus-codegen: Clean config.pyc to make distcheck happy

 gio/gdbus-codegen/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit de57755dbcfdea7e7233c6fd53ecca8a41ea4aa5
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 7 13:02:41 2011 -0400

    g_get_user_data_dir(): Don't warn if XDG_RUNTIME_DIR isn't set

    We have a meaningful fallback, and warning causes the tests to break.

 glib/gutils.c | 4 ----
 1 file changed, 4 deletions(-)

commit 5f35cb9db42ba8faf6f545afa4ac78f84e3a8155
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Jun 7 10:02:40 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 390
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 227 insertions(+), 163 deletions(-)

commit 63dc9730ff31af7c830f1ce51c0f98c3829564b7
Author: Marek Černocký <marek@manet.cz>
Date:   Tue Jun 7 08:08:16 2011 +0200

    Updated Czech translation

 po/cs.po | 757
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 376 insertions(+), 381 deletions(-)

commit d4be2925e43a521649c465ba35b15cc228613b95
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 23:24:36 2011 -0400

    Add a testcase for the previous fix

 glib/tests/dataset.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit c91720255261222d7be685f3a8f039706f04cce5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 23:23:29 2011 -0400

    GDataList: don't hold the bitlock over callbacks

    g_datalist_id_clear_i was dropping the dataset lock around
    the destroy notifies, but kept the bitlock. This was causing
    deadlocks when finalizing widgets.

 glib/gdataset.c | 45 +++++++++++++++++++++++++++++----------------
 1 file changed, 29 insertions(+), 16 deletions(-)

commit 7f6a8d3484827e77b4ce2f046660e54c1fe3fa29
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 10:58:54 2011 +0800

    Update VS 2008/2010 property sheets

    "Install" the new gobject/glib-types.h as well... it is needed.

 build/win32/vs10/glib.props  | 2 ++
 build/win32/vs9/glib.vsprops | 1 +
 2 files changed, 3 insertions(+)

commit 09c98f18fcfdaa58864ef127788cbf6332728a94
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 10:49:29 2011 +0800

    Update gsettings utilities in GIO

    Avoid C99-style variable declaration

 gio/glib-compile-schemas.c | 9 +++++++--
 gio/gsettings-tool.c       | 7 ++++++-
 2 files changed, 13 insertions(+), 3 deletions(-)

commit 1d1f44ca64c671e5e8853279ffb70260ac22a5ba
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 10:32:47 2011 +0800

    Update config.h.win32.in

    -Make contents more like the current config.h(.in)
    -vsnprintf is included in VS 2008+

 config.h.win32.in | 66
 ++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 46 insertions(+), 20 deletions(-)

commit 405b4ff4f4efda5777a7d521255b9143cdae59d7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 08:55:31 2011 +0800

    Update the year in the *.rc.in files

    Sorry this change came a bit late...

 gio/gio.rc.in         | 2 +-
 glib/glib.rc.in       | 2 +-
 gmodule/gmodule.rc.in | 2 +-
 gobject/gobject.rc.in | 2 +-
 gthread/gthread.rc.in | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit e154e3325eb7274b8164f8d7a5e0f335646c2bb7
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 08:25:07 2011 +0800

    Clean up gobject/gvaluetransform.c a bit

    The check for _MSC_VER here is not necessary here because:
    -One cannot compile GLib out-of-the-box with VS 2003 (let alone VS6
     or earlier) since GLib 2.22.4 or so.
    -This code compiles fine with the currently-supported VS versions
     (2008/2010) without the error mentioned in the comments.

    This will close Bug 652002.

 gobject/gvaluetransform.c | 8 --------
 1 file changed, 8 deletions(-)

commit fba436f2cb894646d758cc32e3a1ae839591a11f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 08:20:15 2011 +0800

    Fix gatomic.c compilation on Windows (MSVC)

    -windows.h must be included for the functions[1] to be found during
     compilation
    -For Win32(x86), the InterlockedAnd, InterlockedOr and InterlockedXor
     functions need to be preceded with an underscore. This is mandated
     by the "For the x86 architecture..." clause under "Remarks"[2]
    -This will close Bug 652000

    [1]:http://msdn.microsoft.com/en-us/library/ms684122(v=vs.85).aspx
    [2]:http://msdn.microsoft.com/en-us/library/ms683516(v=vs.85).aspx
        http://msdn.microsoft.com/en-us/library/ms683626(v=vs.85).aspx
        http://msdn.microsoft.com/en-us/library/ms684021(v=vs.85).aspx

 glib/gatomic.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 62072b2a043ab872e45c89b6f7f9073cd7035bf5
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 6 17:14:45 2011 -0400

    gdbus codegen: Ensure PYTHONPATH is set correctly for srcdir !=
    builddir

    We need to pick up the Python files from the source directory, so set
    PYTHONPATH.

 gio/tests/Makefile.am                              | 2 +-
 gio/tests/gdbus-object-manager-example/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit c08fc65edf1eb4c68208b7621f8af762aeb02dc4
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Jun 7 00:37:38 2011 +0800

    Update GLib VS9/10 projects

    There is no longer need to distinguish between gatomic.c and
    gatomic-gcc.c.
    This will avoid gatomic.c from being included in the projects twice.

 build/win32/vs10/glib.vcxproj.filtersin | 3 ---
 build/win32/vs10/glib.vcxprojin         | 1 -
 build/win32/vs9/glib.vcprojin           | 1 -
 3 files changed, 5 deletions(-)

commit 1eb7efce8e0f9c28de0bbd5c922cb2ee52f88108
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jun 6 10:22:40 2011 -0400

    Fix some socket docs issues, remove unused typedefs

    pointed out by Matthias

 gio/gioenums.h               | 2 +-
 gio/giotypes.h               | 3 ---
 gio/gproxyresolver.c         | 2 +-
 gio/gthreadedsocketservice.c | 2 +-
 4 files changed, 3 insertions(+), 6 deletions(-)

commit a6f09e104c2b96f08c7c58a8db15059d17a8fd84
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 3 13:18:44 2011 -0400

    GBuffer: Suffix header with private.h

    This makes it clearer it's not public API yet.

    https://bugzilla.gnome.org/show_bug.cgi?id=651745

 docs/reference/glib/Makefile.am      | 2 +-
 glib/Makefile.am                     | 2 +-
 glib/gbuffer.c                       | 2 +-
 glib/{gbuffer.h => gbufferprivate.h} | 0
 glib/gmappedfile.c                   | 2 +-
 glib/gtimezone.c                     | 2 +-
 glib/gvariant-core.c                 | 2 +-
 glib/gvariant-core.h                 | 2 +-
 8 files changed, 7 insertions(+), 7 deletions(-)

commit 782cf86f12a54065fedd6c232cb52c76dce32538
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 01:14:23 2011 -0400

    GMappedFile: improve test coverage

 glib/tests/mappedfile.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 698bb5d962d8eebfe5315ca550870727b5c93117
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 01:14:00 2011 -0400

    GKeyFile: improve test coverage

 glib/tests/keyfile.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 7cf16c3094d33c07960e2d563dd50ed56e525846
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 01:13:46 2011 -0400

    GConvert: improve test coverage

 glib/tests/convert.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit e02d8165d9e249e16328e1a9db9a8ad633a02d0f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 01:13:26 2011 -0400

    Improve GChecksum test coverage

 glib/tests/checksum.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 4971c43da8b2c76e5fd26ef23e47a1301d31f078
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 01:04:19 2011 -0400

    GMappedFile: remove nonatomic accesses to ref_count

 glib/gmappedfile.c | 2 --
 1 file changed, 2 deletions(-)

commit ae9611839555a6aae975f12cd1103df9014d0579
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:31:52 2011 -0400

    Improve test coverage of gtimezone.c

 glib/tests/gdatetime.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit f0b14653f8d049c033071e1bcaf33ae87ca2edff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:31:40 2011 -0400

    Improve test coverage of GVariant

 glib/tests/gvariant.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

commit 70c082127f12e1758087ae9dd61cfbbd5f397830
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:31:24 2011 -0400

    Improve test coverage of glist.c

 glib/tests/list.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

commit 3e93fa7a2556ed5b3dbb53c60837a132e0a71772
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:31:06 2011 -0400

    Improve test coverage of glib-unix.c

 glib/tests/unix.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

commit bb0cbc2ae121c444f13520e73a30ad47ba2ccc0a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:30:50 2011 -0400

    Improve test coverage of gurifuncs.c

 glib/tests/uri.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit abf4a0200fb9d8bf42e1bfd64c297e7cfe5367f8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:30:30 2011 -0400

    Test runtime dir getter

 tests/testglib.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

commit 1f022a88d4e46c1297d78a73c9331cd2ce2af53b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:30:02 2011 -0400

    Remove deprecated atomic functions from tests

 tests/atomic-test.c |  4 ++--
 tests/onceinit.c    | 10 +++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 059fa31ad1e4b5a262f34bb8122fc5080b33fc97
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 6 00:28:38 2011 -0400

    Improve test coverage

    Duplicate the atomic tests for the functions, and
    test the new atomic operations as well.

 glib/tests/atomic.c | 184
 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 167 insertions(+), 17 deletions(-)

commit a79a5a6202054de5d9b8d7aa3506818c8e33ec27
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 5 22:20:18 2011 -0400

    No need to have two variants of errno-to-GError

 glib/glib-unix.c | 30 +++++++++---------------------
 1 file changed, 9 insertions(+), 21 deletions(-)

commit d811f0cdc9fadc60628c85e4473c4458e755c8b3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 5 19:07:06 2011 -0400

    Fix a typo

    And reword some docs.

 gobject/gobject.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit 16731b60db541c928338e8aaea0a930b6a508f5f
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Jun 5 23:30:42 2011 +0200

    Updated Galician translations

 po/gl.po | 925
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 502 insertions(+), 423 deletions(-)

commit 03441e406c65cdf8fe56e75aa386b5a04235e203
Author: Kalev Lember <kalev@smartlink.ee>
Date:   Sun Jun 5 14:34:33 2011 +0300

    configure.ac: Check for qsort_r function before running the test
    program

    When cross compiling, test programs cannot be run. In order to make it
    easier to cross compile for targets that do not have qsort_r(), check
    for the function before trying to run the test program.

    This avoid having to populate cache with glib_cv_have_qsort_r=no with
    e.g. mingw cross compiler.

    https://bugzilla.gnome.org/show_bug.cgi?id=651920

 configure.ac | 63
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 33 insertions(+), 30 deletions(-)

commit 886a3499e1c886d4320617f6272e03d6d77efdbc
Author: Kalev Lember <kalev@smartlink.ee>
Date:   Sun Jun 5 14:26:12 2011 +0300

    configure.ac: Print qsort_r result only once

    AC_CACHE_CHECK that was introduced in 70a19815 prints the result,
    so the
    following AC_MSG_RESULT is no longer needed.

 configure.ac | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit f3f5c410f03b71790a985d21ef3c92f138d2a44c
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Jun 5 16:59:31 2011 +0200

    Updated Spanish translation

 po/es.po | 325
 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 199 insertions(+), 126 deletions(-)

commit 3b242bc5e9cf96188e61002e175ed33777a82e5d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 23:43:05 2011 -0400

    Use g_param_spec_ref_sink instead of separate ref, sink

 gobject/gobject.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 9eda9d919584179ec1889d5b7e6162cd1ae21052
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 23:42:07 2011 -0400

    GParamSpec: avoid unnecessary double initialization of qdata

 gobject/gparam.c | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

commit 38dc7955e46cf52ac4fce907ace6b354eaa8c0c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 23:13:55 2011 -0400

    No necessary to init qdata atomically

 gobject/gobject.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f1e5af4e120439d5c26ac4f277cbc315d0ce2504
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Jun 4 21:37:37 2011 -0400

    GDBusObject: Remove comment non-existant virtual functions

    These were nuked a while ago.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobject.h | 4 ----
 1 file changed, 4 deletions(-)

commit b3effbf6833f9514dd3e4a57c35b28e6cd4aefae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 20:06:44 2011 -0400

    bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3e6dc0d8fa256a93623b3614a6bfc0e605f8efcb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 18:48:54 2011 -0400

    2.29.6

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9a6529442c3e82bb8151f7ed72edd72559c4fc63
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 19:05:19 2011 -0400

    Fix doc syntax

 gio/gcontenttype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 01f63b19f9f0ddfff3ccfbb1a15ba6e3d68d9c67
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 18:44:44 2011 -0400

    Fix links in gio docs

 docs/reference/gio/migrating-gconf.xml |  7 +++----
 gio/gaction.c                          | 18 +++++++++---------
 gio/gactiongroup.c                     | 34
 ++++++++++++++++++----------------
 gio/gactiongroup.h                     | 22 +++++++++++-----------
 gio/gappinfo.c                         | 10 +++++-----
 gio/gasyncinitable.c                   | 19 +++++++++----------
 gio/gdbusconnection.c                  |  8 +++-----
 gio/gfileinfo.c                        |  2 +-
 gio/gicon.c                            |  2 +-
 gio/gproxy.c                           |  2 +-
 gio/gsocketclient.c                    |  6 +++---
 gio/gsocketservice.c                   | 22 +++++++++++-----------
 gio/gthreadedsocketservice.c           |  6 +++---
 gio/gtlsconnection.c                   |  6 +++---
 gio/gunixcredentialsmessage.c          |  2 +-
 gio/gunixmounts.c                      |  2 +-
 16 files changed, 83 insertions(+), 85 deletions(-)

commit cb9c92cdb4e4141adab4c43825ad114f16e1b473
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Jun 5 01:05:03 2011 +0300

    Updated Hebrew translation.

 po/he.po | 141
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 96 insertions(+), 45 deletions(-)

commit 594bf7460a321a6a65743dff960d017b086e3aba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 14:40:23 2011 -0400

    Fix parameter documentation for many functions

    Use the opt-out mechanism introduced in gtk-doc 1.16 to work
    around problems with the _utf8 renaming games that the win32
    port is playing in our headers.

    https://bugzilla.gnome.org/show_bug.cgi?id=638449

 glib/gconvert.h   | 2 ++
 glib/gdir.h       | 2 ++
 glib/gfileutils.h | 2 ++
 glib/gspawn.h     | 2 ++
 glib/gutils.h     | 8 ++++++--
 5 files changed, 14 insertions(+), 2 deletions(-)

commit 75f7eef9cd1f4bdbae6c75c53ed340ea8b5ba4c5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 11:57:10 2011 -0400

    Fix doc typos

    Now with fewer broken links...

 docs/reference/glib/building.sgml         |   2 +-
 docs/reference/glib/running.sgml          |   2 +-
 docs/reference/glib/tmpl/macros_misc.sgml |   7 +-
 docs/reference/glib/tmpl/queue.sgml       |   4 +-
 glib/garray.c                             |   3 +-
 glib/gdataset.c                           |   4 +-
 glib/gdatetime.c                          |   4 +-
 glib/giochannel.c                         |   2 +-
 glib/glib-unix.c                          |   2 +-
 glib/gmain.c                              |   8 +--
 glib/gmarkup.c                            |   2 +-
 glib/gqueue.c                             |   2 +-
 glib/gsequence.c                          | 107
 +++++++++++++++++-------------
 glib/gtree.c                              |  28 ++++----
 14 files changed, 97 insertions(+), 80 deletions(-)

commit 3b9c8962dc470a451fa639067faa39fb8fc85f95
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 11:46:10 2011 -0400

    configure.in: Use tar-ustar to avoid name length limitations

    Also use dist-bzip2.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 635f5373c238bdb4cba6781b705319f869404e94
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Jun 4 12:43:00 2011 -0400

    Fix up gdbus invocation in example

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0b41002474abd7a95c53b76fba937a922aa0ea86
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Jun 4 12:33:39 2011 -0400

    gdbus: Add a way to emit a signal

    See https://bugs.freedesktop.org/show_bug.cgi?id=37890#c6 where it was
    discovered that dbus-send(1) actually doesn't work (either libdbus-1's
    flush implementation or dbus-send(1)'s usage of it is broken) so it's
    useful to have here.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus.xml |  43 ++++++++-
 gio/gdbus-tool.c             | 203
 ++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 242 insertions(+), 4 deletions(-)

commit 0c8bb8d479d0c6992bc82508aff69d61a340c694
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Jun 4 11:52:08 2011 -0400

    Fix typos in "Migrating to GDBus" docs

    It's Skeleton now, not Stub.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/migrating-gdbus.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 87dc08ee4d7e5dac7db80a5642cb85e1f40e1ce8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 10:46:38 2011 -0400

    Distcheck fixes

    Fix VPATH builds.

 gio/tests/gdbus-object-manager-example/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1aa348c14c349d73ded8c9165c532feb463bc187
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 10:45:30 2011 -0400

    Distcheck fixes

    Accidentally committed debug leftover.

 gio/abicheck.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c40199b450f1abef30d9514e3ec34b52669add9a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 4 08:13:48 2011 -0400

    Update NEWS

 NEWS | 77
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 71 insertions(+), 6 deletions(-)

commit e32a9406b1b3089e551cd8baa0824874c0de64cc
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Jun 4 13:44:19 2011 +0300

    Updated Hebrew translation.

 po/he.po | 186
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 97 insertions(+), 89 deletions(-)

commit c5d9a46394a147c8a6c8708046e7459c55d477e4
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Jan 25 11:31:41 2011 +0100

    avoid quadratic behavior of GMainLoop when all fd's have the same
    priority

    https://bugzilla.gnome.org/show_bug.cgi?id=640518

 glib/gmain.c | 49 +++++++++++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 18 deletions(-)

commit 1e88c5321c1fede65e150898f3e298052add241c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 3 23:38:46 2011 -0400

    Add a test for the previous fix

 glib/tests/rand.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 77be95cdce7f875a10576ac72624024b04b86a65
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 3 23:37:23 2011 -0400

    GRand: avoid overflow

    Otherwise, g_random_double_range (-G_MAXDOUBLE, G_MAXDOUBLE)
    doesn't work as expected.

    https://bugzilla.gnome.org/show_bug.cgi?id=502560

 glib/grand.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit deed4dd36b3d0f4913a1350536dce0cd010b0549
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 3 22:45:51 2011 -0400

    g_mkdir_with_parents: cope with dirs popping into existence

    Don't bail out if a directory suddenly turns out to exist
    after all. Proposed in bug 612729.

 glib/gfileutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 69efeee287f752befdcaae94f5ec981b33be6377
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Wed Mar 17 02:34:51 2010 +0200

    Made g_utf8_to_ucs4_fast() even faster

    https://bugzilla.gnome.org/show_bug.cgi?id=619435

 glib/gutf8.c | 45 ++++++++++++++++-----------------------------
 1 file changed, 16 insertions(+), 29 deletions(-)

commit 1b101a38730f151b70f0ada607dbd8e43778f980
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Mon Mar 15 03:37:11 2010 +0200

    Added performance tests for UTF-8 decoding functions

    https://bugzilla.gnome.org/show_bug.cgi?id=619418

 glib/tests/Makefile.am        |   4 +
 glib/tests/utf8-performance.c | 202
 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

commit f065d7d60e2b6110705b1b32f050ccad0bcde62f
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Sat Oct 16 07:40:44 2010 -0400

    Have g_queue_remove() return a boolean

    g_queue_remove() should return a boolean so callers can verify that an
    element was found and removed, as in the following example:

        if (g_queue_remove (queue, referenced_object))
            g_object_unref (referenced_object);

    Similarly, g_queue_remove_all() should return the number of elements
    found and removed.

    https://bugzilla.gnome.org/show_bug.cgi?id=632294

 glib/gqueue.c | 19 +++++++++++++++----
 glib/gqueue.h |  4 ++--
 2 files changed, 17 insertions(+), 6 deletions(-)

commit 496157ffd3350799198e32e1002a19fc8be3ea83
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Wed Sep 16 17:39:48 2009 +0200

    gthread: avoid locking in _get_mutex_impl

    When getting the mutex implementation of a static mutex, avoid taking
    the global
    lock every time but only take the lock when there was no mutex and
    we need to
    create one.

    https://bugzilla.gnome.org/show_bug.cgi?id=599954

 glib/gthread.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

commit fca330dafa9a77edc58a30b6128eaf466d4a2ba7
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 25 11:56:51 2011 +0200

    Use g_atomic_pointer_or/and to set datalist flags

    https://bugzilla.gnome.org/show_bug.cgi?id=650458

 glib/gdataset.c | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

commit 0a918c0d2a9af992fd100f5608783cffa1a752fc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 19 21:55:16 2011 +0200

    Make g_object_get_data use the new faster g_datalist_get_data

    https://bugzilla.gnome.org/show_bug.cgi?id=650458

 gobject/gobject.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 1cceda49b60bfd9b326e11996a5c77b10987e57a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 19 21:51:49 2011 +0200

    Make g_datalist_get_data not look up the quark

    Instead of converting the string to a quark and comparing quarks we
    use the new lockless g_quark_to_string and just compare the quarks
    in the datalist with the given string.

    This means we avoid the global lock for string to quark. Additionally
    most of the time the data list will be quite short, so the cost of
    doing the sting comparisons is likely similar to that of the quark
    hashtable lookup (which does at least one string comparison for a
    successfull lookup).

    https://bugzilla.gnome.org/show_bug.cgi?id=650458

 glib/gdataset.c   | 52
 ++++++++++++++++++++++++++++++++++++++++++----------
 glib/gdataset.h   |  4 ++--
 glib/glib.symbols |  1 +
 3 files changed, 45 insertions(+), 12 deletions(-)

commit 7ae5e9c2487dc23d6b584d1508f38f5e89700181
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 19 21:30:38 2011 +0200

    Make quark to string lockless

    We do this by assigning to g_quarks atomically and leaking it when
    replacing it atomically. Then its safe to consume the array
    on the reader side (atomically).

    Also, since we're leaking quarks on growing, bump the block size
    so that we're not leaking as much. gtk3-demo allocates > 1500 quarks,
    and gnome apps > 3000. I'm setting the block to 2048 which means no
    leaks for small gtk3 apps and just one leak for gnome apps.

    https://bugzilla.gnome.org/show_bug.cgi?id=650458

 glib/gdataset.c | 37 ++++++++++++++++++++++++++-----------
 1 file changed, 26 insertions(+), 11 deletions(-)

commit 3f8638ce9335511f12207f2fcbc81847c18d4b49
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 19 14:48:50 2011 +0200

    Make g_datalist not use a global lock and perform better

    This implementation uses a per-list bitlock for user data, and a
    simple array rather than a linked list which uses less memory and less
    allocations. It also gets better cache behaviour since related things
    are stored close to each other.

    https://bugzilla.gnome.org/show_bug.cgi?id=650458

 glib/gdataset.c | 404
 ++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 244 insertions(+), 160 deletions(-)

commit 4cd0b86103c987a41ce1ebeb1eee8ad6cf9eac30
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 3 20:54:32 2011 -0400

    Add pointer bitlocks to the docs

 docs/reference/glib/glib-sections.txt | 3 +++
 1 file changed, 3 insertions(+)

commit df0b208831a797f402d9f86263e6fa5378da47cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 25 11:08:20 2011 +0200

    Implement pointer sized bitlocks

    Based on a patch from Alexander Larsson.

    https://bugzilla.gnome.org/show_bug.cgi?id=651467

 glib/gbitlock.c            | 193
 +++++++++++++++++++++++++++++++++++++++++++++
 glib/gbitlock.h            |  29 +++++++
 glib/glib.symbols          |   3 +
 gthread/tests/1bit-mutex.c |  50 +++++++++---
 4 files changed, 265 insertions(+), 10 deletions(-)

commit 1a80405a36eae6777cf8dc809da5883ba666f41c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 3 20:29:41 2011 +0200

    bitlock: hand-code assembly version for x86

    The __sync_fetch_and_or() operation on x86 is a bit suboptimal
    when the
    result isn't ignored.  Normally we could use the 'lock or' assembly
    instruction to accomplish this, but this instruction discards the
    previous value.

    In order to work around this issue, GCC is forced to emit a
    compare-and-exchange loop.

    We can easily use the 'lock bts' instruction, though.  It can't
    be used
    in the general case for __sync_fetch_and_or() but it works great
    for our
    case (test and set a single bit).

    I filed a bug against GCC[1] to get this exposed as a new intrinsic
    (or
    have the optimiser detect the case) but until then we'll hand-code
    it on
    x86 and amd64.

    The uncontended case sees a 31% improvement on my test machine.

     [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49244

    https://bugzilla.gnome.org/show_bug.cgi?id=651467

 glib/gbitlock.c | 57
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 54 insertions(+), 3 deletions(-)

commit f2bd54d0c5e3093ad141de6142277a27b82147e1
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Wed Jun 1 16:45:43 2011 +0200

    gvariant: fix introspection annotations

    g_variant_get_strv and g_variant_get_bytestring return arrays that
    are null terminated and have an explicit length. Since gjs doesn't
    support (out) arrays with length, mark them also null-terminated
    (but leave the length annotation, so pygobject can remove the
    argument)

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 glib/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 53ced63c6d4e0df502c6396133dfe67e15f1712b
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jun 3 14:45:29 2011 -0400

    Fix include path for gdbus-codegen example XML

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/migrating-gdbus.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6d54505b2d0e873fa69f1e2fdba1e23c5136f7f3
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jun 3 14:39:04 2011 -0400

    Fix docs for D-Bus introspection data structures

    Mark structs as boxed types and use /*< public >*/ so the struct
    members are properly shown.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio.types | 7 +++++++
 gio/gdbusintrospection.h     | 7 +++++++
 2 files changed, 14 insertions(+)

commit 723adbc2feb72b980b6a62579eaa993b190ca1d3
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jun 3 13:22:31 2011 -0400

    Move gdbus-codegen example code and docs into separate directories

    This avoids the generated types (e.g. ExampleAnimal, ExampleCat,
    ExampleObject and ExampleObjectManagerClient) being referenced in the
    core gio docs. This was requested by Matthias.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 configure.ac                                       |   2 +
 docs/reference/gio/Makefile.am                     |   3 +-
 .../gio/gdbus-object-manager-example/Makefile.am   |  68 +++++++++
 .../gdbus-object-manager-example-docs.xml          |  17 +++
 .../gdbus-object-manager-example-sections.txt      | 157
 ++++++++++++++++++++
 .../gdbus-object-manager-example.types             |  10 ++
 docs/reference/gio/gio-sections.txt                | 158
 ---------------------
 docs/reference/gio/gio.types                       |  10 --
 docs/reference/gio/migrating-gdbus.xml             |  12 +-
 gio/Makefile.am                                    |  28 ----
 gio/tests/Makefile.am                              |   8 +-
 gio/tests/gdbus-object-manager-example/Makefile.am |  48 +++++++
 .../gdbus-example-objectmanager.xml                |   0
 13 files changed, 316 insertions(+), 205 deletions(-)

commit 3bd3067ffc1617b2fe96498b18b68aa7f2644487
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 2 17:14:58 2011 -0400

    gobject: Use _ prefixing in private headers over G_GNUC_INTERNAL in
    public headers

    This helps out gtk-doc and g-ir-scanner, and also makes much clearer
    what's private versus public.

    https://bugzilla.gnome.org/show_bug.cgi?id=651745

 docs/reference/gobject/gobject-sections.txt | 10 ----------
 docs/reference/gobject/tut_gtype.xml        |  2 +-
 gobject/gboxed.c                            |  2 +-
 gobject/genums.c                            |  3 ++-
 gobject/gobject.c                           |  3 ++-
 gobject/gparam.c                            |  2 +-
 gobject/gparamspecs.c                       |  3 ++-
 gobject/gsignal.c                           |  4 ++--
 gobject/gtype-private.h                     | 10 ++++++++++
 gobject/gtype.c                             | 18 +++++++++---------
 gobject/gtype.h                             | 12 ------------
 gobject/gvalue.c                            |  2 +-
 gobject/gvaluetransform.c                   |  3 ++-
 gobject/gvaluetypes.c                       |  3 ++-
 14 files changed, 35 insertions(+), 42 deletions(-)

commit d51198baad17f88e046300a9375619b4bffcd881
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 2 11:53:25 2011 -0400

    spawn-multithreaded: New test case

    We didn't have any coverage of threads spawning processes, which we
    should definitely support.

    https://bugzilla.gnome.org/show_bug.cgi?id=651725

 gthread/tests/Makefile.am           |   9 +-
 gthread/tests/spawn-multithreaded.c | 231
 ++++++++++++++++++++++++++++++++++++
 gthread/tests/test-spawn-echo.c     |  39 ++++++
 3 files changed, 278 insertions(+), 1 deletion(-)

commit c34a6a66e7b918983b561ee8ff1cf7abd3f4b347
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 2 09:10:36 2011 -0400

    gmain: Consolidate UNIX signal init state handling

    For a future signalfd() patch, it will be easier to handle if
    we don't separate initialization from watching for a particular
    signal.

    https://bugzilla.gnome.org/show_bug.cgi?id=651725

 glib/gmain.c | 61
 +++++++++++++++++++++++++++---------------------------------
 1 file changed, 27 insertions(+), 34 deletions(-)

commit 6ea274bca41de8fc6de11d0a5eda22c0efc69ac9
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 2 08:56:25 2011 -0400

    gmain: Clean up SIGCHLD handling

    Unify it more with the rest of the signal handling code.  There's
    no reason not to specify SA_RESTART and SA_NOCLDSTOP for flags
    always, so just do it.

    Remove unnecessary initialization, and push the internal API
    towards just ensure_unix_signal_handler_installed_unlocked().

    https://bugzilla.gnome.org/show_bug.cgi?id=651725

 glib/gmain.c | 31 ++++++-------------------------
 1 file changed, 6 insertions(+), 25 deletions(-)

commit 16bdb12e6dcb690d56baf52a34ba674052d39b6e
Author: Hanro <hanro@gmx.de>
Date:   Thu Jun 2 15:44:19 2011 -0400

    gkeyfile: Only test file descriptors against -1

    Windows CE at least will return other (valid) negative values.

 glib/gkeyfile.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 7ed328aaf01acdc2537498c9617129e4c3004608
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 1 15:11:02 2011 -0400

    gdbus: Avoid blocking on worker thread in connection initialization

    I can't see a reason to spin until the worker thread runs, so don't.
    This avoids ugly sched_yield() calls that show up in strace and
    annoy me; the code is cleaner now too.

    We now grab the types needed for the WebKit workaround in the
    thread creation area, but only release them when the thread itself
    exits.

    https://bugzilla.gnome.org/show_bug.cgi?id=651650

 gio/gdbusprivate.c | 182
 +++++++++++++++++++----------------------------------
 1 file changed, 65 insertions(+), 117 deletions(-)

commit a588974561532ba5d10971ee95065b4db33a1e1f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 31 19:23:14 2011 -0400

    Expand content type docs slighly

 gio/gcontenttype.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 151016922d59facc158fddb51a6ed444fe65569c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 31 14:53:30 2011 -0400

    Add a note about atomic changes

 NEWS | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit a06863de605fec0b8a8ba33cd663988256352964
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 31 13:36:16 2011 -0400

    Add a boxed type for GVariantBuilder, mark GVariantIter as (skip)

    Based on a patch by Giovanni Campagna <gcampagna@src.gnome.org>

    From discussion, GVariantIter is not useful for bindings, but
    GVariantBuilder may be.

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 glib/gvariant.c         |  2 +-
 gobject/gboxed.c        |  2 ++
 gobject/glib-types.h    | 10 ++++++++++
 gobject/gobject.symbols |  1 +
 4 files changed, 14 insertions(+), 1 deletion(-)

commit 6af9dd51358c9a3b77872aa2ee9c055994f13835
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 31 13:25:09 2011 -0400

    gutils.c: Annotation fixes

 glib/gutils.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 581ed51f0d0179c61155a324b51cc6f974143016
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 31 13:10:12 2011 -0400

    g_shell_parse_argv: Annotate

 glib/gshell.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 98ebc596cffcd4d9bb7e48ac124c6311c739ae81
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 31 12:00:41 2011 -0400

    gfileutils: Annotations for g_file_{get,set}_contents

    These are actually byte arrays.

 glib/gfileutils.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 2300be5be38e091aeac55720cf51bc98e7f89790
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 31 10:35:38 2011 -0400

    Consistently use G_GNUC_EXTENSION instead of __extension__

    g-ir-scanner doesn't like __extension__, and while I can add it, since
    we have this macro, we should be using it consistently.

 glib/gatomic.h | 32 ++++++++++++++++----------------
 glib/gmacros.h |  2 +-
 glib/gmem.h    |  4 ++--
 glib/gtypes.h  | 18 +++++++++---------
 4 files changed, 28 insertions(+), 28 deletions(-)

commit a84e6f982f465b31aec7365dadfe2c1ad6664e11
Author: muralis <murali.sound@gmail.com>
Date:   Wed May 25 13:42:59 2011 +0530

    gthreadedresolver: fix hang on g_thread_pool_push() failure

    In resolve_sync function in gthreadedresolver.c, if g_thread_pool_push
    fails due to thread creation failure, we are just simply appending the
    data to the queue of work to do. After the failure, we might wait
    indefinitely in g_cond_wait. In case of g_thread_pool_push failure,
    propagate the error so that this function does not blocks forever in
    case of failure.

    https://bugzilla.gnome.org/show_bug.cgi?id=651034

 gio/gthreadedresolver.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit fb34889871c40a50c2bde0c5e6fe64acdd121c37
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Sun May 29 14:04:16 2011 +0200

    [l10n]Updated Catalan (Valencian) translation

 po/ca@valencia.po | 2169
 +++++++++++++++++++++++++++++++----------------------
 1 file changed, 1275 insertions(+), 894 deletions(-)

commit 59098fcc9b923bca79c091a4fc7980700617efaa
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun May 29 09:47:30 2011 +0200

    Updated Spanish translation

 po/es.po | 124
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 61 insertions(+), 63 deletions(-)

commit 807d41b89bcc8d22931dda62b17a6d1a2c8e22ec
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 29 00:05:07 2011 -0400

    Documentation fixups

 docs/reference/glib/glib-sections.txt |  7 ++++++
 docs/reference/glib/tmpl/macros.sgml  |  3 +--
 glib/gdatetime.c                      |  4 ++--
 glib/gkeyfile.c                       |  3 ++-
 glib/glist.c                          |  2 +-
 glib/gmarkup.c                        |  4 ++--
 glib/gmem.h                           |  2 +-
 glib/gsequence.c                      | 45
 +++++++++++++++++++----------------
 glib/gslist.c                         |  2 +-
 9 files changed, 41 insertions(+), 31 deletions(-)

commit 85ab379ac655a82573251b2598d5ed5b6629168b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 23:27:24 2011 -0400

    Clean up includes

 glib/gatomic.h     |  2 +-
 glib/glib-object.h | 28 ++++++++++++++--------------
 2 files changed, 15 insertions(+), 15 deletions(-)

commit 23b6691428a96c38689a75b1d96ca884fa7dc926
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 23:15:07 2011 -0400

    Reduce excessive whitespace

 glib/gatomic.h | 66
 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

commit a3c3aaa499e69764fcc295c5c9acd55d0cf26c9b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 22:49:59 2011 -0400

    Remove redundant comments

    The comments in gthreadpool.h were duplicating the
    doc comments in the sources.

 glib/gthreadpool.h | 35 -----------------------------------
 1 file changed, 35 deletions(-)

commit 666adc2dc0c9958fc25fd17d8954e40a5602a019
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 22:33:37 2011 -0400

    Volatile not necessary after all

    I was temporarily confused.

 glib/garray.c      | 4 ++--
 glib/gasyncqueue.c | 2 +-
 glib/ghash.c       | 2 +-
 glib/gtree.c       | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

commit 53f93aacf3c091322d2674224e75e0d5454dc370
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 22:03:05 2011 -0400

    GTree: Declare ref_count as volatile

 glib/gtree.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a4f00f39daad6892d3d3368b8d05101c7af8d65d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 22:02:13 2011 -0400

    GAsyncQueue: Make ref_count a volatile gint

 glib/gasyncqueue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a33abe9c21c3c749c787619e6a661ca2a12f9b45
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 21:43:45 2011 -0400

    GAsyncQueue: Remove excessive atomic operations

    Almost every function was double-checking the ref count,
    unnecessarily.

 glib/gasyncqueue.c | 17 -----------------
 1 file changed, 17 deletions(-)

commit edc7fde495aaf9819eeeb051a2bcd4f145c055ab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 21:41:08 2011 -0400

    GArray: Avoid unncessary atomic accesses to refcounts

    Not really necessary to double-check the ref-count.

 glib/garray.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit abf719362a5c17854557542cc21fe93ae04419d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 21:40:12 2011 -0400

    GHash: Avoid nonatomic access to the reference count

    Not really necessary to constantly double-check the ref
    count, anyway.

 glib/ghash.c | 4 ----
 1 file changed, 4 deletions(-)

commit f12650392bcf0ae134c3cd46d4bf0e11468b94d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 21:14:36 2011 -0400

    Fix a typo

 glib/glib-unix.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d35e83d3372ca484a765dfca2ded8ed5adb61e5a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 21:12:52 2011 -0400

    Documentation tweaks

    Add Since tags, etc.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gatomic.c                        | 62
 +++++++++++++++++++++++++++--------
 glib/glib-unix.c                      | 53 +++++++++++++++++-------------
 glib/glib-unix.h                      | 20 +++++------
 4 files changed, 90 insertions(+), 46 deletions(-)

commit 2df4750aceec5f774a413f3f8ee7ccaabc5c8880
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat May 28 15:13:11 2011 +0100

    gsocket: Fix some cases of returning error without setting *error

    g_socket_shutdown and g_socket_close were calling check_socket with a
    NULL error parameter so any errors wouldn't get propagated up.

    https://bugzilla.gnome.org/show_bug.cgi?id=651327

 gio/gsocket.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0703dbc21f83122ff2d093632549dbbacf192c54
Author: Neil Roberts <neil@linux.intel.com>
Date:   Sat May 28 15:06:45 2011 +0100

    gsocket: Fix the error message for a failed g_socket_shutdown

    The GError message for g_socket_shutdown was reporting that it was
    "Unable to create socket" which is presumably a cut-and-paste bug.

    https://bugzilla.gnome.org/show_bug.cgi?id=651327

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 56c0d0f384ee8033c99a0d6db7fa4ff11d7fe689
Author: Antoine Jacoutot <ajacoutot@openbsd.org>
Date:   Fri May 27 11:08:13 2011 +0200

    Fix compile warnings on OpenBSD.

    https://bugzilla.gnome.org/show_bug.cgi?id=651223

 gio/gnetworkingprivate.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 05c7dcab37af27fc3fb7b64d0aca51fafc0eefe2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 18:42:09 2011 -0400

    Remove unnecessary casts

    The new atomic implementations don't need these anymore to
    avoid warnings.

 glib/gthread.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d09443fe20753fc44afd6ac25463ac52861701cb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat May 28 16:41:59 2011 -0400

    optimise bitlocks with new atomic operations

    Add a performance test for bitlocks.

    Make use of the new g_atomic_int_{and,or} to avoid having to do the
    usual compare-and-exchange loop.

    On a test machine, the change increases performance from approximately
    20 million uncontended acquire/releases per second to 31 million.

 glib/gbitlock.c        | 27 ++++++++-------------------
 glib/tests/Makefile.am |  3 +++
 glib/tests/bitlock.c   | 39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+), 19 deletions(-)

commit 858a32879291ebb5612c7500fc195c30fb6e8496
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat May 28 17:27:12 2011 -0400

    Fix futex(2) detection and use

    Commit 22e7fc34c44c5ef95abf4fed429f2345410cc82c introduced a
    regression:
    futexes were always disabled and the emulated codepath was always
    being
    used.  That commit was in response to an originally buggy
    implementationt hat wrote junk into config.h (but happened to
    be working
    properly).

    Fix up the mess and while we're at it, close bug #631231 by including
    syscall.h from the correct location and using __NR_futex instead of
    SYS_futex.

    Closes #631231.

 configure.ac    | 8 +++-----
 glib/gbitlock.c | 6 +++---
 2 files changed, 6 insertions(+), 8 deletions(-)

commit 83821352657a9481dbff6ab04e8ae60566c17d5e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat May 28 15:59:18 2011 -0400

    glib: Rewrite gatomic.[ch]

     - remove all inline assembly versions

     - implement the atomic operations using either GCC intrinsics, the
       Windows interlocked API or a mutex-based fallback

     - drop gatomic-gcc.c since these are now defined in the header file.
       Adjust Makefile.am accordingly.

     - expand the set of operations: support 'get', 'set', 'compare and
       exchange', 'add', 'or', and 'xor' for both integers and pointers

     - deprecate g_atomic_int_exchange_and_add since g_atomic_int_add (as
       with all the new arithmetic operations) now returns the prior value

     - unify the use of macros: all functions are now wrapped in
     macros that
       perform the proper casts and checks

     - remove G_GNUC_MAY_ALIAS use; it was never required for the integer
       operations (since casting between pointers that only vary in
       signedness of the target is explicitly permitted) and we avoid the
       need for the pointer operations by using simple 'void *' instead of
       'gpointer *' (which caused the 'type-punned pointer' warning)

     - provide function implementations of g_atomic_int_inc and
       g_atomic_int_dec_and_test: these were strictly macros before

     - improve the documentation to make it very clear exactly which types
       of pointers these operations may be used with

     - remove a few uses of the now-deprecated
     g_atomic_int_exchange_and_add

     - drop initialisation of gatomic from gthread (by using a
     GStaticMutex
       instead of a GMutex)

     - update glib.symbols and documentation sections files

    Closes #650823 and #650935

 docs/reference/glib/glib-sections.txt |   21 +-
 glib/Makefile.am                      |    8 +-
 glib/gatomic-gcc.c                    |  104 ---
 glib/gatomic.c                        | 1608
 +++++++++++++--------------------
 glib/gatomic.h                        |  312 ++++---
 glib/glib.symbols                     |   13 +-
 glib/gthread.c                        |    1 -
 glib/gthreadpool.c                    |    2 +-
 glib/tests/atomic.c                   |    2 -
 gobject/gobject.c                     |    4 +-
 10 files changed, 830 insertions(+), 1245 deletions(-)

commit 2fb57ff46f32316e991ab9f99daa5fce4885f097
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 14:29:08 2011 -0400

    Quiet down the build a bit

 gio/Makefile.am             |  2 +-
 gio/tests/Makefile.am       |  6 +++---
 glib/Makefile.am            |  6 +++---
 glib/libcharset/Makefile.am |  8 ++++----
 gobject/Makefile.am         | 10 +++++-----
 po/Makefile.in.in           |  2 +-
 6 files changed, 17 insertions(+), 17 deletions(-)

commit ae85e3b7b69f9c069cdcc090832802bc772c9822
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 13:59:20 2011 -0400

    Quell warnings from g_once_init_enter_impl

 glib/gthread.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f5bc2e00c730866c72ab143375320a29897552a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 13:57:47 2011 -0400

    Trivial: fix a variable name

    It is indices, not indeces.

 glib/gthread.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 22cc6ce67959af79d317229225aaf252bd5234da
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue May 24 11:04:42 2011 +0100

    Add a regression test for GNOME#642026

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=642026
    Bug-NB: NB#257512

 gthread/tests/642026.c    | 91
 +++++++++++++++++++++++++++++++++++++++++++++++
 gthread/tests/Makefile.am |  3 ++
 2 files changed, 94 insertions(+)

commit e83210425fb407e6fa7be2dcc7ac53d4d30e9a7c
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue May 24 16:23:38 2011 +0100

    GStaticPrivate: protect GRealThread.private_data with a bit-lock

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=642026
    Bug-NB: NB#257512

 glib/gthread.c | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

commit 83f1b12388fc36128dac84729f433eff8183ff45
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue May 24 16:23:02 2011 +0100

    Refactor GStaticPrivate accessors to facilitate protecting them
    with locks

    * g_static_private_get: have a single entry and exit

    * g_static_private_set: delay creation of GArray so the whole tail of
      the function can be under the private_data lock without risking
      deadlock with the g_thread lock; call the destructor last, after
      we could have unlocked

    * g_static_private_free: choose next thread in list before accessing
      private_data, to keep all accesses together

    * g_thread_cleanup: steal private_data first, then work exclusively
    with
      the stolen array (which doesn't need to be under a lock any more)

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=642026
    Bug-NB: NB#257512

 glib/gthread.c | 71
 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 36 insertions(+), 35 deletions(-)

commit b05f0b351c46a8f97bf7e9d62f5dd4074ca78486
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue May 24 16:02:33 2011 +0100

    g_static_private_free: defer non-trivial destruction til after
    we unlock

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=642026
    Bug-NB: NB#257512

 glib/gthread.c | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 insertions(+), 3 deletions(-)

commit d5f0ec1e8eb4523684e06efa306f54bafee3a117
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Tue May 24 15:59:33 2011 +0100

    GRealThread: remove obsolete comment about gmain.c, which no longer
    has a copy

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=642026
    Bug-NB: NB#257512

 glib/gthread.c | 1 -
 1 file changed, 1 deletion(-)

commit b6fd3c3dac9cbffc0f45162b289f625e61eb1319
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sat May 28 10:27:31 2011 +0200

    Updated Spanish translation

 po/es.po | 201
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 102 insertions(+), 99 deletions(-)

commit 00734ef99f2c10bcd25fd85a453712a46d3cf806
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 00:16:39 2011 -0400

    Add macro version for all atomic operations

    Better to be consistent about this.

 glib/gatomic.h | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit 7cf112225399ffa262082727bf4f434d57568e30
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 28 00:04:10 2011 -0400

    Use G_STATIC_ASSERT_EXPR for size checks in atomic macros

    Also add the same size checks to the macros wrapping
    gcc builtins.

 glib/gatomic.h | 50 +++++++++++++++++++++++++++++---------------------
 1 file changed, 29 insertions(+), 21 deletions(-)

commit edd65baa6d9f6b951f093a15b6fcb5771e3397e0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 24 02:07:55 2011 -0400

    Add a test case for atomic ops

    Make sure that the macros work properly with the range of types that
    they are documented to work with and ensure that no strict aliasing
    warnings are issued (even at the highest warning level).

    https://bugzilla.gnome.org/show_bug.cgi?id=650935

 glib/tests/.gitignore  |  1 +
 glib/tests/Makefile.am |  4 ++++
 glib/tests/atomic.c    | 41 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 46 insertions(+)

commit c00ef0a17aba057698eab4d4a769b358511370cd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 22 12:44:12 2011 -0400

    Add G_STATIC_ASSERT_EXPR macro

    https://bugzilla.gnome.org/show_bug.cgi?id=626549

 docs/reference/glib/tmpl/macros_misc.sgml | 18 ++++++++++++++++++
 glib/gmacros.h                            |  1 +
 2 files changed, 19 insertions(+)

commit 64d5a0404adc1658711631b773e29a5d43f9a1c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 27 20:22:20 2011 -0400

    GThread: expand the docs

    Mention newer addition to the thread support in the introduction:
    bit locks and one-time initialization.

 glib/gthread.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 7d0eac03e9cd88b33f68a7a451992d1f222573a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 27 18:30:45 2011 -0400

    glib-compile-schemas: write informational messages to stdout

    The fact that we return 0 here makes it clear that this
    is not considered an error, so it makes sense to not
    write these messages to stderr.
    Proposed by Antoine Jacoutot,
    https://bugzilla.gnome.org/show_bug.cgi?id=650882

 gio/glib-compile-schemas.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit dfcac7b23e7cfbefc02f2d8772970340d7dd7fb5
Author: Colin Walters <walters@verbum.org>
Date:   Fri May 27 16:10:21 2011 -0400

    g_variant_new_dict_entry: Fix documentation and annotations

    Move @key to not be at the start of a line, otherwise g-ir-scanner
    gets confused.

    Also two annotation fixes.

 glib/gvariant.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 5345d21150848d9865f8bd2cd562a2484849db9b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 27 16:08:57 2011 -0400

    forgotten test

 glib/tests/hash.c | 133
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

commit 39ba9c8e49a23c6f8a65e68af64ad5a52c26db08
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Fri May 27 16:03:04 2011 -0400

    g_variant_get_child_value: Add a precondition on length

    Ensure callers get a warning if they pass a bad length.

    Split into a separate commit and changed to order index before
    n_children by Colin Walters <walters@verbum.org>

 glib/gvariant-core.c | 2 ++
 1 file changed, 2 insertions(+)

commit e61fa51fd5acd6f448a2200e737b7bea033066f9
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sun Apr 3 17:18:44 2011 +0200

    GVariant: fix introspection annotations

    Add transfer annotations for most functions, as well as some (array)
    and (skip) for functions that use varargs.

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 glib/gvariant-core.c |   2 +-
 glib/gvariant.c      | 137
 ++++++++++++++++++++++++++-------------------------
 glib/gvarianttype.c  |  38 +++++++-------
 3 files changed, 92 insertions(+), 85 deletions(-)

commit 77f4f5aa02458e6c7f909dc6087a39d9b75d0ba6
Author: Antoine Jacoutot <ajacoutot@openbsd.org>
Date:   Fri May 27 15:51:08 2011 +0200

    Add glib credentials support to OpenBSD.

    https://bugzilla.gnome.org/show_bug.cgi?id=650885

 gio/gcredentials.c    | 54 ++++++++++++++++++++++++++++++++++++++
 gio/gdbusauth.c       |  6 ++---
 gio/gioenums.h        |  4 ++-
 gio/gsocket.c         | 13 ++++++++--
 gio/gunixconnection.c | 72
 +++++++++++++++++++++++++++++++++++++--------------
 5 files changed, 123 insertions(+), 26 deletions(-)

commit 2ee470a71fdc3707cf4e093b22ab0f46ffab82e2
Author: Antoine Jacoutot <ajacoutot@openbsd.org>
Date:   Fri May 27 17:39:38 2011 +0200

    Don't hardcode path to true(1).

    true(1) is not always installed under /bin so leave system() find
    it in the PATH.

    https://bugzilla.gnome.org/show_bug.cgi?id=651219

 tests/child-test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d7b67a6c361f747c8ac32d18248cc0923fe73aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 26 21:52:50 2011 -0400

    Preserve consistency when removing all nodes from a hash table

    During the recent refactorings of GHashTable a bug was introduced
    where removing all nodes from a hash table would leave tombstones
    behind, but make the counts appear like there are none.

    Reported and tracked down by Carlos Garnacho,
    https://bugzilla.gnome.org/show_bug.cgi?id=651141

    This commit also adds a test that checks the internal consistency
    of GHashTable over several insert/remove/remove-all operations.

 glib/ghash.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit b92861b5a0fd4be7b5b5e494c424b0e8d48a6b7f
Author: David Schleef <ds@schleef.org>
Date:   Tue May 24 14:35:20 2011 -0700

    main: Use public function in documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=651009

 glib/gmain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 25440ce014dd555cbb60b3964f8a19b5674523da
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 26 10:18:44 2011 -0400

    GDBusProxy: Mention gdbus-codegen in docs

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 06f5de77f04f16480e642f7efee9dc4bdfba6778
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 26 10:07:38 2011 -0400

    GDBusProxy: Fix incorrect locking

    Pointed out by mclasen.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 36 +++++++++++++++++++++++++++---------
 1 file changed, 27 insertions(+), 9 deletions(-)

commit c0f4a63c89332ee18c1ddf1fe48fe04b16b27fa3
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 26 09:54:47 2011 -0400

    GDBusProxy: Add locking and notes/guarantees about MT safety

    This was discussed in

     https://bugzilla.gnome.org/show_bug.cgi?id=651133

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 48 ++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 44 insertions(+), 4 deletions(-)

commit 7e0f890e3811c23d331079c3e878d0c1df4ae282
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 26 09:26:29 2011 -0400

    GDBusProxy: Fix race condition when unsubscribing from signals

    This was reported in bug 651133.

    https://bugzilla.gnome.org/show_bug.cgi?id=651133

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 116
 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 97 insertions(+), 19 deletions(-)

commit 9936f961ba0f71e6097436264a79ba801cebbbf5
Author: Richard Hughes <richard@hughsie.com>
Date:   Thu May 26 12:37:24 2011 +0100

    Correct the annotation for g_file_enumerator_get_container()

    We don't ref the returned object, and alex has verified the gvfs
    implementation.

 gio/gfileenumerator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 30672af7ff881ceaf9834385afd6138a969147c8
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Wed May 11 16:42:14 2011 +0200

    gthread: build unix tests only on unix

    The build fails when compiling with mingw32. Correct the build of a
    unix tests on unix only.

    https://bugzilla.gnome.org/show_bug.cgi?id=649973

 gthread/tests/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 3f569d2b5b00d5f65c8332bb54588d701937d1e2
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue May 24 07:34:30 2011 -0400

    gdbus-codegen: Fix up example to not use non-existant method

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

commit ab18737eade8626ca7e3ed6e1eec7dca34a42b0b
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue May 24 00:27:43 2011 -0400

    gdbus-codegen: Properly render @param and %TRUE in generated Docbook

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml |   3 ++
 gio/gdbus-codegen/codegen.py         | 100
 +++++++++++++++++------------------
 gio/gdbus-codegen/codegen_docbook.py |  22 +++++---
 3 files changed, 67 insertions(+), 58 deletions(-)

commit 263ce3042ccf596f5cd59b1defa546df2602597d
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 23 23:22:04 2011 -0400

    gdbus-codegen: Handle unexpected XML tags

    This was reported in bug 650874. Add tests.

    https://bugzilla.gnome.org/show_bug.cgi?id=650874

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/parser.py | 26 ++++++++++++++++----------
 gio/tests/test-codegen.xml  | 23 +++++++++++++++++++++++
 2 files changed, 39 insertions(+), 10 deletions(-)

commit 0aae977ac13966120f3efc1bcdac4d5be1d97aa3
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Thu Apr 21 23:45:59 2011 +0200

    gdbusintrospection: fix introspection of DBus Introspection structures

    Correctly mark fields as arrays (requires changing
    gobject-introspection
    to pick those).

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 gio/gdbusintrospection.h | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit eabad1923e7b0f133f8f38e57601a97521e38cfe
Author: Ray Strode <rstrode@redhat.com>
Date:   Mon May 23 13:39:09 2011 -0400

    Revert "gsettings-tool: warn if setting a value fails"

    This reverts commit ea57feff96f13bbd4d03a76040a4ddfad2677310.

    It makes the gsettings tool fail any time it tries to set a
    key to a value, that the key already has.

    https://bugzilla.gnome.org/show_bug.cgi?id=641768

 gio/gsettings-tool.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

commit ce0f7cafa1746a94f90b74860c2890b6c18ca385
Author: Antoine Jacoutot <ajacoutot@bsdfrog.org>
Date:   Mon May 23 19:11:10 2011 +0200

    Fix build with gcc-2.*.

    https://bugzilla.gnome.org/show_bug.cgi?id=650884

 gio/tests/gdbus-connection.c     |  4 ++--
 gio/tests/memory-output-stream.c | 10 ++++++----
 2 files changed, 8 insertions(+), 6 deletions(-)

commit c61fd66e77b6db4a6e73acaf5cdaf8bc74b3d914
Author: Seán de Búrca <leftmostcat@gmail.com>
Date:   Mon May 23 00:35:46 2011 -0600

    Updated Irish translation.

 po/ga.po | 2227
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 1522 insertions(+), 705 deletions(-)

commit 77110304cc3e01f60235286b61082ea6dd602d06
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 23 00:48:10 2011 -0400

    Cosmetic changes

    Use inc/dec for refcounting.

 glib/gregex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 88f23fb1d9aa0f84cbeebe086db022864a7eb3be
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 23 00:40:33 2011 -0400

    Cosmetics

    Use g_atomic_int_inc/dec instead of add(...,1/-1), since
    this is the way refcounting is done elsewhere. Some other
    cosmetic changes.

 glib/ghash.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

commit b5056fbaf90829e2190458447d9c0f31e0179dc3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 23 00:21:06 2011 -0400

    Simply symbols files

    The grouping in files/headers is not used anymore, and
    the function attributes neither. Adapt abicheck scripts
    and .def file generation rules accordingly.

 gio/abicheck.sh         |    4 +-
 gio/gio.symbols         | 1013
 ++++++++---------------------------------------
 glib/Makefile.am        |    2 +-
 glib/abicheck.sh        |    2 +-
 glib/glib.symbols       |  781 ++++++++----------------------------
 gobject/abicheck.sh     |    2 +-
 gobject/gobject.symbols |  147 ++-----
 7 files changed, 353 insertions(+), 1598 deletions(-)

commit dec7d41275b025e94beb16f656ce0db70286469f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 22 16:31:43 2011 -0400

    Improve atomic ops implementation

    When using gcc builtins for atomic operations, provide them
    as macros, so gcc can see the builtins and do optimizations.
    This change gives considerable speedups in bitlocks, which
    use atomic operations heavily, see bug 650458.

    Also, don't define G_ATOMIC_OP_MEMORY_BARRIER_NEEDED unconditionally
    when using gcc builtins.

    https://bugzilla.gnome.org/show_bug.cgi?id=617491

 configure.ac       | 12 ++++++------
 glib/gatomic-gcc.c | 40 ++++++++++++++++++++++++++++------------
 glib/gatomic.h     | 32 +++++++++++++++++++++++++++++++-
 3 files changed, 65 insertions(+), 19 deletions(-)

commit 9255350a70ea53f719b395d200b9e35a5dcb6d3c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 22 01:29:22 2011 -0400

    Add some atomic ops tests

 gthread/tests/Makefile.am |  4 +++
 gthread/tests/atomic.c    | 72
 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)

commit 22e7fc34c44c5ef95abf4fed429f2345410cc82c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 22 00:33:05 2011 -0400

    Fix HAVE_FUTEX definition

 configure.ac | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit f92438463464c827a1f28d7a1c42bc74a75bdb72
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 21 20:56:04 2011 -0400

    Trivial: fix a typo

 glib/ghash.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c38b7d769e57e8be6f8c43c4f306396740559306
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 21 11:14:05 2011 -0400

    Revert "g_key_file_has_key_full: Clarify the docs"

    This reverts commit 4ddb84999d47816624f9ae7dcba181cbccd5c4d9.

 glib/gkeyfile.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 4ddb84999d47816624f9ae7dcba181cbccd5c4d9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 21 11:12:08 2011 -0400

    g_key_file_has_key_full: Clarify the docs

 glib/gkeyfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 120b85a31b061f17608a3b691d412ef17ca93681
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 20 15:07:08 2011 -0400

    Enforce rules about modifying hash tables in callbacks

    We have the infrastructure to do this, so lets do it.
    Also add tests for find and foreach to the testsuite.
    Bug 650688

 glib/ghash.c      | 44 +++++++++++++++++++++++-------
 glib/tests/hash.c | 81
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 116 insertions(+), 9 deletions(-)

commit afc5319a273d2154cb725110f170a7e7c6b87076
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 19 23:50:03 2011 -0400

    Be more careful when calling destroy notifies

    If we are, we can allow modification of the hash table
    from destroy notifies.

    https://bugzilla.gnome.org/show_bug.cgi?id=650459

 glib/ghash.c      | 110
 ++++++++++++++++++++++++++++++------------------------
 glib/tests/hash.c |  29 ++++++++++++++
 2 files changed, 91 insertions(+), 48 deletions(-)

commit 7c63370e3a81c9d6138924e88d868005414c08aa
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sun Apr 3 15:51:04 2011 +0200

    GObject: move GLib type definitions to a separate header

    This way it is possible to pull them into the GLib GIR file.

    Some cleanups by Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 gobject/Makefile.am      |   7 +-
 gobject/gboxed.h         | 152 ++-----------------------------------
 gobject/glib-types.h     | 192
 +++++++++++++++++++++++++++++++++++++++++++++++
 gobject/gsourceclosure.h |  17 +----
 4 files changed, 205 insertions(+), 163 deletions(-)

commit 9793919d7b6a1469f1d7b43a500cd4ec99234621
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 18 17:56:50 2011 -0400

    Whitespace fixes

 gio/gapplication.c            | 10 +++++-----
 gio/gapplicationcommandline.c |  4 ++--
 gio/gapplicationimpl-dbus.c   |  2 +-
 gio/gsettings-tool.c          | 18 +++++++++---------
 4 files changed, 17 insertions(+), 17 deletions(-)

commit 0e63b57eea5b1785a9831864aa2fac5ec29d26a1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 18 17:53:07 2011 -0400

    GApplication: fix remote action states

    Fix up remote_action_info_new_from_iter() to do its job better and use
    it from all places that it's appropriate.

    Closes #650236.

 gio/gapplicationimpl-dbus.c | 55
 +++++++++++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 24 deletions(-)

commit 0e10116b3b2c26a30722317ebf4347f1c2d964a9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 18 16:12:04 2011 -0400

    Add debug output to GApplication actions example

    Enough to clearly demonstrate bug #650236.

 gio/tests/gapplication-example-actions.c | 43
 ++++++++++++++++++++++++++++++--
 1 file changed, 41 insertions(+), 2 deletions(-)

commit 3f3b2bd82b9674d22cd64d76af68ddbc9cf80115
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Wed May 18 12:01:44 2011 -0400

    gatomic: #include gthread.h to fix compilation on nonoptimized
    architectures

    The fallback case of implementing atomic integers with mutexes needs
    gthread.h.

    Commit message written by Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=631153

 glib/gatomic.c | 1 +
 1 file changed, 1 insertion(+)

commit 5645c7aa41c25de39943db2099699ea66e2cad6e
Author: Colin Walters <walters@verbum.org>
Date:   Wed May 18 11:57:21 2011 -0400

    gtype: Remove unused variable

 gobject/gtype.c | 1 -
 1 file changed, 1 deletion(-)

commit 9966fe4493455dcdfe64483a50676891a878c72b
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 16 15:30:31 2011 -0400

    g_key_file_has_key_full: New function to fix g_key_file_has_key()'s
    GError semantics

    See https://bugzilla.gnome.org/show_bug.cgi?id=649657 for discussion
    of why it's bad for bindings for gerror return values to both signal
    errors and carry meaning.

    https://bugzilla.gnome.org/show_bug.cgi?id=650345

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gkeyfile.c                       | 54
 +++++++++++++++++++++++++++++++++--
 glib/gkeyfile.h                       |  5 ++++
 glib/glib.symbols                     |  1 +
 glib/tests/keyfile.c                  | 16 +++++++++++
 5 files changed, 74 insertions(+), 3 deletions(-)

commit b539004d1327a787940a98d6d249225e574eb338
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Wed May 18 12:39:31 2011 +0200

    Fix short day names in Hungarian translation

 po/hu.po | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit f529dc0e086f604a52ddb72f1a5baf48a9b78a29
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed May 18 11:14:00 2011 +0800

    Update Visual C++ README.txt

    Correct the unpacking path of GLib...

 build/win32/vs10/README.txt | 4 ++--
 build/win32/vs9/README.txt  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 8148a3c396a76012da6fc2241128a2b428c818ff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 17 11:58:46 2011 -0400

    Fix gsettings tool string handling

    There are some bugs caused by the way that gsettings-tool currently
    attempts to help the user when they leave the quotes off of a string
    value that they are setting.

    Simplify the code to make it more robust and add some comments
    about why
    it should be done this way.

    https://bugzilla.gnome.org/show_bug.cgi?id=649915

 gio/gsettings-tool.c | 36 ++++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

commit d9440687ff13bd36b8c5696ce84327999589d04e
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue May 17 14:58:39 2011 +0200

    gobject: Speed up g_type_from_name()

    The hash table used exclusively for looking up types by name used
    to map
    quarks => types. But we can easily make it map strings => types, which
    avoids the quark lookup. And that in trun avoids taking a lock and
    consulting another hash table. So this change should make
    g_type_from_name() roughly twice as fast.

 gobject/gtype.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

commit aeac5de2f8eeaadcdc7e021694d92470834fece8
Author: John Lindgren <john.lindgren@tds.net>
Date:   Mon May 16 23:03:30 2011 -0400

    keyfile: fill parse buffer in line sized chunks

    When loading a keyfile the incoming bytes are fed
    to a line buffer to get parsed each time a new line
    is encountered.

    The code that fills the line buffer does it inefficiently,
    one byte at a time.

    This commit changes that code to look ahead at the incoming
    bytes for the next '\n' character and then fill the line buffer
    all at once.

    https://bugzilla.gnome.org/show_bug.cgi?id=650211

 glib/gkeyfile.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

commit 9c1a44cf32ebeee00a0e2303832b9cea26c93b76
Author: John Lindgren <john.lindgren@tds.net>
Date:   Mon May 16 22:27:11 2011 -0400

    keyfile: avoid needless allocations on file load

    When loading a key file, the keys and values of individual lines
    are allocated once when copied and trimmed from the parse buffer
    and allocated/copied again when added to the lookup map.

    This commit avoids the second pair of allocations by introducing
    a new function g_key_file_add_key_value_pair that gives the
    lookup map direct ownership of the key and value copied from the
    parse buffer.

    https://bugzilla.gnome.org/show_bug.cgi?id=650211

 glib/gkeyfile.c | 36 +++++++++++++++++++++++++++++-------
 1 file changed, 29 insertions(+), 7 deletions(-)

commit f96dc555d5b56aa56ad1d77bb3fde685ca612e68
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 16 14:38:45 2011 -0400

    Rename a problematic test binary

    Having a binary called printf is apparently asking for trouble,
    so lets not do that.

    http://bugzilla.gnome.org/show_bug.cgi?id=650078

 glib/tests/Makefile.am                 | 6 +++---
 glib/tests/{printf.c => test-printf.c} | 0
 2 files changed, 3 insertions(+), 3 deletions(-)

commit b5934de4562e073a0777d07eabe3e1cf327e7a66
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon May 16 16:10:06 2011 +0100

    Add gdbus autogenerated xml files to the ignore file

 gio/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 014b4b5ae9a14d3697c158908b01786496d539f1
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon May 16 12:51:59 2011 +0100

    m4macros/gsettings.m4: Use AS_HELP_STRING instead the deprecated
    AC_HELP_STRING

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d2d3449a8ef4e3ad7236ed83a5ed0ce6a2b0e69f
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon May 16 11:51:29 2011 +0100

    autogen.sh: Use autoreconf instead custom script

 autogen.sh | 109
 +++++++++----------------------------------------------------
 1 file changed, 15 insertions(+), 94 deletions(-)

commit 11e01802abcf006caa8e3c2ecf6cfd195db98fd9
Author: David Zeuthen <davidz@redhat.com>
Date:   Sun May 15 11:45:37 2011 -0400

    gdbus-codegen: Ensure that generated skeletons are MT-safe

    For example, if setting a property on a skeleton from another thread
    than where it was constructed, the idle handler responsible for
    emitting the PropertiesChanged() signal could run immediately and
    clear skeleton->priv->changed_properties_idle_source causing
    g_source_unref() to be called with a NULL pointer. This race was
    easily be fixed by adding a lock to the skeleton object.

    In addition to fixing this race, also move the code for setting up the
    idle handler to a class handler for the GObject::notify signal. This
    change allows use of g_object_freeze_notify() and
    g_object_thaw_notify()
    to perform atomic property changes from another thread than the one
    that the skeleton was created in.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 11 +++--
 gio/gdbus-codegen/codegen.py         | 93
 +++++++++++++++++++++++++-----------
 2 files changed, 74 insertions(+), 30 deletions(-)

commit 2122191595fc7059ff4838b967ea0beb19b18d47
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sun May 15 15:31:16 2011 +0100

    docs: Improve punctuation in some of the GArray method documentation

 glib/garray.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit cb7a5a8e94a3317961ef98b839e4cfce9abccb42
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 15 16:16:30 2011 +0200

    docs: Add the cute trick comment to all sort functions

    Thanks to Sebastian Dröge for pointing out there's more than
    g_array_sort() and I hadn't in fact added the comment to
    g_array_sort()
    in 80928ea403cfff5ffaa4bc73e84e3d4ebcb09123

 glib/garray.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 80928ea403cfff5ffaa4bc73e84e3d4ebcb09123
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun May 15 16:11:51 2011 +0200

    docs: Add a cute trick for achieving a stable sort

    This trick is inspired by
    http://www.gnu.org/s/hello/manual/libc/Array-Sort-Function.html
    http://jeffreystedfast.blogspot.com/2011/04/optimizing-merge-sort.html

 glib/garray.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 125b896a4ed21c54047a368247f76c0b36e1554b
Author: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>
Date:   Sun May 15 10:16:59 2011 +0200

    Updated Esperanto translation

 po/eo.po | 2372
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 1597 insertions(+), 775 deletions(-)

commit ae10eca1162310b615db3bdce6791efcfc337c29
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 13 14:23:14 2011 -0400

    gdbus-codegen: Use (skip) annotation on return values

    This was discussed in bug 649657.

    https://bugzilla.gnome.org/show_bug.cgi?id=649657

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4a7a1bc4372995eaaac33c170c90e5441cb85c8c
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri May 13 08:38:35 2011 +0300

    Updated Hebrew translation.

 po/he.po | 747
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 381 insertions(+), 366 deletions(-)

commit b9e3e03767585e52771fd1faea42176138f25aa5
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 12 15:36:34 2011 -0400

    GDBusConnection: Document that sockets are frobbed into non-blocking
    mode

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit ce77614142e20c8cfcb5de24a468c743ac0ff381
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed May 11 21:16:41 2011 -0400

    gdbus-codegen: Mark members in generated class instance structs
    as private

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 5 +++++
 1 file changed, 5 insertions(+)

commit 5a811135f73057b81ef7080022d313bb58ee8419
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed May 11 20:57:54 2011 -0400

    Add g_dbus_method_invocation_take_error() convenience method

    Similar in spirit to g_simple_async_result_take_error().

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdbusmethodinvocation.c         | 22 ++++++++++++++++++++++
 gio/gdbusmethodinvocation.h         |  2 ++
 gio/gio.symbols                     |  1 +
 4 files changed, 26 insertions(+)

commit d39731724a4a7c1d63953f41207e01e98ca5d9a3
Author: Colin Walters <walters@verbum.org>
Date:   Wed May 11 17:13:57 2011 -0400

    gdbus-codegen: Fix annotation parsing

    It takes 3 options.

 gio/gdbus-codegen/codegen_main.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 97cd6fa2e3ea9318b8af65b4623057c4f5600fc2
Author: Maarten Bosmans <mkbosmans@gmail.com>
Date:   Wed May 11 15:47:00 2011 -0400

    gdbus-codegen: Quote substitution variables

    Avoids failure if they contain spaces.

    Commit message written by Colin Walters <walters@verbum.org>

    https://bugzilla.gnome.org/show_bug.cgi?id=649775

 gio/gdbus-codegen/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 61295f87c966f5f0aa35797831ae5e71ba8cd7b1
Author: Colin Walters <walters@verbum.org>
Date:   Wed May 11 15:02:23 2011 -0400

    gdbus-codegen: Drop dependency on argparse

    This is only in Python 2.7 or as a separate module.  Use optparse
    which exists since 2.3.

    https://bugzilla.gnome.org/show_bug.cgi?id=649988

 gio/gdbus-codegen/codegen.py         |  1 -
 gio/gdbus-codegen/codegen_docbook.py |  1 -
 gio/gdbus-codegen/codegen_main.py    | 47
 ++++++++++++++++++------------------
 3 files changed, 24 insertions(+), 25 deletions(-)

commit eebb3647a1cab8deec8b97d666f6bd0c006438ea
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Sun Apr 3 17:19:48 2011 +0200

    gbase64: fix introspection annotations

    Makes the g_base64_* functions usable from introspection GLib bindings
    (gjs, currently, as both vala and pygobject use manual bindings for
    GLib)

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 glib/gbase64.c | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

commit c026cf56a178ef786b8a372d4c1cd01e2ab2a3c9
Author: Colin Walters <walters@verbum.org>
Date:   Wed May 11 13:19:05 2011 -0400

    gdatetime: Quiet GCC warning about possibly-uninitialized

 glib/gdatetime.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit c2a2350cc1905fb29167c0ee29d0c1f3c61a2865
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 10 15:25:54 2011 +0200

    GSettings: fix example in the docs

 gio/gsettings.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 53dc341b0d769905ffdde5f631942b20dfe09bf6
Author: Giovanni Campagna <gcampagna@src.gnome.org>
Date:   Tue May 3 18:54:45 2011 +0200

    GDBusMethodInvocation: fix introspection annotations

    In particular (transfer full), to avoid a refcounting bug and a
    segmentation fault.

    https://bugzilla.gnome.org/show_bug.cgi?id=646635

 gio/gdbusmethodinvocation.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 21c22914966ee4e114ee207036fc6e5640d0bda4
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Sun May 8 14:12:23 2011 +0200

    [gi] Add missing allow-none annotations to GDBusConnection

 gio/gdbusconnection.c | 72
 ++++++++++++++++++++++++++++++---------------------
 1 file changed, 42 insertions(+), 30 deletions(-)

commit 3495f57d6bdfad164654541bc5d75dbb0caaae3f
Author: Yuri Kozlov <yuray@komyakino.ru>
Date:   Sun Mar 20 10:50:35 2011 +0300

    Updated Russian translation

 po/ru.po | 2584
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 1757 insertions(+), 827 deletions(-)

commit 13211c5b60fb12c338af33c70aece6b76218647b
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Sat May 7 12:38:56 2011 +0200

    Updated Spanish translation

 po/es.po | 509
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 248 insertions(+), 261 deletions(-)

commit 1361ec78cd4c4c97fba8276552f2188e74f676b5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat May 7 11:42:46 2011 +0200

    GSettings: keep resets on loss of writability

    Don't drop resets from a GDelayedSettingsBackend when the writability
    changes.  Resets will always succeed, even against non-writable
    keys and
    some people (gnome-screensaver) are using them in a way that they
    would
    want them not to be forgotten.

 gio/gdelayedsettingsbackend.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit a38c97af519caa928a7d61af79c323a4ee2d8dfe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat May 7 11:41:19 2011 +0200

    Allow NULL to be stored into GSettings trees

    This is used for resets (in theory) and currently it crashes when
    freeing the tree.

 gio/gsettingsbackend.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 720d6ec8e42d1067d32556d9b50e8b83cf6ca4b9
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 6 15:25:49 2011 -0400

    gdbus: Add a --timeout option

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus.xml | 3 +++
 gio/gdbus-tool.c             | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

commit 7bcede9301b0beacdc2fcb71e652f87fdc1908e9
Author: Ray Strode <rstrode@redhat.com>
Date:   Fri May 6 13:00:38 2011 -0400

    gdbus-codegen: fix typo in man page

    s/on_handle_hello-world/on_handle_hello_world/

 docs/reference/gio/gdbus-codegen.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f773bd8b764232d6c691de1329a2defc66c0e51f
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 6 10:32:42 2011 -0400

    gdbus-codegen: gracefully handle property get on proxy with no
    cached property

    This can easily happen if the owner of the remote object vanishes. Of
    course, when that happens, user code is already notified (by e.g. the
    notify::g-name-owner signal) so it can avoid using the proxy but
    requiring that is a bit harsh. IOW, before this patch this critical
    error was printed

     GLib-GIO-CRITICAL **: g_dbus_gvariant_to_gvalue: assertion `value !=
     NULL' failed

    when that happened. With this patch, we just avoid setting the GValue
    so the user will get the default value for its type instead. So, for
    example, if the user code is getting a GVariant property on such a
    defunct proxy, then he gets a NULL back. So unless said user code
    checks the return value, criticals will still be printed if the NULL
    GVariant is used for anything interesting.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 3d3659c1b6b5cd65595e8b28b77f00ef58456dbd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 6 07:14:48 2011 -0400

    Documentation additions

    Add Since tags to recently introduced test function typedefs.
    https://bugzilla.gnome.org/show_bug.cgi?id=649506

 glib/gtestutils.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit 914d10055cb15456c01b0b59cfa2ac167a065f77
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 5 15:18:22 2011 -0400

    Add two annotations for g-i

 gio/gtlsbackend.c          | 2 +-
 gio/gtlsclientconnection.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 17d8d2cc44af8b6b656cc971e68d71115acb7e8c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 5 14:52:19 2011 -0400

    Add tests for new GDateTime functionality

 glib/tests/gdatetime.c | 68
 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 67 insertions(+), 1 deletion(-)

commit e15ecab0486aa851dcc15e6e4023354a4b8b481f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 5 13:40:51 2011 -0400

    Expand the g_date_time_format documentation

    Mention strftime, and explain supported modifiers.

 glib/gdatetime.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

commit d23c33a04bd1d16f30efb1511cd8b698dc9c84b1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 5 13:16:30 2011 -0400

    GDateTime: enhance g_date_time_format()

    Make g_date_time_format() support some useful format modifiers from
    strftime(). This commit adds support for the POSIX 'O' modifier
    (alternative digits), as well as the -/_/0 padding modifiers, which
    are a GNU strftime() extension.
    https://bugzilla.gnome.org/show_bug.cgi?id=648678

 glib/gdatetime.c | 120
 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 100 insertions(+), 20 deletions(-)

commit 8932a1a7a3bf1bb68c2f2762f3674a149742b1fa
Author: Colin Walters <walters@verbum.org>
Date:   Thu May 5 13:16:54 2011 -0400

    GSocket: Use MSG_CMSG_CLOEXEC

    This ensures received file descriptors don't leak to child processes.

    https://bugzilla.gnome.org/show_bug.cgi?id=649480

 gio/gsocket.c        | 16 ++++++++++++++++
 gio/gunixfdmessage.c |  4 ++++
 2 files changed, 20 insertions(+)

commit 7ca8691a934ac571ed034d5c01882ac8de19769c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu May 5 15:09:51 2011 +0800

    Update VS2010 "install" project

    The dependencies on gsettings and glib-compile-schemas were
    missed-made
    up for them here.

 build/win32/vs10/install.vcxproj | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 9f90408e976a4e2c1bdc7debfe10601885a78402
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu May 5 13:40:38 2011 +0800

    Update gcancellable.c for Win32

    errno.h is still required for Windows in this file...

 gio/gcancellable.c | 1 +
 1 file changed, 1 insertion(+)

commit 8f484c482d452f89a9d9542f76014c2b2957e294
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu May 5 13:36:34 2011 +0800

    Update VS property sheets

    There are some new public headers added for GIO.  Make up for
    them here
    in the install phase

 build/win32/vs10/glib.props  | 18 ++++++++++++++++++
 build/win32/vs9/glib.vsprops |  9 +++++++++
 2 files changed, 27 insertions(+)

commit 58c5973a00c1f9708bc397ecaae64f040a5f65d0
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu May 5 12:42:44 2011 +0800

    MSVC support update for GObject

    Apparently GObject now depends on libffi.  Add it to the dependencies
    list.

    For MSVC, use the libffi-3.0.10(rcx) versions.

 build/win32/vs10/gobject.vcxprojin | 4 ++++
 build/win32/vs9/gobject.vcprojin   | 4 ++++
 2 files changed, 8 insertions(+)

commit 5b5299e1c49570caa85704f5225fde498015aee3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu May 5 12:35:45 2011 +0800

    GLib MSVC Support updates (autotools)

    Filter out *-unix.c from the source file list, as it is obviously not
    usable (nor used) under VS 2008/2010

 glib/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 6c4b84d5ff10afdb9e86ce718a3fa7f6c54078ce
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 4 21:26:11 2011 -0400

    Post-release bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5b4da74bc75b91a1eac7c9b7eac39bf543ab7b6b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 4 20:45:46 2011 -0400

    More distcheck fixes

 gio/gdbus-codegen/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d5d4659a60ed682d67bbfba853bfa62f221e1e3b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 4 19:44:05 2011 -0400

    Try to fix distcheck

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 6ea2291573a554eb15e1653c0dd8f0503edec9b7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 4 14:53:08 2011 -0400

    Pre-release bump

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5b45c39b4b02f4f5c4665b505fb1cf3e84d0b6e8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 4 14:33:03 2011 -0400

    Updates

 NEWS | 68
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

commit c0623501592eb484da46e76a1e1b0370c527f61b
Author: Ray Strode <rstrode@redhat.com>
Date:   Wed May 4 12:45:22 2011 -0400

    gdbus-codegen: don't assert non-negativity for unsigned values

    The code generator sprinkles a few asserts in its output of the form:

    g_assert (prop_id - 1 >= 0 && prop_id - 1 < %d);\n

    prop_id is unsigned, though, so this generates a compiler warning for
    me.

    This commit changes the code to merely check for prop_id != 0
    instead of
    prop_id - 1 >= 0

 gio/gdbus-codegen/codegen.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit e823ba10d3babd5ae61c69d96379ff34e9e978f8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 4 18:12:31 2011 +0200

    GVariant: Better handling of invalid UTF-8

    g_variant_new_string() hits a g_return_if_fail() when given invalid
    UTF-8.  That's certainly the right thing to do, but
    g_variant_builder_add() uses this function internally and crashes when
    it returns NULL due to the user passing a non-utf8 string.

    We can protect the internal code by returning "[Invalid UTF-8]"
    in this
    case while also making the problem easier to debug (and less fatal).

    Closes #632631.

 glib/gvariant.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit d97cbc6731deab137770bc0fe9c69b06f689f5b4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 4 13:54:34 2011 +0200

    gdbus-codegen: Make sure we pass -Werror

    _g_value_equal might not always be used, so mark it G_GNUC_UNUSED
    to make sure we're -Werror clean.

 gio/gdbus-codegen/codegen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 985fd99e06469e7f64b2bbcf37b03ea14c4a30dc
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed May 4 11:06:44 2011 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 833
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 422 insertions(+), 411 deletions(-)

commit 1ab29b6c4a2ddf5a60b4cc353422d605197b7696
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed May 4 03:37:46 2011 -0400

    GDBusObjectManagerServer: Allow setting :connection property

    .. and add a C setter to do this. Also make the C getter return a
    reference since the property may be set from another thread. Also
    change the constructor to _not_ take a GDBusConnection since this is
    something you almost always want to do _after_ creating it. The
    API/ABI break is fine as there has never been a GLib release with this
    type.

    https://bugzilla.gnome.org/show_bug.cgi?id=648959

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt            |   1 +
 gio/gdbusobjectmanagerserver.c                 | 266
 ++++++++++++++++++-------
 gio/gdbusobjectmanagerserver.h                 |   5 +-
 gio/gio.symbols                                |   1 +
 gio/tests/gdbus-example-objectmanager-server.c |   5 +-
 gio/tests/gdbus-test-codegen.c                 |  14 +-
 6 files changed, 217 insertions(+), 75 deletions(-)

commit 542215b78ac52ffb96386ef63ee782981a1b8e49
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 3 16:31:34 2011 -0400

    Rename g_unix_pipe_flags to g_unix_open_pipe

    From IRC discussion, people liked this name more.

    https://bugzilla.gnome.org/show_bug.cgi?id=649322

 docs/reference/glib/glib-sections.txt | 2 +-
 gio/gcancellable.c                    | 2 +-
 glib/glib-unix.c                      | 8 ++++----
 glib/glib-unix.h                      | 6 +++---
 glib/glib.symbols                     | 2 +-
 glib/gmain.c                          | 4 ++--
 glib/tests/unix.c                     | 2 +-
 7 files changed, 13 insertions(+), 13 deletions(-)

commit ba5c9bd39f070acabee81c630ae2cbe678f1a99e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 3 19:15:46 2011 -0400

    Remove extraneous decorations

    Since in a doc comment takes no leading '@'.

 glib/gtestutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 511070fb2803c799b953ac938b81c79c5e1036f8
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 3 16:22:13 2011 -0400

    glib-unix.c: Don't leak FDs if pipe2() succeeds

 glib/glib-unix.c | 2 ++
 1 file changed, 2 insertions(+)

commit e5c986cbcf34f15397ab2032453cc4220ce480e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 3 12:41:11 2011 -0400

    Only remove the lines that are no longer needed

 tests/Makefile.am | 3 ---
 1 file changed, 3 deletions(-)

commit 5d1aba24648adf7432391f725599d4a19727ece9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 3 12:37:45 2011 -0400

    Revert "[build] Remove stale LDADD lines from tests/Makefile.am to
    allow build"

    This reverts commit b0874ce28e910121fb2d94f6f9183bfdc08e8eaf.

 tests/Makefile.am | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 11bb78105dc2effcfe9c48365fa2e295fb48ee38
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 3 10:57:22 2011 -0400

    Use g types in public API for consistency

 glib/glib-unix.h | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit c078223b388939f3f7cb77bdaa8b60aad0713756
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 2 15:42:51 2011 -0400

    GCancellable: Use g_unix_pipe_flags with FD_CLOEXEC

    The old code was creating a pipe and setting FD_CLOEXEC
    non-atomically.

    https://bugzilla.gnome.org/show_bug.cgi?id=649225

 gio/gcancellable.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

commit ed37970a0405b5681bcd6449d4dc1b4f9080c4fa
Author: Colin Walters <walters@verbum.org>
Date:   Tue May 3 09:52:10 2011 -0400

    g_unix_set_fd_nonblocking: New API to control file descriptor
    blocking state

    And use it in relevant places in GLib.

    https://bugzilla.gnome.org/show_bug.cgi?id=649225

 gio/gcancellable.c | 27 +++++----------------------
 gio/gsocket.c      | 17 ++++++++---------
 glib/glib-unix.c   | 50
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/glib-unix.h   |  4 ++++
 glib/glib.symbols  |  1 +
 glib/gmain.c       |  2 +-
 6 files changed, 69 insertions(+), 32 deletions(-)

commit e08e70e08d65e2fce142491a6c8fc6068c8008d2
Author: Colin Walters <walters@verbum.org>
Date:   Mon May 2 17:02:16 2011 -0400

    glib-unix.h: Unconditionally include unistd.h

    danw points out it's part of POSIX.

    https://bugzilla.gnome.org/show_bug.cgi?id=649201

 glib/glib-unix.h | 2 --
 1 file changed, 2 deletions(-)

commit e56498ee0b1bdac0ad3c18a1f7bff83d4a5b1323
Author: Dan Winship <danw@gnome.org>
Date:   Sun May 1 11:17:14 2011 -0400

    Fix usage of _GNU_SOURCE

    _GNU_SOURCE must be defined before including any other (system)
    header, so defining it in glib-unix.h (and hoping no one has included
    anything else before that) is wrong. And the "#define _USE_GNU"
    workaround for this problem in gnetworkingprivate.h is even wronger
    (and still prone to failure anyway due to single-include guards).

    Fix this by defining _GNU_SOURCE in config.h when building against
    glibc. In theory this is bad because new releases of glibc may include
    symbols that conflict with glib symbols, which could then cause
    compile failures. However, most people only see new releases of glibc
    when they upgrade their distro, at which point they also generally get
    new releases of gcc, which have new warnings/errors to clean up
    anyway.

    https://bugzilla.gnome.org/show_bug.cgi?id=649201

 configure.ac                  |  6 ++++--
 gio/gfile.c                   |  1 -
 gio/glib-compile-schemas.c    |  1 -
 gio/glocalfileinfo.c          |  1 -
 gio/gnetworkingprivate.h      | 22 ++++------------------
 gio/gsettings.c               |  1 -
 gio/gunixcredentialsmessage.c |  2 --
 gio/gunixfdlist.c             |  2 --
 gio/libasyncns/g-asyncns.h    |  2 --
 gio/tests/gdbus-peer.c        |  2 ++
 glib/glib-unix.h              |  8 --------
 glib/gmain.c                  | 15 ---------------
 glib/gprintf.c                |  4 ----
 glib/gqsort.c                 |  1 -
 glib/gslice.c                 |  2 +-
 glib/gstrfuncs.c              |  2 --
 16 files changed, 11 insertions(+), 61 deletions(-)

commit 33c0877adc681cb7cf8cf12afd94a9de8c869bf2
Author: Dan Winship <danw@gnome.org>
Date:   Mon May 2 17:06:37 2011 -0400

    Add back an erroneously-removed line to tests/Makefile.am

 tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit e71fdf6b5a88cc1f47f4cc12bab10c6e8953efae
Author: Colin Walters <walters@verbum.org>
Date:   Fri Apr 29 10:59:42 2011 -0400

    Drop translated g_warning/g_error

    http://mail.gnome.org/archives/desktop-devel-list/2011-March/msg00069.html

 gio/gdbusmethodinvocation.c | 6 +++---
 gio/gdbusproxy.c            | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 597ede957a4783b72a7037497f6f2e775285df3a
Author: Ray Strode <rstrode@redhat.com>
Date:   Mon May 2 12:33:36 2011 -0400

    glib/Makefile.am: add gmain-internal.h to sources

    It's a new private header.

    This commit adds it to the Makefile so it's properly distributed
    with the sources.

 glib/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 02877e29020c2a0f34283435ecf544b1f6793077
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon May 2 19:22:25 2011 +0200

    gobject: Warn if someone uses the wrong property in g_object_get/set

    "Interface::property" was not detected before and led to a crash.

 gobject/gobject.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 331e15b1284cd6fd5804a7495d2882ee97148c0a
Author: Abduxukur Abdurixit <abdurixit@gmail.com>
Date:   Mon May 2 18:29:59 2011 +0200

    Added UG translation

 po/ug.po | 7552
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 3765 insertions(+), 3787 deletions(-)

commit bdc23c44e8fbb507e14056a05e38b92982df7a5f
Author: Dan Winship <danw@gnome.org>
Date:   Mon May 2 11:45:52 2011 -0400

    Fix compiler warnings

 glib/gdate.c                 |  2 +-
 glib/ghash.c                 |  2 +-
 glib/gutf8.c                 |  4 ----
 glib/tests/gvariant.c        |  1 +
 gobject/gclosure.c           |  2 ++
 gobject/gobject.c            | 52
 +++++++++++++++++++++-----------------------
 gobject/testgobject.c        |  2 ++
 gobject/tests/dynamictests.c |  3 +++
 gobject/tests/threadtests.c  |  7 +++---
 tests/refcount/objects.c     |  2 +-
 tests/refcount/objects2.c    |  2 +-
 tests/refcount/properties.c  |  4 ----
 tests/refcount/properties2.c |  2 +-
 tests/refcount/signals.c     |  2 +-
 14 files changed, 42 insertions(+), 45 deletions(-)

commit 6f711a76cdd7eac3914542232526111a7b6bb053
Author: Dan Winship <danw@gnome.org>
Date:   Mon May 2 11:44:46 2011 -0400

    Fix autoconf 2.68 warnings

    autoconf 2.68 is very insistent that AC_LANG_SOURCE/AC_LANG_PROGRAM
    must be used in certain places, to avoid quoting/lack-of-quoting
    problems, or something. Fix.

 configure.ac | 60
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 30 insertions(+), 30 deletions(-)

commit c1d61f197137a0dda6b1894984114ed2ed4171ea
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon May 2 11:43:02 2011 -0400

    Bug 648966 - Update g_unichar_iswide and g_unichar_iswide_cjk

    Add tests.

 glib/tests/utf8-misc.c | 91
 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 87 insertions(+), 4 deletions(-)

commit b0874ce28e910121fb2d94f6f9183bfdc08e8eaf
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon May 2 11:26:01 2011 -0400

    [build] Remove stale LDADD lines from tests/Makefile.am to allow build

    Automake 1.11 wasn't happy.

 tests/Makefile.am | 35 -----------------------------------
 1 file changed, 35 deletions(-)

commit 181763438a6be7791ef87c63fa119f74b44aeede
Author: Dan Winship <danw@gnome.org>
Date:   Mon May 2 09:53:59 2011 -0400

    Update .gitignores

 .gitignore                   | 1 +
 gio/.gitignore               | 1 +
 gio/gdbus-codegen/.gitignore | 2 ++
 gio/tests/.gitignore         | 4 ++++
 glib/.gitignore              | 1 +
 glib/tests/.gitignore        | 3 +++
 gobject/.gitignore           | 1 +
 gthread/tests/.gitignore     | 1 +
 8 files changed, 14 insertions(+)

commit f4cff2b923dd4df811327c9f199614dbfcbfe436
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 1 23:02:53 2011 -0400

    Some documentation additions

 docs/reference/gio/gio-sections.txt |  4 ++++
 gio/gdbusobjectproxy.c              | 16 ++++++++++++++--
 gio/gdesktopappinfo.c               | 18 ++++++++++++------
 3 files changed, 30 insertions(+), 8 deletions(-)

commit ddcb095fb22b6b3c865bbe3a86af6cadca4c8131
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 1 20:43:04 2011 -0400

    Avoid an unused variable warning

    Also, clean up some whitespace

 glib/tests/keyfile.c | 355
 ++++++++++++++++++++++++++-------------------------
 1 file changed, 179 insertions(+), 176 deletions(-)

commit ef5d4d55fe76b71edaf83999ca7408121a5439fa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 1 17:07:46 2011 -0400

    Fix make check

    g_thread_init() causes a hash table to be allocated (in read_aliases).
    Since hash tables are now a bit larger, we need to bump one of the
    probe sizes to avoid our probe slice being used for the aliases
    hash table.

 tests/slice-threadinit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a84637377ca81fe53bff1f694c7364eda21b88c9
Author: Abduxukur Abdurixit <abdurixit@gmail.com>
Date:   Sun May 1 20:04:51 2011 +0200

    Added UG translation

 po/ug.po | 7381
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 3793 insertions(+), 3588 deletions(-)

commit d09df426ba3788174b5bcc974831651208a13ea2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 1 10:55:24 2011 -0400

    GHash: make sets with refcounted keys work correctly

    When keys == values, we have to be careful about the order in
    which we replace their elements.

 glib/ghash.c      |  6 ++--
 glib/tests/hash.c | 93
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 96 insertions(+), 3 deletions(-)

commit be991170fa99185b7cf1dbf3f9bc62c9d656a08a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 30 22:28:34 2011 -0400

    GHash: introduce a "set" mode

    Make hash tables start out in a mode in which they don't store
    values at all, until the first insertion of a non-identical
    key-value pair.

    This reduces memory requirements by 1/3 when using hash tables
    to store sets.

    Based on a patch by Morten Welinder,
    https://bugzilla.gnome.org/show_bug.cgi?id=644437

 glib/ghash.c      | 67
 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 glib/tests/hash.c | 42 ++++++++++++++++++++++++++++++++++
 2 files changed, 103 insertions(+), 6 deletions(-)

commit 0ae6bc3aaa57eb15826d81d2db466c166d0b75bf
Author: Morten Welinder <terra@gnome.org>
Date:   Wed Apr 27 10:46:00 2011 -0400

    GHash: eliminate one of the lookup_nodes functions.

    Kill g_hash_table_lookup_node and rename
    g_hash_table_lookup_node_for_insertion
    to g_hash_table_lookup_node.  Since at this point we already check for
    toombstones in all callers of g_hash_table_lookup_node this doesn't
    make
    a difference.

    https://bugzilla.gnome.org/show_bug.cgi?id=644437

 glib/ghash.c | 83
 +++++++++---------------------------------------------------
 1 file changed, 12 insertions(+), 71 deletions(-)

commit 6e45153ef78e1dbc59592104f0675ac8e81c6648
Author: Morten Welinder <terra@gnome.org>
Date:   Wed Apr 27 10:39:56 2011 -0400

    GHash: split nodes array into seperate arrays.

    This reduces memory requirements by 1/6 on 64-bit machines since
    no padding is needed.  It also puts less strain on the memory
    allocator since we no longer need one giant slab of memory.

    https://bugzilla.gnome.org/show_bug.cgi?id=644437

 glib/ghash.c | 207
 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 102 insertions(+), 105 deletions(-)

commit 4d8e64e6e83dcbd8c82de45ca5a517213bfd5a1a
Author: Morten Welinder <terra@gnome.org>
Date:   Wed Apr 27 09:53:39 2011 -0400

    GHash: use macros to check for magic hash values.

    https://bugzilla.gnome.org/show_bug.cgi?id=644437

 glib/ghash.c | 51 +++++++++++++++++++++++++--------------------------
 1 file changed, 25 insertions(+), 26 deletions(-)

commit 707e011061fa7dcdaddca686a351ba3bdde5ffe9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Sun May 1 09:42:22 2011 +0800

    Update VS2008/2010 README.txt

    Tell people about the usage of ZLib to avoid the
    problem such as the one mentioned in Bug 633977

 build/win32/vs10/README.txt | 6 +++++-
 build/win32/vs9/README.txt  | 4 ++++
 2 files changed, 9 insertions(+), 1 deletion(-)

commit acda716d2d955ba2107a06a11df2e7938d0dfd4d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Apr 29 16:14:49 2011 -0400

    Bug 648966 - Update g_unichar_iswide and g_unichar_iswide_cjk

    Update to Unicode 6.0.  Also attach Python script that generates
    the tables.

 glib/Makefile.am         |  1 +
 glib/gen-iswide-table.py | 58 ++++++++++++++++++++++++++++++++++
 glib/guniprop.c          | 81
 ++++++++++++++++++++++++++++--------------------
 3 files changed, 107 insertions(+), 33 deletions(-)

commit 426e1b61595f0c822b4a4f62f0d9152a6558232d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 29 17:06:26 2011 -0400

    Remove duplicate GDBusInterface declaration

    It was in gdbusinterface.h but also in giotypes.h.  Remove it from the
    former.

 gio/gdbusinterface.h | 1 -
 1 file changed, 1 deletion(-)

commit 92aed13eb8926cb35d1f2e8978c152f2e4398830
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 29 13:11:22 2011 -0400

    Update docs to take comments/suggestions from Matthias into account

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml   | 74
 ++++++++++++++++++++++++----------
 docs/reference/gio/migrating-gdbus.xml |  5 +++
 gio/gdbusobjectmanagerserver.c         |  6 ++-
 3 files changed, 62 insertions(+), 23 deletions(-)

commit 0e352fdb182e63ff163b0feda198cb3b6b20aa3a
Merge: 0377fe7 9eba49a
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 29 12:01:35 2011 -0400

    Merge branch 'master' into gdbus-codegen

commit 9eba49a982e94196f90c79c5eac4a00cc437b12e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Apr 29 16:14:17 2011 +0200

    GFilterInputStream: close-base-stream should not be construct-only

    This is a runtime changable property (by the methods for it), must
    be a cut and paste error.

 gio/gfilterinputstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a04efe6afb63d54e12ff8f329cbaf458a2e31b26
Author: Colin Walters <walters@verbum.org>
Date:   Tue Apr 26 13:04:25 2011 -0400

    Use SIGTRAP (via G_BREAKPOINT()) if G_DEBUG=fatal-warnings

    On Linux with gdb, it's much more convenient to debug programs using
    G_DEBUG=fatal-warnings if we send SIGTRAP instead of abort() by
    default.  The default handler for both is to terminate the process.

    In particular this makes it more easily possible to debug a warning
    that's not the first in a program; you can skip past it and
    go to the warning you care about.

    The "aborting..." message is removed since it's no longer accurate,
    and anyways was never very useful; crashes should show up in
    ABRT/apport
    type crash catching systems.

    https://bugzilla.gnome.org/show_bug.cgi?id=648423

 glib/gmessages.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

commit 1763c2a575a959efa96795fc8d9d2cff60dd70cc
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Apr 28 20:45:34 2011 +0200

    Updated Spanish translation

 po/es.po | 458
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 241 insertions(+), 217 deletions(-)

commit e585059514714b7bc191fa3467cb15e86dcc7e09
Author: Shaun McCance <shaunm@gnome.org>
Date:   Thu Apr 28 12:41:41 2011 -0400

    glib/gvariant.c: Fix variable name in example code

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a1fbe7ae8402c18fc5ebae1d07a90342f79621f3
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 27 19:09:38 2011 -0400

    Drop stray reference to gthread.la

    We now build this test multithreaded in gthread/tests.

 glib/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7b04bbc8e05f8d22309990599820eeb2438b3cbd
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 27 18:42:29 2011 -0400

    glib/Makefile.am: Remove stray tab

 glib/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 549d895fa4e9c4b5a35c5d9da4db39ca11dc71cc
Author: Colin Walters <walters@verbum.org>
Date:   Thu Mar 17 10:11:41 2011 -0400

    glib-unix: New API to watch some Unix signals

    This new API allows watching a few select Unix signals;
    looking through the list on my system, I didn't see anything
    else that I think it'd reasonable to watch.

    We build on the previous patch to make the child watch helper thread
    that existed on Unix handle these signals in the threaded case.
    In the non-threaded case, they're just global variables.

    https://bugzilla.gnome.org/show_bug.cgi?id=644941

 docs/reference/glib/glib-docs.sgml    |   1 +
 docs/reference/glib/glib-sections.txt |   4 +-
 glib/glib-unix.c                      |  88 +++++++-
 glib/glib-unix.h                      |  22 +-
 glib/glib.symbols                     |   2 +
 glib/gmain-internal.h                 |  35 ++++
 glib/gmain.c                          | 371
 ++++++++++++++++++++++++++++------
 glib/tests/Makefile.am                |   6 +-
 glib/tests/unix.c                     |  81 ++++++++
 gthread/tests/Makefile.am             |   5 +
 10 files changed, 544 insertions(+), 71 deletions(-)

commit 920899d78fbed7f014dc1549f1b54a3bd708eb4b
Author: Colin Walters <walters@verbum.org>
Date:   Wed Mar 16 19:02:15 2011 -0400

    gmain: Prepare child watch handling for more generic signal handling

    In preparation for supporting more Unix signals such as SIGHUP,
    SIGTERM etc.,

    https://bugzilla.gnome.org/show_bug.cgi?id=644941

 glib/glib-unix.c |  19 ++++----
 glib/gmain.c     | 134
 +++++++++++++++++++++++++++++++++++++++++++------------
 2 files changed, 114 insertions(+), 39 deletions(-)

commit 0ff211f520c18550454289e7265061d7e8ac41c0
Author: Colin Walters <walters@verbum.org>
Date:   Wed Mar 16 13:54:28 2011 -0400

    glib-unix: New Unix-specific API

    GLib historically has been designed to be "mostly" portable; there
    are some functions only available on Unix like
    g_io_channel_unix_new(),
    but these are typically paired with obvious counterparts for Win32.

    However, as GLib is used not only by portable software, but components
    targeting Unix (or even just Linux), there are a few cases where it
    would be very convenient if GLib shipped built-in functionality.

    This initial patch is a basic wrapper around pipe2(), including
    fallbacks for older kernels.  This pairs well with the
    existing g_spawn_*() API and its child_setup functionality.

    However, in the future, I want to add a signal() wrapper here,
    complete with proxying the signal to a mainloop.  I have initial code
    for this, but doing it sanely (including factoring out gmain.c's
    private worker thread), is a complex task, and I don't want to block
    on that.

    See also gwin32.h for Win32 specific functionality.

    https://bugzilla.gnome.org/show_bug.cgi?id=644941

 docs/reference/glib/glib-sections.txt |   8 ++
 glib/Makefile.am                      |   7 ++
 glib/glib-unix.c                      | 135
 ++++++++++++++++++++++++++++++++++
 glib/glib-unix.h                      |  70 ++++++++++++++++++
 glib/glib.symbols                     |   9 +++
 glib/gmain.c                          |  30 +++-----
 glib/tests/Makefile.am                |   3 +
 glib/tests/unix.c                     |  60 +++++++++++++++
 8 files changed, 302 insertions(+), 20 deletions(-)

commit 27246c615df66ee869c2174aa6609601ff9d1f64
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 27 13:29:07 2011 -0400

    Update gio.symbols for previous two commits

 gio/gio.symbols | 2 ++
 1 file changed, 2 insertions(+)

commit 4098ddcb066f40bf9563973753bbb7867a553700
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 27 11:34:23 2011 -0400

    GDesktopAppInfo: Add g_desktop_app_info_get_generic_name

    Necessary for rebasing gnome-menus on top of GDesktopAppInfo.

    https://bugzilla.gnome.org/show_bug.cgi?id=647967

 gio/gdesktopappinfo.c | 22 +++++++++++++++++++++-
 gio/gdesktopappinfo.h |  1 +
 2 files changed, 22 insertions(+), 1 deletion(-)

commit 276e6a7be8a2d31bd67cac7c571f65dfd8b2fd88
Author: Colin Walters <walters@verbum.org>
Date:   Fri Apr 15 15:52:33 2011 -0400

    GDesktopAppInfo: Add g_desktop_app_info_get_categories()

    This is needed to rebase gnome-menus on top of GDesktopAppInfo.

    https://bugzilla.gnome.org/show_bug.cgi?id=647903

 gio/gdesktopappinfo.c | 16 ++++++++++++++++
 gio/gdesktopappinfo.h |  2 ++
 2 files changed, 18 insertions(+)

commit 0dc5d456926257bd68702a4a1c989d132324d460
Author: David Schleef <ds@schleef.org>
Date:   Mon Feb 21 18:58:09 2011 -0800

    Fix %z in g_date_time_format()

    https://bugzilla.gnome.org/show_bug.cgi?id=642935

 glib/gdatetime.c       |  5 ++---
 glib/tests/gdatetime.c | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 3 deletions(-)

commit d3b80c49ea257d02838099e05e315a2407e664b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 27 00:03:59 2011 -0400

    GHashTable: Small optimization of remove-all

    Don't enter the loop if we are not going to notify anyway.
    Pointed out in bug 646013.

 glib/ghash.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

commit fc7403b675d29574568a79401c864298e8730413
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 27 00:03:28 2011 -0400

    GHashTable: Add a test for remove-all functionality

 glib/tests/hash.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 4832289bc0c2a40a9dbc7259db9be914195ea5f4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 26 23:57:17 2011 -0400

    Whitespace cleanup

 glib/tests/hash.c | 426
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 217 insertions(+), 209 deletions(-)

commit 70a19815326d7e76657848aeaa58ee61db34df58
Author: Maciej Piechotka <uzytkownik2@gmail.com>
Date:   Thu Mar 31 09:00:27 2011 +0200

    Allow caching have_qsort_r which re-enables cross-compiling

    https://bugzilla.gnome.org/show_bug.cgi?id=646309

 configure.ac                   | 6 +++---
 docs/reference/glib/cross.sgml | 9 +++++++++
 2 files changed, 12 insertions(+), 3 deletions(-)

commit fdf83b5108f03aed1b1fa0f5e6b23a5a83c149cd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 26 23:26:58 2011 -0400

    Fix mailing list link in README

    Patch by Thomas Andersen, bug 647594

 README.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6dcf505346adcfaac639f0be074b5aec7f67f3f8
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Mon Apr 4 10:01:51 2011 +0200

    GDBusServer: Documentation: Improvements.

    Provide a fuller description and lead people away if they arrived
    here just looking for a way to provide a regular D-Bus service.

    https://bugzilla.gnome.org/show_bug.cgi?id=646425

 gio/gdbusserver.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 71c7e49058c226cd3b34e85c1b25428c1eb80b84
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Mar 4 18:21:51 2011 +0100

    Use G_SIGNAL_MUST_COLLECT for VARIANT signals

    Bug #643624.

 gio/gactiongroup.c  |  4 +++-
 gio/gdbusproxy.c    | 10 ++++------
 gio/gsimpleaction.c |  2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

commit 122a53a9bc546e4705d20b15c703b8ba354e967b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 26 22:51:54 2011 -0400

    Fix up some harmless FALSE <> NULL confusions

    Reported in bug 643134.

 gio/gdbusconnection.c | 2 +-
 gio/gdbusmessage.c    | 7 +++----
 2 files changed, 4 insertions(+), 5 deletions(-)

commit 440bd2a97574e63c39f0c1e2dbf8a17c2635b0e9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 26 22:08:24 2011 -0400

    GSequence: Make g_sequence_iter_move behave as documented

    As pointed out in bug 658313, moving before the begin iter is
    supposed to return the begin iter, not the end iter. Also add
    a test for this behaviour.

 glib/gsequence.c      |  8 +++++++-
 glib/tests/sequence.c | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 1 deletion(-)

commit 2a3f7f49b46abdaf2d82e704a3ee044ed57fb61f
Author: Colin Walters <walters@verbum.org>
Date:   Tue Apr 26 15:08:54 2011 -0400

    GDesktopAppInfo: Add "filename" property for bindings

    GDesktopAppInfo violates the GObject rule that your C constructors
    should just be thin wrappers around g_object_new().  While GKeyFile
    isn't introspctable, this patch allows from JavaScript:

    var app = new Gio.DesktopAppInfo({ filename: '/path/to/foo.desktop'
    });

    https://bugzilla.gnome.org/show_bug.cgi?id=648425

 gio/gdesktopappinfo.c | 150
 ++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 116 insertions(+), 34 deletions(-)

commit 1056f2240c46081d8f55fe6f121ddee6a0370d96
Author: Colin Walters <walters@verbum.org>
Date:   Tue Apr 26 13:28:17 2011 -0400

    Squash some uninitialized variable compiler warnings

    From GCC 4.6.

 gio/glocalfileinfo.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit df45856bba14b93fedcb876fe04e0bbf0d159909
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 20 11:41:47 2011 -0400

    GSimpleAsyncResult: push thread context around callback

    When an old pre-thread-default-context API that takes an explicit
    GMainContext wants to call a gio API, it must call
    g_main_context_push_thread_default() before, and
    g_main_context_pop_thread_default() after the gio call, so that the
    gio method will return its result to the desired GMainContext.

    But this fails for methods like g_socket_client_connect_async() that
    make a chain of multiple async calls, since the pushed/popped context
    will only affect the initial call.

    Fix this by having GSimpleAsyncResult itself push/pop the context
    around the callback invocation, so that if the callback queues another
    async request, it will stay in the same context as the original one.

    https://bugzilla.gnome.org/show_bug.cgi?id=646957

 gio/gsimpleasyncresult.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit b27f2e051ecf877d7e209b273c0281a7f7f216cb
Author: Muhammet Kara <muhammet.k@gmail.com>
Date:   Tue Apr 26 03:04:20 2011 +0300

    Updated Turkish translation

 po/tr.po | 2809
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 1916 insertions(+), 893 deletions(-)

commit 0377fe7005d95afcbefd067d566fe558030485ab
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 25 10:42:50 2011 -0400

    gdbus-codegen: Fix typo in generated docs

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit bbe945183be11dafc037fdf5f92cea49202b6401
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 25 09:29:18 2011 -0400

    gdbus-codegen: Generate GDBusObject{,Proxy,Skeleton} subtypes

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml           |   6 +-
 docs/reference/gio/gio-sections.txt            |  42 ++
 docs/reference/gio/gio.types                   |   3 +
 docs/reference/gio/migrating-gdbus.xml         |   5 +-
 gio/gdbus-codegen/codegen.py                   | 582
 ++++++++++++++++++++++---
 gio/gdbus-codegen/dbustypes.py                 |   2 +
 gio/gdbusobject.c                              |  57 ---
 gio/gdbusobject.h                              |  17 -
 gio/gdbusobjectmanagerclient.c                 |  18 +-
 gio/gdbusobjectproxy.c                         |  75 ++--
 gio/gdbusobjectproxy.h                         |   6 +-
 gio/gdbusobjectskeleton.c                      |  31 --
 gio/gdbusprivate.h                             |   2 -
 gio/gio.symbols                                |   3 +-
 gio/giotypes.h                                 |   8 +-
 gio/tests/gdbus-example-objectmanager-client.c |   6 +-
 gio/tests/gdbus-example-objectmanager-server.c |  10 +-
 gio/tests/gdbus-test-codegen.c                 | 165 ++-----
 gio/tests/test-codegen.xml                     |   6 +
 19 files changed, 685 insertions(+), 359 deletions(-)

commit a330c2f19f5086986940e57bdf1e7db651db725c
Author: Michael Terry <michael.terry@canonical.com>
Date:   Mon Apr 25 08:29:35 2011 -0400

    Don't ignore SUPPORTS_STARTUP_NOTIFICATION for commandline GAppInfos

    https://bugzilla.gnome.org/show_bug.cgi?id=648416

 gio/gdesktopappinfo.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d8de88e541180edef5a80b8107a383c3bd8522b5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Apr 25 13:47:07 2011 +0800

    Add VS 2008 compilation support for some utilities

    -Added projects to compile the glib-compile-schemas and gsettings
    utilities
    -Update .vsprops to install these in "install" phase
    -Distribute these projects also

 build/win32/vs9/Makefile.am                 |   2 +
 build/win32/vs9/glib-compile-schemas.vcproj | 152
 ++++++++++++++++++++++++++++
 build/win32/vs9/glib.sln                    |  48 +++++++++
 build/win32/vs9/glib.vsprops                |   5 +
 build/win32/vs9/gsettings.vcproj            | 152
 ++++++++++++++++++++++++++++
 5 files changed, 359 insertions(+)

commit dc7e9a54e5957178ecd5ec250d3fe44064fab58b
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Apr 25 13:32:18 2011 +0800

    Add VS 2010 compilation support for some utilities

    -Added projects to compile the glib-compile-schemas and gsettings
    utilities
    -Update .vsprops to install these in "install" phase
    -Distribute these projects also

 build/win32/vs10/Makefile.am                       |   4 +
 build/win32/vs10/glib-compile-schemas.vcxproj      | 174
 +++++++++++++++++++++
 .../vs10/glib-compile-schemas.vcxproj.filters      |  17 ++
 build/win32/vs10/glib.props                        |   8 +
 build/win32/vs10/glib.sln                          |  36 +++++
 build/win32/vs10/gsettings.vcxproj                 | 174
 +++++++++++++++++++++
 build/win32/vs10/gsettings.vcxproj.filters         |  14 ++
 7 files changed, 427 insertions(+)

commit 58eb4da5c52f0847846368b5df4583080459a798
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 23 19:26:56 2011 -0400

    Fix build broken by previous commit

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit b5b34fa2f2711bea9b98a7b14882d8bda06c580b
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 23 17:43:03 2011 -0400

    gdbus-codegen: Include docs for generated code in the GIO docs

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/Makefile.am                  |   1 +
 docs/reference/gio/gio-sections.txt             | 117
 ++++++++++++++++++++++++
 docs/reference/gio/gio.types                    |   7 ++
 docs/reference/gio/migrating-gdbus.xml          |  16 +++-
 gio/Makefile.am                                 |  28 ++++++
 gio/{tests => }/gdbus-example-objectmanager.xml |   0
 gio/tests/Makefile.am                           |  21 +----
 7 files changed, 167 insertions(+), 23 deletions(-)

commit f42d97b88b092e9cb3d0c769cb9f41fe2ce43b16
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Wed Apr 20 19:08:06 2011 +0200

    docs: fix typos in networking classes

 gio/gsocketclient.c          | 22 +++++++++++-----------
 gio/gsocketconnection.c      |  6 +++---
 gio/gsocketlistener.c        | 12 ++++++------
 gio/gsocketservice.c         |  4 ++--
 gio/gtcpconnection.c         |  2 +-
 gio/gthreadedsocketservice.c |  4 ++--
 gio/gunixconnection.c        |  6 +++---
 7 files changed, 28 insertions(+), 28 deletions(-)

commit f0eeadf30672ba60e3aae8964c1c0d3ef9fef733
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 20 11:54:24 2011 -0400

    GDBusObjectManagerServer: make export() return whether the object
    was removed

    This is useful in conjunction with g_warn_if_fail().

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectmanagerserver.c | 18 +++++++++++++-----
 gio/gdbusobjectmanagerserver.h |  2 +-
 2 files changed, 14 insertions(+), 6 deletions(-)

commit c2f670ef492eac0ed8574fc4df1e561ff0b1c89a
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 20 11:24:46 2011 -0400

    GSocketService: clarify transfer semantics of incoming connections

    The @connection parameter to the ::incoming signal is (transfer none),
    so you need to ref it if you want to keep it.

    https://bugzilla.gnome.org/show_bug.cgi?id=647746

 gio/gsocketservice.c | 3 +++
 1 file changed, 3 insertions(+)

commit 35b6c762444a2e7dd5c2658fbc0bd79444929ecf
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 20 09:00:16 2011 -0400

    gdbus-codegen: Document the generated FOO_PEEK_BAR() and FOO_GET_BAR()
    macros

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit bd5da131a2f38a281729729fc4849f309be31b2a
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 19 14:39:47 2011 -0400

    gdbus-codegen: Generate gtk-doc section docs

    This is nice to have if using gtk-doc on the generated code. We could
    also generate -sections.txt and .types files but we don't do that
    right now...

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

commit 7a1d42088939f863fbdf4620c186a8bce8b04a33
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 19 13:42:28 2011 -0400

    gdbus-codegen: Set nick+blurb for properties to shut up gtk-doc

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 271af675eb81589adcc6a8eabcde454c4c9d12de
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 19 13:39:12 2011 -0400

    gdbus-codegen: It's GDBusProxyTypeFunc, not GDBusProxyFunc

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 1ea370a1b1f27ed7c9c73224251c07175aa14487
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 19 13:16:10 2011 -0400

    gdbus-codegen: Document the generated ObjectManagerClient structs

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit 3238a6ffe77284ed881c552016f93a531c54bd75
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 19 13:10:25 2011 -0400

    gdbus-codegen: Add "Returns:" blurb for generated get_proxy_type()

    This was forgotten.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 2 ++
 1 file changed, 2 insertions(+)

commit 68ba1bf074f9168a1997d674bf1d78b5e707dbf6
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 18 14:23:19 2011 -0400

    gdbus-codegen: Generate docs when generating C code

    This is handy for both gtk-doc and gobject-introspection.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py         | 659
 +++++++++++++++++++++++++----------
 gio/gdbus-codegen/codegen_docbook.py |   2 +-
 gio/gdbus-codegen/codegen_main.py    |  11 +-
 gio/gdbus-codegen/utils.py           |  15 +
 4 files changed, 504 insertions(+), 183 deletions(-)

commit d5dc79c0b066895ad41e84db35568d5a30235186
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Apr 15 03:23:12 2011 +0200

    API: testutils: Add g_test_fail()

    This allows tests to fail in a nonfatal way and the test runner can
    continue if invoked with -k.

    https://bugzilla.gnome.org/show_bug.cgi?id=647826

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gtestutils.c                     | 34
 ++++++++++++++++++++++++++++++++--
 glib/gtestutils.h                     |  2 ++
 4 files changed, 36 insertions(+), 2 deletions(-)

commit 9a121032599ec90c883937017f49af2ba1fc6071
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Apr 18 14:45:53 2011 +0200

    testutils: Sprinkle code with newlines

    Readable code ftw!

 glib/gtestutils.c | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

commit d259d50afd7b1f0f063e9ad95f5784540bd0378c
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Apr 18 14:41:51 2011 +0200

    testutils: Return number of bad tests from g_test_run_suite_internal()

    In particular do not return a boolean disguised as an int.

 glib/gtestutils.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 62e68ceec8cfad06fffb00fd23ccaad3fc0f476e
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Apr 18 14:37:24 2011 +0200

    testutils: Remove unused variable

 glib/gtestutils.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 19fdb18ef8794bde6b29e400a6d868a7974b73e2
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Apr 18 14:35:58 2011 +0200

    testutils: Return a boolean from g_test_case_run()

    Return value is intened to be TRUE for success, FALSE for failure.
    Currently we return TRUE all the time.
    Previously the test returned 0 all the time.

 glib/gtestutils.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit affc6f747587f5b86d5ec34cf22e7f666d7d09a9
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 16 15:24:42 2011 -0400

    GDBusObjectManagerClient: Add a GDestroyNotify to the user_data

    For bindings, obviously.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusobjectmanagerclient.c | 40
 +++++++++++++++++++++++++++++++++++++++-
 gio/gdbusobjectmanagerclient.h |  4 ++++
 gio/tests/gdbus-test-codegen.c | 18 ++++++++++--------
 3 files changed, 53 insertions(+), 9 deletions(-)

commit ea742e88e30fc398b8f86cc017161e6dcbb61e08
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 16 14:42:21 2011 -0400

    GDBus: Add some gobject-introspection annotations for new code

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterfaceskeleton.c   |  2 +-
 gio/gdbusobject.c              | 14 +++++++-------
 gio/gdbusobjectmanager.c       |  6 ++++--
 gio/gdbusobjectmanagerclient.c | 24 ++++++++++++++----------
 gio/gdbusobjectmanagerserver.c |  4 ++--
 gio/gdbusobjectproxy.c         |  3 ++-
 6 files changed, 30 insertions(+), 23 deletions(-)

commit 3cef28a2f0d45c4255263dae6a1dc3987bbc3f0c
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 16 14:07:23 2011 -0400

    gdbus-codegen: Make generated code introspectable

    Specific changes

     - Use get_type(), not get_gtype() for the GType function
       - so we need to use the lower-case name type_ for properties
       called type
     - Don't return a function pointer, just make the function returned
       available instead
     - Add (type) annotations in constructors so g-ir-scanner detects
     them as such
     - Add (transfer none) annotations to property getters
     - Add (out) annotations to D-Bus method call functions

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py   | 227
 ++++++++++++++++++++++++++++++++++++-----
 gio/gdbus-codegen/dbustypes.py |   2 +
 gio/tests/gdbus-test-codegen.c |   2 +-
 3 files changed, 202 insertions(+), 29 deletions(-)

commit 2e358e12f95601e7d00c7a4b0c272c0cd00c2e7d
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 16:36:54 2011 -0400

    gdbus-codegen: Nuke debug spew

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen_main.py | 1 -
 1 file changed, 1 deletion(-)

commit a3fa748e54ec077a764a3045c92df59d00ba0edb
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 16:11:43 2011 -0400

    gdbus-codegen: Never emit empty PropertiesChanged signals

    It's not that it's actually a bug to do so per se, strictly speaking,
    it's just pointless and wasteful.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

commit 6bccc46d152079d69cf8aebef08433b1ec6055c7
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 15:53:28 2011 -0400

    gdbus-codegen: Don't send out PropertiesChanged if value ends up
    not changing

    A fairly typical pattern is to have code that does

     foo_set_bar (object, "");
     if (some_condition)
       {
         foo_set_bar (object, "yes");
       }

    where some_condition is often true every time @object is updated.

    With this code, bar is essentially always "yes" but because of how
    gdbus-codegen works, useless PropertiesChanged events got scheduled
    and sent out. With this patch, we avoid that by always keeping the
    original value around and comparing it only when we deem it's time to
    send out the ::PropertiesChanged signal (typically in an idle but can
    be forced by the user via flush()).

    Also add a test case for this.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py   | 49 +++++++++++++++++++++++------------
 gio/tests/gdbus-test-codegen.c | 59
 +++++++++++++++++++++++++++++++++++++++++-
 gio/tests/test-codegen.xml     |  2 ++
 3 files changed, 93 insertions(+), 17 deletions(-)

commit 01602e16955fb7ca60799d4e142c7392ad91237d
Author: Colin Walters <walters@verbum.org>
Date:   Fri Apr 15 15:51:25 2011 -0400

    Fix some compiler warnings from gcc 4.6

 gio/gdbusauthmechanismsha1.c    | 1 +
 gio/tests/gdbus-serialization.c | 1 -
 gio/tests/proxy.c               | 2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

commit 78203f369977b797116c9fc3b2c72a56c55db656
Author: Colin Walters <walters@verbum.org>
Date:   Thu Apr 14 16:03:18 2011 -0400

    gapplication: Fix typo in property

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cade3cb1dab58ee0ab291efbab03e5b047b2a5be
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 13:51:10 2011 -0400

    gdbus-codegen: Fix obvious bug in _g_variant_equal0() implementation

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit e19734d6c3f24076d25ac7f290b97df76cad5056
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 12:56:07 2011 -0400

    gdbus-codegen: Add support for the org.freedesktop.DBus.Deprecated
    annotation

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 124
 ++++++++++++++++++++++-------------
 gio/gdbus-codegen/codegen.py         |  28 ++++++++
 gio/gdbus-codegen/codegen_docbook.py |   8 +++
 gio/gdbus-codegen/dbustypes.py       |  16 +++++
 gio/tests/test-codegen.xml           |  22 +++++++
 5 files changed, 151 insertions(+), 47 deletions(-)

commit 0f9b83dd36a252552e4644257c0fa8272f6ba847
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 15 09:30:24 2011 -0400

    GApplication: #include "gsettings.h"

    Since we call g_settings_sync() from there now...

 gio/gapplication.c | 1 +
 1 file changed, 1 insertion(+)

commit 631d0c3534661e549f7df18fbb9832bdf19c5eaf
Merge: 2553511 a5dd6fc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 15 09:29:47 2011 -0400

    Merge remote-tracking branch 'gvdb/master'

commit a5dd6fcc4f46a322cc547a5fcfa1b52cbc5ec6d6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 15 09:27:38 2011 -0400

    builder: do not include <unistd.h> on win32

    Spotted by Kean Johnston <kean.johnston@gmail.com>.

    https://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00010.html

 gvdb-builder.c | 2 ++
 1 file changed, 2 insertions(+)

commit 98e6d4b0a934b9fd67a38121958fccec879bf1ac
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 08:48:21 2011 -0400

    gdbus-codegen: Include a blurb about the license of the generated code

    More precisely, include this line

     The license of this code is the same as for the source it was
     derived from.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 4 ++++
 1 file changed, 4 insertions(+)

commit 5f31671da05c000224a227ce3548074dc2942086
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 08:44:05 2011 -0400

    gdbus-codegen: Use the right program name in introductory comment
    (again)

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c76a1f99054134fafec1d47d523c4aca219ab83c
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 08:40:52 2011 -0400

    gdbus-codegen: Use the right program name in introductory comment

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/codegen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9e9535b45c1a09a4c86e03d1c0250d7d8703dc08
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 08:33:30 2011 -0400

    gdbus-codegen: Add copyright / license headers

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-codegen/__init__.py        |  1 -
 gio/gdbus-codegen/codegen.py         | 21 +++++++++++++++++++++
 gio/gdbus-codegen/codegen_docbook.py | 21 +++++++++++++++++++++
 gio/gdbus-codegen/codegen_main.py    | 21 +++++++++++++++++++++
 gio/gdbus-codegen/config.py.in       | 21 +++++++++++++++++++++
 gio/gdbus-codegen/dbustypes.py       | 21 +++++++++++++++++++++
 gio/gdbus-codegen/gdbus-codegen.in   | 22 ++++++++++++++++++++++
 gio/gdbus-codegen/parser.py          | 21 +++++++++++++++++++++
 gio/gdbus-codegen/utils.py           | 21 +++++++++++++++++++++
 9 files changed, 169 insertions(+), 1 deletion(-)

commit febfc45fbeaf9f1df3de2310e32c6bce3ea9bbf3
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 15 08:24:40 2011 -0400

    GDBus: Support Ugly_Case and use org.gtk.GDBus.C.Name since it's
    C-only

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 60 +++++++++++++++++--------
 gio/gdbus-codegen/dbustypes.py       | 86
 ++++++++++++++++++++++--------------
 gio/gdbus-codegen/utils.py           |  5 +++
 gio/tests/gdbus-test-codegen.c       |  6 +++
 gio/tests/test-codegen.xml           | 24 ++++++++--
 5 files changed, 125 insertions(+), 56 deletions(-)

commit 2553511f4eaf4af8e48f21f4a3a0ac7c58defc8a
Author: Michael Kuhn <suraia@ikkoku.de>
Date:   Wed Dec 22 10:11:11 2010 +0100

    Bug 637561 - Crash when using G_DBUS_SERVER_FLAGS_RUN_IN_THREAD

    https://bugzilla.gnome.org/show_bug.cgi?id=637561

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusserver.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit c2387ddff164becd90654b459d8c6031c3656577
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Thu Mar 31 13:58:55 2011 +0100

    /gdbus/message-serialize-invalid test: be compatible with D-Bus 1.4.8

    Older versions of libdbus would let you construct an invalid
    DBusMessage, but that's a bug, which will be fixed in 1.4.8/1.5.0.
    Instead, construct a valid message of the same length, then replace
    substrings in the serialized blob with their invalid counterparts.

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=646326

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-serialization.c | 43
 ++++++++++++++++++++++++++++++++---------
 1 file changed, 34 insertions(+), 9 deletions(-)

commit 8b50e2f5475f9817baa358e2f638d0853e50ffb1
Author: Kean Johnston <kean.johnston@gmail.com>
Date:   Fri Apr 15 10:15:04 2011 +0200

    GLocalFile: Use _fstati64 rather than stat on Win32

    We want this to get 64bit timestamps and file lenghts.

 gio/glocalfile.c             | 12 +++++++++---
 gio/glocalfileoutputstream.c | 12 +++++++++---
 2 files changed, 18 insertions(+), 6 deletions(-)

commit a3722d0408fd3746a30180e0c37f1713673a1fcc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 14 20:41:54 2011 -0400

    Slight docs rewording

    Proposed by Thomas Andersen,
    https://bugzilla.gnome.org/show_bug.cgi?id=647700

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4da18247592f1159ee03e414990d2a744aa0a8c7
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Apr 14 11:27:57 2011 -0400

    GResolver: Don't return duplicate addresses

    ... this was causing a GDBus test-case to fail so now that it is
    fixed, also reenable the test case.

    https://bugzilla.gnome.org/show_bug.cgi?id=631379

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gresolver.c        | 49
 +++++++++++++++++++++++++++++++++++++++++++++----
 gio/tests/gdbus-peer.c |  6 ------
 2 files changed, 45 insertions(+), 10 deletions(-)

commit 33515d4eb4175fac70ab42151020336c34bc2083
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Apr 14 11:27:57 2011 -0400

    GInetAddress: add equal() method

    This is needed in the fix for

    https://bugzilla.gnome.org/show_bug.cgi?id=631379

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/ginetaddress.c                  | 29 +++++++++++++++++++++++++++++
 gio/ginetaddress.h                  |  3 +++
 gio/gio.symbols                     |  1 +
 4 files changed, 34 insertions(+)

commit 8b03077a44092ce2b510ef3246da063cacc8d951
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 14 09:54:17 2011 -0400

    GTimeZone: fix non-threadsafe refcounting

    In the previous code, if the timezone was pulled out of the cache
    again
    just as the last reference was being dropped, the cache code will
    increase its refcount and return it while the unref code was
    freeing it.

    Protect against that.

    Closes #646435.

 glib/gtimezone.c | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

commit e38ef14e8b8d2fed909d92514b665bb8c3c99e6c
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 13 18:40:47 2011 -0400

    GDBus: If an authentication method fail, don't give up, just try
    the next one

    This problem was reported in bug 647602.

    https://bugzilla.gnome.org/show_bug.cgi?id=647602

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauth.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 3b997d92c13217db78fcc774bff6d6c0fcd919e6
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 13 18:21:16 2011 -0400

    GDBus: Add test case for the ANONYMOUS authentication method

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-peer.c | 92
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

commit befb60d8268ad2296fe94cebbeadf749314c7a70
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 13 18:19:57 2011 -0400

    GDBus: Nuke debug spew from the ANONYMOUS authentication method

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauthmechanismanon.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 25c57d31c5f8bb36f17328bbeacce4796490b241
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 13 17:49:19 2011 -0400

    GDBus: Allow tcp: and nonce-tcp: addresses without any arguments

    This was broken in this commit

     http://git.gnome.org/browse/glib/commit/?id=0729260141bb585943ad1c6efa8ab7ee9058b0aa

    The test case for catching this is unfortunately commented out (so it
    didn't catch it) due to this bug

     https://bugzilla.gnome.org/show_bug.cgi?id=631379

    still being unresolved.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusaddress.c | 29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

commit 8826ad046d3dfa1a0fbaca1cab1086d12f31d0a5
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 13 16:39:50 2011 -0400

    GDBusInterfaceStub: Clarify ::g-authorize-method docs

    As suggested by Simon in
    https://bugzilla.gnome.org/show_bug.cgi?id=647577#c11

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterfaceskeleton.c | 2 +-
 gio/gdbusobjectskeleton.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 6ccca55752c41001f3af3430d3d93f587fd42383
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 13 16:33:51 2011 -0400

    GDBus: Use Skeleton instead of Stub

    After some brainstorming with Simon, see

     https://bugzilla.gnome.org/show_bug.cgi?id=647577#c8

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml               |  18 +-
 docs/reference/gio/gio-docs.xml                    |   4 +-
 docs/reference/gio/gio-sections.txt                |  90 +++----
 docs/reference/gio/gio.types                       |   4 +-
 gio/Makefile.am                                    |   8 +-
 gio/gdbus-codegen/codegen.py                       | 224
 ++++++++---------
 gio/gdbusinterface.c                               |   4 +-
 ...businterfacestub.c => gdbusinterfaceskeleton.c} | 264
 ++++++++++-----------
 gio/gdbusinterfaceskeleton.h                       | 109 +++++++++
 gio/gdbusinterfacestub.h                           | 109 ---------
 gio/gdbusobject.c                                  |   4 +-
 gio/gdbusobjectmanagerserver.c                     |  66 +++---
 gio/gdbusobjectmanagerserver.h                     |   4 +-
 gio/{gdbusobjectstub.c => gdbusobjectskeleton.c}   | 228
 +++++++++---------
 gio/gdbusobjectskeleton.h                          |  91 +++++++
 gio/gdbusobjectstub.h                              |  91 -------
 gio/gdbusprivate.h                                 |   2 +-
 gio/gio.h                                          |   4 +-
 gio/gio.symbols                                    |  46 ++--
 gio/gioenums.h                                     |  14 +-
 gio/giotypes.h                                     |   4 +-
 gio/tests/gdbus-example-objectmanager-server.c     |  12 +-
 gio/tests/gdbus-test-codegen.c                     | 154 ++++++------
 23 files changed, 777 insertions(+), 777 deletions(-)

commit 68b16deb1f4ec739f80291156f2e0e2eed87d225
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 13 14:03:58 2011 -0400

    gdbusconnection: Avoid tripping assertion if we fail to authenticate
    twice

    If g_bus_get_sync() fails in authentication (because e.g. the process
    uid, doesn't match the expected in EXTERNAL), a secondary call to
    g_bus_get_sync() would notice we aren't initialized, and try
    to initialize.

    The assertion here is just wrong; we now explicitly and clearly handle
    both cases where we already have an error, or we already succeeded.

    https://bugzilla.gnome.org/show_bug.cgi?id=635694

 gio/gdbusconnection.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit 4d15ba90c04e474f996777c9931d50eae712816e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 13 11:46:33 2011 -0400

    G_VARIANT_TYPE_VARDICT: Add 'Since:' tag

 glib/gvarianttype.h | 2 ++
 1 file changed, 2 insertions(+)

commit 683943b40e20d7cd4eda688d4410012b62b45a20
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 13 11:35:06 2011 -0400

    GDBusInterfaceStub: Use G_VARIANT_TYPE_VARDICT when referring to
    type a{sv}

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterfacestub.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 76492d7741c7c6f48d2d7301c872020e42b025ff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 13 08:48:10 2011 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0e55346420e74a562b42d14a136c07a4bbd9d955
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 13 08:19:35 2011 -0400

    Skip the writable test if the file is not writable

    Since make distcheck operates on a readonly source tree.

 glib/tests/mappedfile.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 67b8c7ea8adeef5e2db5e2ed65a15db1e6c91f74
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 13 01:31:19 2011 -0400

    Fix non-srcdir builds

 glib/tests/mappedfile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 5f90baafb5210a551289900a160928dfd698037e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 13 00:42:51 2011 -0400

    More updates

 NEWS | 2 ++
 1 file changed, 2 insertions(+)

commit c1a7599568ba953db6d5f6c840a9c4fb121a9bac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 13 00:39:01 2011 -0400

    Fix a typo in the GSettings docs

    Pointed out by Thomas Andersen
    https://bugzilla.gnome.org/show_bug.cgi?id=647600

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e356c7ca0bcb461491a90f6cfb2907bb4ffa10e8
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 12 20:40:25 2011 -0400

    gdbus-codegen: Shorten man page title

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 29bf848d92b3f4a64d32b104638e87bffcfdb5b3
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 12 20:28:06 2011 -0400

    gdbus-codegen: Use CDATA to make gtk-doc avoid expanding certain
    strings

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 6a4ab7c5d3d98318c38816a64b3c444a2c99ea9b
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 12 20:15:48 2011 -0400

    GDBus: Minor renames and doc fixes

    As requested by Simon in
    https://bugzilla.gnome.org/show_bug.cgi?id=647577

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt | 2 +-
 gio/gdbusinterfacestub.c            | 8 ++++++--
 gio/gdbusobjectmanagerserver.c      | 6 +++---
 gio/gdbusobjectmanagerserver.h      | 2 +-
 gio/gio.symbols                     | 2 +-
 5 files changed, 12 insertions(+), 8 deletions(-)

commit 6bf978f35e9688e48942bbb9b4f28187fae29f73
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 12 17:12:26 2011 -0400

    gdbus-codegen: Mention that @since can be used

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 34a28f2f062281d9fb75fcd02c4df238def6396e
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 12 16:17:28 2011 -0400

    Add support for org.gtk.GDBus.Since annotation

    And use this for a) documentation purposes; and b) to preserve C ABI
    when an interface is extended. See

     https://bugzilla.gnome.org/show_bug.cgi?id=647577#c5

    for more details. Also add test cases for this.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml      | 22 ++++++++++++
 gio/gdbus-codegen/codegen.py              | 60
 ++++++++++++++++++++++++-------
 gio/gdbus-codegen/codegen_docbook.py      |  8 +++++
 gio/gdbus-codegen/dbustypes.py            | 15 ++++++++
 gio/gdbus-codegen/parser.py               |  8 +++++
 gio/gdbus-codegen/utils.py                |  7 ++++
 gio/tests/gdbus-example-objectmanager.xml |  4 +++
 gio/tests/gdbus-test-codegen.c            | 22 ++++++++++++
 gio/tests/test-codegen.xml                | 60
 +++++++++++++++++++++++++++++++
 9 files changed, 193 insertions(+), 13 deletions(-)

commit bf087aabbf3811ccb0abce532122c190673356e5
Author: Colin Walters <walters@verbum.org>
Date:   Tue Apr 12 12:56:33 2011 -0400

    gsettings-tool fixes: Add missing _apply(), add unset-recursively
    to man page

 docs/reference/gio/gsettings.xml | 12 ++++++++++++
 gio/gsettings-tool.c             |  1 +
 2 files changed, 13 insertions(+)

commit 3fd9f2e8f98d59c614a04be8b4a052027e025a64
Author: Colin Walters <walters@verbum.org>
Date:   Tue Apr 12 11:00:54 2011 -0400

    gsettings: Implement reset-recursively

    Motivation was the ability to:
    $ gsettings reset-recursively org.gnome.gnome-panel

    https://bugzilla.gnome.org/show_bug.cgi?id=647579

 gio/gsettings-tool.c | 57
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

commit 76d365372197e9ce9729402ae2fa4fac490f8dd0
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 12 11:50:34 2011 -0400

    gdbus-codegen: Add --c-generate-object-manager option + doc
    improvements

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/Makefile.am            |   4 +-
 docs/reference/gio/gdbus-codegen.xml      | 159
 +++++++++++++++++++-----------
 docs/reference/gio/gio-docs.xml           |   2 +-
 docs/reference/gio/migrating-gdbus.xml    |   7 +-
 gio/gdbus-codegen/codegen.py              | 153
 ++++++++++++++--------------
 gio/gdbus-codegen/codegen_main.py         |   9 +-
 gio/tests/Makefile.am                     |   6 +-
 gio/tests/gdbus-example-objectmanager.xml |   2 +-
 8 files changed, 200 insertions(+), 142 deletions(-)

commit 3f7912f142088cd27f53ba74fb69037c45223678
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 10:02:31 2011 -0400

    GLocalDirectoryMonitor: Improve struct packing

 gio/glocaldirectorymonitor.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a2094d5e564433ed3a4398afeacce80519bbda44
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 10:02:12 2011 -0400

    GIOSchedulerJob: Improve struct packing

 gio/gioscheduler.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit bfe7548fe14ec3b49c96264c1e6d1650357fa41a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 10:01:37 2011 -0400

    GFilenameCompleter: Improve struct packing

 gio/gfilenamecompleter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3e4f3673d8a54b3e1924d00a4a3a6048426f0b10
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 10:01:05 2011 -0400

    GFileAttributeMatcher: Improve struct packing

 gio/gfileinfo.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 8903ec808bb02847d80a26c6224b319b2b2be059
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 10:00:37 2011 -0400

    GDBusProxy: Improve struct packing

 gio/gdbusproxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 53e3e111fd5a891e7b3668e1ca7eab4b987c855e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 10:00:03 2011 -0400

    GDBusWorker: Improve struct packing

 gio/gdbusprivate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9890c03579754ecf145575f6f77af6e34aa9b05c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 09:58:13 2011 -0400

    GMarkupParseContext: Improve struct packing

 glib/gmarkup.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f8b154f53a30930b6e3213c8b85bbb3dea4f68d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 12 09:55:59 2011 -0400

    GMatchInfo: improve struct packing

 glib/gregex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8276d0e557259154beaf3f2997276ba32ee9c1ee
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Apr 12 09:28:09 2011 -0400

    Spiff up the "Migrating to GDBus" docs a bit

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/migrating-gdbus.xml         | 17 ++++---
 gio/tests/Makefile.am                          |  2 +-
 gio/tests/gdbus-example-objectmanager-client.c | 65
 ++++++++++++++++++++------
 gio/tests/gdbus-example-objectmanager-server.c | 34 ++++++++++----
 gio/tests/gdbus-example-objectmanager.xml      | 18 ++++++-
 5 files changed, 106 insertions(+), 30 deletions(-)

commit fc59b9d8436f295713d68e3f2a5af86b93013180
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 18:32:11 2011 -0400

    Update "Migrating to GDBus" chapter to take gdbus-codegen(1)
    into account

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gdbus-codegen.xml      |   2 +-
 docs/reference/gio/migrating-gdbus.xml    | 223
 ++++++++++++------------------
 gio/tests/gdbus-example-objectmanager.xml |  26 +++-
 3 files changed, 105 insertions(+), 146 deletions(-)

commit ff6ecc61c992e27cc018b0716a3910efb4c0656a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 11 13:26:40 2011 -0400

    Add forgotten apis

    g_desktop_app_info_launch_uris_as_manager was not listed in
    the docs.

 NEWS | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

commit e5525f1010825bc5dfbed39f593999d6a115a972
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 16:35:14 2011 -0400

    GDBus: Add ObjectManager example

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/Makefile.am                          |  29 +++++
 gio/tests/gdbus-example-objectmanager-client.c | 135
 +++++++++++++++++++++++
 gio/tests/gdbus-example-objectmanager-server.c | 141
 +++++++++++++++++++++++++
 gio/tests/gdbus-example-objectmanager.xml      |  33 ++++++
 4 files changed, 338 insertions(+)

commit 24533f261900b3234abc4182ffea6bbd1cb1a29e
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 15:34:38 2011 -0400

    Also use interface_ instead of interface in C files

    This is because gtk-doc scans the function in the H file but reads the
    docs from the C file. Annoying.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterface.c     |  34 +++++-----
 gio/gdbusinterfacestub.c | 170
 +++++++++++++++++++++++------------------------
 gio/gdbusobjectstub.c    |  44 ++++++------
 3 files changed, 124 insertions(+), 124 deletions(-)

commit 6cc4dc5b9bb88aff4ec04f115facecef56b7374c
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 15:22:37 2011 -0400

    GDBusInterfaceStub: Rename stub parameter to interface

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterfacestub.c | 256
 +++++++++++++++++++++++------------------------
 gio/gdbusinterfacestub.h |  30 +++---
 2 files changed, 143 insertions(+), 143 deletions(-)

commit 48090287367bf4c57f375faaca8d65bd9cce0d11
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 15:13:25 2011 -0400

    GDBus: Avoid using the word interface in public C headers

    Same deal as with e.g. index since some libraries may do crazy stuff
    such as "#define interface xyz".

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterface.h     | 12 ++++++------
 gio/gdbusobject.h        |  4 ++--
 gio/gdbusobjectmanager.h |  4 ++--
 gio/gdbusobjectstub.h    |  4 ++--
 4 files changed, 12 insertions(+), 12 deletions(-)

commit 5ec05ebfd48ab6bac396f8cd30b47d61b93c7884
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Apr 11 21:06:01 2011 +0200

    Updated Spanish translation

 po/es.po | 530
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 272 insertions(+), 258 deletions(-)

commit 4dffec890631acc926b6e66da4d318e3587f7d38
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 14:59:19 2011 -0400

    Dist test-codegen.xml

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit eaef2a8f3f54354af50e0089a578f83656756d8d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 11 13:26:40 2011 -0400

    Add forgotten apis

    g_desktop_app_info_launch_uris_as_manager was not listed in
    the docs.

 docs/reference/gio/gio-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit c36aa59bf05b972ae1c1e0b9e273064914ca3447
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 11 13:21:12 2011 -0400

    Fix duplicate private subsection

    gtk-doc doesn't understand duplicate Private subsections in
    the obvious way, it seems.

 docs/reference/glib/glib-sections.txt | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit 1a6dd8c7fabdb79bcce7dc04f0e6044a343169f4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 11 13:20:55 2011 -0400

    Fix a few parameter mismatches in the docs

 glib/gtimezone.c | 20 ++++++++++----------
 glib/gtimezone.h |  4 ++--
 2 files changed, 12 insertions(+), 12 deletions(-)

commit 3c94299b0ff1c8e1b0b06bedd73b1b725e631d8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 11 12:57:19 2011 -0400

    Don't include unistd.h unconditionally

    It doesn't exist on all platforms. Partial fix for bug 647341.

 gio/glib-compile-schemas.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 9d048615da794e265256ad29c27daf147675f239
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 11 12:53:25 2011 -0400

    Add 2.30 index to GLib docs

 docs/reference/glib/glib-docs.sgml | 4 ++++
 1 file changed, 4 insertions(+)

commit 8f2a6d3e5a6208953c4e1691826597b2cd6ea2b2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 11 12:26:15 2011 -0400

    Updates

 NEWS | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 53 insertions(+), 5 deletions(-)

commit 9c1941c07fba7626ba1a40a7009615c88a645539
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 10:54:52 2011 -0400

    GDBus: Add test-suite for new ObjectManager and gdbus-codegen(1) code

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/Makefile.am          |   24 +
 gio/tests/gdbus-test-codegen.c | 2178
 ++++++++++++++++++++++++++++++++++++++++
 gio/tests/test-codegen.xml     |  341 +++++++
 3 files changed, 2543 insertions(+)

commit 982195b61c4996e1dd8045dcdb818ff7ee45d5b4
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 11 10:51:37 2011 -0400

    GDBus: Use thread-default GMainContext in _g_assert_property_notify
    + friends

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-tests.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ff57ed5d6a67f91ef35ae947f3fea7ecce12ee7b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 11 03:30:24 2011 -0400

    GApplication: g_settings_sync() on exit

    Call g_settings_sync() just before g_applcation_run() returns.
    This is
    really the correct thing to do in every case that you're using
    GSettings
    and it prevents every single application from having to do it for
    themselves.

    Closes bug #647419.

 gio/gapplication.c | 2 ++
 1 file changed, 2 insertions(+)

commit 68aef334041c7da2c67e43b743b8e93114d84e54
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 11 03:37:47 2011 -0400

    GSettings: make _sync() a no-op if uninitialised

    If GSettings is uninitialised then g_settings_sync() should very
    obviously just return right away (rather than attempting to initialise
    GSettings first).

 gio/gsettingsbackend.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

commit 6a45180c95baaddedafacf1780de2670c5a6a44a
Author: David Zeuthen <davidz@redhat.com>
Date:   Sun Apr 10 11:19:45 2011 -0400

    Clarify docs for g_dbus_gvalue_to_gvariant() and
    g_dbus_gvariant_to_gvalue()

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusutils.c | 77
 +++++++++++++++++++++++++++++---------------------------
 gio/gdbusutils.h |  2 +-
 2 files changed, 41 insertions(+), 38 deletions(-)

commit 45377252db37ed46b4fd4c17ae88d8804c8c0923
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 10 07:55:03 2011 -0400

    Add test case for G_APPLICATION_NON_UNIQUE

 gio/tests/gapplication.c | 74
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

commit 9d204338f3e2a0eb7fb53eb7287040eb8d0f8589
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 10 07:51:55 2011 -0400

    GApplication: add G_APPLICATION_NON_UNIQUE

    Add a flag to essentially short-circuit g_application_register().  The
    application makes no attempt to acquire the bus name or check for
    existing instances with that name.  The application is never
    considered
    as being 'remote' and all requests are handled locally.

    Closes #646985.

 gio/gapplication.c | 19 +++++++++++--------
 gio/gioenums.h     |  9 ++++++++-
 2 files changed, 19 insertions(+), 9 deletions(-)

commit 53389d963d1271d0c36862e2b4866ff5231b9b9e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 10 07:50:26 2011 -0400

    GApplication: fix leaked object path

    In the case that we fail to become the primary instance we should
    unregister *both* object paths that we registered during our attempt.

 gio/gapplicationimpl-dbus.c | 3 +++
 1 file changed, 3 insertions(+)

commit 01a5f19e049618fc4665c809ef85958cca1ee2ae
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 9 17:51:59 2011 -0400

    Improve g_dbus_gvalue_to_gvariant() docs

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusutils.c | 30 +++++++++++-------------------
 1 file changed, 11 insertions(+), 19 deletions(-)

commit 61704dbca5a0004ab9b1172cd96b8d81b1697d61
Author: Dan Winship <danw@gnome.org>
Date:   Sat Apr 9 12:47:32 2011 -0400

    GSocket: clarify g_socket_receive documentation

    g_socket_receive* return 0 if the connection is closed.

    https://bugzilla.gnome.org/show_bug.cgi?id=643074

 gio/gsocket.c | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

commit ea57feff96f13bbd4d03a76040a4ddfad2677310
Author: Dan Winship <danw@gnome.org>
Date:   Thu Mar 10 22:09:31 2011 -0500

    gsettings-tool: warn if setting a value fails

    eg, if the dconf backend cannot connect to dbus

    https://bugzilla.gnome.org/show_bug.cgi?id=641768

 gio/gsettings-tool.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit 1d781ba3bec741475eaa745aec2c060e9b1114f4
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 9 11:46:19 2011 -0400

    GDBus: Document GVariant/GValue conversion routines and move to them
    to utils

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   4 +-
 gio/gdbusinterface.c                | 315 -----------------------------
 gio/gdbusinterface.h                |   7 -
 gio/gdbusutils.c                    | 385
 ++++++++++++++++++++++++++++++++++++
 gio/gdbusutils.h                    |   5 +
 gio/gio.symbols                     |   4 +-
 6 files changed, 394 insertions(+), 326 deletions(-)

commit 9c8341f1aaf01148ee2ca7f634478cdfaf4a0303
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 9 11:39:32 2011 -0400

    Forgot to add autofoo for libffi

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 configure.ac | 4 ++++
 1 file changed, 4 insertions(+)

commit 88ab35f3cb6127036361e421987a127bddb989c8
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 17:34:44 2011 -0400

    Add a generic libffi based marshaller to libgobject

    This code is from https://bugzilla.gnome.org/show_bug.cgi?id=567087
    and was adapted by myself to also support the GVariant fundamental
    type.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gobject/gobject-sections.txt |   1 +
 gio/gdbus-codegen/codegen.py                | 189
 +--------------------------
 gobject-2.0.pc.in                           |   1 +
 gobject/Makefile.am                         |   4 +-
 gobject/gclosure.c                          | 194
 ++++++++++++++++++++++++++++
 gobject/gclosure.h                          |   7 +
 gobject/gobject.symbols                     |   1 +
 7 files changed, 209 insertions(+), 188 deletions(-)

commit 0b9229beca5379b638e9d9a879bca30560042023
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 16:57:31 2011 -0400

    Add gdbus-codegen(1) command

    It doesn't work yet without the user manually adding ffi bits. That's
    the topic of the next commit.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 configure.ac                         |    2 +
 docs/reference/gio/Makefile.am       |    6 +-
 docs/reference/gio/gdbus-codegen.xml |  674 +++++++++++
 docs/reference/gio/gio-docs.xml      |    1 +
 gio/Makefile.am                      |    2 +-
 gio/gdbus-codegen/Makefile.am        |   27 +
 gio/gdbus-codegen/__init__.py        |    1 +
 gio/gdbus-codegen/codegen.py         | 2104
 ++++++++++++++++++++++++++++++++++
 gio/gdbus-codegen/codegen_docbook.py |  283 +++++
 gio/gdbus-codegen/codegen_main.py    |  171 +++
 gio/gdbus-codegen/config.py.in       |    6 +
 gio/gdbus-codegen/dbustypes.py       |  288 +++++
 gio/gdbus-codegen/gdbus-codegen.in   |   11 +
 gio/gdbus-codegen/parser.py          |  255 ++++
 gio/gdbus-codegen/utils.py           |   56 +
 15 files changed, 3884 insertions(+), 3 deletions(-)

commit 1a0424b7ff4550ae90ff730bb98d40bface512f3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 8 17:02:01 2011 -0400

    Fix another faulty GApplicationCommandline example

    Several flaws were pointed out by Shaun McCance. We were
    leaking handled arguments, and we were mishandling the last
    argument, and we were actually skipping arguments too.

    https://bugzilla.gnome.org/show_bug.cgi?id=647031

 gio/tests/gapplication-example-cmdline2.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit ac93a6af88901840b3324c086221c9153608df0a
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 16:29:48 2011 -0400

    Add "Since: 2.30" for new D-Bus routines

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusinterface.c           | 10 ++++++++++
 gio/gdbusinterface.h           |  4 ++++
 gio/gdbusinterfacestub.c       | 24 ++++++++++++++++++++++++
 gio/gdbusinterfacestub.h       |  4 ++++
 gio/gdbusobject.c              | 14 ++++++++++++++
 gio/gdbusobject.h              |  2 ++
 gio/gdbusobjectmanager.c       | 22 ++++++++++++++++------
 gio/gdbusobjectmanager.h       |  2 ++
 gio/gdbusobjectmanagerclient.c | 40
 ++++++++++++++++++++++++++++++++++++++++
 gio/gdbusobjectmanagerclient.h |  4 ++++
 gio/gdbusobjectmanagerserver.c | 14 ++++++++++++++
 gio/gdbusobjectmanagerserver.h |  6 +++++-
 gio/gdbusobjectproxy.c         |  8 ++++++++
 gio/gdbusobjectproxy.h         |  4 ++++
 gio/gdbusobjectstub.c          | 16 ++++++++++++++++
 gio/gdbusobjectstub.h          |  6 +++++-
 16 files changed, 172 insertions(+), 8 deletions(-)

commit bf6e10fe5231e892e9f64b0887b6a432047be07a
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 16:29:30 2011 -0400

    Add docs for new high-level D-Bus types

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-docs.xml     |   8 ++
 docs/reference/gio/gio-sections.txt | 179
 ++++++++++++++++++++++++++++++++++++
 docs/reference/gio/gio.types        |   8 ++
 3 files changed, 195 insertions(+)

commit 1e2e58705c0dbda29a6bbe9fb890b7700fee428e
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 16:12:33 2011 -0400

    GDBusProxy: Store GDBusObject in private struct instead of qdata

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit b41cf76350c144379c012f6a959dd30152e17780
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 16:12:09 2011 -0400

    GDBusProxy: Update description to match GDBusInterface

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 94b907134426e26393a86630dae5ce53baee6ae6
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 15:14:47 2011 -0400

    Start merging gdbus-codegen code

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/Makefile.am                |   16 +
 gio/gdbusauthobserver.c        |   17 +-
 gio/gdbusinterface.c           |  410 +++++++++++
 gio/gdbusinterface.h           |   79 ++
 gio/gdbusinterfacestub.c       |  693 ++++++++++++++++++
 gio/gdbusinterfacestub.h       |  105 +++
 gio/gdbusobject.c              |  191 +++++
 gio/gdbusobject.h              |   95 +++
 gio/gdbusobjectmanager.c       |  216 ++++++
 gio/gdbusobjectmanager.h       |   89 +++
 gio/gdbusobjectmanagerclient.c | 1575
 ++++++++++++++++++++++++++++++++++++++++
 gio/gdbusobjectmanagerclient.h |  129 ++++
 gio/gdbusobjectmanagerserver.c |  898 +++++++++++++++++++++++
 gio/gdbusobjectmanagerserver.h |   80 ++
 gio/gdbusobjectproxy.c         |  315 ++++++++
 gio/gdbusobjectproxy.h         |   72 ++
 gio/gdbusobjectstub.c          |  475 ++++++++++++
 gio/gdbusobjectstub.h          |   87 +++
 gio/gdbusprivate.c             |   18 +
 gio/gdbusprivate.h             |   20 +-
 gio/gdbusproxy.c               |   36 +
 gio/gio-marshal.list           |    3 +
 gio/gio.h                      |    8 +
 gio/gio.symbols                |   96 +++
 gio/gioenums.h                 |   36 +
 gio/giotypes.h                 |   33 +
 26 files changed, 5774 insertions(+), 18 deletions(-)

commit 0729260141bb585943ad1c6efa8ab7ee9058b0aa
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 8 15:44:25 2011 -0400

    Silence a bunch of -Wunused-but-set-variable warnings

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusaddress.c           | 29 +++++++++++++++++++++++++++++
 gio/gdbusauth.c              |  1 +
 gio/gdbusauthmechanismsha1.c |  4 ++++
 gio/gdbusconnection.c        | 17 -----------------
 gio/gdbusmessage.c           |  5 ++---
 gio/gdbusprivate.c           |  1 +
 gio/gdbusproxy.c             |  5 +----
 gio/gdbusserver.c            |  5 +----
 gio/gdbusutils.c             |  4 ----
 gio/gicon.c                  |  4 +---
 gio/ginetaddress.c           |  1 +
 gio/glib-compile-schemas.c   |  3 ---
 gio/gresolver.c              |  2 ++
 gio/gsocket.c                |  6 +-----
 gio/gsocketconnection.c      |  1 +
 gio/gsocketcontrolmessage.c  |  1 +
 gio/gunixconnection.c        |  1 +
 gio/gvdb/gvdb-reader.c       |  2 --
 gio/tests/converter-stream.c |  6 ------
 gio/tests/file.c             |  9 +++------
 gio/tests/httpd.c            |  1 +
 gio/tests/live-g-file.c      |  3 +--
 gio/tests/sleepy-stream.c    |  3 ---
 23 files changed, 52 insertions(+), 62 deletions(-)

commit 23818d1e61bdf33e5f19ba1c0993bacfcdc113db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 8 09:14:50 2011 -0400

    GSettings: remove more asserts

    Same logic as the last commit on this topic, applied to the other
    functions too.

 gio/gsettings.c | 8 --------
 1 file changed, 8 deletions(-)

commit edaf99be8662bf19a67ef5e62b8402764197d0c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 8 07:13:54 2011 -0400

    Avoid an interaction between GApplication and GOption

    When using GOption to handle commandlines, we need to disable
    the builtin help handling, since it calls exit(). Also mention
    this particular pitfall in the docs.

 gio/gapplicationcommandline.c             |  5 ++++-
 gio/tests/gapplication-example-cmdline3.c | 11 +++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

commit 3498d58289ed833aeae59bfc76db0f5fa5840481
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 8 01:47:52 2011 -0400

    glib-compile-schemas: check for undefined refs

    For child schemas, verify that the named schema actually exists and
    issue a warning if not.  This error in schema files will cause runtime
    errors when iterating over the list of child schemas and attempting to
    instantiate each one.

    This will move from being merely a warning to a hard error in the
    future.

    Bug #646039.

 gio/glib-compile-schemas.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

commit 4ece333afeb046b60eaa5fd512694e5c8f1587a6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 7 21:25:01 2011 -0400

    Don't assert on backend == settings->priv->backend

    They could be different if a notification is queued for delivery and
    someone calls g_settings_delay().

    Bug #646843.

 gio/gsettings.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit a2e3a4d150b59213694b5166d0fda60d2b17970a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 7 17:14:36 2011 -0400

    Add a warning to the g_dbus_connection_set_exit_on_close docs

    Tell people to not leak their apps out of the session.

 gio/gdbusconnection.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 784619bc3aeb0e4f4d0dcf1c6feb934eaa586841
Author: Dan Winship <danw@gnome.org>
Date:   Mon Apr 4 11:10:50 2011 -0400

    Fix two leaks seen when using TLS connections

    g_tls_certificate_list_new_from_file() was leaking the file contents,
    and GSource was leaking the GSourcePrivate structure that got
    created when using child sources.

 gio/gtlscertificate.c | 1 +
 glib/gmain.c          | 7 +++++++
 2 files changed, 8 insertions(+)

commit 9fdc8d976a06d892e3718b417759aacf83167616
Author: Jordi Serratosa <serratosa@gmail.com>
Date:   Mon Apr 4 21:16:35 2011 +0200

    [l10n]Fixes on Catalan translation

 po/ca.po | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 418358f452a858205c1236c9826b40de92aca430
Author: OKANO Takayoshi <kano@na.rim.or.jp>
Date:   Mon Apr 4 21:27:35 2011 +0900

    Updated Japanese translation

 po/ja.po | 1192
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 696 insertions(+), 496 deletions(-)

commit 3ac7e0a7fe0156605237916d7388cb8894b93b72
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Mar 24 09:37:21 2011 +0100

    Docs: Change DBus to D-Bus

 gio/gioenums.h             |  2 +-
 glib/gvariant-serialiser.c | 12 ++++++------
 glib/gvariant.c            | 38 +++++++++++++++++++-------------------
 glib/gvarianttype.c        | 20 ++++++++++----------
 glib/gvarianttype.h        | 18 +++++++++---------
 5 files changed, 45 insertions(+), 45 deletions(-)

commit 27a067a3c860271b62f009382444d5d728932e47
Author: Petr Kovar <pknbe@volny.cz>
Date:   Mon Apr 4 04:10:42 2011 +0200

    Update Czech translation

 po/cs.po | 1139
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 639 insertions(+), 500 deletions(-)

commit 88a6723bf4453d20d467dad7f1400a14e1248545
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Sun Apr 3 10:13:57 2011 +0200

    Updated Hungarian translation

 po/hu.po | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

commit 32e26cf17936e0ad26252acb24530a7e2811e3eb
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Sat Apr 2 15:42:11 2011 +0200

    GDBusMethodInvocation: Improve get_parameters() documentation.

    Note that the returned GVariant is always a tuple.
    See bug #646420.

 gio/gdbusmethodinvocation.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 98365dff73d8ecc8a02b7dfedce87e6fc28f4e39
Author: Colin Walters <walters@verbum.org>
Date:   Thu Mar 31 17:07:07 2011 -0400

    gqsort: Quiet a compiler warning for qsort_r

 glib/gqsort.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 14bb138d581b40bbd850c85ae63c8391a1671696
Author: Colin Walters <walters@verbum.org>
Date:   Fri Mar 25 11:59:33 2011 -0400

    goption: [linux] Look in /proc/self/cmdline for argv0 if not specified

    We really shouldn't use <unknown> when we can perfectly easily
    get argv0 out of /proc.  This avoids people having to pass argv
    down into gtk_init/g_option_context_parse etc., which is important
    because GTK+ uses it to initialize the WM_CLASS, which in turn
    GNOME Shell consumes for application tracking.

    https://bugzilla.gnome.org/show_bug.cgi?id=644309

 glib/goption.c              | 50 ++++++++++++++++++++++++++++++-----
 glib/tests/Makefile.am      |  4 +++
 glib/tests/option-argv0.c   | 63
 +++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/option-context.c | 25 +++---------------
 4 files changed, 113 insertions(+), 29 deletions(-)

commit 131b9f98ea6ec1cc7b8dce539199d181ab1dac19
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 15:55:21 2011 +0530

    gio.symbols updates

 gio/gio.symbols | 7 +++++++
 1 file changed, 7 insertions(+)

commit 7a752e0817986d535717ceee2d502f00e3c0f747
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 15:51:01 2011 +0530

    Improve .gitignore

 gio/tests/.gitignore     | 1 +
 glib/tests/.gitignore    | 4 ++++
 gobject/tests/.gitignore | 5 +++++
 m4macros/.gitignore      | 1 +
 4 files changed, 11 insertions(+)

commit 0cadce7e93b0246ad57ab26b9bc851facbb54416
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 15:47:54 2011 +0530

    glib.symbols: add some missing symbols

 glib/glib.symbols | 2 ++
 1 file changed, 2 insertions(+)

commit d95b750a1d936d962b4c00be2d65ea1606f143cb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 15:12:34 2011 +0530

    compile schemas test: open ranges for all types

    We need to make sure that every value in the table actually parses
    with
    GVariant.

 gio/tests/gschema-compile.c                        |  3 +-
 gio/tests/schema-tests/range-type-test.gschema.xml | 76
 ++++++++++++++++++++++
 2 files changed, 78 insertions(+), 1 deletion(-)

commit d2af82e8203323e1b7fad4460c6b48411ef81711
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 15:11:30 2011 +0530

    gschema-test: invert expectation for min/max omit

    It is now completely valid.

    Fix up what is now a legitimate range error in the schema used in
    one of
    the tests.

 gio/tests/gschema-compile.c                          | 4 ++--
 gio/tests/schema-tests/range-missing-max.gschema.xml | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit cde83c8ccd5d56a72d2e3f0d36e9a902f9375482
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 15:10:25 2011 +0530

    glib-compile-schemas: min and max are now optional

    Will be taken to be the minimum and maximum value for the type of the
    key if they are left out.

    Bug #646310.

 gio/glib-compile-schemas.c | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

commit cd35e2e64341c7d8186f448e990e6589f0b21d64
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 15:09:55 2011 +0530

    GVariant test: test parsing of "inf" and "nan"

 glib/tests/gvariant.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 85633f11824bc806bef3d18b8c8a0bdb96af6a16
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 14:48:10 2011 +0530

    GVariant parser: parse "inf", "-inf" and "nan"

 glib/gvariant-parser.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 24ed841d6a65e3beff64b2252d132be9e57ede9a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 14:45:50 2011 +0530

    GVariant parser: match strings without consuming

    Add a new function that allows the parser to check that the current
    token is equal to a given string without consuming the token.
    Reimplement the 'consume' function in terms of the new function.

 glib/gvariant-parser.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

commit f6dff49136bd2202fd7a4b928b9dcd8fb625f8a4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 14:07:59 2011 +0530

    GVariant parser: fix memory error

    In some cases it was possible for the GVariant parser to access
    past the
    'limit' parameter.  This should fix that.

 glib/gvariant-parser.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

commit 49fa69e05eb6d2a29fc1de8af93e65c4dd45ad72
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Mar 31 12:44:40 2011 +0530

    Add 'uint' convenience functions for GSettings

    Without getting into a debate about the reasons why you may or may not
    want to use unsigned integers, it's sufficient to note that people
    have
    been using them and requesting this functionality.

    Bug #641755.

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/gio.symbols                     |  2 ++
 gio/gsettings.c                     | 56
 +++++++++++++++++++++++++++++++++++++
 gio/gsettings.h                     |  5 ++++
 4 files changed, 65 insertions(+)

commit e9ce8f23748c28e19393cb225aeb6f7deac2fa62
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 18 22:00:14 2011 -0400

    Add GTimeZoneMonitor

    Monitors /etc/localtime for changes and instructs GTimeZone to
    drop its
    cache.  Also has a signal for interested 3rd parties.

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  13 +++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gtimezonemonitor.c              | 156
 ++++++++++++++++++++++++++++++++++++
 gio/gtimezonemonitor.h              |  47 +++++++++++
 glib/gtimezone.c                    |   3 +
 8 files changed, 224 insertions(+)

commit de3a3b181a97d43acd29bcdcdbd7406233b7ee9f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 18 23:09:52 2011 -0400

    g_time_zone_new_local: cache the result

    Add a function to drop the cache.

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/gtimezone.c                      | 57
 ++++++++++++++++++++++++++++++++++-
 glib/gtimezone.h                      |  2 ++
 3 files changed, 60 insertions(+), 1 deletion(-)

commit 29a074b87e60be0d3f5508fa71ceb61937777c6d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 18 23:09:17 2011 -0400

    GTimeZone: don't add /etc/localtime to the cache

    It may change.

 glib/gtimezone.c | 40 ++++++++++++++--------------------------
 1 file changed, 14 insertions(+), 26 deletions(-)

commit 3d46c848c538b53e9d8b986803742bb4ee125e40
Author: Miroslav Nikolić <miroslavnikolic@rocketmail.com>
Date:   Thu Mar 31 00:47:41 2011 +0200

    Updated Serbian translation

 po/sr.po       | 1774
 ++++++++++++++++++++++++++++++++------------------------
 po/sr@latin.po | 1774
 ++++++++++++++++++++++++++++++++------------------------
 2 files changed, 2030 insertions(+), 1518 deletions(-)

commit d306d0019be47c6fc6600210c5c9acbf222729b5
Author: Gil Forcada <gforcada@gnome.org>
Date:   Wed Mar 30 23:17:29 2011 +0200

    [l10n]Updated Catalan translation

 po/ca.po | 344
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 180 insertions(+), 164 deletions(-)

commit 04969571bb9dd0f9415ca9cd2c3fd360e3f7f159
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Wed Mar 30 19:52:31 2011 +0200

    [gi] Add missing allow-none annotations to Gio

 gio/gdbusproxy.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit abe57505407fa3a8f95e41972e3c8deb79ec8f7d
Author: Friedel Wolff <friedel@translate.org.za>
Date:   Wed Mar 30 18:53:38 2011 +0200

    Update translation for Afrikaans (af)

 po/af.po | 2200
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 1510 insertions(+), 690 deletions(-)

commit 92977a221760eba19a5a7186f5ccc90f21262279
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Wed Mar 30 15:22:38 2011 +0100

    Updated British English translation

 po/en_GB.po | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 5f71bb583be44a4e7cacd36d5a21c27c9048e8ed
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Wed Mar 30 21:17:26 2011 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 336
 +++++++++++++++++++++++++++++++-----------------------------
 po/zh_TW.po | 336
 +++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 350 insertions(+), 322 deletions(-)

commit c9bc758e8d638f2dd37b38249ae0a9a1034d0854
Author: Gintautas Miliauskas <gintautas@miliauskas.lt>
Date:   Tue Mar 29 14:12:25 2011 +0200

    Updated Lithuanian translation.

 po/lt.po | 1342
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 773 insertions(+), 569 deletions(-)

commit 95e7aa0e07d7d31d3459910fed014f7aa611f957
Author: Jonathan Matthew <jonathan@d14n.org>
Date:   Sun Mar 27 10:44:31 2011 +1000

    introspection: add annotations for g_file_load_contents and friends

    https://bugzilla.gnome.org/show_bug.cgi?id=645789

 gio/gfile.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit abe058a599a8b9a064ab6cbf8fe2416f6ecd08bc
Author: Gil Forcada <gforcada@gnome.org>
Date:   Tue Mar 29 00:58:25 2011 +0200

    [l10n]Updated Catalan translation

 po/ca.po | 2798
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 1920 insertions(+), 878 deletions(-)

commit f516ebc57b8e075744fd1c653fba47191dfd3fba
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Mar 28 13:04:34 2011 -0400

    GDBusProxy: Also check signature when checking if signal is expected

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit caf993df6f9dbf2cd01ae16f5d757187c44683e3
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Mar 28 12:10:25 2011 -0400

    GDBusProxy: Drop unexpected signals

    If we have an expected interface and receive a signal not mentioned in
    the interface, simply drop it. This way, the application won't have to
    check for the signal itself.

    This was pointed out in

     https://bugzilla.gnome.org/show_bug.cgi?id=642724#c5

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit aa59fb9dd1a20004a5ba5f4d97c271eb5abe01e9
Author: Olivier Crête <olivier.crete@collabora.co.uk>
Date:   Fri Feb 18 20:34:06 2011 -0500

    GDBusProxy: Validate properties received from service if possible

    If the proxy has an GInterfaceInfo set, validate properties against it
    so the application doesn't have to do it.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 42 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 36 insertions(+), 6 deletions(-)

commit 2809964c289ce278cc7477b7af908de7845c5c61
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Mar 28 11:35:14 2011 -0400

    docs: Add a "Index of new symbols in 2.30" section

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-docs.xml | 4 ++++
 1 file changed, 4 insertions(+)

commit b845c62c7feb06f3d16921b5c08065fb13a1030b
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Mar 28 11:34:48 2011 -0400

    GDBusProxy: Make interface lookups O(1)

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 91f97ebbaad602115b3b26e36592a3b3a22cf9e6
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Mar 28 11:33:36 2011 -0400

    GDBusConnection: Make interface lookups O(1)

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 ++
 1 file changed, 2 insertions(+)

commit 5bcf54b29cfe65f07d362b48a7fce7ac7c9a6dc3
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Mar 28 11:31:05 2011 -0400

    GDBus: Add mechanism to make lookup on interfaces constant-time

    This is used both on the service- and client-side and is currently
    O(n).

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gdbusintrospection.c            | 171
 +++++++++++++++++++++++++++++++++++-
 gio/gdbusintrospection.h            |   3 +
 gio/gio.symbols                     |   2 +
 4 files changed, 175 insertions(+), 3 deletions(-)

commit 5aa8f135c782e080b1be62e1f1fc5f1c9f12e959
Author: Aron Xu <aronxu@gnome.org>
Date:   Mon Mar 28 10:21:57 2011 +0000

    Update Simplified Chinese translation.

 po/zh_CN.po | 180
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 90 insertions(+), 90 deletions(-)

commit 13e2328117452af86097c18d873abd0c7d996c19
Author: Aron Xu <aronxu@gnome.org>
Date:   Mon Mar 28 10:18:03 2011 +0000

    Update Simplified Chinese translation.

 po/zh_CN.po | 570
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 298 insertions(+), 272 deletions(-)

commit 6477c58ce477fc6ac7ac98ab3895175db44eef2e
Author: Wouter Bolsterlee <wbolster@gnome.org>
Date:   Sun Mar 27 23:49:55 2011 +0200

    Updated Dutch translation by Wouter Bolsterlee

 po/nl.po | 1198
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 675 insertions(+), 523 deletions(-)

commit cd7f028cc0962dad80901603baaa4ba9e9283825
Author: Abduxukur Abdurixit <abdurixit@gmail.com>
Date:   Sun Mar 27 19:38:45 2011 +0200

    Added UG translation

 po/ug.po | 1649
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 851 insertions(+), 798 deletions(-)

commit 77f30fc3d3f8bee9970df58051d8934223982fd3
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sun Mar 27 00:38:07 2011 +0700

    Updated Vietnamese translation

 po/vi.po | 41 +++++++++++++++--------------------------
 1 file changed, 15 insertions(+), 26 deletions(-)

commit 0e9d328bbee4c4a75c155b6943ee70da27c73025
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Sun Mar 27 00:34:44 2011 +0700

    po/vi.po: import from Damned Lies

 po/vi.po | 769
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 409 insertions(+), 360 deletions(-)

commit ead00ab55d8492a3fce81916da7ffd154b4272a9
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sat Mar 26 14:17:39 2011 +0100

    Updated Danish translation

 po/da.po | 1302
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 771 insertions(+), 531 deletions(-)

commit 1618ca572fec292f0771202bd8b218dacc959060
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Mar 25 17:56:59 2011 -0400

    Fix test suite breakage caused by Murray's commit

    See https://bugzilla.gnome.org/show_bug.cgi?id=645682

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gschema-compile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 222b0276f552c2bf3ca40dc75101f737d82f7991
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Fri Mar 25 22:13:47 2011 +0200

    Updated Bulgarian translation

 po/bg.po | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

commit c926c099594be2fdc211032fd31b59cdffeebc58
Author: Daniel Nylander <po@danielnylander.se>
Date:   Fri Mar 25 18:22:51 2011 +0100

    Updated Swedish translation

 po/sv.po | 1257
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 670 insertions(+), 587 deletions(-)

commit 0760e239d3156421f222ab638f96222fe7083a6e
Author: Daniel Nylander <po@danielnylander.se>
Date:   Fri Mar 25 18:22:13 2011 +0100

    Updated Swedish translation

 po/sv.po | 1318
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 663 insertions(+), 655 deletions(-)

commit a8bc1436f1106f92b9dad803787278323c2041fc
Author: Tristan Van Berkom <tristanvb@openismus.com>
Date:   Thu Mar 24 10:07:18 2011 -0400

    GDBusServer: move business logic from _new() function to
    initable_init()

    https://bugzilla.gnome.org/show_bug.cgi?id=639478

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusserver.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

commit 30fdc1a79938540af7bad0af68d0a3b8af14f117
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Mar 24 09:33:55 2011 +0100

    Docs: Changed can not to cannot.

 gio/gapplication.c          | 4 ++--
 gio/gsettings.h             | 2 +-
 gio/gvdb/gvdb-reader.c      | 2 +-
 gio/tests/gschema-compile.c | 2 +-
 glib/gconvert.c             | 4 ++--
 glib/giochannel.c           | 6 +++---
 glib/gmessages.c            | 2 +-
 glib/gthread.c              | 4 ++--
 glib/gthreadpool.c          | 2 +-
 glib/gvariant.c             | 4 ++--
 glib/gvarianttype.c         | 2 +-
 gobject/gtype.h             | 2 +-
 gobject/gtypemodule.c       | 2 +-
 gobject/gvalue.h            | 2 +-
 14 files changed, 20 insertions(+), 20 deletions(-)

commit 16358f76f6cef6865660e00952fa4d1a35437bce
Author: Daniel Nylander <po@danielnylander.se>
Date:   Tue Mar 22 15:12:41 2011 +0100

    Updated Swedish translation

 po/sv.po | 977
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 495 insertions(+), 482 deletions(-)

commit 78e075f369c589ca8cbbd9c34f8aa7c8be9cf1bd
Author: Daniel Nylander <po@danielnylander.se>
Date:   Tue Mar 22 15:12:10 2011 +0100

    Updated Swedish translation

 po/sv.po | 829
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 427 insertions(+), 402 deletions(-)

commit 57b1142beed7f84dc3e6e13cdd1ee0253bc37f88
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Tue Mar 22 14:42:32 2011 +0100

    Updated Italian translation

 po/it.po | 285
 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 170 insertions(+), 115 deletions(-)

commit 175f5292e4806a2ca1bc2db675c8adffb5c8693d
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Mon Mar 21 16:41:46 2011 +0530

    Updated Gujarati Translations

 po/gu.po | 111
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 56 insertions(+), 55 deletions(-)

commit 432180d02fd595e95f36d732feac26dcd2b811d2
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Mar 19 16:31:42 2011 +0100

    Updated Polish translation

 po/pl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a5999d317a15cbf173d89f8f73861b43bcd9ffa9
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Mar 19 16:30:22 2011 +0100

    Updated Polish translation

 po/pl.po | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

commit dc4a95ed978e51d03a792e07ca291388fed8c789
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Fri Mar 18 17:11:24 2011 +0100

    Updated Hungarian translation

 po/hu.po | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 029b8fa06952d9e6ce65fd3ca9ee6823c20236e9
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Thu Mar 17 21:40:03 2011 +0100

    Updated French translation

 po/fr.po | 350
 +++++++++++++++++++++++++--------------------------------------
 1 file changed, 141 insertions(+), 209 deletions(-)

commit 545faa8d2cf03bb16ef09428d80253db91689870
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Mar 17 20:35:31 2011 +0100

    Updated Spanish translation

 po/es.po | 137
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 73 insertions(+), 64 deletions(-)

commit e2ed78417a102291763881d40560064cb101ada9
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Thu Mar 17 12:53:06 2011 +0100

    [l10n] Updated German translation

 po/de.po | 1168
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 677 insertions(+), 491 deletions(-)

commit 89194fb415f26f10f18800cd84095a0a505e52a8
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Thu Mar 17 16:09:40 2011 +0530

    Updated Gujarati Translations

 po/gu.po | 2276
 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 1538 insertions(+), 738 deletions(-)

commit 098aa5639cc13e5a8cda38e81b05058ca8ff5463
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Mar 15 11:28:03 2011 -0400

    Document which files glib-compile-schemas looks at

    Otherwise, your vendor override files are silently ignored...

 docs/reference/gio/glib-compile-schemas.xml | 2 ++
 gio/gsettings.c                             | 6 ++++++
 2 files changed, 8 insertions(+)

commit 0fbdd5c1d26cc85385d0b0889a8f1f4d04df38a9
Author: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
Date:   Tue Mar 15 14:08:09 2011 +0100

    Updated Romanian translation

 po/ro.po | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 1518592045cef352b90386fefb4509a5b2a727b8
Author: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
Date:   Tue Mar 15 14:06:59 2011 +0100

    Updated Romanian translation

 po/ro.po | 44 +++++++++++++++++---------------------------
 1 file changed, 17 insertions(+), 27 deletions(-)

commit 8f0e371cbf004c26561b2194b753c71f25c5ea93
Author: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
Date:   Tue Mar 15 14:03:51 2011 +0100

    Updated Romanian translation

 po/ro.po | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

commit 1732e891661712d661d59254936a120da6a526bd
Author: Lupescu Mircea <mircea.crazy@gmail.com>
Date:   Tue Mar 15 14:00:11 2011 +0100

    Updated Romanian translation

 po/ro.po | 208
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 118 insertions(+), 90 deletions(-)

commit e16547e79f56e65d247f4db8025772af355079a8
Author: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
Date:   Tue Mar 15 13:34:46 2011 +0100

    Updated Romanian translation

 po/ro.po | 1268
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 754 insertions(+), 514 deletions(-)

commit 08f0a312895e0dd457f5f4d5bcdf282a6d5a793f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Mar 15 09:03:28 2011 +0000

    Revert "Remove all uses of G_CONST_RETURN"

    This reverts commit 36741245cca56e979fe85e3de676fb3912058f2c.

    The removal has not been discussed, except on Bugzilla:

    https://bugzilla.gnome.org/show_bug.cgi?id=644611

 glib/gchecksum.c      |  2 +-
 glib/gchecksum.h      |  2 +-
 glib/gconvert.c       |  4 ++--
 glib/gconvert.h       |  2 +-
 glib/gdataset.c       |  6 +++---
 glib/gdir.c           |  4 ++--
 glib/gdir.h           |  2 +-
 glib/giochannel.c     |  4 ++--
 glib/giochannel.h     |  4 ++--
 glib/glibintl.h       |  6 +++---
 glib/gmain.c          |  2 +-
 glib/gmain.h          |  2 +-
 glib/gmarkup.c        |  4 ++--
 glib/gmarkup.h        |  4 ++--
 glib/goption.c        |  4 ++--
 glib/goption.h        |  4 ++--
 glib/gquark.h         |  6 +++---
 glib/gstrfuncs.c      | 16 +++++++--------
 glib/gstrfuncs.h      | 18 ++++++++---------
 glib/gunicode.h       |  2 +-
 glib/gutf8.c          |  2 +-
 glib/gutils.c         | 56
 +++++++++++++++++++++++++--------------------------
 glib/gutils.h         | 38 +++++++++++++++++-----------------
 gmodule/gmodule.c     |  6 +++---
 gmodule/gmodule.h     |  4 ++--
 gobject/gbinding.c    |  4 ++--
 gobject/gbinding.h    |  4 ++--
 gobject/gparam.c      |  6 +++---
 gobject/gparam.h      |  6 +++---
 gobject/gsignal.c     |  2 +-
 gobject/gsignal.h     |  2 +-
 gobject/gtype.c       |  6 +++---
 gobject/gtype.h       |  6 +++---
 gobject/gvaluetypes.c |  2 +-
 gobject/gvaluetypes.h |  2 +-
 35 files changed, 122 insertions(+), 122 deletions(-)

commit 0c1acc7e741a01bf37d4c5f7a97ba1661f25d36a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Mar 15 09:02:08 2011 +0000

    Revert "Deprecate G_CONST_RETURN"

    This reverts commit a7fc7909dad9b88e8b2d1c6cde801e8888bdfc36.

    The deprecations was not discussed except on Bugzilla:

    https://bugzilla.gnome.org/show_bug.cgi?id=644611

 docs/reference/glib/tmpl/macros.sgml | 5 ++---
 glib/gmacros.h                       | 2 --
 2 files changed, 2 insertions(+), 5 deletions(-)

commit d679a7659ff8c4948e7bdff5fb80f52dee8f6a09
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 15 01:29:52 2011 -0400

    GVariant parser: fix tuple type checking

    Robert Ancell discovered that the GVariant parser messes up pretty
    badly
    when the type of a tuple is specified and the tuple in the text being
    parsed has a different number of elements (but otherwise matching
    child
    types).

    Check that we have the expected number of elements.

    Closes #644786.

 glib/gvariant-parser.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit a7fc7909dad9b88e8b2d1c6cde801e8888bdfc36
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 12 22:04:53 2011 -0500

    Deprecate G_CONST_RETURN

 docs/reference/glib/tmpl/macros.sgml | 5 +++--
 glib/gmacros.h                       | 2 ++
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 36741245cca56e979fe85e3de676fb3912058f2c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 12 21:50:45 2011 -0500

    Remove all uses of G_CONST_RETURN

    Just use 'const'.

 glib/gchecksum.c      |  2 +-
 glib/gchecksum.h      |  2 +-
 glib/gconvert.c       |  4 ++--
 glib/gconvert.h       |  2 +-
 glib/gdataset.c       |  6 +++---
 glib/gdir.c           |  4 ++--
 glib/gdir.h           |  2 +-
 glib/giochannel.c     |  4 ++--
 glib/giochannel.h     |  4 ++--
 glib/glibintl.h       |  6 +++---
 glib/gmain.c          |  2 +-
 glib/gmain.h          |  2 +-
 glib/gmarkup.c        |  4 ++--
 glib/gmarkup.h        |  4 ++--
 glib/goption.c        |  4 ++--
 glib/goption.h        |  4 ++--
 glib/gquark.h         |  6 +++---
 glib/gstrfuncs.c      | 16 +++++++--------
 glib/gstrfuncs.h      | 18 ++++++++---------
 glib/gunicode.h       |  2 +-
 glib/gutf8.c          |  2 +-
 glib/gutils.c         | 56
 +++++++++++++++++++++++++--------------------------
 glib/gutils.h         | 38 +++++++++++++++++-----------------
 gmodule/gmodule.c     |  6 +++---
 gmodule/gmodule.h     |  4 ++--
 gobject/gbinding.c    |  4 ++--
 gobject/gbinding.h    |  4 ++--
 gobject/gparam.c      |  6 +++---
 gobject/gparam.h      |  6 +++---
 gobject/gsignal.c     |  2 +-
 gobject/gsignal.h     |  2 +-
 gobject/gtype.c       |  6 +++---
 gobject/gtype.h       |  6 +++---
 gobject/gvaluetypes.c |  2 +-
 gobject/gvaluetypes.h |  2 +-
 35 files changed, 122 insertions(+), 122 deletions(-)

commit 61b0e1c8d49b6b42d3b6f27f0663ead75967f81a
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Mar 2 15:48:40 2011 +0100

    Add G_SIGNAL_MUST_COLLECT

    In some cases, signal arguments have to be collected, even if there
    are i
    no signal handlers connected (e.g. for GVariant parameters, where
    collection
    consumes a floating variant).

    Based on a patch by Christian Persch.

    Bug #643624.

 gobject/gsignal.c         | 10 ++++--
 gobject/gsignal.h         |  7 ++--
 gobject/tests/Makefile.am |  1 +
 gobject/tests/signals.c   | 91
 +++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 104 insertions(+), 5 deletions(-)

commit c95ff4de046d583fe2e8189522214069b708d32f
Author: Olivier Crête <olivier.crete@collabora.co.uk>
Date:   Mon Mar 14 14:54:46 2011 -0400

    GDBusProxy: Check if connection is NULL before unreffing

    If no connection can be established with the bus, it is possible that
    the GDBusPRoxy will be finalized without having a connection object.

 gio/gdbusproxy.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 789b341eff1553232b61b2e3ce3c4c918bf661e3
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sat Mar 12 20:48:31 2011 -0500

    Correct internal definition of C_()

    * Since the GLib translations are lazily initialized, we need an
      internal wrapper for g_dpgettext() that does the initialization
      in the same way as glib_gettext()
    * We need to use the glib domain defined by GETTEXT_PACKAGE
      rather than than the application's domain.

    https://bugzilla.gnome.org/show_bug.cgi?id=644607

 glib/glibintl.h |  6 ++++--
 glib/gutils.c   | 56
 +++++++++++++++++++++++++++++++++++++++++++-------------
 2 files changed, 47 insertions(+), 15 deletions(-)

commit 88d23f02850faf4346a314e54abf4d71842dabed
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Sun Mar 13 02:21:55 2011 +0100

    Updated Hungarian translation

 po/hu.po | 1158
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 647 insertions(+), 511 deletions(-)

commit 89ca0f729665f812b142b9a107515c945237082a
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Sat Mar 12 10:08:52 2011 +0000

    Document g_timeout_add_seconds first call latency

    And fix /timeout/rounding to not fail if the first call
    happens after 2 seconds.

    https://bugzilla.gnome.org/show_bug.cgi?id=644552

 glib/gmain.c         | 6 +++++-
 glib/tests/timeout.c | 8 +++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

commit 1a2f1d3458e1e5ffe48e2a44fdf04c645b8b55c0
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Sat Mar 12 01:09:49 2011 +0000

    Updated Portuguese translation

 po/pt.po | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit c1a75ca783f602d3edf465c28918dac7ea57a1e7
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Fri Mar 11 09:59:09 2011 +0100

    g_file_info_get/set_attribute_string*(): Document the UTF-8ness.

    * gio/gfileattribute.c: (_g_file_attribute_value_get_string,
    _g_file_attribute_value_set_string): These use
    G_FILE_ATTRIBUTE_TYPE_STRING, which is documented as UTF-8, so
    document these private functions as using UTF-8.
    * gio/gfileinfo.c: (g_file_info_get_attribute_string,
    g_file_info_set_attribute_string, and stringv versions):
    Document that the strings are UTF-8 because the implementation uses
    those private functions, that use UTF-8.

    This helps language bindings (such as glibmm) whose API
    distinguishes between known and unknown encodings.

 gio/gfileattribute.c | 112 +++++-----
 gio/gfileinfo.c      | 574
 +++++++++++++++++++++++++--------------------------
 2 files changed, 343 insertions(+), 343 deletions(-)

commit 9505ad05eedefff2030bb20c587f168bb4dedeb7
Author: Tor Lillqvist <tml@iki.fi>
Date:   Fri Mar 11 10:19:42 2011 +0200

    Use g_usleep() for portability, bug #644465

 glib/tests/timeout.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a6615ba859e8723888e108e2af390e5645dfa761
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Mar 10 23:27:49 2011 -0500

    Fix cleanup in g_markup_collect

    Patch by Matt Barnes,
    https://bugzilla.gnome.org/show_bug.cgi?id=644428

 glib/gmarkup.c | 35 ++++++++++++++++-------------------
 1 file changed, 16 insertions(+), 19 deletions(-)

commit 949b7c34283f1efa08aa7d7d2266f6e2ef7d6fdb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Mar 10 23:25:22 2011 -0500

    Add a testcase for g_markup_collect cleanup

    Taken from https://bugzilla.gnome.org/show_bug.cgi?id=644428.
    The test is currently failing.

 glib/tests/markup-collect.c | 45
 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

commit fccaadcdabad22141a171f92a79efc97c9ba8ebc
Author: Andre Klapper <a9016009@gmx.de>
Date:   Thu Mar 10 12:33:58 2011 +0100

    Add missing files to POTFILES.in

 po/POTFILES.in | 3 +++
 1 file changed, 3 insertions(+)

commit b2ebf0526ddc6ae46e4bcd5e0a5ab55376061013
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Mar 10 12:40:57 2011 +0800

    Update config.h.win32.in for VS 2010

    VS2010 ships with stdint.h by default, so update config.h.win32.in
    to reflect that

 config.h.win32.in | 9 +++++++++
 1 file changed, 9 insertions(+)

commit b1813f7c9f63c2b3e50d1e0546511b7cd2b86c14
Author: Michael Kotsarinis <mk73628@gmail.com>
Date:   Thu Mar 10 01:36:54 2011 +0200

    l10n: Updated Greek translation for glib

 po/el.po | 661
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 342 insertions(+), 319 deletions(-)

commit 37858f7f5ef842c606f99e4808a591c4773550c0
Author: Martin Nordholts <martinn@src.gnome.org>
Date:   Tue Mar 8 07:36:15 2011 +0100

    Check availability of linux/magic.h

    Check availability of linux/magic.h. It isn't available in Linux
    versions before 2.6.19.

 configure.ac      | 1 +
 glib/gfileutils.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit fc75b2597dcbb44214ebf40d8c15b741299ddaab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 6 23:08:46 2011 -0500

    Improve preconditions in action-related GApplication api

    https://bugzilla.gnome.org/show_bug.cgi?id=643780

 gio/gapplication.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit 121ce56fe1741151faffb2c96c4ee7aa5352c314
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 6 22:37:01 2011 -0500

    Go back to the old logic in set_expiration

    It was more complicated, but also more correct...
    Also add a test to ensure that our rounding works as expected.
    https://bugzilla.gnome.org/show_bug.cgi?id=643795

 glib/gmain.c         | 10 +++++++---
 glib/tests/timeout.c | 41 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 3 deletions(-)

commit d377367b2cd1bb102bce9b47c47b4a488af24238
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 27 21:26:42 2011 -0500

    Forgotten file

 gio/tests/gapplication.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit 90ad3c9962e335bb135cae71f746e2922c312943
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Sat Mar 5 14:51:55 2011 +0100

    g_application_run(): Add (allow-none) introspection annotation.

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3aac417fefeec178fad390c028b8b1ebfc0f9192
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 4 12:10:06 2011 -0500

    Some more details about GApplicationFlags

 gio/gioenums.h | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 34ac69e688455adbde677ea96b2ec6456bbc5617
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 4 12:03:15 2011 -0500

    Add more GApplication docs

    Add more details about ::command-line to the g_application_run docs.

 gio/gapplication.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 91614bb5fe18a980283755522279767a22da7c5c
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Mon Feb 28 11:15:13 2011 +0100

    GApplication: Check more before warning about a missing signal
    handler.

    * gio/application.c (g_application_real_command_line): Check that the
    default signal handler is not the current one before complaining,
    because
    it is not unusual for overloads to call the base class implementation
    as
    a matter of habit.
    g_application_real_open() and g_application_real_activate() already
    do this
    extra check.

 gio/gapplication.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

commit 1485871ed5e8e9ce70b088cfedae4012032e5dca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 4 01:53:56 2011 -0500

    GApplication: More documentation tweaks

 gio/gapplication.c            | 22 +++++++++++++++++-----
 gio/gapplicationcommandline.c | 36 +++++++++++++++++++++---------------
 2 files changed, 38 insertions(+), 20 deletions(-)

commit 54e474931e4013cf0088df479018d9b7b156e637
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 4 01:36:51 2011 -0500

    Fix a typo

 gio/gapplicationcommandline.c             |  9 ++++++
 gio/gioenums.h                            |  2 +-
 gio/tests/gapplication-example-cmdline3.c | 54
 ++++++++++++++++++++++++-------
 3 files changed, 52 insertions(+), 13 deletions(-)

commit d2a2fe96a3e9ddf5516bb138f365afec3e68a400
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 4 00:57:51 2011 -0500

    GVariant docs cleanups

    Fix some gtk-doc warnings

 docs/reference/glib/gvariant-varargs.xml | 42
 ++++++++++++++++----------------
 glib/gvariant.c                          |  6 ++---
 glib/gvarianttype.c                      | 11 +++++----
 glib/gvarianttype.h                      |  2 +-
 4 files changed, 31 insertions(+), 30 deletions(-)

commit be04e514c05082e338b2f53f6c28687f6aa6c982
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Mar 2 06:15:21 2011 -0500

    GVariant: add G_VARIANT_TYPE_VARDICT for a{sv}

 docs/reference/glib/glib-sections.txt | 1 +
 glib/gvarianttype.h                   | 8 ++++++++
 2 files changed, 9 insertions(+)

commit 6dd692d8580655639ee7bd3ecd453f9d03009bab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 4 00:27:23 2011 -0500

    Small doc correction

    We don't actually pass @argc to local_command_line().

 gio/gapplication.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 3c7203cf1ac0841e4613f40020f721f9c71ec0a4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 4 00:12:34 2011 -0500

    GApplication: Clarify docs for @argv

    Clearly state that @argv may be NULL.
    https://bugzilla.gnome.org/show_bug.cgi?id=643649

 gio/gapplication.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 1a6455b7858ea16f314949ceed9a128ad46267b2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 4 00:03:13 2011 -0500

    GApplication: Beef up the local_command_line() docs

    This adds some details, such as the meaning of @argc, @argv and
    @status,
    even though gtk-doc does not make it easy to document vfunc arguments.
    Requested in
    https://bugzilla.gnome.org/show_bug.cgi?id=643478

 gio/gapplication.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit f05bce027e49ba3ba4dee042ed52837d0145a7bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Mar 3 23:34:49 2011 -0500

    GApplication: Improve documentation

    This commit adds some details regarding platform data.

 gio/gapplication.c | 28 +++++++++++++++++++++++-----
 gio/gapplication.h | 20 +++++++++++++-------
 gio/gioenums.h     | 12 ++++++++----
 3 files changed, 44 insertions(+), 16 deletions(-)

commit 321682871b6547c73d6b8df61643bcc73a0555f7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Mar 3 22:40:48 2011 -0500

    Try harder to explain GApplicationCommandline

    Trying to answer some of the questions in
    https://bugzilla.gnome.org/show_bug.cgi?id=643468

 gio/gapplication.c                        |  9 +++--
 gio/gapplicationcommandline.c             | 38 +++++++++++++++++-
 gio/tests/Makefile.am                     |  4 ++
 gio/tests/gapplication-example-cmdline3.c | 65
 +++++++++++++++++++++++++++++++
 4 files changed, 112 insertions(+), 4 deletions(-)

commit 72016418d38e51f1fb4f60f4b37fa1a8e5c282fb
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Mar 3 14:51:41 2011 +0000

    g_value_array_remove(): clarify docstring formatting

 gobject/gvaluearray.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 0f59af82d5fa39551f221c461b89dca56a022576
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Wed Mar 2 01:11:04 2011 +0000

    Updated Portuguese translation

 po/pt.po | 1314
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 777 insertions(+), 537 deletions(-)

commit 084c3c43045e242724e2fbd9d485b4762dc8af48
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Feb 27 22:56:31 2011 +0200

    Updated Hebrew translation.

 po/he.po | 119
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 63 insertions(+), 56 deletions(-)

commit 2b964d890aae6efd04bd75477a5481aa8abeb873
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Sun Feb 27 21:47:44 2011 +0100

    Updated Italian translation

 po/it.po | 204
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 112 insertions(+), 92 deletions(-)

commit c193b49eeebfd83e3bb39b89499df5c5c8016914
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Sun Feb 27 14:43:34 2011 +0900

    Updated Korean translation

 po/ko.po | 127
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 67 insertions(+), 60 deletions(-)

commit 60e0dab3e6682c0e09fa81b8907636202394a073
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Fri Feb 25 23:53:52 2011 +0100

    Updated French translation

 po/fr.po | 1373
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 789 insertions(+), 584 deletions(-)

commit e3cff93408163009dbc2dd3b6d90cd620385fc28
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 25 11:13:55 2011 -0500

    GApplications: Tighten up application-id validity checks

    Also add tests for these conditions.
    https://bugzilla.gnome.org/show_bug.cgi?id=643197

 gio/gapplication.c | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)

commit c430ad0b1be1b32be442299e47a3b09f54d3d8de
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 25 10:41:29 2011 -0500

    Add some tests for g_hash_table_lookup_extended

 glib/tests/hash.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

commit d2d756439f1c6e434a3a8b348c17d63b6a452e9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 25 10:40:39 2011 -0500

    GHashTable: Clarify g_hash_table_lookup_extended docs

    Passing NULL as a key is only ok if your hash and equal functions
    can deal with it.
    https://bugzilla.gnome.org/show_bug.cgi?id=642944

 glib/ghash.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 52ef73ac8c40ea2a8ca80cf96d52a836bcaf76c2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 25 10:10:37 2011 -0500

    GOptionContext: Warn about invalid arg/flag combinations

    This was proposed by Kjell Ahlstedt in bug 642825.
    Also adding a few tests for this new behaviour.

 glib/goption.c              |  25 +++++++--
 glib/tests/option-context.c | 132
 ++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 147 insertions(+), 10 deletions(-)

commit ee9e38ef6850ef1ce8da683425621898a35d5b5f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 25 08:45:28 2011 -0500

    Treat optional arguments the same for long and short options

    This was noticed in bug 642825 and the change was proposed
    by Kjell Ahlstedt.

 glib/goption.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit c68c05a420e6c42af681e165393130a2a39ea7b9
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Thu Feb 24 20:36:04 2011 +0100

    Updated Spanish translation

 po/es.po | 118
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 63 insertions(+), 55 deletions(-)

commit 701ac3cb3d7a603697570f085457af7e68d089fd
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Feb 24 12:38:51 2011 +0800

    Fix the VS2010 project generation for GLib

    The scripts accently pick up gcc-only source files... this fixes that.

 glib/Makefile.am | 4 ++++
 1 file changed, 4 insertions(+)

commit 74d4fca53accff301058e8d4798d0412d9eeeca3
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Feb 23 22:03:34 2011 +0100

    Updated Polish translation

 po/pl.po | 115
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 61 insertions(+), 54 deletions(-)

commit abfef39da9a11f59051dfa23a50bc374c0b8ad6e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Feb 23 14:22:36 2011 +0800

    Remove uneeded item form VS10 folder

    There is no install.vcxproj.filters...oops

 build/win32/vs10/Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 1c764f41ccb8e0cf887de827af3bc034aa6cfc28
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Wed Feb 23 08:02:23 2011 +0200

    Updated Bulgarian translation

 po/bg.po | 85
 +++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 46 insertions(+), 39 deletions(-)

commit 766d70729b8671a3ac7b2139b635ac5555d858fa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 23 00:13:39 2011 -0500

    Allow to list keys in all schemas

    Make the schema argument to gsettings list-recursively optional.
    This allows to search for not exactly known keys by going

    gsettings list-recursively | grep 'font'

 docs/reference/gio/gsettings.xml | 10 +++++---
 gio/gsettings-tool.c             | 54
 ++++++++++++++++++++++++++--------------
 2 files changed, 41 insertions(+), 23 deletions(-)

commit 51dd7c5e4a1cf10177725a8c471731f0c4947159
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Feb 22 22:02:05 2011 -0500

    application: fix a typo in the docs annotation

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fdfb09a79397589b3b86c059e97b4f0ce8d4df26
Author: Andreas Rottmann <a.rottmann@gmx.at>
Date:   Tue Feb 22 15:12:30 2011 +0100

    Bug 638185 - GIOCondition should be annotated as "flags"

    Add a gtk-doc annotation to GIOCondition marking it as a flags type.

 glib/giochannel.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cd23ae7134bd25500272bd3ec24c3b39502cfc3d
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 22 20:08:36 2011 +0800

    Visual C++ 2010 Project Files

    These are the actual GLib VS2010 project files (*.vcxproj,
    *.vcxproj.filters) and property sheet file (*.props) that are used
    to compile the GLib, GModule, GObject, GThread, GIO DLLs, along with
    the gspawn-win32-helper* programs, glib-genmarshal utility and
    testglib test program.  A readme.txt file is also enclosed for
    references for building GLib under VS2010.

    Note that the project files for GLib, GIO and GObject are templates
    that makes use of the autotools items of my last commit so that
    maintenance
    of those files are simplified as new source files are added to
    these rather
    frequently.

    Suggestions are welcome for these-please let me know via BugZilla.

    Thank you!

 build/win32/vs10/Makefile.am                       |  30 ++
 build/win32/vs10/README.txt                        |  52 ++
 build/win32/vs10/gio.vcxproj.filtersin             |  51 ++
 build/win32/vs10/gio.vcxprojin                     | 223 +++++++++
 build/win32/vs10/glib-genmarshal.vcxproj           | 170 +++++++
 build/win32/vs10/glib-genmarshal.vcxproj.filters   |  22 +
 build/win32/vs10/glib.props                        | 538
 +++++++++++++++++++++
 build/win32/vs10/glib.sln                          | 199 ++++++++
 build/win32/vs10/glib.vcxproj.filtersin            | 114 +++++
 build/win32/vs10/glib.vcxprojin                    | 476
 ++++++++++++++++++
 build/win32/vs10/gmodule.vcxproj                   | 201 ++++++++
 build/win32/vs10/gmodule.vcxproj.filters           |  32 ++
 build/win32/vs10/gobject.vcxproj.filtersin         |  30 ++
 build/win32/vs10/gobject.vcxprojin                 | 207 ++++++++
 .../win32/vs10/gspawn-win32-helper-console.vcxproj | 172 +++++++
 .../gspawn-win32-helper-console.vcxproj.filters    |  22 +
 build/win32/vs10/gspawn-win32-helper.vcxproj       | 172 +++++++
 .../win32/vs10/gspawn-win32-helper.vcxproj.filters |  22 +
 build/win32/vs10/gthread.vcxproj                   | 188 +++++++
 build/win32/vs10/gthread.vcxproj.filters           |  32 ++
 build/win32/vs10/install.vcxproj                   | 137 ++++++
 build/win32/vs10/testglib.vcxproj                  | 170 +++++++
 build/win32/vs10/testglib.vcxproj.filters          |  22 +
 23 files changed, 3282 insertions(+)

commit 7b118b0c4121a6ae5b5b0adb1e2c45d7f5b941f5
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Feb 22 19:58:18 2011 +0800

    Visual C++ 2010 Project Files: autotools files

    These are the updates to the autotools files to
    ensure the expansion of the GIO, GLib and GObject
    project files (*.vcxproj, *.vcxproj.filters) and to
    enable the distribution of the VS2010 project files

    The actual VS2010 project files will follow shortly

 build/win32/Makefile.am |  3 ++-
 configure.ac            |  1 +
 gio/Makefile.am         | 24 +++++++++++++++++++++++-
 glib/Makefile.am        | 23 ++++++++++++++++++++++-
 gobject/Makefile.am     | 23 ++++++++++++++++++++++-
 5 files changed, 70 insertions(+), 4 deletions(-)

commit aa2ed1dbfbe66c2f4e3165559b1f707ba8b0aada
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Sun Feb 20 16:47:56 2011 +0000

    Updated British English translation

 po/en_GB.po | 1167
 ++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 675 insertions(+), 492 deletions(-)

commit f909469e31caacd9ec26569cc377dcc367e1f571
Author: Vincent Untz <vuntz@gnome.org>
Date:   Sun Feb 20 10:41:17 2011 +0100

    appinfo: Do not override system default handler with less specific one

    We were considering explicitly configured defaults for parent types
    after we already got results for the specific type we're interested
    in.

    This resulted in the explicit default for text/plain to override all
    system defaults for subtypes of text/plain, for example. The explicit
    default should not apply to subtypes that have a system default.

    https://bugzilla.gnome.org/show_bug.cgi?id=642797

 gio/gdesktopappinfo.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit 1158f9c171682e2ce30c1e790fe809dbb9926277
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Feb 20 01:23:48 2011 +0200

    Export _glib_get_locale_dir() as it is now used in gio, too

 gio/gdbus-tool.c           | 1 +
 gio/glib-compile-schemas.c | 3 ++-
 glib/glib.symbols          | 3 +++
 glib/gutils.c              | 2 +-
 4 files changed, 7 insertions(+), 2 deletions(-)

commit 73af5ab4cf14d33495ba098af3b53f7d7f257256
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 19 16:27:51 2011 -0500

    Be more forgiving when parsing introspection xml

    Accept (and silently ignore) version attributes on <interface>
    and <method> elements - these occur in the wild, and ignoring
    them does not cost us anything.

 gio/gdbusintrospection.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 2c0a8ff4dcd581096dad2a6ced2409b0cdf708a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 18 23:46:09 2011 -0500

    Add a testcase for bug 637738

 gobject/tests/dynamictests.c | 127
 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 127 insertions(+)

commit 9dd1f75a414637e8fed50eae0577e33d6b4aab8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 18 22:42:24 2011 -0500

    Document G_VALUE_NOCOPY_CONTENTS

    https://bugzilla.gnome.org/show_bug.cgi?id=624943

 gobject/gtype.h  |  2 +-
 gobject/gvalue.h | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

commit 2a1eed20b40c2ad4211ed0adb0d17983e5dcaec6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 18 22:35:49 2011 -0500

    Expand the documentation of g_type_get_qdata()

    https://bugzilla.gnome.org/show_bug.cgi?id=613269

 gobject/gtype.c | 4 ++++
 1 file changed, 4 insertions(+)

commit bb4d6fd1b14c7152cb0bf163f761b7d148b30b80
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Feb 17 23:30:45 2011 -0500

    Updates

 NEWS | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 82388ef3cdd4d1df664a82ab9f5c8c8a9ec6dfa0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Feb 17 23:30:29 2011 -0500

    Bump micro to .2

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 237df47c5f6f82021faef495afcbd2a8ad932a3c
Author: Lin Ma <lin.ma@oracle.com>
Date:   Thu Feb 17 14:57:37 2011 +0800

    Fixed bugster 7007407. Do not clear stat info until a node is really
    deleted.

 gio/fen/fen-helper.c | 3 +--
 gio/fen/fen-kernel.c | 3 +--
 gio/fen/fen-node.c   | 7 +++----
 3 files changed, 5 insertions(+), 8 deletions(-)

commit 48dbfb425d684e00620ccd1fc8fe683e69d3f40a
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Wed Feb 16 22:28:00 2011 +0200

    Updated Bulgarian translation

 po/bg.po | 228
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 114 insertions(+), 114 deletions(-)

commit a7faf0b16ee7cb32e8e0206a5fa5b10069a79e89
Author: Colin Walters <walters@verbum.org>
Date:   Wed Feb 16 13:49:20 2011 -0500

    gdesktopappinfo: Handle g_get_prgname() being NULL

    Reported-By: Sebastien Bacher <seb128@ubuntu.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=642490

 gio/gdesktopappinfo.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 4cda703d8e925fc34f9fc3303f96ed20765a816d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Feb 16 01:28:27 2011 -0500

    Use glibc qsort_r() for g_qsort_with_data()

    No point in using an outdated copy that claims to
    'work best on a Sun 4/260' when we can just wrap qsort_r...

 configure.ac           | 40 +++++++++++++++++++++++++++++++++
 glib/gqsort.c          | 40 +++++++++++++++++++++++----------
 glib/tests/Makefile.am |  3 +++
 glib/tests/sort.c      | 60
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 131 insertions(+), 12 deletions(-)

commit 6cd08472b20004d6ef06c6063fed817fdb9bc1f5
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Tue Feb 15 19:54:53 2011 +0100

    Better documentation for g_value_dup_object().

    State that NULL is returned when value is NULL.

 gobject/gobject.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 59cbb3a8a3171f59035b4cabebdc63f8832fffed
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Thu Sep 30 17:27:19 2010 +0100

    gtimezone: Rename shadowing variable 'time' to 'time_'

 glib/gtimezone.c | 78
 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 39 insertions(+), 39 deletions(-)

commit 5df049706ff10cded918b31243ee33f7b7a4e64e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 15 19:50:55 2011 -0500

    Don't report standard interfaces more than once

    If they have a custom implementation, don't add the canned
    introspection XML, just rely on the generated XML. Fixes
    https://bugzilla.gnome.org/show_bug.cgi?id=642042

 gio/gdbusconnection.c | 40 +++++++++++++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 11 deletions(-)

commit 6f87ecc14e5286773b8b34eee443f5b61c3b03fd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 15 19:49:24 2011 -0500

    Add a (currently failing) testcase

    This testcase check that we don't report the standard interfaces
    more than one in the introspection XML, see
    https://bugzilla.gnome.org/show_bug.cgi?id=642042

 gio/tests/gdbus-export.c | 140
 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 140 insertions(+)

commit 470a8dfa1ceee28929bf34662732287f2831e71c
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Feb 15 21:32:56 2011 +0100

    Updated Spanish translation

 po/es.po | 338
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 160 insertions(+), 178 deletions(-)

commit 25b2e3cbffacf8ec733e199489d5a640d390feff
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Tue Feb 15 13:02:30 2011 +0100

    Updated Italian translation

 po/it.po | 788
 ++++++++++++++++++++++++++-------------------------------------
 1 file changed, 326 insertions(+), 462 deletions(-)

commit f9ad7baf3122445784c1766b0475ee6519a4ad24
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 15 02:27:54 2011 -0500

    Fix memory leaks in the gdbus introspection parser

    We were getting our length zero, yet NULL-terminated arrays in
    a twist in some places. Stop passing around ignored length arguments
    at the same time.
    https://bugzilla.gnome.org/show_bug.cgi?id=635099

 gio/gdbusintrospection.c        | 178
 +++++++++++++++-------------------------
 gio/tests/gdbus-introspection.c |   3 +-
 2 files changed, 68 insertions(+), 113 deletions(-)

commit b21b3a01c776275197f0d31538c2c36ace8860ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 15 00:02:42 2011 -0500

    Fix bug base in array-test

 glib/tests/array-test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a46885242b3566a7f6afa4ca5cf5d3ffcf3d977d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 15 00:02:13 2011 -0500

    Add a testcase for bug 640489

 glib/tests/regex.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit c2fbef4125977d0c1aa1a9859491e694c9c71b05
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 14 23:21:14 2011 -0500

    Bug 642052 - g_timeout_add(_seconds) overflow

    Fix integer overflow error.

 glib/gmain.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 10154d21f012ae4fc3d94cbdbb12ed32df4837ce
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 14 23:20:38 2011 -0500

    Bug 642052: add currently-broken test case

    The test case fails for now.  It will be fixed by the next commit.

 glib/tests/Makefile.am |  4 ++++
 glib/tests/timeout.c   | 53
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)

commit f1a88e7e4283cfa706382a06a0cec46e33f48ed1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 14 19:15:41 2011 -0500

    More GValue conversion tests

 gobject/tests/param.c | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

commit cfe8ec429ac48302d631bea18ffc37a1ed69095b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 14 19:14:44 2011 -0500

    Vary the order of unreffing dest and src

    For slightly better test coverage.

 gobject/tests/binding.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b2919e558bfb49b519eac59b657f2c7efb33241c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 14 19:13:09 2011 -0500

    Add schema name in error message

    Why not be helpful if it doesn't cost anything...

 gio/gsettingsschema.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit a6f0249d589292ef9eabd31a7f174b327ce4d3ce
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Mon Feb 14 07:53:06 2011 +0200

    Updated Hebrew translation

 po/he.po | 208
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 104 insertions(+), 104 deletions(-)

commit 309f5f978bc1378449fea2a81f4d47e749ae7ceb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 13 23:47:42 2011 -0500

    Improve test coverage

    Various test additions, mainly in GObject

 gio/tests/gapplication.c  |  32 ++++
 gio/tests/gsettings.c     |   4 +-
 glib/tests/Makefile.am    |   9 +-
 glib/tests/dataset.c      | 187 ++++++++++++++++++++++
 glib/tests/empty          |   0
 glib/tests/gdatetime.c    |  26 ++++
 glib/tests/mappedfile.c   |  73 +++++++++
 glib/tests/utils.c        |  53 +++++++
 gobject/tests/Makefile.am |  12 +-
 gobject/tests/binding.c   |  52 ++++++-
 gobject/tests/boxed.c     | 386
 ++++++++++++++++++++++++++++++++++++++++++++++
 gobject/tests/enums.c     | 113 ++++++++++++++
 gobject/tests/param.c     | 223 ++++++++++++++++++++++++++
 gobject/tests/reference.c | 213 +++++++++++++++++++++++++
 14 files changed, 1376 insertions(+), 7 deletions(-)

commit 1e48bff207a85564297c2e7d15f72aba00048213
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 13 17:37:06 2011 -0500

    Cosmetic rearrangement

 gobject/gboxed.h | 174
 +++++++++++++++++++++++++++++--------------------------
 1 file changed, 93 insertions(+), 81 deletions(-)

commit 498508852745d0e3b743b065d78ba560d753d24e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 12 22:23:04 2011 -0500

    Fix the tm.tm_gmtoff check

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 147139d968ff052a516e8b2b0fb9bb8474a5986a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 12 21:08:57 2011 -0500

    Use g_assert_no_error

    The option-context test had its own version.

 glib/tests/option-context.c | 72
 +++++++++++++++++++--------------------------
 1 file changed, 31 insertions(+), 41 deletions(-)

commit cf3ad6e293490a910f90637ce6cc93a02cfc8f61
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Feb 13 13:58:18 2011 +0100

    Updated Galician translations

 po/gl.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d8a1eac483f7a6c0a600b4784aff233c74b82b51
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Feb 13 13:55:47 2011 +0100

    Updated Galician translations

 po/gl.po | 120
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 60 insertions(+), 60 deletions(-)

commit 18c6e46fd1bc91d32d0d994235382d6e3610168d
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Feb 13 01:18:41 2011 +0100

    Updated Polish translation

 po/pl.po | 91
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 45 insertions(+), 46 deletions(-)

commit 61fec7e821c2deed09b6b77c2b92e185814a9380
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Sun Feb 13 07:02:24 2011 +0900

    Update Korean translation

 po/ko.po | 100
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 51 insertions(+), 49 deletions(-)

commit ef6db8f94b6c7a4a1c922631e3c5cfec32cf1353
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 12 12:43:15 2011 -0500

    Fix a few string mismatches in the Italian translations

    Noticed these while testing gsettings translations.

 po/it.po | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit c3334490c7b97ac561f7c7f1be407d17fbbb22ba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 12 12:42:18 2011 -0500

    Fix some problems with message handling

    g_printerr() doesn't append a newline, so we have to consistently
    do it everywhere. Also, we cannot call gettext on "", ever.

 gio/gsettings-tool.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

commit a536a1f2d751c89296f63f9863f3df90d8d2dfea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 12 12:30:35 2011 -0500

    Complete the translation setup for glib-compile-schemas

 gio/glib-compile-schemas.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 7efc12e0d55e582cdb689e40dbe3500c06f35196
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 12 12:26:26 2011 -0500

    Set up message translation for gdbus

    This was only halfway done before and not working.

 gio/gdbus-tool.c | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

commit deab10645794e8ca8fce544729710dac4a74bc03
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Feb 12 12:09:39 2011 -0500

    Docs: Mention gettext setup requirements in i18n section

 docs/reference/glib/tmpl/i18n.sgml | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

commit 562f29afdce05d63d98c8952d1d91d2f379634dc
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Feb 12 18:05:54 2011 +0100

    doc: Fix typo in previous commit

    Yuck. I blame it on the weekend.

 glib/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 17eea8fa60915c5711a99eebe5025eadb04c3f3f
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Feb 12 17:56:34 2011 +0100

    docs: Fix return value for g_datetime_compare()

    Previous code confused dt1 and dt2. The new formulation is stolen from
    man strcmp() and g_strcmp0().

 glib/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit dfeb02ee86c02a2bb665b8b8457003d56baa474d
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Fri Feb 11 19:09:48 2011 +0000

    GVariant: titlecase ‘Unicode’ in text format docs

 docs/reference/glib/gvariant-text.xml | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit c3fe071813447f837eb7a8e73906753db00bc98b
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Fri Feb 11 19:07:45 2011 +0000

    GVariant: Correct uint32/64 thinko in text format docs

 docs/reference/glib/gvariant-text.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ea4e3ea1cb7d3264cb4c84d0b257e886a2be88e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 11 10:27:44 2011 -0500

    GVariant: doc the format of g_variant_parse/print

 docs/reference/glib/Makefile.am       |   3 +-
 docs/reference/glib/glib-docs.sgml    |   1 +
 docs/reference/glib/gvariant-text.xml | 615
 ++++++++++++++++++++++++++++++++++
 glib/gvariant-parser.c                |   2 +
 glib/gvariant.c                       |   2 +
 5 files changed, 622 insertions(+), 1 deletion(-)

commit 2409c69d5b484c50b8f01ae742c339f4e511df5f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 11 10:27:44 2011 -0500

    Branch away from stable, bump to 2.29.0

    This is now the unstable branch.

    Stable release is on the glib-2-28 branch.

 configure.ac | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit c2d98c56092db1f7bcf79cbbbb494abfd1255b52
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Fri Feb 11 15:18:02 2011 +0000

    GObject: correct documentation typos

 gobject/gobject.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b1d02f9323d4eb157dc99e0b7a79d06a2e510500
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 11 10:14:29 2011 -0500

    GVariant: support NULL for empty arrays in varargs

    g_variant_new("as", NULL); now gives an empty array of strings, for
    example.

    This was documented as working already, but was never actually
    implemented (due to the fact that it muddies the water when
    considering
    maybe types).  It's being implemented now because its convenience to
    programmers exceeds any damage done to the conceptual purity of
    the API.

 docs/reference/glib/gvariant-varargs.xml |  5 +++
 glib/gvariant.c                          | 52
 +++++++++++++++++++++-----------
 glib/tests/gvariant.c                    | 16 ++++++++++
 3 files changed, 55 insertions(+), 18 deletions(-)

commit d25dca2d74cddd66644890760f4d56e619528e14
Author: Runa Bhattacharjee <runab@redhat.com>
Date:   Fri Feb 11 19:01:05 2011 +0530

    Updated Bengali India Translation

 po/bn_IN.po | 2276
 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 1536 insertions(+), 740 deletions(-)

commit 4196dfbc4a764a2342c1107bcd9339210c0ee332
Author: Colin Walters <walters@verbum.org>
Date:   Thu Feb 10 23:42:34 2011 -0500

    gsettings: Minor typo in previous commit

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0f8d1933ad59d83bebe7e4f9d115fec71f915688
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 9 11:55:35 2011 -0500

    GSettings: add paragraph with performance notes

    summary: reads are very fast.  writes are fast for you, but expensive
    for the system, so don't do them except in response to explicit user
    action.

 gio/gsettings.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 214d1bdd20c940be1e1cd38e071a3898c19aa3f7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 8 13:21:37 2011 -0500

    Bump version

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 939d5131dd7c0fad6204aa976139a3bb730e1a07
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Feb 8 18:22:44 2011 +0100

    Updated Polish translation

 po/pl.po | 2170
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 1203 insertions(+), 967 deletions(-)

commit a6caaebea7261601fb4f9f57bb8aeadf38e5e499
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 8 10:05:00 2011 -0500

    Document new API

 gio/gmemorysettingsbackend.c | 13 +++++++++++++
 gio/gnullsettingsbackend.c   | 13 +++++++++++++
 2 files changed, 26 insertions(+)

commit 78dcafc5cb2b8c05fed719ed1add0849f9938595
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 8 10:04:36 2011 -0500

    Fix some parameter mismatches in GVariant docs

 glib/gvariant.c |  2 +-
 glib/gvariant.h | 20 ++++++++++----------
 2 files changed, 11 insertions(+), 11 deletions(-)

commit 4368a07e02b7008b3ab7c56b7637f7bbec505ea5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 8 07:41:49 2011 -0500

    Avoid more compiler warnings

 glib/giochannel.c | 12 ++++++------
 glib/gmessages.c  |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

commit 8d572f5d22c07580936067e91e669220cfc801cc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 8 07:35:54 2011 -0500

    g_date_time_format: drop an unused variable

 glib/gdatetime.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit ab2112a77b16cb36785088bb5975ef62f075102a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 8 07:33:02 2011 -0500

    Add release note about GApplication

 README.in | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit f93d2f1b0898d6f7fde696ab42a86c63a71ec4d5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 8 00:00:08 2011 -0500

    Update NEWS

 NEWS | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit 7839c46897d730d9db5eff2c7a7a9f18876370df
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 7 23:53:29 2011 -0500

    Bump version to 2.28.0

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 126beeee3338c94de9d01b9e99b99e8413282045
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 7 23:46:02 2011 -0500

    Fix a typo

 gobject/glib-mkenums.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d43b2d52b4129bf3eb36af6083063cba8f40cbed
Author: Michal Hruby <michal.mhr@gmail.com>
Date:   Mon Feb 7 21:25:33 2011 +0100

    Add more data about origin application to the "Launched" signal.

    This will help applications such as zeitgeist's datahub to collect
    more complete information about application launches, as the "actor"
    of a launch is important for zeitgeist's magic to work properly.

 gio/gdesktopappinfo.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit d6954c785d635be875b896ac9f4812e400b39455
Author: Colin Walters <walters@verbum.org>
Date:   Fri Feb 4 15:37:51 2011 -0500

    gdesktopappinfo: Asynchronously flush after sending notification

    If we were the initial connection owner, unref will destroy the
    connection immediately, and we may lose messages.  Asynchronously
    flush to avoid that.

    https://bugzilla.gnome.org/show_bug.cgi?id=641411

 gio/gdesktopappinfo.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 626f197ee328c9b8ce11439e99b66fef14c5f9da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 7 23:35:21 2011 -0500

    Clarify GInitable docs

    Mention explicitly that the object is unrefed on error.
    Pointed out by Philip Van Hoof,
    https://bugzilla.gnome.org/show_bug.cgi?id=641363

 gio/ginitable.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 761fc9a8e722baf6175eb33a6ffb7deacc504c20
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 7 23:30:56 2011 -0500

    Append .exe to glib-compile-schemas in .pc file

    This makes the binary name correct on Windows.
    Pointed out by David Schleef,
    https://bugzilla.gnome.org/show_bug.cgi?id=641572

 gio-2.0.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fb2d30b9ffc3d698cc38a5c16d1a136f1439dbb0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 7 23:28:26 2011 -0500

    Change the id of the gsettings section

    This tricks gtk-doc into generating a html file with a different
    name, avoiding the case-only GSettings.html vs gsettings.html.
    https://bugzilla.gnome.org/show_bug.cgi?id=641688

 docs/reference/gio/gsettings.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 25ab13fd3c834a022175a5c8a6cc85fbb090968a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 7 23:27:19 2011 -0500

    Don't use -w in shebang line

    This can cause warnings when PERL_PATH gets expanded to /usr/bin/env.
    Patch by Adam Sampson,
    https://bugzilla.gnome.org/show_bug.cgi?id=641477

 gobject/glib-mkenums.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit a0554a9f76f70589506e2aa98cb387fcd10ef184
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Feb 8 01:04:20 2011 +0000

    docs: Document Since properly, 2.26 -> 2.28

 gio/gaction.h            | 2 +-
 gio/gactiongroup.h       | 2 +-
 gio/gioenums.h           | 2 +-
 gio/gsimpleaction.h      | 4 ++--
 gio/gsimpleactiongroup.h | 2 +-
 glib/gsequence.c         | 4 ++--
 6 files changed, 8 insertions(+), 8 deletions(-)

commit db12eb5ca47247a5e580d2db2dc1942a7f4971f0
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Mon Feb 7 22:53:29 2011 +0000

    GApplication: document Since properly in header files, 2.26 -> 2.28

    https://bugzilla.gnome.org/show_bug.cgi?id=641783

 gio/gapplication.h            | 4 ++--
 gio/gapplicationcommandline.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 3812559659e645be223e34f12040c2d58fdc875c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 3 17:26:51 2011 -0500

    Remove unused variable in gvdb-reader

    As originally committed against dconf by Owen.

    Newer GCC flags this.

 gvdb-reader.c | 2 --
 1 file changed, 2 deletions(-)

commit 9823ff1d203166f33302dce2a26e1dee86c4d569
Author: Johan Dahlin <johan@gnome.org>
Date:   Tue Feb 1 17:27:04 2011 -0200

    Use ; instead of: to not confuse g-ir-scanner

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 59973526ea8b9883bf78567c88deaef9b3da9b2c
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Wed Feb 2 21:59:38 2011 +0900

    Updated Korean translation

 po/ko.po | 2708
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 1742 insertions(+), 966 deletions(-)

commit fdaaa22b58b20c285bc0c328cd6a97bb6c0f0258
Author: Johan Dahlin <johan@gnome.org>
Date:   Tue Feb 1 16:17:23 2011 -0200

    Correct gtk-doc SECTION: syntax

    g-ir-scanner does not allow a space between the : and the
    section name.

 gio/gapplication.c            | 2 +-
 gio/gsocketcontrolmessage.c   | 2 +-
 gio/gsocketlistener.c         | 2 +-
 gio/gsocketservice.c          | 2 +-
 gio/gtcpconnection.c          | 2 +-
 gio/gtcpwrapperconnection.c   | 2 +-
 gio/gthreadedsocketservice.c  | 2 +-
 gio/gtlscertificate.c         | 2 +-
 gio/gunixconnection.c         | 2 +-
 gio/gunixcredentialsmessage.c | 2 +-
 gio/gunixfdlist.c             | 2 +-
 gio/gunixfdmessage.c          | 2 +-
 glib/garray.c                 | 6 +++---
 glib/gasyncqueue.c            | 2 +-
 glib/gcache.c                 | 2 +-
 glib/gchecksum.c              | 2 +-
 glib/gcompletion.c            | 2 +-
 glib/gdataset.c               | 6 +++---
 glib/ghash.c                  | 2 +-
 glib/giochannel.c             | 2 +-
 glib/glist.c                  | 2 +-
 glib/gmem.c                   | 4 ++--
 glib/gnode.c                  | 2 +-
 glib/gpattern.c               | 2 +-
 glib/grand.c                  | 2 +-
 glib/grel.c                   | 2 +-
 glib/gsequence.c              | 2 +-
 glib/gshell.c                 | 2 +-
 glib/gslist.c                 | 2 +-
 glib/gstring.c                | 2 +-
 glib/gthread.c                | 2 +-
 glib/gthreadpool.c            | 2 +-
 glib/gtimer.c                 | 2 +-
 glib/gtree.c                  | 2 +-
 glib/gvariant.c               | 2 +-
 glib/gvarianttype.c           | 2 +-
 36 files changed, 41 insertions(+), 41 deletions(-)

commit ad1f882a1c8b4a20daba877d3504280e512b104e
Author: Javier Jardón <javier.jardon@codethink.co.uk>
Date:   Tue Feb 1 13:15:55 2011 +0000

    docs: Remove some unneeded template files

    async_queues, atomic_operations and bookmarkfile are already ported
    to inline comments

 docs/reference/glib/tmpl/.gitignore             |   3 +
 docs/reference/glib/tmpl/async_queues.sgml      | 195 ----------
 docs/reference/glib/tmpl/atomic_operations.sgml | 116 ------
 docs/reference/glib/tmpl/bookmarkfile.sgml      | 480
 ------------------------
 4 files changed, 3 insertions(+), 791 deletions(-)

commit 9f8798170dba82b8d46de02ab46105cf61b41f87
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 31 13:19:59 2011 -0500

    GApplication: add notes about GDBus architecture

    Some people are trying to write code that calls
    g_application_register()
    then checks to see if we became the primary name owner before
    exporting
    objects.  This sort of approach worked with libdbus-1 because method
    calls to the freshly-acquired name would not be dispatched until the
    application returned to the mainloop.  With GDBus, however, dispatches
    can occur at any time (including in the brief space between acquiring
    the name and actually registering the object).

    Add documentation to make it clear that you should not expect this to
    work.

 gio/gapplication.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

commit 401a4233e492e3a2f83e86300b0004d524280e87
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Mon Jan 31 13:34:26 2011 +0100

    Check that error exists before trying to set it. Fixes bug #640975.

 glib/gconvert.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit 72a8282231c9a56c93b08c04561e77f730047998
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Jan 30 03:31:06 2011 +0100

    Updated Galician translations

 po/gl.po | 314
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 159 insertions(+), 155 deletions(-)

commit 49428369a71f560fe2f4a4c33ba3ebf0a3765761
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Sat Jan 29 14:00:25 2011 +0100

    Updated Italian translation

 po/it.po | 883
 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 539 insertions(+), 344 deletions(-)

commit 5d9f5cdc5a9d45b80e728b2609966af1d5f70c52
Author: A S Alam <aalam@users.sf.net>
Date:   Sat Jan 29 07:54:24 2011 +0530

    update Punjabi Translation by A S Alam

 po/pa.po | 997
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 550 insertions(+), 447 deletions(-)

commit 75098c297c46945af7c9cf9224951495a82f04a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 28 23:47:36 2011 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 83661af46a23a046a87f8d3e4464f5a70676a839
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 28 21:09:52 2011 -0500

    Enable silent rules by default

 configure.ac | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 2b6064760796e01d40fc41a605ba65826196f67a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 28 21:06:03 2011 -0500

    Update NEWS

 NEWS | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit a33aaad00c5e0ce135e34a3280f2560546fe7738
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 28 20:50:43 2011 -0500

    Fix GIO build on Solaris

    Major and minor are defined in sys/mkdev.h on Solaris

    Patch by Fabian Groffen
    https://bugzilla.gnome.org/show_bug.cgi?id=637013

 configure.ac       | 2 +-
 gio/gdbusmessage.c | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

commit 6fe2f5f11b5dee144658e25c2b152fa2f0edd7eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 28 12:26:23 2011 -0500

    Prevent unused variable warnings from G_DEFINE_DYNAMIC_TYPE

 gobject/gtypemodule.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3c59c38404894b09f1f67add89f7fbbbcb4f4ace
Author: Dan Winship <danw@gnome.org>
Date:   Fri Jan 28 10:17:54 2011 -0500

    Fix g_source_add_child_source docs

    https://bugzilla.gnome.org/show_bug.cgi?id=640823

 glib/gmain.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d4209c1c415766c8735eb08500cd7de450c7c09a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 28 08:23:11 2011 -0500

    GVariant: clear memory before releasing it

    Bug #640807 makes a reasonable case for why it's better to have your
    program crash outright in the case of memory errors.  With this
    modification, GVariant is far more likely to do that in the case
    that a
    GVariant pointer is used shortly after being freed.

 glib/gvariant-core.c | 1 +
 1 file changed, 1 insertion(+)

commit 8602a3a68212b54773f31e57bbe48189dacfcfd3
Author: Tobias Mueller <tobiasmue@gnome.org>
Date:   Thu Jan 27 15:14:31 2011 +0100

    Fixed format string issue in a test, fixes bug 640725

 glib/tests/markup-parse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 069daa69f62c89c7957f22d3b5ccbe0420e51e8b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 27 23:07:53 2011 -0500

    Add testcase for bug 640695

 glib/tests/Makefile.am |  1 +
 glib/tests/keyfile.c   | 38 ++++++++++++++++++++-
 glib/tests/pages.ini   | 92
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 130 insertions(+), 1 deletion(-)

commit 440e6f4a61e27ee95994cd6a57c9d977a4376755
Author: Benjamin Gilbert <bgilbert@backtick.net>
Date:   Thu Jan 27 02:04:00 2011 -0500

    Ensure g_key_file_load_from_file() strips a \r on a 4 KB boundary

    When g_key_file_parse_data() encountered \n, it was checking the
    previous
    character in the current input buffer for a \r to erase, rather
    than the
    previous character in the parse buffer.  If
    g_key_file_load_from_file()
    was given a file with a \r\n sequence straddling a 4 KB boundary,
    the \n
    would be the first character in the input buffer, so the \r would
    not be
    properly stripped.

    Bug #640695.

    Found-by: Jan Harkes <jaharkes@cs.cmu.edu>

 glib/gkeyfile.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit e644b29190aaec2cb2239d2541144e313e293020
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 27 22:54:32 2011 -0500

    Use g_set_error_literal where appropriate

 gio/gpollableinputstream.c  | 4 ++--
 gio/gpollableoutputstream.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit cc5578fbd73ac3845daaa098601640a41cc8586a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 27 21:57:57 2011 -0500

    Make load_user_special_dirs() resistant to nonexistent dirs

 glib/gutils.c | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

commit 4f8a4f171ec3ad2d922ab890ac875dae4a1c49b8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 27 20:31:14 2011 -0500

    Remove redundant definitions

    https://bugzilla.gnome.org/show_bug.cgi?id=640262

 gio/gactiongroup.h | 7 -------
 1 file changed, 7 deletions(-)

commit 4a8d9b68e38c8b2d09e426eb009ca6fadff5af86
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jan 27 20:29:22 2011 -0500

    Fail in a clean way if schema name is missing

    https://bugzilla.gnome.org/show_bug.cgi?id=640192

 gio/gsettingsschema.c | 2 ++
 1 file changed, 2 insertions(+)

commit d8ca6404229e5b64d2bf2e1a3660ad9fe7feefdd
Merge: 73410f1 03b6b9f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 27 11:45:04 2011 -0500

    Merge remote branch 'gvdb/master'

commit 73410f1176c276e244c172fd36037ada8db12a3d
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Thu Jan 27 18:51:55 2011 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 604
 +++++++++++++++++++++++++++++++-----------------------------
 po/zh_TW.po | 604
 +++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 620 insertions(+), 588 deletions(-)

commit bdbfbd5ea314cf90168db3737ef64d5399ecd591
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Jan 27 11:13:12 2011 +0100

    Updated Norwegian bokmål translation.

 po/nb.po | 597
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 314 insertions(+), 283 deletions(-)

commit cddf27de94be3fa3f0ec7b52640c52b2e5479064
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu Jan 27 00:37:03 2011 +0100

    QA of Galician translations

 po/gl.po | 198
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 103 insertions(+), 95 deletions(-)

commit 03b6b9fb9775387c3ec5eedb9e5d2152d6468147
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 25 18:26:21 2011 -0500

    Mark a symbol as G_GNUC_INTERNAL

 gvdb-reader.h | 1 +
 1 file changed, 1 insertion(+)

commit 1e5916ffae7bfaf041df454677562aec4557e21c
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Jan 23 02:44:15 2011 +0200

    Updated Hebrew translation.

 po/he.po | 448
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 232 insertions(+), 216 deletions(-)

commit 816e6541d6680028a19865e68db0aa0cafc20f8c
Author: Alexander Shopov <ash@kambanaria.org>
Date:   Sat Jan 22 22:43:52 2011 +0200

    Updated Bulgarian translation

 po/bg.po | 1020
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 577 insertions(+), 443 deletions(-)

commit 59fd6f184a5ccd2002a0043bbe13c06cb59515fd
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Jan 22 16:50:48 2011 +0100

    Updated Spanish translation

 po/es.po | 582
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 308 insertions(+), 274 deletions(-)

commit 9f0c592b9c5f9ac57d3454f02ffa92e98001ceaf
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Sat Jan 22 15:36:13 2011 +0000

    Bump PCRE minimum version

    https://bugzilla.gnome.org/show_bug.cgi?id=640261

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit acc295e292406e15e35bdab08b97c9f4409c16fc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 22 09:52:33 2011 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bd8b245f574497755265ec0cee15ebe17bd00a7d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 22 00:02:08 2011 -0500

    Update Unicode tests to 6.0

 tests/casefold.txt | 17 ++++++++++++++++-
 tests/casemap.txt  | 40 +++++++++++++++++++++++++++++++++-------
 2 files changed, 49 insertions(+), 8 deletions(-)

commit fb2809ec996e9e12d06f4bc7239a98718f5f06d7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 22 00:01:54 2011 -0500

    Forgotten files

 glib/pcre/pcre.h            |   81 +--
 glib/pcre/pcre_chartables.c |    2 +-
 glib/pcre/pcre_compile.c    |  899 +++++++++++++++++++++++----------
 glib/pcre/pcre_dfa_exec.c   |  257 +++++++---
 glib/pcre/pcre_exec.c       | 1155
 ++++++++++++++++++++++++++++++-------------
 glib/pcre/pcre_internal.h   |  286 ++++++-----
 glib/pcre/pcre_study.c      |  277 ++++++++---
 glib/pcre/pcre_tables.c     |  271 +++++-----
 glib/pcre/pcre_xclass.c     |   37 +-
 glib/pcre/ucp.h             |    5 +-
 10 files changed, 2271 insertions(+), 999 deletions(-)

commit 3f059a6a123dd62257f224b9af7701078783060e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 21 23:41:12 2011 -0500

    Remove a test that seems to fail depending on time of day

 glib/tests/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 37e221b5aee3a0d1b1a3988c69e5694b7722c0fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 21 23:12:16 2011 -0500

    Update NEWS

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit c03dc6bf7dfc6e326e7249e9e377676db885d99e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 21 23:10:01 2011 -0500

    Update the included copy of PCRE

    Update PCRE to version 8.12.
    At the same time, also add Unicode 6.0 script support.

 glib/gregex.c      | 16 ++++++++++++++++
 glib/tests/regex.c |  5 ++---
 2 files changed, 18 insertions(+), 3 deletions(-)

commit 51c87f680991760940da65b0c182016350e211a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 21 18:02:05 2011 -0500

    Update help and docs for gsettings cmdline tool

    The man page had gotten quite out of sync.

 docs/reference/gio/gsettings.xml | 135
 +++++++++++++++++++++++++++++----------
 gio/gsettings-tool.c             |  28 +++++---
 2 files changed, 120 insertions(+), 43 deletions(-)

commit 0a5708654080232dd404d089b5b790de79f11032
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Jan 21 16:30:19 2011 -0500

    Update to Unicode 6.0

    One new GUnicodeBreak enum member.  Three new GUnicodeScript members,
    and one member renamed to fix a typo.

    Tests, docs, and scripts are updated.  PCRE update still needed.

 docs/reference/glib/tmpl/unicode.sgml |     6 +-
 glib/gen-unicode-tables.pl            |    79 +-
 glib/gscripttable.h                   |   516 +-
 glib/gunibreak.h                      |  5372 +++++++++-----
 glib/gunichartables.h                 |  4727 +++++++++----
 glib/gunicode.h                       |    38 +-
 glib/gunicomp.h                       |   288 +-
 glib/gunidecomp.h                     | 11955
 +++++++++++++++++---------------
 glib/pcre/ucp.h                       |     2 +-
 glib/tests/utf8-misc.c                |    20 +-
 10 files changed, 13730 insertions(+), 9273 deletions(-)

commit b50f4a1a52eeaec2ff14a0ac44b0b42ebb6cca30
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 21 11:24:14 2011 -0500

    Updates for 2.27.92

 NEWS | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 654ab34e3a7ea03dd7e86d16deae90df8e153d4c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 21 10:52:48 2011 -0500

    Don't warn in GApplication if class handlers have been overridden

    https://bugzilla.gnome.org/show_bug.cgi?id=640042

 gio/gapplication.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit b31d80eff3352de556e630cdc117a735bc4925e5
Author: Khaled Hosny <khaledhosny@eglug.org>
Date:   Thu Jan 20 21:57:05 2011 +0200

    Updated Arabic translation

 po/ar.po | 1827
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 992 insertions(+), 835 deletions(-)

commit da36756f3f907ce7d9d4484e29ef7c08c838b351
Author: Michael Kotsarinis <mk73628@gmail.com>
Date:   Wed Jan 19 19:08:15 2011 +0200

    Updated Greek translation

 po/el.po | 1010
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 590 insertions(+), 420 deletions(-)

commit c7f38cd277f0bfa9c303fcd30dd17e1320e5c162
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 18 00:06:55 2011 -0500

    Mark another function as static

 glib/gtimezone.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 67e112cce6bc7a9e841354d2c760a017a2c01527
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 18 00:06:05 2011 -0500

    Mark a function as static

 glib/gtimezone.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d2347f34fded2651e47a60814f600c173b8ca5e7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 17 23:46:20 2011 -0500

    Move GMarkup docs inline

 docs/reference/glib/tmpl/.gitignore  |    1 +
 docs/reference/glib/tmpl/markup.sgml |  327 ---------
 glib/gmarkup.c                       | 1331
 ++++++++++++++++++----------------
 glib/gmarkup.h                       |   85 ++-
 4 files changed, 768 insertions(+), 976 deletions(-)

commit dc8b03027d905bf22527aeaa7e31ad072231197a
Author: Ray Strode <rstrode@redhat.com>
Date:   Mon Jan 17 17:13:44 2011 -0500

    gsettings: Update documentation on schema naming convention

    The existing docs are a bit inconsistent in that they say to follow
    the dbus convention, but then give an example that doesn't.

    This commit changes things to be how Ryan says they should be.

 docs/reference/gio/migrating-gconf.xml | 10 ++++++----
 gio/gsettings.c                        | 10 +++++++---
 2 files changed, 13 insertions(+), 7 deletions(-)

commit a2918d6c3e676e2656a87b5a5ee974dc5777eb59
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 17 15:17:34 2011 -0500

    Fix some harmless sign compare warnings

 gvdb-reader.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ba5619ba7f69025f40bf5e77d667a2a84b61d1a7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 17 15:15:46 2011 -0500

    C++ify the reader header

 gvdb-reader.h | 3 +++
 1 file changed, 3 insertions(+)

commit e8120dc4ce75b0cff6d45632e5d9037853ad51ae
Author: Ray Strode <rstrode@redhat.com>
Date:   Mon Jan 17 14:15:18 2011 -0500

    datetime: Show 12 instead of 0 for 12h hour format

    The 12h mode hour format is computed by taking the
    24h mode hour format modulo 12.

    The conversion results in 12 noon getting erroneously
    converted to 0.

    This commit makes noon get the same special handling
    as midnight.

 glib/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a437c5e768b9a62b550e174b25413ce9149fcdbe
Author: Ray Strode <rstrode@redhat.com>
Date:   Mon Jan 17 14:30:43 2011 -0500

    tests: add format test case for noon hour in 12h mode

    It currently displays it as "0" instead of "12", so this
    test case demonstrates the bug.

 glib/tests/gdatetime.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8728949e0db56159485e5d214e581e5f46911d0b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jan 6 23:30:09 2011 +0100

    Don't leak variants in the null settings backend

    Even though the write fails, the variant still needs to be consumed.

    Bug #638872.

 gio/gnullsettingsbackend.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit a583405f66758e320eaf2025b757ddc081186686
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Jan 14 17:54:04 2011 +0000

    docs: gvariant-core: g_variant_normalise ->
    g_variant_get_normal_form()

 glib/gvariant-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6c0491841e40aba4b479285e473f267f623b4a57
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Jan 14 17:24:45 2011 +0000

    gvariant-core: Fix typo

    g_variant_create_from_data -> g_variant_new_from_data

 glib/gvariant-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c7041e221fcf165ae16603ba4a2d5579cc02826a
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Jan 14 00:49:35 2011 +0000

    docs: gvariant-varargs: Fix typo

 docs/reference/glib/gvariant-varargs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 060e516ede200990d09a259f5f48e939fc001f89
Author: Ivar Smolin <okul@linux.ee>
Date:   Thu Jan 13 12:41:06 2011 +0200

    [l10n] Updated Estonian translation

 po/et.po | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

commit a86eb8785b9b93ee0fb2a52e714ef6431268ccf2
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Wed Jan 12 22:29:53 2011 +0100

    Updated Basque language

 po/eu.po | 910
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 563 insertions(+), 347 deletions(-)

commit c0208940c569b2d2a7e0e86f93d97cfbaf2b3fc7
Author: Daiki Ueno <ueno@unixuser.org>
Date:   Tue Jan 11 11:33:21 2011 +0900

    Make g_unix_connection_send_fd() work as expected.

    https://bugzilla.gnome.org/show_bug.cgi?id=637696

 gio/gunixfdmessage.c |   2 +-
 gio/tests/socket.c   | 105
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 106 insertions(+), 1 deletion(-)

commit 634e9e43cfb8b0d88d0a6b4899d0e33c62c07458
Author: Michael Natterer <mitch@gimp.org>
Date:   Wed Jan 12 19:45:40 2011 +0100

    gobject: add an empty default impl of GObject::constructed()

    to allow unconditional upchaining.

 gobject/gobject.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 19c73918ec7faf6e32d100493772a1dccf43b110
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jan 12 11:08:54 2011 +0800

    Added symbols for GIO/Win32

    There are now fallback functions in the Win32 portion of
    g_app_info that were previously only available under UNIX,
    so add them here so that they can be exported as well.

    The symbols are as follows:
    g_app_info_get_fallback_for_type
    g_app_info_get_recommended_for_type

 gio/gio.symbols | 2 ++
 1 file changed, 2 insertions(+)

commit 1df31f00140bfba941db65e2374ff2700f55a295
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 11 16:13:42 2011 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dd6baef46fcb7abd561383f2af7bb1b8e3579f5c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 11 11:27:45 2011 -0500

    Update NEWS

 NEWS | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit fabf506b8d5baf8f59fca563e6f1a62be5148112
Author: Ivar Smolin <okul@linux.ee>
Date:   Tue Jan 11 11:04:56 2011 +0200

    [l10n] Updated Estonian translation

 po/et.po | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit eec2cb1af873f38091671486b5adc5d444e306b7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 10 20:28:17 2011 -0500

    Avoid a segfault in g_application_register()

    Patch by Mikkel Kamstrup Erlandsen
    https://bugzilla.gnome.org/show_bug.cgi?id=639177

 gio/gapplicationimpl-dbus.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 48f27317607fe117fe9aed0c2fe24ff6ef10a5d5
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jan 10 23:36:00 2011 +0000

    mkinstalldirs: Update to latest version

 mkinstalldirs | 93
 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 72 insertions(+), 21 deletions(-)

commit 42d71c0ef952a2a3b9bd685ad3bb4294f0706947
Author: Ivar Smolin <okul@linux.ee>
Date:   Mon Jan 10 19:44:11 2011 +0200

    [l10n] Updated Estonian translation

 po/et.po | 101
 +++++++++++++++++----------------------------------------------
 1 file changed, 27 insertions(+), 74 deletions(-)

commit a57c4c90662077163316d1d53ee18a5a0fbec393
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 9 16:43:28 2011 -0500

    GSettings: Fix a copy-paste error

    https://bugzilla.gnome.org/show_bug.cgi?id=639084

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b0b37bcb06723ede07cc9c5c4573f12c3acb1643
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jan 9 15:03:31 2011 +0100

    Update gschema.dtd

    Bug #639064.

 gio/gschema.dtd | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit eafa3443d39f36a3ade11154243495a77d5b089d
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Jan 9 16:35:32 2011 +0100

    Updated Galician translations

 po/gl.po | 386
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 193 insertions(+), 193 deletions(-)

commit 33c7a9d8ecaa75b41dbdd2a3a31ac8c62394a8b5
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Jan 7 18:55:20 2011 +0100

    configure: Use AC_CONFIG_MACRO_DIR

    To keep the correct macros in-tree.

 configure.ac | 1 +
 1 file changed, 1 insertion(+)

commit b67d9cb7eef036b76955a75e6e9cd6b8ae1fb8e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jan 7 12:07:19 2011 -0500

    Add regex test cases

    These come from https://bugzilla.gnome.org/show_bug.cgi?id=638894

 glib/tests/regex.c | 2 ++
 1 file changed, 2 insertions(+)

commit f6b52322a2049dfb3873922a8f1417d8c44363b0
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Fri Jan 7 14:52:29 2011 +0100

    Fix and update GI annotations for 'Volumes and Drives'

    Volumes and Drives GIO category contains: GVolumeMonitor, GVolume,
    GMount, GDrive, Unix Mounts.

 gio/gdrive.c      | 34 +++++++++++++++++++---------------
 gio/gmount.c      | 33 ++++++++++++++++++---------------
 gio/gunixmounts.c | 20 +++++++++++---------
 gio/gvolume.c     | 13 +++++++------
 4 files changed, 55 insertions(+), 45 deletions(-)

commit f85909fb65635b8321d1abf60c073ae854acae5e
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Fri Jan 7 09:38:35 2011 +0100

    Add and update GI annotations in 'Settings'

    'Settings' GIO group contains GSettings and GSettingsBackend.

 gio/gsettings.c        | 18 +++++++++---------
 gio/gsettings.h        |  5 +++--
 gio/gsettingsbackend.c | 12 +++++++-----
 3 files changed, 19 insertions(+), 16 deletions(-)

commit 99c740fdb58e2a7bf18fa1213c03b0be186f3581
Author: Andika Triwidada <andika@gmail.com>
Date:   Fri Jan 7 11:37:39 2011 +0700

    Updated Indonesian translation

 po/id.po | 1531
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 858 insertions(+), 673 deletions(-)

commit e738a8dd8ca3d3dd327bc5a3bbfd151858738609
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jan 6 11:47:58 2011 -0500

    gdesktopappinfo: Don't crash if we don't have a desktop filename

    If code creates a GDesktopAppInfo via
    g_desktop_app_info_new_from_keyfile(),
    we'd try to send a NULL pointer down into GVariant.

    Since in this case we don't have a filename, just send the empty
    string.  In the future we should either:

    1) Change panel to use g_desktop_app_info_new_from_filename(), and
       take the hit of parsing the file twice.
    2) Add a g_key_file_get_origin_filename()
    3) Add g_desktop_app_info_new_from_keyfile_and_name()

    https://bugzilla.gnome.org/show_bug.cgi?id=638838

 gio/gdesktopappinfo.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit 26b65a3abda5ad0930b1cd0d0652417feb50c274
Author: Serkan Kaba <serkan@gentoo.org>
Date:   Thu Jan 6 14:08:02 2011 +0100

    gio: Recognize reiser4 in g_file_query_filesystem_info()

    Signed-off-by: Serkan Kaba <serkan@gentoo.org>
    Signed-off-by: Tomas Bzatek <tbzatek@redhat.com>

 gio/glocalfile.c | 2 ++
 1 file changed, 2 insertions(+)

commit 48f8c07c530973a0b32ed6cd3251cc82851e20b0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 5 20:43:46 2011 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0b3412b419a322426ae04ca5177546ba68def3d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 5 19:51:44 2011 -0500

    Add anothre bug ref

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit 51ac0c6c85c5bf993ff2de0282c569884b79027a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 5 19:42:13 2011 -0500

    Avoid possible parameter name clashes in GVariant

    https://bugzilla.gnome.org/show_bug.cgi?id=638349

 glib/gvariant.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 31db1f9688274b245ba7f47b7a837f609715331c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 5 19:07:01 2011 -0500

    Add new symbol

 gio/gio.symbols | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit f4773faa9f669ff3a705946f5b4ddcc83d3c6931
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 5 17:46:28 2011 -0500

    Drop annotation that break the documentation build

 gio/gtlsclientconnection.c | 4 ----
 1 file changed, 4 deletions(-)

commit 87068c0fcd08dd968679e68bd71a2a7355361522
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 5 17:16:36 2011 -0500

    Update NEWS

 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

commit 98a0dfe1da9f3b8919f0bb73b1cb99333a31975f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 5 17:01:42 2011 -0500

    Bump version to 2.27.90

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3d824065b847f2702aa312c51734328fc414af5a
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Nov 28 18:49:04 2010 +0100

    Add g_get_locale_variants()

    Make _g_compute_locale_variants() public as g_get_locale_variants().

    Bug #635998.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gkeyfile.c                       |  5 ++---
 glib/glib.symbols                     |  1 +
 glib/gutils.c                         | 23 ++++++++++++++++++++++-
 glib/gutils.h                         |  2 ++
 glib/tests/utils.c                    | 15 +++++++++++++++
 6 files changed, 43 insertions(+), 4 deletions(-)

commit be8899bfe66d460b3eda33ff7512778788c07974
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Mar 1 16:32:09 2010 +0100

    Make _g_compute_locale_variants return a char** directly

    Bug #635998.

 glib/gkeyfile.c | 13 ++---------
 glib/gutils.c   | 72
 ++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 42 insertions(+), 43 deletions(-)

commit b497220e486e66433b44251a53ec3be25fa9acdb
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Wed Jan 5 20:30:10 2011 +0100

    Fix GI annotation for g_desktop_app_info_launch_uris_as_manager

 gio/gdesktopappinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 8d74c96b76b459a63492bfce466a304383e94d09
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Dec 5 15:34:26 2010 +0100

    Make the memory and null settings backends public

    Bug #636806.

 docs/reference/gio/gio-sections.txt |  3 +++
 gio/Makefile.am                     |  2 --
 gio/gio.symbols                     | 11 +++++++++--
 gio/giomodule.c                     |  3 ++-
 gio/gmemorysettingsbackend.c        |  9 +++++++--
 gio/gmemorysettingsbackend.h        | 30 ------------------------------
 gio/gnullsettingsbackend.c          | 12 +++++++-----
 gio/gnullsettingsbackend.h          | 30 ------------------------------
 gio/gsettingsbackend.c              |  5 +++--
 gio/gsettingsbackend.h              |  6 ++++++
 gio/gsettingsbackendinternal.h      |  8 ++++++--
 11 files changed, 43 insertions(+), 76 deletions(-)

commit 0b59cf65669fae077a7e607d0c61567be5f5a30a
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jan 5 13:49:20 2011 -0500

    g_desktop_app_info_launch_uris_as_manager: Fix parameter naming

    This makes introspection happier.

 gio/gdesktopappinfo.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9be6da9448a1a59eae11d588729bf4316fbadada
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jan 5 13:00:50 2011 -0500

    Add missing indirection from previous commit

    This follows the rest of GLib style, and fixes g-i scanning the
    headers.

 gio/gdesktopappinfo.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a36cb498d974b11c00829adfdaa9638fbd9b66eb
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Wed Dec 22 16:52:40 2010 -0500

    [GDummyTLS] Add missing properties and namespace

    Add missing properties in the GDummyTlsConnection class. Also add
    namespaces to property enumerations to avoid conflicts between
    classes.

    Reviewed-by: Dan Winship <danw@gnome.org>

 gio/gdummytlsbackend.c | 62
 +++++++++++++++++++++++++++-----------------------
 1 file changed, 34 insertions(+), 28 deletions(-)

commit 4e33967a002fd14d7106ef2ff88122344f2e4983
Author: Stef Walter <stefw@collabora.co.uk>
Date:   Fri Dec 24 10:50:14 2010 -0600

    Change GTlsClientConnection::accepted-cas to contain DER DNs

    This property is now a GList of GByteArray values. Each
    GByteArray contains the raw DER DN of the certificate authority.
    This is far more useful for looking up a certificate (with the
    relevant issuer) than a string encoded DN.

    https://bugzilla.gnome.org/show_bug.cgi?id=637262

 gio/gtlsclientconnection.c | 28 ++++++++++++++++++----------
 gio/gtlsclientconnection.h |  2 +-
 2 files changed, 19 insertions(+), 11 deletions(-)

commit e6546debd61d32b41b37c20b62d4e47cd3e53e25
Author: Colin Walters <walters@verbum.org>
Date:   Mon Dec 20 14:48:53 2010 -0500

    gdesktopappinfo: Add g_desktop_app_info_launch_uris_as_manager()

    A new GDesktopAppInfo specific function which provides more control
    over launched processes.  Intended basically only for use in GNOME
    Shell, where we want:

    *) To directly know the GPid for each launched program, without
       having to listen to a DBus signal emitted in our own process
    *) Possibly control over the process environment; for example,
       we may want to call setsid() or redirect file descriptors.

    And in the future:
    *) To avoid recursively calling ourself via DBus, when a later
       patch causes g_app_info_launch() to indirect via the shell.

    https://bugzilla.gnome.org/show_bug.cgi?id=606960

 gio/gdesktopappinfo.c | 89
 ++++++++++++++++++++++++++++++++++++++++++++++++---
 gio/gdesktopappinfo.h | 24 ++++++++++++++
 2 files changed, 108 insertions(+), 5 deletions(-)

commit bb6c44b9d3fd94835044ffda38ca2f211deb5b7b
Author: Colin Walters <walters@verbum.org>
Date:   Mon Dec 20 13:12:28 2010 -0500

    gdesktopappinfo: Send out a session bus signal when launching
    .desktop file

    This signal contains the full path of the .desktop file, along with
    the process id, which allows multiple interested components (like
    GNOME Shell) to better know the state of the system (which processes
    correspond to which .desktop files).

    https://bugzilla.gnome.org/show_bug.cgi?id=606960

 gio/gdesktopappinfo.c | 87
 +++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 78 insertions(+), 9 deletions(-)

commit 9de42602c47262d49e4419f8bf7987dc2b488a98
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Wed Jan 5 22:57:48 2011 +0800

    Bug 637852 - Updates to glib.vsprops

    Due to changes in the GIO APIs/headers, the glib.vsprops
    is updated to reflect that in the "install" phase, namely:
    -removal of the gperiodic.h header
    -addition of GPollable I/O Stream, GTCP Connection and
     GTLS headers

 build/win32/vs9/glib.vsprops | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 9686d82daf9c2082fa5d3055ac5b777490a95dc0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 4 09:38:14 2011 -0500

    Fix build on old kernels

    Cope with BTRFS_SUPER_MAGIC not being defined.

 glib/gfileutils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1e5f11875b65712195e4d0c8d160cdc9f9bbd99f
Author: Thomas Kristensen <thomas.kristensen@cisco.com>
Date:   Mon Jan 3 15:20:12 2011 +0200

    revents may have been cleared by GMain before dispatch().

    See bug #587898.

 gio/gsocket.c | 4 ++++
 1 file changed, 4 insertions(+)

commit b583f802e39e2415c626ad19d54adc1bc08151d0
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Jan 2 18:54:17 2011 +0100

    Updated Norwegian bokmål translation from Torstein Adolf Winterseth

 po/nb.po | 216
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 104 insertions(+), 112 deletions(-)

commit 4144c04c475c58df1da8ff062de1d50865c10169
Author: Daniel Nylander <po@danielnylander.se>
Date:   Fri Dec 31 15:23:27 2010 +0100

    Updated Swedish translation

 po/sv.po | 1405
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 785 insertions(+), 620 deletions(-)

commit 929e8db9f436f0644a300c7253c9452145cbb7db
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Wed Dec 29 16:21:22 2010 +0100

    Add GI annotation: skip g_cancellable_source_new().

    It is not bindable, because GSource is not boxed and thus cannot be
    returned as caller-owned.

 gio/gcancellable.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 53364788e9f52dd3cf9781d08004ed5f0db0941f
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Wed Dec 29 15:26:21 2010 +0100

    Add GI annotations to Gio DNS resolution classes

 gio/gproxyresolver.c | 18 ++++++++++--------
 gio/gresolver.c      | 24 ++++++++++++------------
 2 files changed, 22 insertions(+), 20 deletions(-)

commit add8cf9c09255e497545c67ca81e8f8bf28f3f85
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Wed Dec 29 16:01:12 2010 +0100

    Add GI annotations to Gio highlevel network functionality

 gio/gsocketclient.c   | 32 ++++++++++++++++----------------
 gio/gsocketlistener.c | 28 ++++++++++++++--------------
 gio/gunixconnection.c |  4 ++--
 3 files changed, 32 insertions(+), 32 deletions(-)

commit 975b0d4487809270100efce56270314d816e3073
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Wed Dec 29 13:51:44 2010 +0100

    Add GI annotations to Gio lowlevel network support classes

 gio/ginetaddress.c             |  2 +-
 gio/ginetsocketaddress.c       |  2 +-
 gio/gproxy.c                   | 11 ++++++-----
 gio/gproxyaddress.c            |  6 ++++--
 gio/gsocket.c                  | 44
 +++++++++++++++++++++---------------------
 gio/gsocketaddressenumerator.c |  9 +++++----
 gio/gsocketcontrolmessage.c    |  2 +-
 gio/gunixfdlist.c              | 14 +++++++++-----
 gio/gunixfdmessage.c           |  6 ++++--
 gio/gunixsocketaddress.c       |  4 ++--
 10 files changed, 55 insertions(+), 45 deletions(-)

commit 571104bcc384c30054b507cab8e9d9a5f1166c45
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Dec 28 16:53:48 2010 +0100

    Add GI annotations to GPollable{Input|Output}Stream

 gio/gpollableinputstream.c  | 13 +++++++------
 gio/gpollableoutputstream.c | 12 +++++++-----
 2 files changed, 14 insertions(+), 11 deletions(-)

commit 79fd5ff80dcf086749e942ea3be9e4fa88317b09
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Dec 28 15:46:01 2010 +0100

    Add missing GI annotation to g_content_type_guess_for_tree

 gio/gcontenttype.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 422a76b3cd02f6075736da8b4203d83ff52ba096
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Dec 28 14:28:52 2010 +0100

    Fix typo in GI annotation

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 500061f67567477c70b7950a60b0d5620a74131a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 16:05:26 2010 +0100

    test: Add a <revision> node to the report XML

    Use `git describe` to fill out the <revision> node, if we're using a
    git checkout; otherwise, for tests ran from a released tarball, use
    the version.

    https://bugzilla.gnome.org/show_bug.cgi?id=631980

 Makefile.decl | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit 52c831099e5fed55482c3d8cf43b457e37843bd6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Oct 12 16:03:56 2010 +0100

    gtester-report: Add an optional 'revision' node

    In order to distinguish reports generated from a specific revision
    of a
    projects it would be good if gtester-report handled a <revision>
    node in
    the XML.

    The payload is free-form, just like for the other nodes under <info>.

    https://bugzilla.gnome.org/show_bug.cgi?id=631980

 glib/gtester-report | 5 +++++
 1 file changed, 5 insertions(+)

commit 408a9fcbcc175435bdf62354102e919dc4e4b4e7
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Dec 28 12:24:39 2010 +0100

    gaction: update property flags to match needs of GSimpleAction

    Commit 068d53358bd366c26cff604a3de53b3cf734b08f uncovered this
    mismatch
    between properties on the interface and those on the implementation.
    Update them so they match.

 gio/gaction.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit f248ab1b60a64df88a1578db81a3e263199d584c
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Dec 28 12:17:10 2010 +0100

    tests: unbreak desktop-app-info test for jhbuild

    If we have a jhbuilt version of gedit installed, this will fail, as it
    will succeed in deleting its desktop file.

 gio/tests/desktop-app-info.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 562a83432849280651ada9ac59e53358878cb2df
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Dec 28 11:59:58 2010 +0100

    Fix typo in function annotation.

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b27ecf79e89db9ba26aa3dedc1a3ae1e6255cf40
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 28 00:19:45 2010 -0500

    Document that g_variant_builder_add_value consumes a floating ref

    Patch by Mikkel Kamstrup Erlandsen, bug
    https://bugzilla.gnome.org/show_bug.cgi?id=634569

 glib/gvariant.c | 3 +++
 1 file changed, 3 insertions(+)

commit 316be2748fce21c922291990e1d9a2479f13a464
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 28 00:12:19 2010 -0500

    Adapt testglib.c to GRelation deprecation

    Patch by Chun-wei Fan, bug
    https://bugzilla.gnome.org/show_bug.cgi?id=637858

 tests/testglib.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 702a96c28146f683c58281133056bf70d7b0313e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Dec 28 00:08:56 2010 -0500

    Fix a possible crash in g_io_channel_read_chars

    Patch by Rui Matos, https://bugzilla.gnome.org/show_bug.cgi?id=637759

 glib/giochannel.c | 37 ++++++++++++++++++-------------------
 1 file changed, 18 insertions(+), 19 deletions(-)

commit bf1027f8269dd365097dd84c0c6d5abd7a61599e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 27 23:49:12 2010 -0500

    Move ifaceproperties test to gobject/tests/

 gobject/tests/Makefile.am                          |  14 +--
 {tests/gobject => gobject/tests}/ifaceproperties.c |   0
 gobject/tests/testcommon.h                         | 100
 +++++++++++++++++++++
 tests/gobject/Makefile.am                          |   1 -
 4 files changed, 103 insertions(+), 12 deletions(-)

commit 068d53358bd366c26cff604a3de53b3cf734b08f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 27 23:41:10 2010 -0500

    Make object_interface_check_properties work

    As pointed out in bug 637738, it does not currently work, since
    g_type_class_peek always returns NULL.

 gobject/gobject.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit 2a5e0cf9e0d67ea35b2f5fdf8bb2297354bcb7e6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 27 23:37:21 2010 -0500

    Convert ifaceproperties.c to test framework

    Also add a test that checks warnings for failure to implement
    interface properties.

    See https://bugzilla.gnome.org/show_bug.cgi?id=637738

 tests/gobject/ifaceproperties.c | 379
 +++++++++++++++++++++++++++-------------
 1 file changed, 260 insertions(+), 119 deletions(-)

commit 58e36daf29aa1cf042a1141b9bbb91b4e794bfc7
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 22:07:08 2010 +0100

    Add GI annotations to GObject

 gobject/gobject.c | 100
 ++++++++++++++++++++++++++++--------------------------
 1 file changed, 52 insertions(+), 48 deletions(-)

commit 282366c32626325ebb9257e500d3d2783e5d3d12
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Wed Dec 22 22:09:21 2010 +0100

    Add GI annotations to GParamSpec

 gobject/gparam.c      | 39 +++++++++++++++++++++------------------
 gobject/gparamspecs.c | 46 +++++++++++++++++++++++-----------------------
 2 files changed, 44 insertions(+), 41 deletions(-)

commit 3955bbfde0080bd15fff07906d011b93a2be2665
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 20:56:06 2010 +0100

    Add GI annotations to GType

 gobject/gtype.c | 110
 ++++++++++++++++++++++++++++++++------------------------
 1 file changed, 63 insertions(+), 47 deletions(-)

commit ed5790913e8de1a787f5cd6286542478f21c1afa
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 16:47:26 2010 +0100

    Add GI annotations to GMemory{Input|Output}Stream

 gio/gmemoryinputstream.c  |  8 ++++----
 gio/gmemoryoutputstream.c | 12 ++++++------
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 53fee54b4f70d209a93f77effa2e9d2b1c8465e8
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 16:29:20 2010 +0100

    Add GI annotations to GConverter

 gio/gconverter.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit c8fd3e31caae45988a16442bd39ac4038cc4c510
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 16:24:21 2010 +0100

    Add GI annotations to GSeekable

 gio/gseekable.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5a8d012d296ab6eba4e26c59cfe06d3f8d582e70
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 16:08:46 2010 +0100

    Add GI annotations to GIcon and related classes and interfaces

 gio/gemblem.c       |  6 +++---
 gio/gemblemedicon.c |  4 ++--
 gio/gicon.c         |  4 ++--
 gio/gloadableicon.c | 12 +++++++-----
 gio/gthemedicon.c   |  2 +-
 5 files changed, 15 insertions(+), 13 deletions(-)

commit 7a1fbcd959ab22d356dbbaa807169089636cac99
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 15:48:31 2010 +0100

    Add GI annotations to GFileEnumerator

 gio/gfileenumerator.c | 16 ++++++++--------
 gio/gfileenumerator.h |  4 ++--
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 1f84c5b72f7e5bd096b0f9458ccc9eed7f64ace5
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Mon Dec 27 15:40:07 2010 +0100

    Add GI annotations to GAppInfo and GDesktopAppInfo

 gio/gappinfo.c        | 4 ++--
 gio/gappinfo.h        | 2 +-
 gio/gdesktopappinfo.c | 5 +++--
 3 files changed, 6 insertions(+), 5 deletions(-)

commit e2b185f97aeba30c8c0f051da2f988b7e45c6a93
Author: Aron Xu <aronxu@gnome.org>
Date:   Sat Dec 25 16:50:40 2010 +0000

    Update Simplified Chinese translation.

 po/zh_CN.po | 251
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 126 insertions(+), 125 deletions(-)

commit ec6a9e71dbcd5a7a413247738eb8e40f020622ae
Author: Jorge Gonzalez <jorgegonz@svn.gnome.org>
Date:   Thu Dec 23 19:57:19 2010 +0100

    Updated Spanish translation

 po/es.po | 355
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 175 insertions(+), 180 deletions(-)

commit bb1d3fe1d3fbc022f541cbadb2caa969ff5efeba
Author: Gheyret T.Kenji <gheyret@gmail.com>
Date:   Thu Dec 23 18:51:06 2010 +0100

    Added UG translation

 po/ug.po | 547
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 280 insertions(+), 267 deletions(-)

commit efd2bf9de4dbb31974fedb5ac4a5f033c7bd092a
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Thu Dec 23 17:20:21 2010 +0200

    Updated Hebrew translation.

 po/he.po | 240
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 120 insertions(+), 120 deletions(-)

commit 37ef8cbba5f8fae5c3f56a16925f68346944548d
Author: Brian Cameron <Brian.Cameron@sun.com>
Date:   Wed Dec 22 01:37:21 2010 -0600

    Fix for bug #637720.  void functions should not return a value.

 gio/gsimpleactiongroup.c | 4 ++--
 gio/gtlsconnection.c     | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 86b250019afaa572b7badee0f477401251d89ee1
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Dec 21 18:19:16 2010 +0100

    Add GI annotations to GBufferedInputStream

 gio/gbufferedinputstream.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit 5ea4fa75bd16a255786a37502cd09489055cc22d
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Dec 21 18:00:48 2010 +0100

    Add GI annotations to GData{Input|Output}Stream

 gio/gdatainputstream.c  | 96
 ++++++++++++++++++++++++++-----------------------
 gio/gdataoutputstream.c | 16 ++++-----
 2 files changed, 59 insertions(+), 53 deletions(-)

commit e78c27256a73dcb0651340b9b3481a3fb8df303c
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Tue Dec 21 17:35:11 2010 +0100

    Add GI annotations to GSimpleAsyncResult

 gio/gasyncresult.h       |  4 ++--
 gio/gsimpleasyncresult.c | 40 ++++++++++++++++++++--------------------
 2 files changed, 22 insertions(+), 22 deletions(-)

commit 0165efd6034d1b065be755a01e829028f1329b2c
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Tue Dec 21 19:51:54 2010 +0700

    Updated Vietnamese translation

 po/vi.po | 445
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 228 insertions(+), 217 deletions(-)

commit 56de8a1ce059adaa5a050d9dc75646c12340f838
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Mon Dec 20 17:39:39 2010 +0700

    po/vi.po: import from Damned Lies

 po/vi.po | 2400
 +++++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 1658 insertions(+), 742 deletions(-)

commit 12cf4af5bbdfaf5abde1e3eaaba6df85edc7419b
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Tue Dec 21 19:50:33 2010 +0700

    gio: typo fix

 gio/gsocks5proxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 99fe4b1da7560e1df2d9352ddbd845a5d9a62429
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Dec 18 18:52:32 2010 -0500

    Bug 637544 - Skip fsync() on btrfs

    For g_file_set_contents() we fsync() before renaming the file over the
    original in order to ensure that we don't end up with an invalid file.
    btrfs provides this guarantee for us without the fsync() so skip it
    there.

 glib/gfileutils.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit dce0c1c56388033b37a25f4d065383655ae8d9c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 20 16:47:10 2010 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8f5904ccbcd45d30a7ed6da4f0b8b8f0c221bb99
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 20 14:03:45 2010 -0500

    Update NEWS

 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

commit 30587a3a602fb0de2540ea220c1484763a18ff47
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Mon Dec 20 18:52:44 2010 +0100

    Add io-stream in gitignore

 gio/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 8d272eb662180fe60cfa566b669797a0b57cbf0d
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Mon Dec 20 18:44:49 2010 +0100

    Add g_sequence_lookup{_iter} into symbols

 glib/glib.symbols | 2 ++
 1 file changed, 2 insertions(+)

commit 6a10591573a56c5dfe1ac5b8315447f63d29dd39
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Mon Dec 20 17:44:51 2010 +0100

    appinfo: avoid overriding the system defaults when adding support

    We want to be compatible with the following situation:
    - there's no explicit default set in mimeapps.list
    - we add support for a content type to a specific application,
    and that
      list is empty
    - the default should be picked from the system list, not overridden by
      the user-added application.

    So we make the default explicit in this case, by adding it to the
    relevant section in mimeapps.list.

    https://bugzilla.gnome.org/show_bug.cgi?id=637675

 gio/gdesktopappinfo.c | 47
 ++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 38 insertions(+), 9 deletions(-)

commit e666a2ed696a9545a23371b53c4a07471b635d5c
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Fri Dec 10 10:17:44 2010 +0100

    Add note in g_sequence_search() doc about g_sequence_lookup()

 glib/gsequence.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 50f96ae79b329154e55ac63b1ab8b0ff650bf871
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Fri Dec 10 10:14:06 2010 +0100

    Add unit test for g_sequence_lookup() and g_sequence_lookup_iter().

 glib/tests/sequence.c | 76
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

commit 4e309043311487d66157383991373107eac1f7b9
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Fri Apr 30 13:55:53 2010 +0200

    New API: g_sequence_lookup() and g_sequence_lookup_iter()

    Fixes bug #617254

 docs/reference/glib/glib-sections.txt |   2 +
 glib/gsequence.c                      | 132
 +++++++++++++++++++++++++++++++++-
 glib/gsequence.h                      |   8 +++
 3 files changed, 141 insertions(+), 1 deletion(-)

commit 1f9e34cab7b474a2b98c52d111a61f596ae33b58
Author: Christian Dywan <christian@twotoasts.de>
Date:   Mon Dec 20 17:15:15 2010 +0100

    Allow null object in g_simple_async_report_gerror_in_idle

    Follow-up on bug 636673.

 gio/gsimpleasyncresult.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 678bcad92c2a6350cd5dbf4ea3a567d99cf4c29d
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Dec 15 17:56:22 2010 +0100

    appinfo: add g_app_info_set_as_last_used_for_type()

    This commit also changes (maintaining compatibility) the way
    user-specified default applications are stored (as in, those for which
    g_app_info_set_as_default_for_type() has been called.

    We now store the default application for a content type in a new group
    in the mimeapps.list keyfile, and "Added Associations" tracks only the
    applications that have been added by the user, following a
    most-recently-used first order.

    This is useful in GtkAppChooser-like widgets to pre-select the
    last used
    application when constructing a widget.

    https://bugzilla.gnome.org/show_bug.cgi?id=636311

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gappinfo.c                      |  27 ++++
 gio/gappinfo.h                      |   7 +
 gio/gdesktopappinfo.c               | 291
 ++++++++++++++++++++++++++++--------
 gio/gio.symbols                     |   1 +
 gio/tests/desktop-app-info.c        |  51 +++++++
 6 files changed, 314 insertions(+), 64 deletions(-)

commit 01ba7bd8e8984609d411b70a8ac9db4e8b64fb06
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Thu Dec 9 18:31:19 2010 +0100

    emblemedicon: make GEmblemedIcon subclassable

    Hiding the object/class structs in the source file makes this
    class not
    subclassable.

    Move them to the public header, and add a property for the icon,
    so that
    subclasses can just use

      g_object_new (DERIVED_TYPE,
                    "gicon", icon,
                    NULL);

    to create an emblemed icon.

    https://bugzilla.gnome.org/show_bug.cgi?id=636892

 gio/gemblemedicon.c | 119
 ++++++++++++++++++++++++++++++++++++++--------------
 gio/gemblemedicon.h |  14 +++++++
 2 files changed, 101 insertions(+), 32 deletions(-)

commit bc4e1fc622d0bc61f8978a6c3df98d6c0ab12226
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 20 09:16:05 2010 -0500

    Add a delay-apply property to GSettings

    Bug 637147, patch by Matt Barnes.

 gio/gsettings.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 21c764cd9fca4d0568258d84cbb82b858d06292a
Author: Mattias Põldaru <mahfiaz gmail com>
Date:   Mon Dec 20 13:55:19 2010 +0200

    [l10n] Updated Estonian translation

 po/et.po | 565
 +++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 373 insertions(+), 192 deletions(-)

commit fef417575c1cac47f9d9a2b386ad386ec4272d45
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Mon Dec 20 17:26:00 2010 +0700

    Updated Vietnamese translation

 po/vi.po | 621
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 319 insertions(+), 302 deletions(-)

commit 3264d8d1598916a59775ed07969ff0d20b8790e0
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Sun Dec 19 22:15:42 2010 +0100

    Add GI annotations to GClosure and friends.

 gobject/gclosure.c | 29 +++++++++++++++--------------
 gobject/gobject.c  |  2 +-
 2 files changed, 16 insertions(+), 15 deletions(-)

commit ea577d60d451bc7102695046fb1c3f80fb3e1769
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Sun Dec 19 10:39:36 2010 +0100

    Add GI annotations to GValue and GValueArray.

 gobject/gboxed.c      |  4 ++--
 gobject/gobject.c     |  6 +++---
 gobject/gparam.c      |  4 ++--
 gobject/gvalue.c      | 13 ++++++-------
 gobject/gvaluearray.c | 29 +++++++++++++++--------------
 gobject/gvaluetypes.c |  2 +-
 6 files changed, 29 insertions(+), 29 deletions(-)

commit ddc126cf2cbbdbc3a98e7bd397f19fb0ac8c27c4
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Dec 10 15:07:04 2010 +0100

    g_simple_async_report_error_in_idle with no object

    Document and allow passing of NULL for the object consistently to
    _take_error and _report_error functions.

    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=636673

 gio/gsimpleasyncresult.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit f0354ff0590f0350ebdb1ee8eb84e7b6cdd1e850
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Dec 17 16:12:16 2010 +0000

    grand: Fix URLs for info on the Mersenne Twister

    Reported by Allin Cottrell here:
    http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00134.html

 glib/grand.c      | 4 ++--
 glib/grand.h      | 2 +-
 glib/tests/rand.c | 3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

commit 89b558077f97c630c5b26b3527a6c7d0515f1f2c
Author: Pavel Holejsovsky <pholejs@src.gnome.org>
Date:   Fri Dec 17 16:24:33 2010 +0100

    [gi] Add annotations for GFile, G[File]{Input|Output|IO}Stream.

    Also make parameter names in virtual function declarations consistent
    to silent g-ir-scanner.

 gio/gfile.c             | 183
 ++++++++++++++++++++++++------------------------
 gio/gfileinputstream.c  |   8 +--
 gio/gfileinputstream.h  |   2 +-
 gio/gfileiostream.c     |   8 +--
 gio/gfileiostream.h     |   2 +-
 gio/gfileoutputstream.h |   2 +-
 gio/ginputstream.c      |  28 ++++----
 gio/giostream.c         |  14 ++--
 gio/goutputstream.c     |  36 +++++-----
 gio/goutputstream.h     |   2 +-
 10 files changed, 143 insertions(+), 142 deletions(-)

commit 101dcecb1f1c53041c228cd4f5c4580743a7362a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 17 08:35:54 2010 -0500

    Update symbols list for recent changes

 gio/gio.symbols | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

commit ac4722df1c9802b0c78bba31aa9004348eb1813d
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Fri Dec 17 12:34:28 2010 +0000

    g_object_get_property: document that value must be initialized

    I couldn't tell from reading the documentation whether I had to
    pass in
    an uninitialized value, or a value initialized to the exact type, or
    something else. It turns out (from reading the source) that you
    have to
    pass in an initialized value, but you can use any type to which the
    property's actual type can be transformed.

    So, let's document this.

 gobject/gobject.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit d3ce12571cf8dc9f925ffa344887c26b16bcbf1e
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Fri Dec 17 13:03:18 2010 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 275
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 144 insertions(+), 131 deletions(-)

commit f33ccd4b41aa4d3bfde71adefef74bb22c6bffcb
Author: Pavel Holejsovsky <pavel.holejsovsky@gmail.com>
Date:   Thu Dec 16 21:06:51 2010 +0100

    [gi] Fix GObject.Object annotations.

 gio/gsettings.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 6f215e477dd91446f64d3ae4a05e47d0138a5d0d
Author: John (J5) Palmieri <johnp@redhat.com>
Date:   Thu Dec 16 13:44:56 2010 -0500

    [gi] add annotations for methods which take a gpointer which are
    really GObjects

    * bindings need to know how to marshal the pointer otherwise they
    send in
      the raw wrapped pointer causing crashes

 gio/gsettings.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 2b6c801d10b5ee1ab11cf0612e34db74c6985fbd
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Thu Dec 16 10:57:18 2010 +0100

    gioenums.h: Remove a trailing comma.

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 274ef35fd44ca272d80966a9f1fd17ecce1bc46f
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Dec 14 18:33:17 2010 +0100

    tests: remove a bogus assumption

 gio/tests/desktop-app-info.c | 3 ---
 1 file changed, 3 deletions(-)

commit 683a5632c89b311111503a03290ff75ad705ac46
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 15 11:56:44 2010 -0500

    Remove GPeriodic for now

    The necessary review and integration work has not happened, and
    we don't want to enshrine it in this unproven state.
    It will be back when the world is ready for it.

 docs/reference/gio/gio-docs.xml     |   4 -
 docs/reference/gio/gio-sections.txt |  26 --
 docs/reference/gio/gio.types        |   1 -
 gio/Makefile.am                     |   2 -
 gio/gio.h                           |   1 -
 gio/gperiodic.c                     | 765
 ------------------------------------
 gio/gperiodic.h                     |  88 -----
 7 files changed, 887 deletions(-)

commit 1bbf4cb87c2a0b028de4b65377d0b21cbb49d8f2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 15 11:41:05 2010 -0500

    Remove the dead --disable-visiblity configure option

    At the same time, document --disable-Bsymbolic.

 configure.ac                      |  8 --------
 docs/reference/glib/building.sgml | 25 ++++++++++++-------------
 gthread/tests/1bit-mutex.c        |  3 ---
 3 files changed, 12 insertions(+), 24 deletions(-)

commit 92c22e7ca78670e35df9150169f6837c1dc1d99b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Dec 15 11:36:14 2010 -0500

    Fix some leaks in the GVDB builder

 gvdb-builder.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 9411d0c108d6c5b122f82666467ad9cb42eeccd1
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Dec 15 12:50:59 2010 +0100

    docs: fix a typo

 gio/gemblemedicon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bfee021cfb24a97b99612f6314e9309f3a70f6db
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Dec 15 12:49:22 2010 +0100

    emblemedicon: add docs for _clear_emblems()

 docs/reference/gio/gio-sections.txt | 1 +
 gio/gemblemedicon.c                 | 8 ++++++++
 gio/gio.symbols                     | 1 +
 3 files changed, 10 insertions(+)

commit f53d518a3de99eb8418a35b8f1e163026130687b
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Thu Dec 9 18:16:17 2010 +0100

    emblemedicon: add g_emblemed_icon_clear_emblems()

    https://bugzilla.gnome.org/show_bug.cgi?id=637171

 gio/gemblemedicon.c | 12 ++++++++++++
 gio/gemblemedicon.h |  1 +
 2 files changed, 13 insertions(+)

commit 056a5d753d14b505c3250ccb4a5de92dbdc67a58
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Tue Dec 14 17:16:31 2010 +0100

    gapplication: plug a memory leak

    https://bugzilla.gnome.org/show_bug.cgi?id=637237

 gio/gapplicationimpl-dbus.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8c742aea720d491fc62eac24dbdab8986a849c2d
Author: Pavel Holejsovsky <pavel.holejsovsky@gmail.com>
Date:   Wed Dec 15 11:17:00 2010 +0100

    Add missing annotations to GApplication and GApplicationCommandLine.

 gio/gapplication.c            | 8 ++++----
 gio/gapplicationcommandline.c | 8 +++++---
 2 files changed, 9 insertions(+), 7 deletions(-)

commit 7ee902a3d05cc74a4edaf0197e076611401c029c
Author: Dan Winship <danw@gnome.org>
Date:   Fri Dec 10 11:42:56 2010 +0100

    ghostutils: Convert non-ASCII dots to '.' when converting hostnames

    Also add some test cases to test/hostutils for that and a few other
    things, and make the test program just act as an ASCII/unicode
    hostname converter rather than a test program if it's run with an
    argument.

    https://bugzilla.gnome.org/show_bug.cgi?id=633350

 glib/ghostutils.c      | 53 ++++++++++++++++++++++++++++++++++---------
 glib/tests/hostutils.c | 61
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 103 insertions(+), 11 deletions(-)

commit 09ce9dc542b26e133bc798f9a0382b642aea4470
Author: Ted Gould <ted@gould.cx>
Date:   Mon Dec 13 13:33:15 2010 -0500

    Bug 635626 – GDBus message idle can execute while flushes are
    pending

    https://bugzilla.gnome.org/show_bug.cgi?id=635626

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit 735fcf918e70035874b50785524d25eda557d51f
Author: Peng Huang <shawn.p.huang@gmail.com>
Date:   Mon Dec 13 13:09:38 2010 -0500

    Bug 632544 – Cannot send a locked message with PRESERVE_SERIAL flag

    https://bugzilla.gnome.org/show_bug.cgi?id=632544

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c        |  3 ++-
 gio/tests/gdbus-connection.c | 18 +++++++++++++++---
 2 files changed, 17 insertions(+), 4 deletions(-)

commit a855f7270066a9268d52e97ad301315d27a6edb7
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Mon Dec 13 17:59:47 2010 +0100

    Add GIOStreamSpliceFlags to doc

 docs/reference/gio/gio-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit e4f25c0fed49acc46de2519837b78db6c12b2df4
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Mon Dec 13 17:42:11 2010 +0100

    Add Since 2.28 in g_io_stream_splice doc

 gio/gioenums.h  | 2 ++
 gio/giostream.c | 4 ++++
 2 files changed, 6 insertions(+)

commit 0a2d47b626d130b0b795f76147c68132ede73b08
Author: Xavier Claessens <xclaesse@gmail.com>
Date:   Fri Aug 13 10:10:48 2010 +0200

    Add g_io_stream_splice_async/finish()

    That function splice the output stream of both GIOStreams to the
    input stream
    of the other GIOStream.

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gioenums.h                      |  19 +++
 gio/giostream.c                     | 248
 ++++++++++++++++++++++++++++++++++++
 gio/giostream.h                     |  11 ++
 gio/tests/Makefile.am               |   4 +
 gio/tests/io-stream.c               | 185 +++++++++++++++++++++++++++
 6 files changed, 469 insertions(+)

commit 69c6e41b54085a7febc769f3b0582abf7c650a5f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 13 09:04:28 2010 -0500

    Document the GIO_USE_TLS environment variable

 docs/reference/gio/overview.xml | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 78c34bb34f6035e01ee41a57ab4b3f2c2f91cc4d
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Nov 16 19:22:10 2010 +0100

    Fix gsettings enum rule to work with non-srcdir builds

    Bug #635007.

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce50df7e0e744a5a6f3d9e41d2b2f872f6174792
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Nov 9 22:56:28 2010 +0100

    Better error reporting for g_variant_parse()

    Add error codes, and use them when setting the GError.

    Bug #634583.

 gio/gsettings-tool.c   |  4 ++-
 glib/gvariant-parser.c | 83
 +++++++++++++++++++++++++++++++++++++++++---------
 glib/gvariant.h        | 19 +++++++++++-
 3 files changed, 89 insertions(+), 17 deletions(-)

commit ad56426bc784ab0979264058444781246e42661f
Author: Dan Winship <danw@gnome.org>
Date:   Fri Dec 10 10:01:01 2010 +0100

    Add missing property to GDummyTlsCertificate

 gio/gdummytlsbackend.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit ca38bddd6e5dc18db8fd8695d88c4de5183c7fe9
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 7 17:55:03 2010 +0100

    gio: Add a count to the resolver test for number of enumerators

    This adds the nice stress-test feature of having 5 enumerators running
    at the same time. Yay!

 gio/tests/resolver.c | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

commit bd227f52195f28460bc96d719d1ff70c28966d26
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 7 17:25:01 2010 +0100

    gio: Make enumerating a GNetworkAddress work more than once

    Previously, the code only initialized the enumerator if the address
    hadn't had cached addresses. But creating an enumerator cached the
    addresses, so the second one failed to work.

 gio/gnetworkaddress.c | 94
 +++++++++++++++++++++++++++------------------------
 1 file changed, 50 insertions(+), 44 deletions(-)

commit 07fd29c3236e479a217a5ad9875075537dfb3173
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 7 16:06:38 2010 +0100

    tls: Make g_tls_{client|server}_connection_new() return a GIOStream

    The main use case for these objects is as an IO stream, so it makes
    sense to return them that way from the start.

 gio/gsocketclient.c        | 12 +++++++-----
 gio/gtlsclientconnection.c |  4 ++--
 gio/gtlsclientconnection.h |  2 +-
 gio/gtlsserverconnection.c |  4 ++--
 gio/gtlsserverconnection.h |  2 +-
 gio/tests/socket-client.c  |  2 +-
 gio/tests/socket-server.c  |  4 ++--
 7 files changed, 16 insertions(+), 14 deletions(-)

commit c59ba60fbe0ad4d45b2d84608bece5bb032c3aa9
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 7 15:42:10 2010 +0100

    tls: Clarify docs for g_tls_client_connection_set_validation_flags()

    And fix a typo in there.

 gio/gtlsclientconnection.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 85adbc99bfa079df777ca148884e52fead3bfe7b
Author: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Date:   Tue Dec 7 17:45:06 2010 +0100

    Fix error in GSimpleAsyncResult example

 gio/gsimpleasyncresult.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f5c3e0d3d5aeed065fd09293dae6574b4a31568c
Author: Dan Winship <danw@gnome.org>
Date:   Tue Dec 7 14:58:42 2010 +0100

    Change the handling of the peer certificate in GTlsConnection

    Make the certificate and peer-certificate properties virtual, and add
    peer-certificate-errors as well. Change the documentation on
    peer-certificate to say that it's not set until after the handshake
    succeeds (which means notify::peer-certificate can be used to tell
    when a handshake has completed).

 docs/reference/gio/gio-sections.txt |   2 +-
 gio/gio.symbols                     |   2 +-
 gio/gtlsconnection.c                | 162
 ++++++++++++++++--------------------
 gio/gtlsconnection.h                |  60 +++++++------
 4 files changed, 105 insertions(+), 121 deletions(-)

commit b5a707ec90f75aac499c9804592ebb14257cf751
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 6 17:21:16 2010 +0100

    Clarify that g_socket_client_connect_to_uri() doesn't know about TLS

 gio/gsocketclient.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4f6efb681d7a85d9d04ffdba9a5f692e3d53e41e
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 6 13:10:09 2010 +0100

    Change the semantics of GTlsConnection:require-close-notify

    We were combining "allow un-notified closes" and "close without
    notifying" into a single property, which meant that it was impossible
    to "be liberal in what you accept and conservative in what you send".
    Change require-close-notify to only be about the peer behavior, and
    make our connections always close-notify properly when closing (while
    noting that you can just close the base-io-stream directly if you want
    to do an unclean close).

 gio/gtlsconnection.c | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

commit 68a3d6b27fec3bdbba27b414c0ed10396c79d3c6
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 6 12:43:59 2010 +0100

    add G_TLS_ERROR_UNAVAILABLE

 gio/gdummytlsbackend.c | 4 ++--
 gio/gioenums.h         | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 95cba183494a78ff16924e820c344e8c3fa0e7a6
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 6 11:04:13 2010 +0100

    Remove GTlsConnection::need-certificate

    Trying to do this as a signal won't work well with either
    GTlsCertificateDB (in which case looking up a certificate in the db is
    a blocking/asynchronous act) or session resumption support (in which
    case the certificate or lack thereof is part of the session definition
    and so needs to be known immediately). Make the caller use
    g_tls_connection_set_certificate() ahead of time (or when retrying)
    instead.

 docs/reference/gio/gio-sections.txt |   1 -
 gio/gio.symbols                     |   1 -
 gio/gioenums.h                      |   2 +-
 gio/gtlsclientconnection.c          |   3 +-
 gio/gtlsconnection.c                | 131
 +++++++++---------------------------
 gio/gtlsconnection.h                |   3 -
 6 files changed, 35 insertions(+), 106 deletions(-)

commit d6e94070ddb015e73573a620234a8929f8aaac16
Author: Dan Winship <danw@gnome.org>
Date:   Wed Dec 1 13:49:39 2010 -0500

    Add GTlsConnection:use-system-certdb

    This can be set FALSE if you don't want to validate certificates
    against the system database.

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/gdummytlsbackend.c              |  3 +-
 gio/gio.symbols                     |  2 ++
 gio/gtlsconnection.c                | 70
 +++++++++++++++++++++++++++++++++++++
 gio/gtlsconnection.h                |  4 +++
 5 files changed, 80 insertions(+), 1 deletion(-)

commit 73d6bd8a45429f03706ac96e5d6e045ecee18500
Author: Dan Winship <danw@gnome.org>
Date:   Tue Nov 30 19:57:16 2010 -0500

    Add g_tls_certificate_verify()

    Add a method to verify a certificate against a CA; this can be used
    for apps that need to test against non-default CAs.

    Also make the GTlsCertificate::issuer property virtual

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gtlscertificate.c               | 92
 +++++++++++++++++++------------------
 gio/gtlscertificate.h               | 32 ++++++++-----
 4 files changed, 69 insertions(+), 57 deletions(-)

commit 814c0fcaafd42c622634c7b6a34c126210b17fc2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Dec 7 01:06:33 2010 -0500

    Pass name_length to walk close function

    For efficiency and safety.  This way we don't need to scan backwards
    for
    the path separator (trusting that we will find it properly).

 gvdb-reader.c | 29 ++++++++++++++++++++++++++++-
 gvdb-reader.h |  3 ++-
 2 files changed, 30 insertions(+), 2 deletions(-)

commit 6b631fa106e833c265a4bdc6c021777e2a219f12
Author: Aron Xu <aronxu@gnome.org>
Date:   Mon Dec 6 12:44:18 2010 +0000

    Complete Simplified Chinese translation.

 po/zh_CN.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 67ab5579ba3c9c6a66e82313a61de8fdc9731b15
Author: Aron Xu <aronxu@gnome.org>
Date:   Mon Dec 6 12:40:03 2010 +0000

    Update Simplified Chinese translation.

 po/zh_CN.po | 672
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 348 insertions(+), 324 deletions(-)

commit 8530a3b029b7f691284d74e6e0c7883ba4a14725
Author: Chris Kühl <chrisk@openismus.com>
Date:   Mon Dec 6 00:34:43 2010 +0100

    Added note in g_slist_free about using *free_full to mirror GList docs

 glib/gslist.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 1a638926ff183ddb9afec8c364a58c191457e237
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Dec 5 13:19:55 2010 +0200

    Updated Hebrew translation

 po/he.po | 258
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 136 insertions(+), 122 deletions(-)

commit b52294d14ce7097c34538d4646f298461fb8d36e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 4 14:12:07 2010 -0500

    Try to fix the version test on builders

 glib/tests/utils.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 5b43de29327e1f829036ba9629835d2245f15cd3
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Dec 4 20:01:37 2010 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1472
 +++++++++++++++++++++++++++++++++-------------------------
 po/zh_TW.po | 1491
 ++++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 1720 insertions(+), 1243 deletions(-)

commit 4b28e6a0084118c78c177da3f66c8005498b9873
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 3 14:48:35 2010 -0500

    Add missing Since: tag

    g_simple_async_result_is_valid was added in 2.20.

    Bug 636351

 gio/gsimpleasyncresult.c | 2 ++
 1 file changed, 2 insertions(+)

commit 658572978b18cd11ba9d93c02d41969e1d7438eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 3 14:45:09 2010 -0500

    Reword awkward sentence in the docs

    Pointed out in bug 636305, the docs for g_queue_remove_all() had
    several grammatical errors and sounded awkward.

 glib/gqueue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 99332dd27c8a62b6d72c70fe284c0477c99d2c61
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 3 14:39:59 2010 -0500

    Avoid shadowing dir builtin

    This is the same change that was already applied to the other gdb
    script we ship. I had forgotten there was a second one.

 glib/libglib-gdb.py.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit d11f413345f8ae3da92f4aebcf828ed133cbafbb
Author: Colin Walters <walters@verbum.org>
Date:   Fri Dec 3 14:25:51 2010 -0500

    introspection: Remove spurious trailing :

    This isn't valid syntax.

 gio/gsimpleasyncresult.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 807101272893f27469bb5c507c7967334a5a0b8e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 3 14:08:36 2010 -0500

    Avoid shadowing the dir builtin

    Proposed by David Malcolm,

    https://bugzilla.gnome.org/show_bug.cgi?id=636387

 gobject/libgobject-gdb.py.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 05428e3c1ac4888b841fca3aeb9c7c9b299d2280
Author: Colin Walters <walters@verbum.org>
Date:   Fri Dec 3 10:36:16 2010 -0500

    glib: Document g_string_free semantics better in the FALSE case

 glib/gstring.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 426f90e3cf9f21c6b020cecb05116b331546fe58
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Dec 3 16:33:24 2010 +0100

    Resolve warnings about istream and ostream in socket test

 gio/tests/socket-client.c | 6 +++++-
 gio/tests/socket-server.c | 6 ++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

commit 8f19d06ed932b8fa8b1d58c7a5676aa5590be1e4
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Tue Nov 30 02:12:16 2010 +0100

    Fix typo in docs for extension point

    Introduced in fcd3e3422749ddbbf29809fcc90ffe8df9d5f696

 docs/reference/gio/overview.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 889889a296bfe58fc42a778d792d7f83f816145b
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 2 20:10:23 2010 +0100

    glib: Fix enumeration warnings from gcc 4.5

    Just introduce more values for our private enum for the cases
    that were
    missing.

 glib/giounix.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit 67740263e9a3de840e527dd45ba3d6feff512839
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 2 20:09:59 2010 +0100

    gobject: Cast token type to guint to avoid gcc warning

    The usual fix for all things GScanner...

 gobject/glib-genmarshal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9a98a81dad104058a11a4b788a64b21b235c62d
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 2 20:09:08 2010 +0100

    gio: Comment out a whole test

    ... instead of just commenting out the registration and leaving
    "unused
    function" warnings for gcc.

 gio/tests/gdbus-peer.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit b92e2cd8f8d88a62f14c49e8255802512c156152
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 2 20:08:34 2010 +0100

    gio: Remove unused variables from test

 gio/tests/gapplication-example-actions.c | 3 ---
 1 file changed, 3 deletions(-)

commit 3e61cb2fcc7648254192d0f174b437336b21c89b
Author: Bastien Nocera <hadess@hadess.net>
Date:   Thu Dec 2 16:59:22 2010 +0000

    Fix typo in API docs for GDateTime

    s/monty/month/

 glib/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9fe7fd9120940a2d50ff660f1a3cf7efd08ac01b
Author: Matthew Barnes <mbarnes@redhat.com>
Date:   Tue Nov 30 18:19:12 2010 -0600

    Bug 636100 - Can't read GSettings:backend property

    The PROP_BACKEND case was missing from the switch statement in
    g_settings_get_property().

 gio/gsettings.c | 4 ++++
 1 file changed, 4 insertions(+)

commit beec9743eba6013229befafdfe120cd7701d5214
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Tue Nov 30 23:04:17 2010 +0000

    gmain: Add Since: 2.28 tag to g_source_{add,remove}_child_source

    New API should have gtk-doc tags to document the version it was
    introduced.

    Signed-off-by: Javier Jardón <jjardon@gnome.org>

 glib/gmain.c | 4 ++++
 1 file changed, 4 insertions(+)

commit c541d234855dc7466c57ebfc3dc44b1829d9a900
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Nov 30 23:42:08 2010 +0100

    Updated Spanish translation

 po/es.po | 329
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 163 insertions(+), 166 deletions(-)

commit fdc6c5fbc171187c6c2d7fdf94d0eea7992d11f4
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Nov 29 17:35:51 2010 +0100

    Updated Galician translations

 po/gl.po | 159
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 86 insertions(+), 73 deletions(-)

commit c897dea8c164bc081623c13ac4474bcbd66b908d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 29 10:36:43 2010 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ff8817b631ab11f00c98ed372746b464a440e7c0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 29 09:30:07 2010 -0500

    Update POTFILES.in

 po/POTFILES.in | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 50a8b039a4323faf0fac68bece1be151f7fd2986
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 29 09:36:07 2010 -0500

    tiny fix to g_io_modules_scan_all_in_directory() docs

 gio/giomodule.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 78103b2f1feb5ccbdc97e47d857133826f22820d
Author: Xan Lopez <xan@gnome.org>
Date:   Mon Nov 29 15:29:12 2010 +0100

    gsettingsschema: plug leak

 gio/gsettingsschema.c | 2 ++
 1 file changed, 2 insertions(+)

commit d7a83d2f590a3568c12a50f31ed5fdc9fc691a47
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 29 08:10:11 2010 -0500

    Add another bug

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit 98bfc8afdaabffe4b63215727a580a139b7f07db
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Thu Nov 18 18:00:57 2010 +0100

    Fixes GB#635187: Always unbox GVariant parameter received via dbus
    for an action

 gio/gapplicationimpl-dbus.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit fcd3e3422749ddbbf29809fcc90ffe8df9d5f696
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 29 01:39:06 2010 -0500

    Add new extension point to the list

 docs/reference/gio/overview.xml | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

commit db83a96648944bd71ff9c1bd36c7ae898fc06664
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 29 01:20:58 2010 -0500

    Documentation tweak

 docs/reference/gobject/gobject-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 02978fff17bcff0bf0135859114d6a06463f4e8d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 29 01:16:02 2010 -0500

    Update NEWS

 NEWS          | 39 +++++++++++++++++++++++++++++++++++++++
 glib/gutils.c |  8 +++++---
 2 files changed, 44 insertions(+), 3 deletions(-)

commit eed36d38d155898a13961ef9fbb98d09049f331f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 28 23:55:43 2010 -0500

    Various doc tweaks

 docs/reference/gio/gio-docs.xml     |  8 ++--
 docs/reference/gio/gio-sections.txt |  3 +-
 gio/gaction.c                       |  2 +-
 gio/gactiongroup.c                  |  2 +-
 gio/gapplicationcommandline.c       |  3 +-
 gio/gdesktopappinfo.c               |  1 +
 gio/gperiodic.c                     | 91
 +++++++++++++++++++++++--------------
 gio/gpermission.c                   |  2 +-
 gio/gpollableinputstream.c          |  9 ++--
 gio/gpollableinputstream.h          |  2 +-
 gio/gpollableoutputstream.c         |  9 ++--
 gio/gsettings.c                     |  2 +-
 gio/gsettingsbackend.c              |  2 +-
 gio/gsimpleaction.c                 |  2 +-
 gio/gsimpleactiongroup.c            |  2 +-
 gio/gsimplepermission.c             |  2 +-
 gio/gtcpconnection.c                |  2 +-
 gio/gtcpwrapperconnection.c         |  3 +-
 gio/gtlsbackend.c                   |  2 +-
 gio/gtlscertificate.c               |  2 +-
 gio/gtlsconnection.c                |  7 +++
 21 files changed, 91 insertions(+), 67 deletions(-)

commit 1f044a503a9b1b021da970ab1bdfe203547798c1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 28 22:11:57 2010 -0500

    Remove nonexisting type

 docs/reference/gio/gio.types | 1 -
 1 file changed, 1 deletion(-)

commit 4817dae0bb2dfe9d0b575356ddf43b2f3ecd41f5
Author: Matt Rajca <matt.rajca@me.com>
Date:   Sat Nov 13 10:01:34 2010 -0600

    Removed mention of inexistent GNOME 2.0 porting guide

 docs/reference/glib/changes.sgml | 8 --------
 1 file changed, 8 deletions(-)

commit 577ddbf30baf53d8e74cd81f0a2babf590e91c26
Author: Matt Rajca <matt.rajca@me.com>
Date:   Sat Nov 13 13:01:11 2010 -0600

    Fixed typo in public string in gsocks (630559)

 gio/gsocks5proxy.c | 2 +-
 po/ar.po           | 2 +-
 po/be.po           | 2 +-
 po/bg.po           | 2 +-
 po/ca@valencia.po  | 2 +-
 po/cs.po           | 2 +-
 po/da.po           | 2 +-
 po/de.po           | 2 +-
 po/el.po           | 2 +-
 po/en_GB.po        | 2 +-
 po/es.po           | 2 +-
 po/et.po           | 2 +-
 po/eu.po           | 2 +-
 po/fi.po           | 2 +-
 po/fr.po           | 2 +-
 po/gl.po           | 2 +-
 po/he.po           | 4 ++--
 po/hu.po           | 2 +-
 po/hy.po           | 2 +-
 po/id.po           | 2 +-
 po/it.po           | 2 +-
 po/ja.po           | 2 +-
 po/lt.po           | 2 +-
 po/nb.po           | 2 +-
 po/nl.po           | 2 +-
 po/pa.po           | 2 +-
 po/pl.po           | 2 +-
 po/pt.po           | 2 +-
 po/pt_BR.po        | 2 +-
 po/ro.po           | 2 +-
 po/sl.po           | 2 +-
 po/sr.po           | 2 +-
 po/sr@latin.po     | 2 +-
 po/sv.po           | 2 +-
 po/zh_CN.po        | 2 +-
 po/zh_HK.po        | 2 +-
 po/zh_TW.po        | 2 +-
 37 files changed, 38 insertions(+), 38 deletions(-)

commit dec8323b4b301bb5aff006706b5739bb9c930fd8
Author: Jonas Holmberg <jonas.holmberg@axis.com>
Date:   Wed Sep 22 23:02:05 2010 +0200

    gobject: added property test

    Added test for setting properties with g_object_new.

 gobject/tests/properties.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 349f54756168b76913828136bc646c518c4f475f
Author: Jonas Holmberg <jonas.holmberg@axis.com>
Date:   Fri Sep 24 01:20:50 2010 +0200

    gobject: initialize memory in g_object_new_valist

    memset parameters array in g_object_new_valist to zeroes when
    expanding
    the array to avoid acces to uninitialized memory.

 gobject/gobject.c | 1 +
 1 file changed, 1 insertion(+)

commit 51894b7dd06a3b50654f9ce1fadff418d917aca1
Author: Aleksander Morgado <aleksander@lanedo.com>
Date:   Thu Nov 25 18:38:33 2010 +0100

    Fixes GB#530786: GFileMonitor 'changed' signal underdocumented

 gio/gfilemonitor.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit b4632e1c98e361cf4700f3e5dcc229a09a6237e4
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Nov 26 22:46:51 2010 +0100

    Fix the wrong-category schema test

    It's supposed to test a <default l10n="..."> with a non-existent
    category, so make it actually check this!

    Bug #635882.

 gio/tests/gschema-compile.c                       | 2 +-
 gio/tests/schema-tests/wrong-category.gschema.xml | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit bfbd7169a258ac9561f2d01755651046e13f462b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 28 17:14:49 2010 -0500

    GFileMonitor: Don't accept negative values for rate-limit

    Patch by Alksander Morgado,
    https://bugzilla.gnome.org/show_bug.cgi?id=635768

 gio/gfilemonitor.c | 16 ++++++++--------
 gio/gfilemonitor.h |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

commit 57143e311d600d3d7bd1f3c901d257918fcdb381
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Nov 26 21:05:20 2010 +0100

    Inherit gettext-domain from <schemalist>

    When the <schema> doesn't have a 'gettext-domain' attribute, but
    the <schemalist> does, use that one.

    Bug #635640.

 gio/glib-compile-schemas.c                                | 4 +++-
 gio/tests/Makefile.am                                     | 1 +
 gio/tests/gschema-compile.c                               | 4 +++-
 gio/tests/schema-tests/inherit-gettext-domain.gschema.xml | 8 ++++++++
 4 files changed, 15 insertions(+), 2 deletions(-)

commit 69129e806532796e44522775656c7800c389e5f8
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 27 16:56:44 2010 -0500

    Make gio/tests/g-icon pass again

    It got broken in two different ways by the g_str_hash() change
    (354d655b)

 gio/tests/g-icon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 17979707207ca004cd78991e1c04df60cb3b1cb6
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Nov 15 19:55:57 2010 +0100

    Typo fix

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d19e1a2c3c3da29e6f6c653dda9e4538e55c1838
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Nov 27 12:45:45 2010 +0100

    Use same variable names in .h and .c

 glib/gvariant.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 59d62726de8efdd478ca1c940134df1112a006f2
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 21 20:50:32 2009 +0100

    Add initial TLS (SSL) support to gio

    This adds an extension point for TLS connections to gio, with a
    gnutls-based implementation in glib-networking.

    Full TLS support is still a work in progress; the current API is
    missing some features, and parts of it may still be changed before
    2.28.

    https://bugzilla.gnome.org/show_bug.cgi?id=588189

 docs/reference/gio/gio-docs.xml     |   9 +
 docs/reference/gio/gio-sections.txt | 129 ++++++-
 docs/reference/gio/gio.types        |   5 +
 gio/Makefile.am                     |  13 +-
 gio/gdummytlsbackend.c              | 274 ++++++++++++++
 gio/gdummytlsbackend.h              |  46 +++
 gio/gio-marshal.list                |   2 +
 gio/gio.h                           |   5 +
 gio/gio.symbols                     |  77 +++-
 gio/gioenums.h                      | 100 +++++
 gio/giomodule.c                     |   6 +
 gio/giotypes.h                      |   8 +
 gio/gsocketclient.c                 | 310 +++++++++++++---
 gio/gsocketclient.h                 |   7 +
 gio/gtlsbackend.c                   | 201 ++++++++++
 gio/gtlsbackend.h                   |  92 +++++
 gio/gtlscertificate.c               | 486 ++++++++++++++++++++++++
 gio/gtlscertificate.h               |  75 ++++
 gio/gtlsclientconnection.c          | 333 +++++++++++++++++
 gio/gtlsclientconnection.h          |  72 ++++
 gio/gtlsconnection.c                | 720
 ++++++++++++++++++++++++++++++++++++
 gio/gtlsconnection.h                | 137 +++++++
 gio/gtlsserverconnection.c          |  96 +++++
 gio/gtlsserverconnection.h          |  61 +++
 gio/tests/socket-client.c           | 195 ++++++----
 gio/tests/socket-common.c           |  61 +++
 gio/tests/socket-server.c           | 164 ++++----
 27 files changed, 3473 insertions(+), 211 deletions(-)

commit a1690339c731cf037d3ed97eda864159f2ba9308
Author: Dan Winship <danw@gnome.org>
Date:   Mon Nov 1 20:22:24 2010 -0400

    make GProxyConnection public, as GTcpWrapperConnection

    GProxyConnection is a class that was added for proxy support;
    g_socket_client_connect() returns a GSocketConnection, but in some
    cases (eg, encrypted SOCKS), GProxy might return a GIOStream that is
    not a GSocketConnection. In that case, GSocketClient would wrap the
    stream up in a GProxyConnection, which is a subclass of
    GSocketConnection but uses the input/output streams of the wrapped
    connection.

    GTlsConnection is not a GSocketConnection, so it has the same problem,
    so it will need the same treatment. Rename the class to
    GTcpWrapperStream, and make it public, so people can extract the base
    stream from it when necessary.

    (This is not ideal and GSocketClient will need to be revisited as an
    API at some point...)

    https://bugzilla.gnome.org/show_bug.cgi?id=588189

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  19 ++++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   4 +-
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   8 ++
 gio/giotypes.h                      |   1 +
 gio/gproxyconnection.c              | 155 ----------------------------
 gio/gproxyconnection.h              |  69 -------------
 gio/gsocketclient.c                 |  56 +++++-----
 gio/gtcpwrapperconnection.c         | 200
 ++++++++++++++++++++++++++++++++++++
 gio/gtcpwrapperconnection.h         |  68 ++++++++++++
 12 files changed, 332 insertions(+), 251 deletions(-)

commit c20c2c0abd3bdb1b30b85a586ee6095ed75a7bc2
Author: Dan Winship <danw@gnome.org>
Date:   Sat Sep 18 13:05:25 2010 -0400

    Add pollable input/output streams

    When interfacing with APIs that expect unix-style async I/O, it is
    useful to be able to tell in advance whether a read/write is going to
    block. This adds new interfaces GPollableInputStream and
    GPollableOutputStream that can be implemented by a GInputStream or
    GOutputStream to add _is_readable/_is_writable, _create_source, and
    _read_nonblocking/_write_nonblocking methods.

    Also, implement for GUnixInput/OutputStream and
    GSocketInput/OutputStream

    https://bugzilla.gnome.org/show_bug.cgi?id=634241

 docs/reference/gio/gio-docs.xml     |   2 +
 docs/reference/gio/gio-sections.txt |  41 +++++
 docs/reference/gio/gio.types        |   3 +
 gio/Makefile.am                     |   4 +
 gio/gio.h                           |   2 +
 gio/gio.symbols                     |  21 +++
 gio/giotypes.h                      |  18 +++
 gio/gpollableinputstream.c          | 304
 ++++++++++++++++++++++++++++++++++++
 gio/gpollableinputstream.h          | 101 ++++++++++++
 gio/gpollableoutputstream.c         | 201 ++++++++++++++++++++++++
 gio/gpollableoutputstream.h         |  98 ++++++++++++
 gio/gsocketconnection.c             |   3 +-
 gio/gsocketinputstream.c            |  59 ++++++-
 gio/gsocketoutputstream.c           |  60 ++++++-
 gio/gunixinputstream.c              |  51 +++++-
 gio/gunixoutputstream.c             |  50 +++++-
 gio/tests/.gitignore                |   1 +
 gio/tests/Makefile.am               |   4 +
 gio/tests/pollable.c                | 240 ++++++++++++++++++++++++++++
 19 files changed, 1251 insertions(+), 12 deletions(-)

commit 6181c7de36771d4d3bb55785912a934e078b16df
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 6 15:49:55 2010 -0400

    GCancellable: add g_cancellable_create_source()

    g_cancellable_create_source() returns a GSource that triggers when its
    corresponding GCancellable is cancelled. This can be used with
    g_source_add_child_source() to add cancellability to a source.

    Port gasynchelper's FDSource to use this rather than doing its own
    cancellable handling, and also fix up its callback argument order to
    be more normal.

    https://bugzilla.gnome.org/show_bug.cgi?id=634239

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gasynchelper.c                  |  47 ++++-----------
 gio/gcancellable.c                  | 116
 ++++++++++++++++++++++++++++++++++++
 gio/gcancellable.h                  |   2 +
 gio/gio.symbols                     |   1 +
 gio/giotypes.h                      |  15 +++++
 6 files changed, 146 insertions(+), 37 deletions(-)

commit d15cdbefecc235cfa431ee7de9c35af174bd1552
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 6 10:11:15 2010 -0400

    gmain: add g_source_add_child_source and g_source_remove_child_source

    This adds "child source" support to GSource. A child source behaves
    basically like a GPollFD; when you add a source to a context, all of
    its child sources are added with the same priority; when you destroy a
    source, all of its child sources are destroyed; and when a child
    source triggers, its parent source's dispatch function is run.

    Use cases include:

        - adding a GTimeoutSource to another source to cause the source to
          automatically trigger after a certain timeout.

        - wrapping an existing source type with a new type that has
          a different callback signature

        - creating a source that triggers based on different conditions
          at different times.

    https://bugzilla.gnome.org/show_bug.cgi?id=634239

 docs/reference/glib/glib-sections.txt |   2 +
 glib/glib.symbols                     |   2 +
 glib/gmain.c                          | 266
 ++++++++++++++++++++++++++++------
 glib/gmain.h                          |  17 ++-
 4 files changed, 239 insertions(+), 48 deletions(-)

commit e910205557b2461eaf1b2ce94176c6525cc716d1
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 7 11:49:40 2010 -0500

    Add g_source_set_dummy_callback()

    Use g_source_set_closure() and g_close_set_meta_marshal() to allow
    setting a do-nothing callback on any source.

    https://bugzilla.gnome.org/show_bug.cgi?id=634239

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gobject.symbols                     |  1 +
 gobject/gsourceclosure.c                    | 39
 ++++++++++++++++++++++++++++-
 gobject/gsourceclosure.h                    |  6 +++--
 4 files changed, 44 insertions(+), 3 deletions(-)

commit 73d823ac1ee0716568130407a4c164f6c145a75f
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 7 11:05:26 2010 -0500

    Implement closure-related methods for gio GSource types

    Also, fix up the argument ordering on GFDSourceFunc

    https://bugzilla.gnome.org/show_bug.cgi?id=634239

 gio/gasynchelper.c      | 59
 +++++++++++++++++++++++++++++++++++++++++++++++--
 gio/gasynchelper.h      |  4 ++--
 gio/gio-marshal.list    |  2 ++
 gio/gsocket.c           | 33 ++++++++++++++++++++++++++-
 gio/gunixinputstream.c  |  4 ++--
 gio/gunixoutputstream.c |  4 ++--
 6 files changed, 97 insertions(+), 9 deletions(-)

commit ece936e84dd64af12cb609a8d25f3711a288cc57
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 6 09:45:20 2010 -0400

    gmain: fix some silly code in a programmer-error case

    Previously if a source got finalized while still attached to a
    context, it would warn and re-ref the source. But then it just freed
    it anyway... So keep the warning but drop the re-ref.

    https://bugzilla.gnome.org/show_bug.cgi?id=634239

 glib/gmain.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit b358202856682e5cdefb0b4b8aaed3a45d9a85fa
Author: Dan Winship <danw@gnome.org>
Date:   Sat Nov 6 09:35:25 2010 -0400

    gmain: move finalization of GSource outside of context lock

    This avoids ugly deadlock situations such as in
    https://bugzilla.gnome.org/show_bug.cgi?id=586432

    https://bugzilla.gnome.org/show_bug.cgi?id=626702

    https://bugzilla.gnome.org/show_bug.cgi?id=634239

 glib/gmain.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 3570c4a00ef25908172d4d51e30810dddcea1ee8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 24 16:00:32 2010 -0500

    Add indices for new symbols in 2.28

 docs/reference/gio/gio-docs.xml          | 4 ++++
 docs/reference/glib/glib-docs.sgml       | 4 ++++
 docs/reference/gobject/gobject-docs.sgml | 4 ++++
 3 files changed, 12 insertions(+)

commit e5dd266c33509fe214dfa3a0b66f66e9f166ebc6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 24 15:57:40 2010 -0500

    Add Since: tags for new api

    Also, remove <!-- --> from things like #GAppInfo<!-- -->s.
    gtk-doc learned to deal with this a while ago.

 gio/gdesktopappinfo.c | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

commit ee94915d0b78da7a016b4df29f0dce6236c1acfc
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed Nov 24 18:06:17 2010 +0100

    docs: gappinfo: Fix typo <envvar> -> <envar>

 gio/gappinfo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5f958e4623df830f89241b158b14ef7d994cf2c2
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Nov 19 11:37:44 2010 +0100

    tests: add a test for recommended and fallback GAppInfos

 gio/tests/desktop-app-info.c | 72
 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

commit b3bf7a648453e59daa83f745faf9102a90cdfbac
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Nov 19 10:39:33 2010 +0100

    appinfo: add win32 fallback implementation

 gio/gwin32appinfo.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 30c378032fe43975dc3ea1014b5b873ef6e3d017
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Nov 19 10:39:16 2010 +0100

    appinfo: update docs for API addition

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/gdesktopappinfo.c               | 22 ++++++++++++++++++++++
 gio/gio.symbols                     |  2 ++
 3 files changed, 26 insertions(+)

commit 182fcff2ea2b8f183570d8c026a9ef4d2ec2afdf
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Thu Nov 18 18:49:32 2010 +0100

    appinfo: only rewrite recommended applications when adding non-default

    Otherwise you break the fallback + recommended distinction for
    a content
    type, as you end up adding support for a given content type to
    *all* of
    the applications claiming to support the supertype.

 gio/gdesktopappinfo.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 94c67d8420889e950c2f093abdd893ffe3780a97
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Thu Nov 18 18:45:56 2010 +0100

    appinfo: add API to get fallback and recommended GAppInfos for a ctype

    This ways UIs can differentiate between them, and show them in
    different
    section.
    - a recommended app is an application that claims to support a content
      type directly, not by a supertype derivation.
    - a fallback app is an application that claims to support a
    supertype of
      a given content type.

 gio/gappinfo.h        |   3 ++
 gio/gdesktopappinfo.c | 127
 ++++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 105 insertions(+), 25 deletions(-)

commit a70ba9c8b15451a8722aebfb64232bd18abf0a79
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date:   Sun Nov 21 21:59:57 2010 -0500

    Fix off-by-1000 for GTimer

    Divide monotonic time by 1e6 not 1e9 to get seconds.

 glib/gtimer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ab3a79e2c9be13aea5b2ce0980f3a641c5ed081d
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Sun Nov 21 21:20:44 2010 +0100

    Check for (GIConv)-1 instead of NULL.

 gio/gcharsetconverter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit bcbf9153d5933476d267ba5da18dd72e99fac20a
Author: Gheyret T.Kenji <gheyret@gmail.com>
Date:   Sat Nov 20 11:26:41 2010 +0100

    Added UG translation

 po/ug.po | 72
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 36 insertions(+), 36 deletions(-)

commit 96e9677fd7433cfbf27d18f66d55635195fcc44d
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Nov 18 14:08:34 2010 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 1412
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 780 insertions(+), 632 deletions(-)

commit 260d005616b7150c3e560a9fc29734a19ab8e24e
Author: Colin Walters <walters@verbum.org>
Date:   Wed Nov 17 20:06:07 2010 -0500

    introspection: Add annotations for g_file_copy, g_file_move

 gio/gfile.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 354d655ba8a54b754cb5a3efb42767327775696c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 17 12:19:54 2010 -0500

    g_str_hash: switch to using DJB hash

    This is the same as what we were already doing with 2 changes:

      - use an initial value of 5381 instead of 0

      - multiply by 33 in each round instead of 31

 glib/gstring.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit f50a99e7827f4b906cfe9ced27096b047f65ac80
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 17 11:57:48 2010 -0500

    g_str_hash: clean up code

    Un-unroll the first iteration.

    No functional changes here.

 glib/gstring.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 2bfcffde9ae5b14e78a4279bf48c71897c5f19d8
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Tue Nov 16 14:20:07 2010 +0100

    GIO: Hide mounts having a path element starting with dot

    When a mount is mounted to a directory whose path contains an element
    starting with dot, let's treat it as hidden, just like the usual Unix
    approach.

 gio/gunixmounts.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 010913c8ab3f161ac8e9c676bc89d3a30db092ce
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Nov 14 02:08:51 2010 +0100

    docs: Update the URL of some documentation links

    http://developer.gnome.org -> http://library.gnome.org

 INSTALL.in                           | 2 +-
 docs/reference/gobject/tut_tools.xml | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

commit f4142b321b2cdc2bb5a74716b29f35a141c9a8d2
Author: Gheyret T.Kenji <gheyret@gmail.com>
Date:   Sun Nov 14 00:05:02 2010 +0100

    Added UG translation

 po/LINGUAS | 1 +
 1 file changed, 1 insertion(+)

commit a0e0f25de687f5d748ae23421572b1fc60b248c2
Author: Gheyret T.Kenji <gheyret@gmail.com>
Date:   Sat Nov 13 22:10:03 2010 +0100

    Added UG translation

 po/ug.po | 3522
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 3522 insertions(+)

commit b53b61a000fdd72c76b96f58e3835f50ad8335f1
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Sat Nov 13 14:01:29 2010 +0100

    [l10n] Updated Italian translation

 po/it.po | 2353
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1556 insertions(+), 797 deletions(-)

commit 9faed56eda38ed35dd9841d2de1ac659d8db5a36
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Nov 13 00:59:45 2010 +0100

    Updated Galician translations

 po/gl.po | 144
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 72 insertions(+), 72 deletions(-)

commit 48ca3add143896fa5664860a94947907cfe5daa2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 11 21:47:13 2010 -0500

    G_STATIC_ASSERT: clarify when use is valid

    Clarify when the use of G_STATIC_ASSERT is valid and fix up an invalid
    use of it in GDBus.

 docs/reference/glib/tmpl/macros_misc.sgml | 6 ++++++
 gio/gdbusmessage.c                        | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

commit 6bc20651ecf8e8b5d9ffea89ae76083ededa3c0b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 11 21:30:03 2010 -0500

    Partial revert of last commit

    Revert incorrect changes to gdbusmessage.c

 gio/gdbusmessage.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit d28bce02dc62ac863ddafce8d525e6bc929db873
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Wed Nov 10 12:03:11 2010 +0100

    emblemed-icon: allow passing a NULL emblem to g_emblemed_icon_new()

    So that if we already have a list of emblems we know we want to add to
    the icon, we can use e.g. a for loop to add them all, without picking
    the first and looping from the second.

    https://bugzilla.gnome.org/show_bug.cgi?id=634504

 gio/gemblemedicon.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit fb94859e84c0b7859a0a5425d461b18e67ea9ac7
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 9 07:19:19 2010 -0500

    API: Reinstate "gio-desktop-app-info-lookup" extension point

    Removing an extension point is an API and ABI break. In particular, it
    causes (older) gvfs versions to fail loading with a linkage error from
    ld which in turn makes the desktop unusable.
    So this reinstate the extension point and API provided by it, but
    deprecates and does not use it. So no functionality is changed.

    This reverts parts of commit 9b262f1c5fe5a6fd879f17cd7b80d8c54e33d80c.

    Complaints-Also-To: Ryan Lortie <desrt@desrt.ca>

 gio/gdesktopappinfo.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 gio/gdesktopappinfo.h | 40 ++++++++++++++++++++++++++++++++++++++++
 gio/gio.symbols       |  2 ++
 gio/giomodule.c       | 16 +++++++++++++---
 4 files changed, 97 insertions(+), 3 deletions(-)

commit 9f02ee790b03b4c9e73490734ddb4740219b1d36
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 20:36:53 2010 +0800

    gio: Fix C99 style variable declarations (bug #633075)

    -gdbusmessage.c and gregistrysettingsbackend.c is updated to fix
    C99-style declarations
    -also fixed typo for displaying registry entry in
    gregistrysettingsbackend.c (\% -> \\%)

 gio/gdbusmessage.c             |  5 ++++-
 gio/gregistrysettingsbackend.c | 21 ++++++++++++++-------
 2 files changed, 18 insertions(+), 8 deletions(-)

commit 029f3070e7334daf8241dfe0db8288f80110f839
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 20:32:39 2010 +0800

    gtimer.c: Revert accidental overwrite

    Revert accidental overwrite as timing API was changed from 2.27.2
    to 2.27.3

 glib/gtimer.c | 73
 ++++++++---------------------------------------------------
 1 file changed, 9 insertions(+), 64 deletions(-)

commit db7ea5e5584f768e978bb101000bf8a602384f6d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 8 23:06:53 2010 -0500

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f023d8b9bc6d86482fc020acf46ce965ff94c37b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 8 21:40:17 2010 -0500

    Update NEWS

 NEWS | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

commit 9806040455d6d482db3908f2d56ddfe455bae660
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 09:53:12 2010 +0800

    Added and Moved checks for includes

    Moved checks for G_OS_WIN32 after GLib header includes and added
    other checks
    required for Windows/MSVC builds

 glib/gdatetime.c | 10 ++++----
 glib/gmessages.c | 18 ++++++-------
 glib/gscanner.c  |  8 +++---
 glib/gtimer.c    | 77
 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 4 files changed, 85 insertions(+), 28 deletions(-)

commit 4a012a9754d51a36914c626b41ad757a89e57f86
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 09:50:11 2010 +0800

    Updated README.txt for VS9

 build/win32/vs9/README.txt | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

commit 0af6343fedaf95d3710af8a1535da4d32cfccff9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 09:27:27 2010 +0800

    Updated .def generation for x64

    Some symbols need to be excluded from the .def file as they are set
    to be so on Win64

 build/win32/vs9/gmodule.vcproj | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9d4423c15d8684be27496f1905e063ec7e18cc21
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 09:26:05 2010 +0800

    Various updates...

    -Made up for missed header files in glib and gio during "install"
    -Added macro necessary for GLib/GModule .def generation under Win64
    -updated location of getting glibconfig.h.win32 for building

 build/win32/vs9/glib.vsprops | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

commit e655a849e3cd7357dcef873163712df13889353f
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 09:23:47 2010 +0800

    Some enhancements for Win64 and using existing PCRE installtions

    Added option for people to use an existing PCRE build and updated
    .def generation for x64 systems (some symbols are set to be excluded
    from Win64 builds)
    Also fixed the filter "PCRE" for the bundled PCRE as file layout
    changed

 build/win32/vs9/glib.vcprojin | 314
 +++++++++++++++++++++++++++++++++++++++---
 1 file changed, 292 insertions(+), 22 deletions(-)

commit 50ca3571041881d7728f9a6fb0e924681113fb5e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 09:11:48 2010 +0800

    Added option to use existing installation of PCRE

    Allow the person compiling GLib to use his/her own copy of PCRE,
    bug#633075

 build/win32/vs9/glib.sln | 85
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 85 insertions(+)

commit 8c4a96c6ff389aa319993857d79e0afcdf24d7c9
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 9 09:08:45 2010 +0800

    Made up for missed source files

    Made up for missing required source files in  gio.vcproj(in) for
    Windows builds

 build/win32/vs9/gio.vcprojin | 7 +++++++
 1 file changed, 7 insertions(+)

commit 587c9d09e25b0a0e3779e6a19493c9264696a46f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 8 18:15:32 2010 -0500

    GPeriodic: enable subclassing

    Move GPeriodic struct and class struct to the header.  Do ->priv.

 gio/gperiodic.c | 138
 ++++++++++++++++++++++++++++----------------------------
 gio/gperiodic.h |  21 +++++++++
 2 files changed, 89 insertions(+), 70 deletions(-)

commit 9fbfac6abb45aad97349f68aef29410e3bef4cfd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 8 16:59:29 2010 -0500

    GPeriodic: remove repair functions

    Replace it with a single repair signal that either fires or does not.

 docs/reference/gio/gio-sections.txt |   1 -
 gio/gio-marshal.list                |   2 +-
 gio/gperiodic.c                     | 134
 ++++++++++++++++--------------------
 gio/gperiodic.h                     |   9 +--
 4 files changed, 63 insertions(+), 83 deletions(-)

commit 1a1fc130ece13a442dcacaba1db9108089cead38
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 8 16:42:32 2010 -0500

    New function: g_clear_object()

    By analogy to g_clear_error, takes a pass-by-reference GObject
    reference
    and, if non-%NULL, unrefs it and sets it equal to %NULL.

    Bug #620263.

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gobject.c                           | 38
 +++++++++++++++++++++++++++++
 gobject/gobject.h                           | 15 ++++++++++++
 gobject/gobject.symbols                     |  1 +
 gobject/tests/.gitignore                    |  1 +
 gobject/tests/Makefile.am                   |  3 ++-
 gobject/tests/reference.c                   | 35
 ++++++++++++++++++++++++++
 7 files changed, 93 insertions(+), 1 deletion(-)

commit 78bc8bec4f44a48e5e538f1f9ac9b9e43a9fc833
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 7 12:56:44 2010 -0500

    fix .gitignore

 gio/tests/.gitignore | 4 ++++
 1 file changed, 4 insertions(+)

commit 791d91a957f8fc243b6629a015132c22675399ab
Author: Dan Winship <danw@gnome.org>
Date:   Sun Nov 7 12:56:08 2010 -0500

    fix make check

 gio/gsettings.c       |  2 +-
 gio/tests/gsettings.c | 10 +++++-----
 glib/glib.symbols     |  1 +
 3 files changed, 7 insertions(+), 6 deletions(-)

commit ba9fccf71e667c1d05d05fab794ab41b2c387a81
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Nov 6 17:34:40 2010 -0400

    g_get_user_runtime_dir(): New function

    Get the value of the XDG_RUNTIME_DIR environment variable.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/gutils.c                         | 49
 +++++++++++++++++++++++++++++++++++
 glib/gutils.h                         |  2 ++
 3 files changed, 52 insertions(+)

commit 71088701af6ff0658313069219565923d5a03280
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 5 22:07:07 2010 -0400

    Add G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE

    If specified, the signal subscription is setup client-side but
    the match
    rule is not sent to the server.  This allows the caller to manually
    register more detailed match rules.

 gio/gdbusconnection.c | 22 ++++++++++++++++++++--
 gio/gioenums.h        |  6 +++++-
 2 files changed, 25 insertions(+), 3 deletions(-)

commit fa774618fcbd1afaa30507c9d75a46f9fa7bc288
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Nov 6 12:27:01 2010 +0100

    Fix docs comment typo

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8464db88adf36964c0898b74e1d122136fa0696b
Author: A S Alam <aalam@users.sf.net>
Date:   Sat Nov 6 10:48:55 2010 +0530

    update Punjabi Translation by A S Alam

 po/pa.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 79a29a10362019b3ec5e361c7dbbadf084355f9c
Author: A S Alam <aalam@users.sf.net>
Date:   Sat Nov 6 10:47:54 2010 +0530

    update Punjabi Translation by A S Alam

 po/pa.po | 901
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 557 insertions(+), 344 deletions(-)

commit 7fc6f8a1596b18a23e1570fc6716b34a137b76c6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 5 21:33:06 2010 -0400

    Add g_variant_lookup() and tests

    Convenience API for doing lookups in dictionaries where the key is a
    string or object path.

 docs/reference/glib/glib-sections.txt |   2 +
 glib/glib.symbols                     |   2 +
 glib/gvariant.c                       | 144
 ++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |   7 ++
 glib/tests/gvariant.c                 |  74 +++++++++++++++++
 5 files changed, 229 insertions(+)

commit 57b4b7099f6e6918210d5d99a24f42b33021bab0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 5 14:50:01 2010 -0400

    Fix markup

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 38bc42d18edcfdc47cad018dbd6e562f21541f9b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 5 14:29:15 2010 -0400

    Fix up gapplication example

 gio/tests/gapplication-example-cmdline2.c | 1 +
 1 file changed, 1 insertion(+)

commit 67c03fee2a90079b75bbbb71c004ef00af750f21
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 5 14:28:44 2010 -0400

    Describe enum and flags types a bit

 gio/gsettings.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit d1b00fe23df265f6cf8a288a34db8fdeb31d9900
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 5 13:56:42 2010 -0400

    Update the gschema dtd to include flags

 gio/gschema.dtd | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit bc793255bc75300bfa96bfd842343c26af8b0744
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 5 09:31:36 2010 -0400

    Report more useful errors from g_settings_set_value

 gio/gsettings.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

commit 393834ac6f32633a31e52441b051dc7d3969a530
Author: Dan Winship <danw@gnome.org>
Date:   Thu Nov 4 15:23:22 2010 -0400

    gsettings.m4: Fix rules to work when there are no schemas

    If there are no schemas, don't try to install "" at install time.
    (In particular, automake conditionals don't work properly with
    @-expanded rules, so if you conditionally build a schema, you'll
    still unconditionally get the install rule.)

    https://bugzilla.gnome.org/show_bug.cgi?id=633381

 m4macros/gsettings.m4 | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 094082841877b8b70a0d793ff091bb74793210b6
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Oct 26 12:20:22 2010 +0300

    Clarify docs for g_path_is_absolute() semantics on Windows

 glib/gutils.c | 31 ++++++++++++++++++++++++++-----
 1 file changed, 26 insertions(+), 5 deletions(-)

commit 954e7d149359152a9b6dccf2322399f87ed5bd1f
Author: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date:   Sun Oct 31 20:12:26 2010 +0200

    Updated Belarusian translation

 po/be.po | 3412
 +++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 2137 insertions(+), 1275 deletions(-)

commit ba45e36932206f30bb439f27c49529d934207fd1
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Sep 23 13:47:13 2010 +0200

    Add g_simple_async_report_take_gerror_in_idle

    ... and use it where appropriate. Saves an extra GError copy.

    Bug #633686.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gbufferedinputstream.c          |  3 +--
 gio/gfileinputstream.c              |  3 +--
 gio/gfileiostream.c                 |  3 +--
 gio/gfileoutputstream.c             |  3 +--
 gio/ginputstream.c                  |  9 +++------
 gio/gio.symbols                     |  1 +
 gio/giostream.c                     |  3 +--
 gio/goutputstream.c                 | 12 ++++--------
 gio/gsimpleasyncresult.c            | 34
 +++++++++++++++++++++++++++++++++-
 gio/gsimpleasyncresult.h            |  6 +++++-
 gio/gsocketclient.c                 |  6 ++----
 gio/gsocketconnection.c             |  3 +--
 gio/gsocketlistener.c               |  3 +--
 14 files changed, 56 insertions(+), 34 deletions(-)

commit 9e0c07870af1dac84c033031cf301671779c8328
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Sep 23 13:02:50 2010 +0200

    Use g_simple_async_result_{new_,}take_error

    Bug #633685.

 gio/gasyncinitable.c           |  5 +--
 gio/gbufferedinputstream.c     | 32 +++++++----------
 gio/gbufferedoutputstream.c    |  5 +--
 gio/gdatainputstream.c         |  3 +-
 gio/gdbusaddress.c             |  5 +--
 gio/gdbusconnection.c          | 23 ++++--------
 gio/gdbusprivate.c             |  9 ++---
 gio/gdbusproxy.c               | 13 +++----
 gio/gdummyproxyresolver.c      |  3 +-
 gio/gfile.c                    | 80
 ++++++++++--------------------------------
 gio/gfileenumerator.c          |  5 +--
 gio/gfileicon.c                |  3 +-
 gio/gfileinputstream.c         |  5 +--
 gio/gfileoutputstream.c        |  5 +--
 gio/ginputstream.c             | 26 +++++---------
 gio/giostream.c                |  5 +--
 gio/gloadableicon.c            |  3 +-
 gio/gnetworkaddress.c          |  3 +-
 gio/gnetworkservice.c          |  6 ++--
 gio/goutputstream.c            | 23 ++++--------
 gio/gproxyaddressenumerator.c  | 17 +++------
 gio/gsocketaddressenumerator.c |  6 ++--
 gio/gsocketclient.c            |  3 +-
 gio/gsocketinputstream.c       |  5 +--
 gio/gsocketlistener.c          |  3 +-
 gio/gsocketoutputstream.c      |  5 +--
 gio/gsocks4aproxy.c            |  8 ++---
 gio/gsocks5proxy.c             |  4 +--
 gio/gtcpconnection.c           | 11 ++----
 gio/gunixinputstream.c         | 10 ++----
 gio/gunixmount.c               |  3 +-
 gio/gunixoutputstream.c        | 10 ++----
 gio/gunixresolver.c            | 18 +++-------
 gio/gunixvolume.c              |  3 +-
 34 files changed, 98 insertions(+), 270 deletions(-)

commit 63b87b2c26bf983823f83943b8d752bd053ce539
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 3 00:16:16 2010 -0400

    Add simple dynamic scheduling to GPeriodic

    GPeriodic will now try not to use more than 50% of the CPU for its own
    purposes unless there are no other tasks attempting to run.

 docs/reference/gio/gio-sections.txt |   3 +-
 gio/gio.symbols                     |   3 +-
 gio/gperiodic.c                     | 155
 +++++++++++++++++++++++++++++++++---
 gio/gperiodic.h                     |   6 +-
 4 files changed, 151 insertions(+), 16 deletions(-)

commit 8c7e284116085058fa8b2600e02502aa6acb3f9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 2 22:39:58 2010 -0400

    Tweak GApplication docs

 gio/gapplication.c                        |  9 +++++++++
 gio/tests/gapplication-example-actions.c  |  7 -------
 gio/tests/gapplication-example-cmdline.c  |  4 ----
 gio/tests/gapplication-example-cmdline2.c |  4 ----
 gio/tests/gapplication-example-open.c     | 16 +++++++++++-----
 5 files changed, 20 insertions(+), 20 deletions(-)

commit 1cf14de82f3ad4beceeeb9ba555763ef8d70ed24
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 2 22:12:55 2010 -0400

    docs: Recommend against using GTimeVal

 docs/reference/glib/tmpl/date.sgml | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit e4ad3442c042431918de178c5dc29ce6abb31ff2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 2 22:03:08 2010 -0400

    GMainContext: store real time as int64

 glib/gmain.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

commit d22681feb44daa0209cf55c8e45cc8f0c13d4ded
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 1 17:04:31 2010 -0400

    glocalfileinfo: remove non-use of GTimeVal

 gio/glocalfileinfo.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 5dab4727ee604d3a7a2be3aa7dde739b71d7f5df
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 1 16:40:36 2010 -0400

    Add g_get_real_time() for wall-clock int64 micros

    Similar in spirit to g_get_monotonic_time().

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gmain.c                          | 31
 ++++++++++++++++++++++++++++++-
 glib/gmain.h                          |  1 +
 4 files changed, 33 insertions(+), 1 deletion(-)

commit 38e7aa9855a3e18d5350733ee4177ab00cee15df
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 1 16:35:10 2010 -0400

    Clean up g_usleep()

    Remove some code that was written in 2000 to support OSes that do not
    have nanosleep().  nanosleep() has been specified (in POSIX-1.2001)
    for
    almost a decade now, so assume we have it (except on Windows).

    Remove the checks for nanosleep and nsleep from configure.ac.

    We're removing this code because we honestly believe that nobody
    will be
    affected.  If this change negatively impacts you, please file a bug.

 configure.ac  |  1 -
 glib/gtimer.c | 48 ++----------------------------------------------
 2 files changed, 2 insertions(+), 47 deletions(-)

commit a48faa0aed1c422ba04301a4786419de44ea65e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 1 16:06:39 2010 -0400

    GTimer: switch to monotonic time

    and remove docs notes about threads having to be initialised.

 glib/gtimer.c | 27 ++++++++-------------------
 1 file changed, 8 insertions(+), 19 deletions(-)

commit 92df8a1d7766dbb51d84c0373daa77eb1cce3a18
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 1 15:47:29 2010 -0400

    Drop GTimeSpec type

 docs/reference/glib/glib-sections.txt |  1 -
 glib/gmain.c                          | 10 ----------
 glib/gtypes.h                         |  8 --------
 3 files changed, 19 deletions(-)

commit c3a0d32ef1413f942890796aa20f7b1a54254eff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 1 15:46:35 2010 -0400

    Switch GTimeSpec users to int64 microseconds

    glib is trying to move toward using microseconds-in-gint64 as its
    universal time format.

    No real API breaks here since GTimeSpec is new this unstable release
    series.

 gio/gperiodic.c |  33 ++--------
 gio/gperiodic.h |   2 +-
 gio/gsocket.c   |  35 +++++------
 glib/gmain.c    | 183
 +++++++++++++++++++++++---------------------------------
 glib/gmain.h    |   7 +--
 5 files changed, 101 insertions(+), 159 deletions(-)

commit d9f5ab56c3b79fb12b4ee4f19a8b6307445cc403
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 1 13:31:37 2010 -0400

    GTimeout: simplify math for 'seconds' case

    The code was designed to deal with any granularity of timer and due to
    the use of GTimeVal/GTimeSpec, the math for this gets extremely
    confusing.

    From a practical standpoint, we only ever have a granularity of
    seconds.

    Take advantage of that fact in the code and vastly simplify the math.

 glib/gmain.c | 74
 ++++++++++++++++++++++--------------------------------------
 1 file changed, 27 insertions(+), 47 deletions(-)

commit b6854efdb94b74f791cbcc622942825dc042eefc
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Nov 2 10:46:10 2010 +0100

    Updated Spanish translation

 po/es.po | 90
 +++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 55 insertions(+), 35 deletions(-)

commit 00e09af412f8d30c5980f549341cf28a2d6a8847
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon Nov 1 18:50:46 2010 +0100

    Updated Spanish translation

 po/es.po | 494
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 337 insertions(+), 157 deletions(-)

commit b2d0260b85c6eb47f9ac0263f26657cbc9fe9909
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Nov 1 17:15:38 2010 +0100

    Updated Galician translations

 po/gl.po | 620
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 386 insertions(+), 234 deletions(-)

commit 361afb3a62c7940c0f303eac99d84ac21e4dcb37
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Mon Nov 1 14:36:57 2010 +0100

    Fix gtk-doc typo

 gio/gmount.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7434c1725dc7a5f44a9f2d9787eaa7c1c9027906
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Nov 1 11:06:26 2010 +0100

    Fix Since: for new functions

    g_simple_async_result_new_from_error/take_error are Since: 2.28.

 gio/gsimpleasyncresult.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5327db4c2f83acf9cda3e7cc3ddca8f3eaeb570f
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Mon Nov 1 08:17:02 2010 +0200

    Updated Hebrew translation.

 po/he.po | 406
 +++++++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 292 insertions(+), 114 deletions(-)

commit 81f93eb29c76c941e6bfe6c20510f8cb04edfa0a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 1 00:32:47 2010 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a50c0ca69961ef4d1a372cc31483de65266f1a52
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 23:32:48 2010 -0400

    NEWS for 2.27.2

 NEWS | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

commit b4248cb5da7751a2b1d16c48ea0acc5f3e7c4348
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 23:19:04 2010 -0400

    Remove nonexisting type from giotypes.h

    GDBusActionGroup does not exist yet.

 gio/giotypes.h | 1 -
 1 file changed, 1 deletion(-)

commit d2612ad955c67a6b6791e9db4496087754c20228
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 23:13:36 2010 -0400

    Fix a doc typo

 glib/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 71dcc5ce80e33ac2f5cfd2de7acc392de2cb5d45
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 23:10:41 2010 -0400

    Remove leftover definition from gactiongroup.h

    GContextActionGroupInterface is not currently used anywhere.

 gio/gactiongroup.h | 15 ---------------
 1 file changed, 15 deletions(-)

commit b49ae1646197e90d273d3ffd5d884d93109c2df7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 22:41:00 2010 -0400

    Various documentation fixes

 docs/reference/gio/gio-sections.txt | 10 +++++-----
 gio/gactiongroup.c                  | 12 ++++++------
 gio/gappinfo.c                      | 10 +++++-----
 gio/gapplicationcommandline.c       |  1 +
 4 files changed, 17 insertions(+), 16 deletions(-)

commit 85ba8596e235f5f7f351447d20a3bc1baa8402b8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 22:38:38 2010 -0400

    GSimpleAsyncResult: add error-taking variants

    Add g_simple_async_result_new_take_error and
    g_simple_async_result_take_error, which take over ownership of the
    given error. Based on a patch by Christian Persch.

    https://bugzilla.gnome.org/show_bug.cgi?id=629247

 gio/gio.symbols          |  2 ++
 gio/gsimpleasyncresult.c | 62
 +++++++++++++++++++++++++++++++++++++++++++++---
 gio/gsimpleasyncresult.h |  6 +++++
 3 files changed, 67 insertions(+), 3 deletions(-)

commit 7887103193de4230a1ccb8dc7100816e523e5b9c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 22:05:20 2010 -0400

    Add an example of invoking actions

 gio/tests/gapplication-example-actions.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit d967b5ed17ae23f8694c5828c5574393bf9df076
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 21:08:25 2010 -0400

    Fix g_action_group_activate_action() docs

 gio/gactiongroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9574dbd2282e1fcf7bb5836c85cfff536bf4a7cf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 20:58:15 2010 -0400

    Be more careful about overwriting errors

    When trying to parse again, we don't want to overwrite the exiting
    error.

 gio/gsettings-tool.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 78407a00983d2fb70a94e00639408c80a58772b7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 20:49:53 2010 -0400

    GApplication: Add an action example

 gio/gapplication.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit cb8d29a55897b65c5d60077db19f39d1c01b2f86
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 31 20:33:02 2010 -0400

    Don't leak references in the actions example

    These are not initially unowned...

 gio/tests/gapplication-example-actions.c | 3 +++
 1 file changed, 3 insertions(+)

commit 09426632796b31a4f978e1c6c5666cc660e14a71
Author: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
Date:   Mon Nov 1 01:28:13 2010 +0900

    Fix error in Japanese translation

 po/ja.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c34bcefa78faacbda4528de9aeea2e13519c27e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 30 22:19:02 2010 -0400

    Add an example of using GApplication with actions

 gio/tests/Makefile.am                    |  4 ++
 gio/tests/gapplication-example-actions.c | 82
 ++++++++++++++++++++++++++++++++
 2 files changed, 86 insertions(+)

commit ab02965c50b8b80a2a676888f5aa4c36cbc7c3df
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Oct 30 21:40:28 2010 -0400

    Use G_GINT64_CONSTANT here

    Bug #631482.

 glib/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e24dfacd5b81ee0b6b596df3739df4448e5bbf04
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 30 01:13:42 2010 -0400

    gsettings-tool: Support completion for enum values

    https://bugzilla.gnome.org/show_bug.cgi?id=631264

 gio/gsettings-bash-completion.sh | 18 ++++++++++++++++++
 gio/gsettings-tool.c             | 17 +++++++++++++++++
 2 files changed, 35 insertions(+)

commit 6298e88538fb5799432774574713af259701c735
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 30 00:00:06 2010 -0400

    Add a command to list keys and values recursively

    This is similar to gconftool-2 -R, which is very handy
    for collecting information for bug reports, etc. It is now
    possible to say gsettings list-recursively org.foo.bar, and
    this will produce a list of schemas, keys and values for
    org.foo.bar and all its child and grandchild schemata,
    recursively.

    https://bugzilla.gnome.org/show_bug.cgi?id=632571

 gio/gsettings-bash-completion.sh |  6 ++--
 gio/gsettings-tool.c             | 66
 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 3 deletions(-)

commit d6192166862c6cad3914ddf397b798205263b564
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Oct 29 23:12:07 2010 -0400

    Make gsettings-tool translatable again

    This regression was caused by the recent rewrite.

 gio/gsettings-tool.c | 92
 ++++++++++++++++++++++++++++------------------------
 1 file changed, 49 insertions(+), 43 deletions(-)

commit cb647730029d5da388637e2a532f7f54a0d86f47
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 29 16:33:47 2010 -0400

    Use 'aay' instead of 'as' for environ

    It might contain non-utf8 characters.

 gio/gapplication.c            | 10 +++++++---
 gio/gapplicationcommandline.c |  3 ++-
 2 files changed, 9 insertions(+), 4 deletions(-)

commit 641f622bfe72866baa52dbd1044b7be2b6271999
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 28 23:06:53 2010 -0400

    GApplication: emit a signal when starting up

    Send a signal to the bus when registration is successful and we
    are the
    primary instance.

 gio/gapplicationimpl-dbus.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 7aa2e5026260a51e089d10dd18017b8f129b7adf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 28 22:49:12 2010 -0400

    GApplication: support environment passing

    Add support for passing the full contents of the environment to the
    primary instance (by storing it in the platform_data) when
    G_APPLICATION_SEND_ENVIRONMENT is in the flags.

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/gapplication.c                  |  8 +++++
 gio/gapplicationcommandline.c       | 71
 +++++++++++++++++++++++++++++++++++++
 gio/gapplicationcommandline.h       |  5 +++
 gio/gio.symbols                     |  2 ++
 gio/gioenums.h                      |  5 ++-
 6 files changed, 92 insertions(+), 1 deletion(-)

commit 99d2c2eef580c6ee4cbcf18b656e574331d6ad08
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 28 22:20:25 2010 -0400

    Add testcase for environment functions

 glib/tests/.gitignore    |  1 +
 glib/tests/Makefile.am   |  3 +++
 glib/tests/environment.c | 51
 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+)

commit 29ce7385bb631ac04dc8b965dd0c6fab488c770d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 28 21:26:09 2010 -0400

    Add g_get_environ(): portable access to 'environ'

    Return a copy of 'environ' on platforms where that is possible, or do
    something else on other platforms.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gutils.c                         | 39
 +++++++++++++++++++++++++++++++++++
 glib/gutils.h                         |  1 +
 4 files changed, 42 insertions(+)

commit b4d3b6e0de4fe2f239f414c6a62be35018d05a4c
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Fri Oct 29 00:48:48 2010 +0100

    Updated Catalan (Valencian) translation

 po/ca@valencia.po | 2095
 +++++++++++++++++++++++++++++++++++------------------
 1 file changed, 1396 insertions(+), 699 deletions(-)

commit bf7ba2fbdc6fdbb38fe35f71dfdf74dd8fcbf414
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 28 16:46:18 2010 -0400

    GApplication: use infinite timeout for CommandLine

    Use an infinite DBus timeout for sending a CommandLine request to the
    primary instance.

    This resolves a bit of bug #633339.

 gio/gapplicationimpl-dbus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fac2a8278e6bc83b281cd85f783e9ae4b05371be
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 28 16:14:24 2010 -0400

    Bug 633356 - (GDBus) Make G_MAXINT mean no timeout

    Don't register a timeout function in the case that G_MAXINT is
    given for
    the timeout length.

 gio/gdbusconnection.c | 31 +++++++++++++++++++------------
 gio/gdbusproxy.c      |  6 ++++--
 2 files changed, 23 insertions(+), 14 deletions(-)

commit cd4f818b301bfc6855b27feba5a0dfdca60027c1
Author: Dan Winship <danw@gnome.org>
Date:   Thu Oct 28 15:17:17 2010 -0400

    GNetworkService: fix a small bug

    Fix a small bug in the synchronous lookup code introduced in the fix
    for bug 629274

 gio/gnetworkservice.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dd9f8b8cc6d873517dedd83935ed0d994bbbd6c9
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Tue Sep 28 11:53:03 2010 +0200

    Don't enable dtrace support when dtrace isn't available

    Fixes FTBFS when dtrace isn't available but <sys/sdt.h> is.

 configure.ac | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 7c184df292f7552423fa7931c843b2f1949c1455
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 16 12:19:06 2009 +0200

    Bug 158725 - free linked list with data

    Add some helpers for freeing a linked list along with its elements by
    providing a GDestroyNotify to call on each of them.

    Add a test.

    Based on a patch from Cosimo Cecchi.

 docs/reference/glib/glib-sections.txt |  2 ++
 glib/glib.symbols                     |  2 ++
 glib/glist.c                          | 21 +++++++++++-
 glib/glist.h                          |  2 ++
 glib/gslist.c                         | 18 ++++++++++
 glib/gslist.h                         |  2 ++
 glib/tests/list.c                     | 63
 +++++++++++++++++++++++++++++++++++
 7 files changed, 109 insertions(+), 1 deletion(-)

commit 4baad1acbff936284c5367afdb4494cf081ee394
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 27 09:26:01 2010 -0400

    GApplication: exit_status unset in one branch

    Closes #633206

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f7a918dcb9fac00c7904b63452a59496594369aa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 19:43:11 2010 +0200

    GPeriodic: allow unblock time to be passed in

 gio/gperiodic.c | 22 ++++++++++++++++++++--
 gio/gperiodic.h |  3 ++-
 2 files changed, 22 insertions(+), 3 deletions(-)

commit 2af4b6e5440c22f4b56923ac9a749af06b3188d9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 19:20:14 2010 +0200

    Deprecate g_source_get_current_time()

 glib/glib.symbols | 2 ++
 glib/gmain.c      | 2 ++
 glib/gmain.h      | 2 ++
 3 files changed, 6 insertions(+)

commit 83472b34ef0bd3b53ff0a38b7f8691c3bd6fa0a9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 19:16:57 2010 +0200

    switch GSocket to monotonic time for timeouts

 gio/gsocket.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit d3fe2efb83b690507eb5513d96c27d06e9206da1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 19:13:01 2010 +0200

    switch GPeriodic to use monotonic time

 gio/gperiodic.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 91113a8aeea40cc2d7dda65b09537980bb602a06
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 19:10:39 2010 +0200

    switch GTimeoutSource to use monotonic time

 glib/gmain.c | 72
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 36 insertions(+), 36 deletions(-)

commit b7d8363fbec421d1e3e8b1a198fd7efb2ec9d2bc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 18:40:08 2010 +0200

    Add g_source_get_time()

    Cached version of g_get_monotonic_time() that does similar to what
    g_source_get_current_time() does for g_get_current_time().

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gmain.c                          | 47
 ++++++++++++++++++++++++++++++++++-
 glib/gmain.h                          |  2 ++
 4 files changed, 50 insertions(+), 1 deletion(-)

commit bf941f200c9784eb363d3b07b9d828dfc31a3ce2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 18:47:06 2010 +0200

    Rename time_is_current to current_time_is_fresh

    Internal structure field; no semantic changes.

 glib/gmain.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit ab548d240a9c2862ea7f7685c68b6013a68bf0c8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 18:42:32 2010 +0200

    Add g_get_monotonic_time()

    Gets the system monotonic time on systems that have it.  Otherwise,
    call
    g_get_current_time().

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gmain.c                          | 70
 ++++++++++++++++++++++++++++++++++-
 glib/gmain.h                          |  1 +
 4 files changed, 72 insertions(+), 1 deletion(-)

commit ac82e74895f5a094e07506e48b908188e03006d3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 17:28:46 2010 +0200

    Add 'GTimeSpec' as 'struct timespec' equivalent

 docs/reference/glib/glib-sections.txt | 3 +++
 docs/reference/glib/tmpl/date.sgml    | 8 ++++++++
 glib/gmain.c                          | 9 +++++++++
 glib/gtypes.h                         | 9 +++++++++
 4 files changed, 29 insertions(+)

commit 817b322ca781009617c40c4a05250ce412ecd0e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Oct 22 17:16:47 2010 +0200

    Link libglib against -lrt if we have clock_gettime

 configure.ac     | 2 ++
 glib/Makefile.am | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

commit dfb0577ef4947afb32d91a72769bd22d6c1edfaa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 27 09:08:32 2010 -0400

    Bug 632169 - manual use of gsettings-data-convert

    Add some words and example code to the documentation about why
    you might
    want to manually invoke gsettings-data-convert and how you should go
    about doing that.

 docs/reference/gio/migrating-gconf.xml | 64
 ++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

commit 9126f1afae922339949d0b76e282411618bcb565
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 26 12:02:12 2010 -0400

    gsettings m4: Use --strict for checking

    A while ago we allowed glib-compile-schemas to return a 'success'
    status
    in the case that just one schema file contained errors.  Of course,
    this
    is the exact opposite of what we want in the case that we are checking
    schema validity at compile time.

    Use the --strict flag for that case.

    This closes #633115.

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 181982c47cde49b3aff2293729f5aee5987db8af
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 26 11:49:32 2010 -0400

    GVariant: avoid locking in a common case

    Avoid acquiring the lock on the instance on the case of deserialising
    a
    child.  We know that it is safe to do this unlocked because a
    serialised
    child will never become unserialised.

    Closes #626320

 glib/gvariant-core.c | 69
 +++++++++++++++++++++++++++++-----------------------
 1 file changed, 39 insertions(+), 30 deletions(-)

commit e0caf4fd5ee82cc25806e7e86af14a8bf881c513
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 25 14:45:19 2010 -0400

    GApplicationCommandLine: add printf annotations

    to g_application_command_line_print{,err}

 gio/gapplicationcommandline.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d8d2513710c5663dc7387d79e443edeb5c75598f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 25 14:32:07 2010 -0400

    Implement (untested) GApplication actions support

 gio/gactiongroup.h          |  29 ++-
 gio/gapplication.c          | 118 +++++++---
 gio/gapplicationimpl-dbus.c | 517
 +++++++++++++++++++++++++++++++++++++++-----
 gio/gapplicationimpl.h      |  23 +-
 gio/giotypes.h              |   1 +
 5 files changed, 607 insertions(+), 81 deletions(-)

commit 196cd41f742730950a567c64381e2e8afadfa88c
Author: Andika Triwidada <andika@gmail.com>
Date:   Mon Oct 25 22:10:32 2010 +0700

    Updated Indonesian translation

 po/id.po | 695
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 360 insertions(+), 335 deletions(-)

commit 66ec8b949ead5593ccb2ce54426fdf7d50ec4077
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 25 09:55:38 2010 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 11a59404d5623d65e0d09c555ef2d4be50e4023b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 25 08:42:36 2010 -0400

    More documentation fixups

 docs/reference/gio/gio-sections.txt | 14 ++------------
 gio/gapplication.h                  |  2 +-
 gio/gdatainputstream.c              |  2 ++
 3 files changed, 5 insertions(+), 13 deletions(-)

commit d10a04b5330c6c4ef23a4e7871c8ced0c8343250
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 25 08:34:00 2010 -0400

    Remove nonexisting API from the headers

    I couldn't find any trace of g_application_run_with_arguments.

 gio/gapplication.h | 2 --
 1 file changed, 2 deletions(-)

commit 727c2a58c2468dd2faa442d2be7777b20b7b089b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 25 08:30:28 2010 -0400

    Add new gmain api to the docs

 docs/reference/glib/glib-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 7bb731d6136a9975b501757836762b91ad6ac416
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Oct 25 08:19:34 2010 -0400

    Update NEWS for 2.27.1

 NEWS | 88
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

commit f67d16c52a244c1db2cf40340700c6dc90ab866a
Author: Yinghua Wang <wantinghard@gmail.com>
Date:   Sun Oct 24 03:51:46 2010 +0000

    Update Simplified Chinese translation.

 po/zh_CN.po | 778
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 398 insertions(+), 380 deletions(-)

commit 00366f440d6322b2742eb1cd35835902269c0e37
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 23 20:43:36 2010 +0200

    Some more GApplication doc tweaks

 gio/gapplication.c            | 54
 +++++++++++++++++++++++++------------------
 gio/gapplicationcommandline.c | 18 ++++++++++++---
 gio/gioenums.h                |  9 ++++----
 3 files changed, 51 insertions(+), 30 deletions(-)

commit 013f862a03d11708bb08f2ec98c8612f245a8937
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 23 14:04:28 2010 +0200

    Properly register the inactivity-timeout property

    It is a uint, not a boolean, so register it as such.
    Also, only install the service timeout if we are actually registered
    as the primary instance.

 gio/gapplication.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 7c735b05f7a00c728e23a366128ffb56fee58b4e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 23 12:01:51 2010 +0200

    Move a confusing comment to the right place

 gio/gapplication.c          | 6 ------
 gio/gapplicationimpl-dbus.c | 3 +++
 2 files changed, 3 insertions(+), 6 deletions(-)

commit b0e45c97992499929f1393743935438e07e88326
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 23 11:54:50 2010 +0200

    Add another example for commandline handling

    Also, clarify some aspects in the documentation.

 gio/gapplication.c                        |  10 +--
 gio/gapplication.h                        |   7 +-
 gio/gapplicationcommandline.c             |   4 +-
 gio/tests/Makefile.am                     |   4 ++
 gio/tests/gapplication-example-cmdline2.c | 106
 ++++++++++++++++++++++++++++++
 5 files changed, 123 insertions(+), 8 deletions(-)

commit 499d9ba8b8fec44282fac09426b61d027c166459
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 23 02:27:39 2010 +0200

    Add some examples to the GApplication docs

 gio/gapplication.c                       |  9 +++++-
 gio/gapplicationcommandline.c            |  2 ++
 gio/tests/Makefile.am                    |  8 +++++
 gio/tests/gapplication-example-cmdline.c | 47
 ++++++++++++++++++++++++++++++
 gio/tests/gapplication-example-open.c    | 50
 ++++++++++++++++++++++++++++++++
 5 files changed, 115 insertions(+), 1 deletion(-)

commit 79790b927840b1c2d389753c7237820d2f16899e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 23 00:40:13 2010 +0200

    Brush up the GApplication docs

    Also, fix up inclusions, mark properties for translation, etc.

 gio/gapplication.c            | 124
 +++++++++++++++++++++++++++++++++++-------
 gio/gapplication.h            |   2 +
 gio/gapplicationcommandline.c |  40 +++++++++-----
 gio/gdbuserror.c              |   2 +-
 gio/gioenums.h                |   8 ++-
 gio/gsimpleaction.c           |   2 +-
 gio/gsimpleactiongroup.c      |   2 +-
 7 files changed, 141 insertions(+), 39 deletions(-)

commit 210a77a07ebf51156bb7fbc1482ce71fd56cbcd2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 23 00:32:45 2010 +0200

    Fix a typo

 gio/gapplication.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

commit e410131021036532e6e9622e8b977222389b44e9
Author: Dan Winship <danw@gnome.org>
Date:   Wed Sep 15 10:05:03 2010 -0400

    GNetworkService: fall back when there is no valid SRV record

    RFC 2782 says that if there is no SRV record for
    _SERVICE._PROTOCOL.DOMAIN, you should fall back to trying just DOMAIN,
    with the default port for SERVICE. Do that.

    https://bugzilla.gnome.org/show_bug.cgi?id=629274

 gio/gnetworkservice.c | 50
 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 45 insertions(+), 5 deletions(-)

commit 19243c247d8a89c6467bd21109b7f0d4b1cb081a
Author: Dan Winship <danw@gnome.org>
Date:   Wed Sep 15 10:22:13 2010 -0400

    GNetworkService: fix iteration of multiple addresses

    Previously if there were multiple SRV records, only the first would
    be iterated by the GSocketConnectable interface

 gio/gnetworkservice.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 87d06109ab325a4a68e151015381e7e1b33bdf7d
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 17 18:34:13 2010 -0400

    GSocket: set protocol when using g_socket_new_from_fd()

    Otherwise, attempting to create a GSocketConnection from the socket
    will likely return the wrong type, since the protocol won't match any
    of the registered subtypes.

    Also add the start of a GSocket test program (from davidz).

    https://bugzilla.gnome.org/show_bug.cgi?id=627171

 gio/gsocket.c         | 29 ++++++++++++++---
 gio/tests/.gitignore  |  1 +
 gio/tests/Makefile.am |  6 +++-
 gio/tests/socket.c    | 86
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 117 insertions(+), 5 deletions(-)

commit a62b43fd9cea5455bead9a5bd12a27f01c4fadf4
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Fri Oct 22 13:20:54 2010 +0200

    Fix deadlock in g_object_remove_toggle_ref()

    The code section guarded with toggle_refs_mutex includes a call to
    g_object_unref(), which may call toggle_refs_notify(). As the latter
    tries to acquire the same mutex, glib locks up.

    https://bugzilla.gnome.org/show_bug.cgi?id=632884

 gobject/gobject.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit b7616114c6c1884c3a183a4d83156bdf2151b731
Author: Alberto Garcia <agarcia@igalia.com>
Date:   Fri Mar 26 16:19:13 2010 +0100

    Protect access to closure, weak refs and toggle refs arrays

    This fixes https://bugzilla.gnome.org/show_bug.cgi?id=613822

 gobject/gobject.c | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

commit dd6e15dd24a1f1910cfd71c2e21078261936c98d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 21 14:02:41 2010 +0200

    GApplication: create local commandline properly

    Don't pass a gchar** to g_object_new() when a GVariant* is expected.

 gio/gapplication.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 8690984ceadc35dc4251277ea1ca759d180a8fd6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Oct 21 01:37:23 2010 +0200

    GPeriodic: pass microseconds to the tick functions

    ...instead of milliticks, which nobody really cares to understand.

 gio/gperiodic.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

commit 5400b0b38c513c829a4f0b0fc59188f820435d79
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 20 03:20:34 2010 +0200

    GPeriodic: a periodic event clock

    Add a new class, GPeriodic.

    We hope to use this as a paint clock that can be shared by GTK and
    Clutter.  Many changes are still expected to the API.

 docs/reference/gio/gio-docs.xml     |   4 +
 docs/reference/gio/gio-sections.txt |  26 ++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio-marshal.list                |   1 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  14 +
 gio/gperiodic.c                     | 631
 ++++++++++++++++++++++++++++++++++++
 gio/gperiodic.h                     |  69 ++++
 9 files changed, 749 insertions(+)

commit e33deea16ce3af7b91386d5debffd284a0109dfc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 19 19:38:00 2010 +0200

    GApplication: reduce GVariant abuse

    Don't use GVariant* as the representation for the argument array.

 docs/reference/gio/gio-sections.txt |  1 -
 gio/gapplication.c                  | 53
 +++++++++++--------------------------
 gio/gapplication.h                  | 40 ++++++++++++++--------------
 gio/gapplicationimpl-dbus.c         |  8 +++---
 gio/gapplicationimpl.h              |  2 +-
 gio/gio.symbols                     |  3 ---
 6 files changed, 40 insertions(+), 67 deletions(-)

commit a327bc51fc3090ed32d7e250dedadb8c35e84aeb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 19 18:18:13 2010 +0200

    Cleanup and doc GApplicationCommandLine

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |   2 -
 gio/gapplicationcommandline.c       | 406
 +++++++++++++++++++++++++-----------
 gio/gapplicationcommandline.h       |  29 +--
 gio/tests/gapplication.c            |   2 +-
 5 files changed, 301 insertions(+), 139 deletions(-)

commit eac4c385f0e34b012d49a09fb48712fdd0e46646
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 19 16:56:18 2010 +0200

    GIO reference doc cleanups (re: GApplication)

 docs/reference/gio/Makefile.am      |  2 +
 docs/reference/gio/gio-sections.txt | 84
 +++++++++++++++++++++++++++----------
 2 files changed, 65 insertions(+), 21 deletions(-)

commit a2ac9c2515dcf227ed7c4e062b326bb0ac21c5ad
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 19 13:45:20 2010 +0200

    GDBus: disable test to work around bug #631379

    This test consistently prevents 'make distcheck' from passing
    on Ubuntu.

 gio/tests/gdbus-peer.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0ce1462d1a4d4510bcac1b6fb9cf4d9f38b44de9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 19 13:44:30 2010 +0200

    GApplication: merge DBus interface into C source

    instead of having it in a separate file that causes problems to the
    build system (I want to avoid using EXTRA_DIST here).

 gio/Makefile.am                       |  1 +
 gio/gapplicationimpl-dbus-interface.c | 93
 -----------------------------------
 gio/gapplicationimpl-dbus.c           | 84
 +++++++++++++++++++++++++++++--
 3 files changed, 82 insertions(+), 96 deletions(-)

commit 8ff9150e4422db000289a282b23aadac4dd5ba2c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 19 12:38:40 2010 +0200

    gio: update symbols

 gio/gio.symbols | 1 +
 1 file changed, 1 insertion(+)

commit 34f31fdfda549de717bb0ef02f6acfdb6de8ca29
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 19 12:38:01 2010 +0200

    Don't try to dist old GApplication implementations

    One of them was deleted already, even.

 gio/Makefile.am        |  2 +-
 gio/gnullapplication.c | 74
 --------------------------------------------------
 2 files changed, 1 insertion(+), 75 deletions(-)

commit a6b8a3113bfd5fe9b28d3377865fed1ab1849ce0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 12 21:42:59 2010 -0400

    GApplication: use g_signal_accumulator_first_wins

    ...instead of our homebrew version.

 gio/gapplication.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

commit 04b58a3e270c7de520c65cb213f95048db4503c8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 11 15:57:09 2010 -0400

    Change 'Since:' to 2.28 for action classes

 gio/gaction.c            | 26 +++++++++++++-------------
 gio/gactiongroup.c       | 34 +++++++++++++++++-----------------
 gio/gsimpleaction.c      | 18 +++++++++---------
 gio/gsimpleactiongroup.c |  8 ++++----
 4 files changed, 43 insertions(+), 43 deletions(-)

commit 3fe94ca9e904a5b85eb4beba978c68e2e01d4a59
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 11 11:54:51 2010 -0400

    GApplication: fill in action group implementation

 gio/gapplication.c | 119
 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 gio/gapplication.h |   3 ++
 2 files changed, 112 insertions(+), 10 deletions(-)

commit 491641cf017eff245dc13f7bea6011c7462c51f1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 11 10:50:41 2010 -0400

    gio: app info symbol file fixup

 gio/gio.symbols | 1 -
 1 file changed, 1 deletion(-)

commit 52b7fcf4093ac49860108c52cef58f62491cf1e4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 11 10:49:20 2010 -0400

    gio: symbol file updates (actions, command line)

 gio/gio.symbols | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

commit d6ac6c1850a8cd73775d6e95a20bb13f1f7f9527
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 11 10:45:51 2010 -0400

    Rename methods on GActionGroup to include 'action'

    Makes explicit the fact that you are interacting with the individual
    action rather than the group and removes potential namespace conflicts
    with classes implementing the interface (like g_application_activate()
    vs g_application_activate_action()).

 gio/gactiongroup.c       | 46 ++++++++++++++++-----------------
 gio/gactiongroup.h       | 66
 ++++++++++++++++++++++++------------------------
 gio/gapplication.c       | 14 +++++-----
 gio/gsimpleactiongroup.c | 14 +++++-----
 gio/tests/actions.c      | 28 ++++++++++----------
 5 files changed, 84 insertions(+), 84 deletions(-)

commit b2f942c142a84aa88b44600250bd93418ed14db3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 10 20:05:13 2010 -0400

    GApplication: stub-in GActionGroup implementation

 gio/gapplication.c | 83
 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 82 insertions(+), 1 deletion(-)

commit 582638d7add3cd17b720c6a95bd18e9913c729a6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 9 17:25:07 2010 -0400

    GApplication test: test remote commandline

    Also, a few small fixes/tweaks to other places in the test.

 gio/tests/gapplication.c | 68
 +++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 62 insertions(+), 6 deletions(-)

commit 3e6eee806cdddd651bc15da9117adae1c3f97e6a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 9 17:24:09 2010 -0400

    GApplication: add remote commandline support

 gio/Makefile.am                       |   2 +
 gio/gapplication.c                    |  88 +++++++++--
 gio/gapplication.h                    |   5 +-
 gio/gapplicationcommandline.c         | 273
 ++++++++++++++++++++++++++++++++++
 gio/gapplicationcommandline.h         | 120 +++++++++++++++
 gio/gapplicationimpl-dbus-interface.c |  36 ++++-
 gio/gapplicationimpl-dbus.c           | 234 ++++++++++++++++++++++++++++-
 gio/gapplicationimpl.h                |   5 +
 gio/gio-marshal.list                  |   1 +
 gio/gio.h                             |   1 +
 gio/gioenums.h                        |   7 +-
 11 files changed, 748 insertions(+), 24 deletions(-)

commit 2854c373e140e63d6bd1a9f2ac01851c5b6418b1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 6 14:06:26 2010 -0400

    GApplication test case

 gio/tests/.gitignore     |   1 +
 gio/tests/Makefile.am    |   5 +-
 gio/tests/gapplication.c | 177
 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 182 insertions(+), 1 deletion(-)

commit 72ce1c7eb6ece6353abaf3882ff4d50a39992efe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 6 14:05:40 2010 -0400

    GApplication: fix inactivity-timeout

    Create the gobject property for it.

    Tweak the logic of having a pending timeout at the time that the
    application starts -- run the mainloop with a use count of zero
    if there
    is a timeout active.

 gio/gapplication.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

commit a7923a4aa3ff6d67672c6c69cd1b7d70fba9c57d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Oct 6 13:08:26 2010 -0400

    new GApplication implementation

 gio/Makefile.am                       |    9 +-
 gio/gapplication.c                    | 1790
 ++++++++++++++-------------------
 gio/gapplication.h                    |  175 ++--
 gio/gapplicationimpl-dbus-interface.c |   59 ++
 gio/gapplicationimpl-dbus.c           |  304 ++++++
 gio/gapplicationimpl.h                |   28 +
 gio/gdbusapplication.c                |  424 --------
 gio/gio-marshal.list                  |    3 +-
 gio/gio.symbols                       |   30 +-
 gio/gioenums.h                        |   18 +
 gio/giotypes.h                        |    2 +
 gio/tests/.gitignore                  |    3 -
 gio/tests/Makefile.am                 |   12 -
 gio/tests/application.c               |  222 ----
 gio/tests/testapp.c                   |  107 --
 gio/tests/testapps.c                  |  604 -----------
 16 files changed, 1258 insertions(+), 2532 deletions(-)

commit 9d80c361418f94c609840ec9f83741aede7e482c
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Oct 14 22:47:25 2010 +0300

    Use CSIDL_LOCAL_APPDATA on Windows

    Make g_get_user_data_dir() return the CSIDL_LOCAL_APPDATA folder on
    Windows, and not CSIDL_PERSONAL. On Windows 7, that corresponds to the
    subfolders AppData\Local vs. Documents under the profile ("home")
    folder. This matches what Qt does, for instance, and has been widely
    requested.

    Also make g_get_user_config_dir() return this and not the (roaming)
    CSIDL_APPDATA folder. The reason for this change is that it would be
    surprising and hard to justify if g_get_user_data_dir() returned the
    local application data folder while g_get_user_config_dir() would
    return the roaming one. Nothing in the function names or the XDG specs
    suggests that any roaming vs. local dichotomy would be involved.

    Document the new semantics and the fact that these two functions now
    return the same directory on Windows.

    Note that in reality, code that really truly wants to support Windows
    as well as possible probably will not use these GLib functions anyway,
    but Win32 APIs directly to be sure what it is doing...

    Should hopefully satisfy complaints in bug #620710 and related bugs.

 glib/gutils.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 9040eac4ebfbe14141d6501f44a501bfe5e61b9c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Oct 16 23:30:30 2010 -0400

    Prevent error pileup

 gio/glib-compile-schemas.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3c808dc87471d25a7b06c7f41d1b8341c2ca1e7d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 12 21:34:26 2010 -0400

    GSignal: fix trivial docs typo

 gobject/gsignal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 15d87c2cc48c8c1af3ad06ff8aaef766aa21fd6b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 12 20:58:43 2010 -0400

    GObject: add g_signal_accumulator_first_wins

    Deals with the case where we want exactly one signal handler to run.

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gobject.symbols                     |  1 +
 gobject/gsignal.c                           | 33
 +++++++++++++++++++++++++++++
 gobject/gsignal.h                           |  5 +++++
 4 files changed, 40 insertions(+)

commit 0c21689ed83de2fb7bfb6dc31efa5d687cb7c6f8
Author: Colin Walters <walters@verbum.org>
Date:   Tue Oct 12 12:54:36 2010 -0400

    gthemedicon: Fix annotation for g_themed_icon_get_names

 gio/gthemedicon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cdd58347d1ddc282e55f91d0a991b268547d78d9
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Oct 9 14:38:08 2010 +0200

    Updated Spanish translation

 po/es.po | 700
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 361 insertions(+), 339 deletions(-)

commit 5fa7a1e9cedb33d32049c54f13adc3504d723573
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Oct 8 17:21:53 2010 +0200

    gtypemodule: Mention g_object_run_dispose correctly in a warning

    https://bugzilla.gnome.org/show_bug.cgi?id=630797

 gobject/gtypemodule.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 44a8ff2f8f607f725c478793b876742b09f350ef
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Oct 8 16:09:10 2010 +0100

    gobject: Improve install_properties()

    Cache the parent type outside of the loop, and fix a typo in the
    documentation.

 gobject/gobject.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 3035bf40d0d75632b36fa703c3ac2becc98769d8
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Oct 8 16:33:33 2010 +0200

    Initialise lengths in GvdbReader to silence warnings

 gio/gvdb/gvdb-reader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ad363d9aac5a6167121631a1ee8d3cec2784b5c2
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Oct 8 16:33:04 2010 +0200

    Initialise lengths in GDbusAuth to silence warnings

 gio/gdbusauth.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 53f398f52aa07c4ae8c788fcc002f70eac941844
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Oct 8 15:17:31 2010 +0200

    Mention g_object_run_dispose correctly in tutorial

    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=630797

 docs/reference/gobject/tut_gobject.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0e3a39c016c75523efb30531942cfd87976413c8
Author: Bruce Cowan <bruce@bcowan.me.uk>
Date:   Thu Oct 7 21:27:17 2010 +0100

    Updated British English translation

 po/en_GB.po | 469
 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 258 insertions(+), 211 deletions(-)

commit 7bafb3be95026055b4c9142ea1a82895c9e393bc
Author: William Jon McCann <jmccann@redhat.com>
Date:   Thu Oct 7 13:51:21 2010 -0400

    Remove g_desktop_app_info_lookup_get_type symbol from gio.types

    It was removed in 9b262f1c5fe5a6fd879f17cd7b80d8c54e33d80c

 docs/reference/gio/gio.types | 1 -
 1 file changed, 1 deletion(-)

commit 46390c9d107b6df55de458b3ffe47a5428d7f287
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Oct 7 12:04:52 2010 +0300

    Don't call close() on -1

    Of course, a proper implementation of close() will just ignore an
    invalid parameter silently, and set errno. But apparently the "debug"
    version of the Microsoft C library generates some noise in this
    case. So avoid that. Thanks to John Emmas for reporting.

 tests/testglib.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 200e3d7307df75803c03a2aebcbba0dc5eaa9161
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Wed Oct 6 02:18:30 2010 +0200

    Updated Hebrew translation.

 po/he.po | 449
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 236 insertions(+), 213 deletions(-)

commit 9b262f1c5fe5a6fd879f17cd7b80d8c54e33d80c
Author: Bastien Nocera <hadess@hadess.net>
Date:   Tue Oct 5 15:02:37 2010 +0100

    Replace "gio-desktop-app-info-lookup" extension point

    With a native version, that looks for desktop items supporting
    x-scheme-handler/foo, when looking for a handler for the "foo"
    URI scheme handler.

    https://bugzilla.gnome.org/show_bug.cgi?id=631410

 gio/gdesktopappinfo.c | 93
 +++++----------------------------------------------
 gio/gdesktopappinfo.h | 36 --------------------
 gio/gio.symbols       |  1 -
 gio/giomodule.c       |  5 ---
 4 files changed, 8 insertions(+), 127 deletions(-)

commit 1612a4d5065e3505cf45585ffb7e890a06ff27d6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 5 02:29:47 2010 -0400

    volume monitor: don't unref NULL

    Fix a couple more cases of blindly calling g_object_unref() on the
    result of a function that is documented as sometimes returning NULL.

 gio/tests/volumemonitor.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit a7662ef315d7f369cbbc438dec76e3b9db3cd5ba
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Oct 5 02:11:22 2010 -0400

    GVariant tests: fix bad allignment assumption

    One of the GVariant test cases allocates a pair of character arrays on
    the stack and then passes them to functions that assume that they will
    be aligned to a multiple of two.

    This is not the case for some versions of GCC (4.0.3 on PowerPC).

 glib/tests/gvariant.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit 3c5b50c4243025c9f42caac9a429291194b77be5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 21:07:50 2010 -0400

    GSettings test: fix error match strings

    The name of the internal function that appears in an assertion message
    has changed.  Update the tests.

 gio/tests/gsettings.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit c4037230d4afcc0b634dede843a94b3836bb0c39
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 03:41:03 2010 -0400

    gsettings-tool: Add 'range' subcommand

    Provides access to the g_settings_get_range() functionality,
    converting
    its return value to something that's reasonable for printing at the
    console and potentially parseable.  The format may change.

    Bug #631264.

 gio/gsettings-bash-completion.sh |  8 ++---
 gio/gsettings-tool.c             | 63
 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 4 deletions(-)

commit 59bdba3cbb50274b906740d483f049cdc91eb928
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 03:40:22 2010 -0400

    gsettings-tool: implement range-checking

    Prevent assertion messages from spewing forth and also ensure that we
    exit with an error status in the event that the value was out
    of range.

    Bug #631264.

 gio/gsettings-tool.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit e740c5b4cdcdf8e5f60cd2500451499c499d4ec2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 03:36:09 2010 -0400

    Update symbols and docs sections

 docs/reference/gio/gio-sections.txt | 6 +++++-
 gio/gio.symbols                     | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

commit e81d85615991e40a9c72f4f4319c358a4e1479cd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 03:33:06 2010 -0400

    GSettings: add g_settings_range_check() API

    Checks if a given value is within the correct range for a key.

 gio/gsettings.c | 51 +++++++++++++++++++++++++++++++++++++++++++--------
 gio/gsettings.h |  3 +++
 2 files changed, 46 insertions(+), 8 deletions(-)

commit d6d76783ae9fc473d7fe38683d729d6c2c8e80c4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 02:58:46 2010 -0400

    Bug 631263 - GSettings needs range/choice APIs

    Add g_settings_get_range() to describe the possible values that may be
    provided to g_settings_set_value() without causing an error.

    Add a test case.

 gio/gsettings.c       | 84
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 gio/gsettings.h       |  2 ++
 gio/strinfo.c         | 31 +++++++++++++++++++
 gio/tests/gsettings.c | 43 ++++++++++++++++++++++++++
 4 files changed, 159 insertions(+), 1 deletion(-)

commit 833e389516b5e5b2271ed84c7b2036801c3100f1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 02:57:06 2010 -0400

    schema compiler: Don't store zero-valued flags

    Don't store the "none" value for flags into the compiled schema file.
    "none" should never appear as a value -- no flags set is indicated
    by an
    empty array.

 gio/glib-compile-schemas.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 136e705e8383ff8848e425ac01278102d7badc52
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Oct 4 01:51:11 2010 -0400

    Bug 627126 - gsettings schemas on FreeBSD

    Rewrite the install rule for GSettings schemas to not depend on an
    obscure chunk of non-portable sed that nobody understands the purpose
    of.

    Instead, use make's VPATH feature to resolve the paths of the
    files that
    need to be installed.  No need to depend on the .valid targets here
    since automake already ensures that 'make all' is complete before
    'make
    install' is permitted to run.

 m4macros/gsettings.m4 | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

commit 8efcc0d8c86b588eb0ee0e60d3c60d8c107734b5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 23:26:18 2010 -0400

    glib-compile-schemas: write strinfo little endian

    Ensure that the strinfo is output in little-endian byte order on big
    endian machines.

    GSettings is now passing all of its tests on PowerPC.

    Bug #630968 is closed.

 gio/glib-compile-schemas.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 61563d5f555f697824cd2ecc17a6687773e6e70e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 23:25:29 2010 -0400

    GSettings strinfo: byteswap integers

    strinfo is always strictly little endian, so ensure that we
    byteswap to
    native when comparing and returning.

 gio/strinfo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9211d2b00c82057864631a78b1f4ba1d36ee7b5c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 23:15:27 2010 -0400

    GSettings endian: missed a spot

    Missed an instance of get_value -> get_raw_value search/replace.

 gio/gsettingsschema.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c84441fbb3b2eb14775e8467a07cda4eff4502e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 23:04:00 2010 -0400

    GSettings big endian tweaks

    GSettings relies on parts of the schema infromation remaining
    unbyteswapped (the strinfo database, for example) while requiring
    other
    parts to be in native order (the default value, constraints, etc.).

    Lift the byteswapping into a place where we can do it selectively.

 gio/gsettings.c       | 15 +++++++++++++++
 gio/gsettingsschema.c | 12 +-----------
 2 files changed, 16 insertions(+), 11 deletions(-)

commit 73ca8b47540d005d5227c03aac143d6780da654c
Merge: 9082232 e5e491c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 23:03:12 2010 -0400

    Merge remote branch 'gvdb/master'

commit e5e491c96946ec6ff6809e4b2b757b1f2d497867
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 22:54:03 2010 -0400

    Add gvdb_table_get_raw_value() API for GSettings

 gvdb-reader.c | 23 +++++++++++++++++++++++
 gvdb-reader.h |  3 +++
 2 files changed, 26 insertions(+)

commit 90822327acdcc0a10f0de41c591e4cee234811db
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 22:53:49 2010 -0400

    GSettings test: fix unsafe GObject properties use

    The test case was passing a guint16 to g_object_get() for a guint
    property.  That's invalid on all systems, although it works (more or
    less) on little endian ones.  On big endian it's a total no-go.

 gio/tests/gsettings.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 2ce2d587edbeb98b355c4038c218d75a8c8f9c99
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 22:39:47 2010 -0400

    GVariant: avoid byteswapping in some cases

    Make g_variant_byteswap() merely return a new reference on the given
    value in the event that we know that byteswapping will have no effect
    (ie: types which have no alignment requirement).

    This fixes a somewhat complicated interaction between GVariant,
    GSettings and GVDB on big endian machines:  GSettings assumes that it
    can unref values returned from GVDB without losing access to the
    underlying data.  This only works if the underlying data is in the
    mapped file -- not a freshly-allocated buffer that GVariant
    byteswapped
    into.

 glib/gvariant.c | 40 +++++++++++++++++++++++++++-------------
 1 file changed, 27 insertions(+), 13 deletions(-)

commit 63adeda0861a26b38ec0adc76255666554c18951
Merge: cdab385 a35852b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 21:11:17 2010 -0400

    Merge remote branch 'gvdb/master'

commit a35852bda37400bb4f7c6ee3a3184dde65fadb1f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 21:10:35 2010 -0400

    Fix reader on big endian

    Some of the hashtable code was failing to byteswap properly.

 gvdb-reader.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit cdab385ad9fcda469c3fae107adc4abc1082c27a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 20:47:26 2010 -0400

    allow libtool 2.4

    It's released now and it seems to work OK.

 autogen.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0bd50b39eb8223f2eeffe8dc5fe096b2c7695529
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 17:30:10 2010 -0400

    Bug 623400 - acquire context before dispatching

    For GSettings.

    Use the functionality introduced in the last commit to simplify our
    notify dispatching and increase the safety of doing so (by ensuring
    that
    the context is acquired in the current thread for the duration of the
    dispatch).

    This closes bugs #623400 and #629849.

 gio/gdelayedsettingsbackend.c  | 16 +-------
 gio/gsettingsbackend.c         | 87
 ++++++++++++++++--------------------------
 gio/gsettingsbackendinternal.h |  2 -
 3 files changed, 33 insertions(+), 72 deletions(-)

commit 92974b80fc10f494b33ed6760b5417bbbbb83473
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 17:26:37 2010 -0400

    Bug 618737 - "dispatch to context" functionality

    Adds a new function g_main_context_invoke() (and _full() variant).

    This function takes a main context, a function and a user_data.
    If the
    main context is already acquired in the current thread, the
    function is
    invoked directly.  If the main context is the default main context of
    the current thread and it can be acquired then the function is invoked
    directly while the context is owned.  Otherwise, the function is
    scheduled as an idle on the context.

 glib/glib.symbols |   2 +
 glib/gmain.c      | 110
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gmain.h      |   9 +++++
 3 files changed, 121 insertions(+)

commit 63fb3ff774146a44dcf980bd4cfbca68770a3d93
Author: Žygimantas Beručka <zygis@gnome.org>
Date:   Sun Oct 3 15:45:33 2010 +0200

    Updated Lithuanian translation by Aurimas Černius <aurisc4@gmail.com>

 po/lt.po | 278
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 158 insertions(+), 120 deletions(-)

commit 2d6f8a8ea4a0c86c40da60db2d948306f4c2f5c9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 02:40:48 2010 -0400

    gsettings-tool: Rewrite

    Rewrite the GSettings tool.

    Improvements/changes:

     - simplify the code by performing common actions (like creating a
       schema) in only one place instead of one per-command

     - new features (list schemas, list keys, monitor multiple, etc)

     - factor-out bash completion and implement in shellscript

     - input validation: should never abort due to invalid inputs

    Still to do:

     - proper error checking for ranges/choices

     - support for querying range/choice information

     - bash completion support for enums

    Closes bug #629289, possibly among others.

 gio/gsettings-bash-completion.sh |   58 ++-
 gio/gsettings-tool.c             | 1047
 ++++++++++++++------------------------
 2 files changed, 405 insertions(+), 700 deletions(-)

commit ed9db23f9a056ae253be25c2262f19047a62fe76
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Oct 3 01:53:09 2010 -0400

    GSettings: implement .property_get('path')

    This was unimplemented in g_settings_get_property(), leading to
    a failed
    'g_assert_not_reached()'.

 gio/gsettings.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 5af11ae4bc74104502da537b5a89e92223f697dc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 2 22:46:53 2010 -0400

    Add 'Since:' tags for schema listing APIs

 gio/gsettingsschema.c | 4 ++++
 1 file changed, 4 insertions(+)

commit d2c06994402ee30e989efb9e912d3abd16ca0e10
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Oct 2 22:42:02 2010 -0400

    Clean up g_settings_list_schemas()

    In its previous form, g_settings_list_schemas() was not useful as
    a tool
    to prevent aborts due to using g_settings_new() with an invalid schema
    name.  This is because g_settings_list_scheams() also listed
    relocatable
    schemas, and calling g_settings_new() for those would abort just the
    same as if you called it for a non-existent schema.

    Modify g_settings_list_schemas() so that it only returns schemas for
    which it is safe to call g_settings_new().  Add another call for
    sake of
    completeness: g_settings_list_relocatable_schemas().

 gio/gio.symbols       |   1 +
 gio/gsettings.h       |   1 +
 gio/gsettingsschema.c | 126
 +++++++++++++++++++++++++++++++++++++-------------
 gio/tests/gsettings.c |   7 ++-
 4 files changed, 103 insertions(+), 32 deletions(-)

commit 1fee36f72bdbf87d585222e864cb8494e7156ee0
Author: Damyan Ivanov <dam+gnome@ktnx.net>
Date:   Sat Oct 2 08:57:09 2010 +0300

    Updated Bulgarian translation

 po/bg.po | 143
 ++++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 95 insertions(+), 48 deletions(-)

commit ba0e608478367cdb7ee550b9efaefba8bd418720
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 27 11:14:08 2010 -0400

    Improve .gitignore

 gio/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 3e771509b487fbc671e9217f8dcbd20daa44c116
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 27 11:10:11 2010 -0400

    Bug 628937 - gracefully handle broken schemas

    Implement the second feature requested in the bug: silently ignore
    override files that attempt to override schemas that are not currently
    installed.

    Also, support 'strictness' being optional for other errors when
    parsing
    override files (ie: inability to open the file, unknown key name,
    parse
    errors, out of range).  We don't completely back out the file in this
    case — as that is difficult with the current implementation —
    but just
    ignore the override for the single key.

 gio/glib-compile-schemas.c | 121
 +++++++++++++++++++++++++++++++--------------
 1 file changed, 83 insertions(+), 38 deletions(-)

commit bd290081ff8c7951c6509d0aee23246739a928a2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 27 10:36:11 2010 -0400

    glib-compile-schemas: improve error accuracy

    We wrote "<enum> must contain at least one <value>" for empty <flags>.
    Fix that.

 gio/glib-compile-schemas.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit e40f3932dd9d924c3197e98f44950561248297ae
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 27 10:27:11 2010 -0400

    Bug 628937 - gracefully handle broken schemas

    Implement the first of two features requested in the bug: when
    encountering a broken .xml schema file, back out the changes in that
    file and continue to parse other files.

    This prevents a single broken .xml file from messing up GSettings for
    everyone else.

    Add a --strict option to get the old behaviour.  Use this from
    the test
    cases.

 gio/glib-compile-schemas.c  | 89
 ++++++++++++++++++++++++++++++++++++---------
 gio/tests/gschema-compile.c |  1 +
 2 files changed, 72 insertions(+), 18 deletions(-)

commit fff6814973356ac23b1022113632441110825283
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 27 09:06:24 2010 -0400

    Bug 630077 - GDateTime week number support

    Fully implement support for ISO 8601 week dates in GDateTime and
    document that this is the case.

    Add an exhaustive test case to ensure correctness.

 docs/reference/glib/glib-sections.txt |   1 +
 glib/gdatetime.c                      |  96 ++++++++++++++++-
 glib/gdatetime.h                      |   1 +
 glib/glib.symbols                     |   1 +
 glib/tests/gdatetime.c                | 188
 ++++++++++++++++++++++++++--------
 5 files changed, 239 insertions(+), 48 deletions(-)

commit fe1186a842458dcc647c5f9ab03f17c762354e95
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 30 14:40:50 2010 -0400

    message_to_write_data_free: Don't unref data->message if it is NULL

    After the recent changes to message filtering, it can happen that
    data->message is NULL when we get here.

 gio/gdbusprivate.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit faaa8a9f8af9548e2d6052d1ba465285cb314cee
Author: Giannis Katsampirhs <juankatsampirhs@gmail.com>
Date:   Thu Sep 30 14:47:58 2010 +0300

    l10n: Updated Greek translation for glib

 po/el.po | 7535
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 3835 insertions(+), 3700 deletions(-)

commit 98a0ce64a379a60cfaf9b37f52b300c9297ea44c
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Wed Sep 29 18:46:10 2010 +0200

    Updated Polish translation

 po/pl.po | 1642
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 794 insertions(+), 848 deletions(-)

commit 755c2dad72650f11397fc5a91ac42af15eafd530
Author: Colin Walters <walters@verbum.org>
Date:   Wed Sep 29 10:38:25 2010 -0400

    introspection: Fix one annotation syntax

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 01735d6cc09b7d24c2af07f91e1e96fe3cf785d1
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Wed Sep 29 14:07:05 2010 +0200

    Updated Hungarian translation

 po/hu.po | 632
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 310 insertions(+), 322 deletions(-)

commit 38e476ac7da339cec868cabf21beed6a91254935
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Wed Sep 29 09:02:51 2010 +0200

    Updated French translation

 po/fr.po | 190
 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 116 insertions(+), 74 deletions(-)

commit 36ba8ffb87a9cf23d37c91d716e3a1512fcc7707
Author: Petr Kovar <pknbe@volny.cz>
Date:   Wed Sep 29 04:41:25 2010 +0200

    Update Czech translation

 po/cs.po | 994
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 563 insertions(+), 431 deletions(-)

commit e458687fac24770f368f9caf498c84400b749f6b
Author: Peter Kragelj <peter.kragelj@gmail.com>
Date:   Tue Sep 28 21:21:38 2010 +0200

    Updated Slovenian translation

 po/sl.po | 218
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 109 insertions(+), 109 deletions(-)

commit afb6e1b4589a5308c3e9d7b2b77fdb8d47419929
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Sep 28 17:35:23 2010 +0200

    Updated Galician translations

 po/gl.po | 555
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 305 insertions(+), 250 deletions(-)

commit 339182f575521ede0e380a3cf502f2ff974621b4
Author: Peter Kragelj <peter.kragelj@gmail.com>
Date:   Tue Sep 28 15:12:00 2010 +0200

    Updated Slovenian translation

 po/sl.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 974ab9cfa016e0f6c0b6c58b203fd1b1f891c3a2
Author: Peter Kragelj <peter.kragelj@gmail.com>
Date:   Tue Sep 28 15:10:33 2010 +0200

    Updated Slovenian translation

 po/sl.po | 623
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 308 insertions(+), 315 deletions(-)

commit e44f695f64d1baba9cc2f1eb2cdacbe68837dbfd
Author: Gintautas Miliauskas <gintautas@miliauskas.lt>
Date:   Tue Sep 28 00:12:42 2010 +0300

    Updated Lithuanian translation (thanks Aurimas Cernius).

 po/lt.po | 569
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 307 insertions(+), 262 deletions(-)

commit c4f2bd25934cb322c9910ef46148cea1beae2cca
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Mon Sep 27 20:19:46 2010 +0200

    [i18n] Updated German translation

 po/de.po | 582
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 311 insertions(+), 271 deletions(-)

commit 973174e5cc56cd4f273c9d3b54a36f803e0b59dd
Author: Fabrício Godoy <skarllot@gmail.com>
Date:   Mon Sep 27 08:49:51 2010 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 2487
 ++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1588 insertions(+), 899 deletions(-)

commit e2ea3eb5867b25465ef3ea540a541611aa7fef18
Author: Damyan Ivanov <dam+gnome@ktnx.net>
Date:   Mon Sep 27 13:31:09 2010 +0300

    Updated Bulgarian translation

 po/bg.po | 2388
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1570 insertions(+), 818 deletions(-)

commit 1a0dbff2365cc956ed0675a790dc09ea40f04fd1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 26 18:51:23 2010 -0400

    clean up g_date_time_get_week_day()

    No functionality changes here.

    Vastly simplify the algorithm for calculating the day of the week.

    Fix the documentation (which is incorrectly stating that 1 means
    Sunday) and clarify that the number we return is in line with ISO 8601
    week day numbering.

 glib/gdatetime.c | 24 +++---------------------
 1 file changed, 3 insertions(+), 21 deletions(-)

commit e77faeb9209518f422fa6b035b8f4dd4401bf0e1
Author: Wouter Bolsterlee <wbolster@gnome.org>
Date:   Sun Sep 26 22:59:38 2010 +0200

    Updated Dutch translation by Wouter Bolsterlee

 po/nl.po | 326
 +++++++++++++++++++++++----------------------------------------
 1 file changed, 119 insertions(+), 207 deletions(-)

commit 4e091e8647175063d4684cfc6717e70d27f4d625
Author: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
Date:   Sun Sep 26 22:39:14 2010 +0300

    Updated Romanian translation

 po/ro.po | 2508
 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 2003 insertions(+), 505 deletions(-)

commit 30132c44c18d9a08e4c6a9b4834366bd8628ecfa
Author: Johan Dahlin <johan@gnome.org>
Date:   Fri Sep 24 18:24:41 2010 -0300

    Add a lot of missing annotations

 gio/gaction.h                  |  2 +-
 gio/gappinfo.c                 |  3 +-
 gio/gasyncresult.c             |  4 +--
 gio/gcancellable.c             |  2 +-
 gio/gcontenttype.c             |  4 +--
 gio/gconverterinputstream.c    |  2 +-
 gio/gconverteroutputstream.c   |  2 +-
 gio/gcredentials.c             |  2 +-
 gio/gdbusaddress.c             |  4 +--
 gio/gdbusconnection.c          | 12 ++++----
 gio/gdbusmessage.c             | 12 ++++----
 gio/gdbusmethodinvocation.c    |  6 ++--
 gio/gdbusproxy.c               |  2 +-
 gio/gdesktopappinfo.c          |  2 +-
 gio/gdrive.c                   |  4 +--
 gio/gemblem.c                  |  2 +-
 gio/gemblemedicon.c            |  4 +--
 gio/gfile.c                    | 67
 +++++++++++++++++++++++-------------------
 gio/gfileenumerator.c          |  2 +-
 gio/gfileicon.c                |  4 +--
 gio/gfileinfo.c                |  4 +--
 gio/gfileinputstream.c         |  4 +--
 gio/gfileiostream.c            |  4 +--
 gio/gfileoutputstream.c        |  4 +--
 gio/gicon.c                    |  4 ++-
 gio/ginetsocketaddress.c       |  2 +-
 gio/ginitable.c                |  6 ++--
 gio/giomodule.c                |  4 +--
 gio/giomodule.h                |  2 +-
 gio/gkeyfilesettingsbackend.c  |  2 +-
 gio/gloadableicon.c            |  4 +--
 gio/gmemoryoutputstream.c      |  2 +-
 gio/gmount.c                   |  6 ++--
 gio/gnetworkaddress.c          |  8 ++---
 gio/gnetworkservice.c          |  2 +-
 gio/goutputstream.c            |  6 ++--
 gio/gproxy.c                   |  4 +--
 gio/gproxyresolver.c           |  6 ++--
 gio/gresolver.c                |  2 +-
 gio/gseekable.c                |  3 +-
 gio/gsettings.c                |  8 ++---
 gio/gsettingsbackend.c         |  6 ++--
 gio/gsettingsschema.c          |  2 +-
 gio/gsimpleasyncresult.c       |  4 +--
 gio/gsocket.c                  | 10 +++----
 gio/gsocketaddressenumerator.c |  4 +--
 gio/gsocketclient.c            | 18 ++++++------
 gio/gsocketconnectable.c       |  4 +--
 gio/gsocketconnection.c        |  6 ++--
 gio/gsocketcontrolmessage.c    |  2 +-
 gio/gsocketlistener.c          |  8 ++---
 gio/gsrvtarget.c               |  2 +-
 gio/gthemedicon.c              |  8 ++---
 gio/gunionvolumemonitor.c      |  2 +-
 gio/gunixconnection.c          |  2 +-
 gio/gunixcredentialsmessage.c  |  2 +-
 gio/gunixfdmessage.c           |  2 +-
 gio/gunixmounts.c              |  6 ++--
 gio/gvfs.c                     | 12 ++++----
 gio/gvolume.c                  |  2 ++
 gio/gvolumemonitor.c           |  2 +-
 61 files changed, 172 insertions(+), 161 deletions(-)

commit 701ce5d2011ee4408212461f6e191eaca2290d0a
Author: Johan Dahlin <johan@gnome.org>
Date:   Fri Sep 24 16:23:31 2010 -0300

    [introspection] Add GObject annotations

    These were moved in from gobject-introspection

 gobject/gobject.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 835f9cb310b988b07d1822c3f12093b9b01bc496
Author: Johan Dahlin <johan@gnome.org>
Date:   Fri Sep 24 15:51:26 2010 -0300

    [introspection] Move over annotations

    Move all the annotations over from gobject-introspection.

    They will not be used directly by the introspection scanner for now,
    instead they will be extracted by a script and updated manually
    until introspection is properly integrated into the glib build

 gio/gaction.c             |  4 ++--
 gio/gactiongroup.c        |  7 ++++---
 gio/gappinfo.c            |  6 +++---
 gio/gasyncinitable.c      |  2 +-
 gio/gcontenttype.c        |  2 +-
 gio/gdesktopappinfo.c     |  2 +-
 gio/gemblemedicon.c       |  3 ++-
 gio/gfile.c               | 22 +++++++++++-----------
 gio/gfileenumerator.c     |  4 ++--
 gio/giomodule.c           |  3 ++-
 gio/gmount.c              |  8 ++++----
 gio/gresolver.c           | 22 ++++++++++++----------
 gio/gsettings.c           |  7 ++++---
 gio/gsrvtarget.c          |  2 +-
 gio/gunionvolumemonitor.c |  2 +-
 gio/gunixmounts.c         |  4 ++--
 gio/gvolume.c             |  6 +++---
 gio/gvolumemonitor.c      |  2 +-
 18 files changed, 57 insertions(+), 51 deletions(-)

commit 0927dda8ad29cb4e6b3d19977be1fb747b1d4950
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Sep 24 13:56:35 2010 +0200

    Correct error message when GUnixOutputStream fails to write

    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=628876

 gio/gunixoutputstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 80de3ca7ccc4bca1beeaf18459ecf4f703c6a2de
Author: Andre Klapper <a9016009@gmx.de>
Date:   Fri Sep 24 13:15:23 2010 +0200

    Add missing file to POTFILES.in

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit 4d9ae95ae05669f329381898c38e6a98ae7f0cd5
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 23 19:16:25 2010 -0400

    GDBus: Don't use abstract sockets in test code

    It doesn't really work right now because of a dbus-daemon(1) bug - see
    the comment added in the TODO section of gdbusconnection.c. So revert
    to old behavior. The downside is a lot of files in /tmp but right now
    that's better than not being able to run tests in a loop.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c        | 9 +++++++++
 gio/tests/gdbus-sessionbus.c | 6 ++----
 2 files changed, 11 insertions(+), 4 deletions(-)

commit a35eb7047116d0614d9d8dc9d1e435d45659d0d6
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 23 18:57:35 2010 -0400

    GDBus: Use abstract namespace in test cases to avoid littering all
    over /tmp

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-sessionbus.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 7036415cc1a32bbd9cc08e516196dbd704f8b5eb
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 23 17:23:30 2010 -0400

    GDBusConnection: Use correct GMainContext when invoking free functions

    Without this fix, the ./gdbus-connection test case occasionally
    fails, see

     https://bugzilla.gnome.org/show_bug.cgi?id=629945#c5

    like this

     /gdbus/connection/basic: OK
     /gdbus/connection/life-cycle: **
    ERROR:gdbus-connection.c:223:test_connection_life_cycle: assertion
    failed:
    (!quit_mainloop_fired)
     cleaning up bus with pid 21794
     Aborted (core dumped)

    because the callback didn't happen on the same thread as where we are
    running the loop.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c        | 93
 +++++++++++++++++++++++++++++++++++++++-----
 gio/tests/gdbus-connection.c | 57 +++++++++++++++++++++------
 2 files changed, 129 insertions(+), 21 deletions(-)

commit 919f64acab8a0bfb1262f3df1cdda4383054e0f1
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Thu Sep 23 18:41:57 2010 +0300

    build: fix out of srcdir build

    The gtk-doc makefile rules do cd srcdir && cp $(HTML_IMAGES) target/
    and this
    breaks for "srcdir" != ".".

 docs/reference/gobject/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 643e5526c515f0ee6e681b806fda36eaaa3f263c
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 23 16:27:52 2010 -0400

    GDBus: fix name test cases

    Since we make message buses come and go, we need to ensure that the
    singleton connection instance goes away before attempting to call
    g_bus_get_sync() or similar.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-names.c | 1 +
 1 file changed, 1 insertion(+)

commit 71b1d738e2c0fe900b6bb6672aa464ce74b489b3
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 23 16:09:25 2010 -0400

    GDBus: bump timeout for some tests

    When under load, a one second timeout is just not enough. This can be
    observed by e.g. restarting a CPU- and IO-intensive application like a
    web browser with many tabs while running the test cases. Therefore,
    bump the timeouts to 30 seconds.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-connection.c | 8 ++++----
 gio/tests/gdbus-tests.c      | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 1f6a9f1e2d2ebc5f37e7c526344d7aa26cee148d
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 23 15:47:46 2010 -0400

    GDBus: Move "slow" connection test cases into separate test program

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/Makefile.am             |   4 +
 gio/tests/gdbus-connection-slow.c | 214
 ++++++++++++++++++++++++++++++++++++++
 gio/tests/gdbus-connection.c      | 160 ----------------------------
 3 files changed, 218 insertions(+), 160 deletions(-)

commit f0b04acfd31b768151a88db3f8d3347f55b2a7b3
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 23 15:10:50 2010 -0400

    GDBusConnection: Avoid callbacks on finalized connection

    Turns out that GDBusWorker will issue callbacks (in its own thread)
    even after g_dbus_worker_stop() has been called. This would rarely
    happen (and unreffing a connection is even rarer) so only saw this bug
    occasionally when running the gdbus-connection test case in a loop.

    Fix up this issue by maintaining a set of GDBusConnection objects that
    are currently "alive" and do nothing in the callbacks if the passed
    user_data pointer is not in this set.

    Also attempted to fix up a race condition with
    _g_object_wait_for_single_ref_do() and its use of GObject toggle
    references - for now, just resort to busy waiting, thereby
    sidestepping the toggle reference mess altogether.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c        | 65
 ++++++++++++++++++++++++++++++++++++++++----
 gio/gdbusprivate.c           | 14 ++--------
 gio/tests/gdbus-connection.c |  8 ++++--
 gio/tests/gdbus-tests.c      | 50 ++++++++++++++++++++++++++++++++--
 4 files changed, 115 insertions(+), 22 deletions(-)

commit c3c0e4d11d0682d832d199de31b35457f6078d5c
Author: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
Date:   Fri Sep 24 02:09:10 2010 +0900

    Updated Japanese translation (symbolic link related)

 po/ja.po | 58 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 30 insertions(+), 28 deletions(-)

commit e7df1a4157cc95e658a31de55e8374c4364a2238
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Wed Sep 22 13:11:59 2010 -0400

    Fix memory leak in SOCKSv5 implementation

 gio/gsocks5proxy.c | 1 +
 1 file changed, 1 insertion(+)

commit 99d57b5ce952b7f43ff52b41362035bfa193eb5f
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Sep 23 13:57:22 2010 +0200

    glib-2.0.m4: Use unsigned variables for version numbers

    When using signed, we get complaints from gcc about comparing
    signed to
    unsigned with -Wsign-compare. And combined with -Werror in users'
    CFLAGS
    it breaks configure runs.

 m4macros/glib-2.0.m4 | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 24a706404ded0578b029b2fb65e6418bda84d32f
Author: Bruno Brouard <annoa.b@gmail.com>
Date:   Thu Sep 23 08:47:54 2010 +0200

    Updated French translation

 po/fr.po | 1706
 ++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 1044 insertions(+), 662 deletions(-)

commit 61453216803d745b1d563710f8ec3aa918d2e819
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 22 06:45:02 2010 -0400

    GSocketControlMessage: clean up confusing code

    It looks like the deserialisation function in GSocketControlMessage
    can
    potentially leak a reference to the class structure of a
    GSocketControlMessage subclass (although the particular code path is
    probably never hit).

    Clean up the code a bit.

    Also, make sure that the GUnixCredentialsMessage type is registered
    before attempting deserialisation.

    Closes bug #629687.

 gio/gsocketcontrolmessage.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit 02451227ec8bafae48af4c519c9e0441176d1978
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 22 06:28:49 2010 -0400

    fix argument order for g_date_time_difference()

    The names of the arguments in the header file was reversed.

    Closes bug #630000

 glib/gdatetime.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 86d3342f854f11c1a35f02ec4f54c7aec345bae5
Author: Claude Paroz <claude@2xlibre.net>
Date:   Wed Sep 22 10:42:55 2010 +0200

    Add translator comments for command parameter translation

 gio/gsettings-tool.c | 2 ++
 1 file changed, 2 insertions(+)

commit 0a68f09494dea14d90ab802862eaa04d1ac54169
Author: Mattias Põldaru <mahfiaz gmail com>
Date:   Tue Sep 21 19:18:38 2010 +0300

    [l10n] Updated Estonian translation

 po/et.po | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 33216f3d07d21bb5a8af62cfffeb18c8352cf114
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Tue Sep 21 14:42:23 2010 +0200

    Updated Basque language

 po/eu.po | 1435
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 699 insertions(+), 736 deletions(-)

commit 60def049d95e82c836cfc8b2f13a4ed8472f7865
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Sep 20 17:56:30 2010 +0100

    Bug 630185 — Allow NULL strings in g_quark_try_string()

    Allow NULL strings to be passed to g_quark_try_string(), returning
    a 0 quark
    in that case, as per the existing documentation. Closes: bgo#630185

 glib/gdataset.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit f1f7e771d7b3d9f8b7c656c6d9a9d8112f32732d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Sep 20 22:51:26 2010 -0400

    Fix typo

 glib/giochannel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 291545b6eee306249529652a2d1422d0e7a460c8
Author: Colin Walters <walters@verbum.org>
Date:   Mon Sep 20 13:20:04 2010 -0400

    gdir: Clarify in documentation that ordering is not defined

 glib/gdir.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit 909fad7583ae9459fc3301e6de184b56a963464c
Author: Michael Kotsarinis <mk73628@gmail.com>
Date:   Mon Sep 20 19:40:53 2010 +0300

    l10n: Updated Greek translation for glib

 po/el.po | 6698
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 3700 insertions(+), 2998 deletions(-)

commit 05e185728a9b7decfd13f4bffaad9f240253e83f
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Mon Sep 20 15:15:46 2010 +0200

    Updated Hebrew translation.

 po/he.po | 1134
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 579 insertions(+), 555 deletions(-)

commit de432280a0e93aa1ebde4512fc1dd248af88bb32
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Sun Sep 19 22:06:10 2010 +0300

    docs: shorten var name in example

    We use 'pspec' instead of 'maman_param_spec' elsewhere too.

 docs/reference/gobject/tut_howto.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit aa8c8df44fc1e2b852bb6a0cfb516f976f841de5
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Sun Sep 19 22:03:40 2010 +0300

    docs: fix iface type naming

 docs/reference/gobject/tut_gtype.xml | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 58e5b01fbc208a8cd374b60951c70e3d5c4355de
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Sun Sep 19 21:50:31 2010 +0300

    docs: fix docbook validity

    'type' must be inside of 'link'.

 docs/reference/gobject/tut_gobject.xml | 19 ++++++------
 docs/reference/gobject/tut_gsignal.xml | 12 ++++----
 docs/reference/gobject/tut_gtype.xml   | 56
 +++++++++++++++++-----------------
 docs/reference/gobject/tut_howto.xml   | 10 +++---
 4 files changed, 49 insertions(+), 48 deletions(-)

commit 409f7db894bcfc6574d86aec34af6851dacc1666
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Sun Sep 19 21:37:19 2010 +0300

    docs: cleanup constructor example

    Remove unused var and chain-up the sane way we do elsewhere.

 docs/reference/gobject/tut_gobject.xml | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit a6ad0fbec23d78611bafd217ea56fcd58aea1405
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Sun Sep 19 21:33:52 2010 +0300

    docs: use passive voice.

 docs/reference/gobject/tut_howto.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 062e7f7848eb0577e4745b3e8c6a4e8312e360c3
Author: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
Date:   Mon Sep 20 02:02:32 2010 +0900

    Updated Japanese translation

 po/ja.po | 802
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 413 insertions(+), 389 deletions(-)

commit 5bb2da9b999b414ea65a7d89168101ddf87856f1
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sun Sep 19 18:07:57 2010 +0200

    Updated Danish translation

 po/da.po | 1305
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 772 insertions(+), 533 deletions(-)

commit 29393abf05b7322b1b1d267c5a929136ed8a7c70
Author: Wouter Bolsterlee <wbolster@gnome.org>
Date:   Sun Sep 19 17:08:25 2010 +0200

    Updated Dutch translation by Wouter Bolsterlee

 po/nl.po | 2089
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1372 insertions(+), 717 deletions(-)

commit abfa91e655254180ce134012cbbcffa8e150a00b
Author: Mattias Põldaru <mahfiaz gmail com>
Date:   Sun Sep 19 11:52:30 2010 +0300

    [l10n] Updated Estonian translation

 po/et.po | 1189
 ++++++++++++++++++++++++++++----------------------------------
 1 file changed, 531 insertions(+), 658 deletions(-)

commit cec629972b2a599cb28eb9d61cc000c4dc97f534
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 18 16:31:00 2010 -0400

    GDateTime: G_GNUC_WARN_UNUSED_RESULT for modifiers

    Emmanuele suggested adding G_GNUC_WARN_UNUSED_RESULT to all of the
    g_date_time_add_* functions to help deal with the situation where
    people
    may mistakenly believe that these functions are inplace modifiers.

 glib/gdatetime.h | 9 +++++++++
 1 file changed, 9 insertions(+)

commit ac05f990db211a27a950d61ef4bf47335ced7cc4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 18 12:52:58 2010 -0400

    Fix header cleaup fallout when using system pcre

    Using the internal pcre has the side effect of exposing gregex.c to
    glib.h.  When we use the system one, we lose that, so we need to
    explicitly include the things we use (glist, gatomic, etc..)

 glib/gregex.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 1bc08279b907529627677c9191664862c063de49
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Sat Sep 18 12:30:00 2010 +0100

    Updated Portuguese translation

 po/pt.po | 770
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 397 insertions(+), 373 deletions(-)

commit c1b7697a8ba4cf016f1efef86369376917acccdb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 17 20:48:25 2010 -0400

    bump version to 2.27.1

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dda9707377f43c827860dbce8bf09c7b98e2ad14
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 17 17:57:19 2010 -0400

    release 2.27.0

 NEWS                                      | 104
 ++++++++++++++++++++++++++++++
 docs/reference/glib/tmpl/glib-unused.sgml |  40 ------------
 docs/reference/glib/tmpl/messages.sgml    |  27 ++++++--
 docs/reference/glib/tmpl/version.sgml     |  41 ++++++++++++
 4 files changed, 166 insertions(+), 46 deletions(-)

commit 6393ffa3a6ac50b4b2cc1ed92760544caf9bb90a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Sep 18 01:18:13 2010 +0300

    GDateTime: fix a test that fails from time to time

    The test fails if it's a different date in the time zone of the
    machine
    running the test than it currently is in UTC.

 glib/tests/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7be2ba4d945682c30a91ff35dac255e0f4a0b038
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 17 13:27:38 2010 -0400

    Bump to version 2.27.0 after branching glib-2-26

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b4ee303ed6bc35b5dbb73bfa4b3a27eaba23a83c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 17 13:26:50 2010 -0400

    .gitignore some test cases

 gio/tests/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 5109778e939265087d1b1257daf6ba5f454ff346
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 17 13:20:17 2010 -0400

    .gitignore some sgml

 docs/reference/glib/tmpl/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit cf73ba47f14a5793b9575ce542edf558fe5abee8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Sep 17 13:14:59 2010 -0400

    Deal with gtk-doc's insane sensitivty to spaces

    ...by inserting a few of them.

 glib/goption.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6b0e31ce4891883b3923c40c68347dcf5fe54165
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 16 04:44:59 2010 -0400

    Clean-up/tweaking of GDateTime and GTimeZone

 docs/reference/glib/glib-docs.sgml    |    1 +
 docs/reference/glib/glib-sections.txt |   99 +-
 glib/Makefile.am                      |    2 +
 glib/gdatetime.c                      | 2681
 +++++++++++++++------------------
 glib/gdatetime.h                      |  247 ++-
 glib/glib.h                           |    1 +
 glib/glib.symbols                     |   49 +-
 glib/gtimezone.c                      |  790 ++++++++++
 glib/gtimezone.h                      |   81 +
 glib/tests/gdatetime.c                |  314 ++--
 10 files changed, 2373 insertions(+), 1892 deletions(-)

commit 909289c76330f66b87a51fbfc645fb4d474f1301
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 15 14:47:15 2010 +0100

    datetime: Fix hashing

    Convert to the epoch, just like we do when checking for equality, so
    that timezones are correctly handled.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

 glib/gdatetime.c | 83
 ++++++++++++++++++++++++++++++--------------------------
 1 file changed, 45 insertions(+), 38 deletions(-)

commit 3e9fb52214da793ef1320775f1ab8226bdca6ae2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 15 14:39:26 2010 +0100

    datetime: Rename g_date_time_printf() to g_date_time_format()

    The function does not use any printf() modifiers, so using printf()
    is a
    misnomer.

    Prior art: strftime, g_ascii_formatd

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

 glib/gdatetime.c       | 8 ++++----
 glib/gdatetime.h       | 2 +-
 glib/tests/gdatetime.c | 6 +++---
 3 files changed, 8 insertions(+), 8 deletions(-)

commit 4bac6613cfca4b0676a51e1df0848fa2e4d35120
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 15 13:55:36 2010 +0100

    datetime: Update modifiers for DST changes

    If a DateTime gets modified to cross the DST state from its previous
    state then we want to update the DateTime to compensate for the new
    offset.

    In other words, if we have a DateTime defined as:

      DateTime({ y: 2009, m: 8, d: 15, hh: 3, mm: 0, tz: 'Europe/London'
      });

    and we add six months to it, the hour must be changed to 60 minutes
    behind, as the DST comes into effect.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

 glib/gdatetime.c       | 270
 ++++++++++++++++++++++++++++++-------------------
 glib/tests/gdatetime.c |  67 +++++++++---
 2 files changed, 220 insertions(+), 117 deletions(-)

commit 0746f7403638a6f17c61ec04beb4f692914ce9a0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 15 10:05:41 2010 +0100

    datetime: Allow setting fractionary seconds in new_full()

    Otherwise we'll have to do:

      dt = g_date_time_new_full (Y, M, D, h, m, s, tz);
      tmp = g_date_time_add_usec (dt, usec);
      g_date_time_unref (dt);
      dt = tmp;

    With its additional allocations.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

 glib/gdatetime.c       | 6 +++---
 glib/gdatetime.h       | 2 +-
 glib/tests/gdatetime.c | 6 +++++-
 3 files changed, 9 insertions(+), 5 deletions(-)

commit 67f1e52ce2a1372e4f8ffc5fdf292b33120264ab
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Sep 14 08:00:40 2010 +0100

    datetime: Rework time zone support in constructors

    Timezone handling is complicated. Really complicated.

    In order to simplify it a little bit, we need to expose the GTimeZone
    structure.

    First of all, we allow creating time zone information directly
    from the
    offset and the DST state, and then pass it to the
    g_date_time_new_full()
    constructor. We also need to clean up the mess that is
    UTC-vs.-localtime
    for the other constructors.

    We also allow creating a GTimeZone from the Olson zoneinfo database
    names; a time zone created like this will be "floating": it will just
    reference the zoneinfo file - which are mmap()'ed, kept in a cache and
    refcounted. Once the GTimeZone has been associated with a GDateTime,
    it
    will be "anchored" to it: the offset will be resolved, as well as the
    DST state.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

 docs/reference/glib/glib-sections.txt |   1 -
 glib/gdatetime.c                      | 812
 +++++++++++++++++++++++-----------
 glib/gdatetime.h                      |  39 +-
 glib/glib.symbols                     |  11 +-
 glib/tests/gdatetime.c                |  51 ++-
 5 files changed, 630 insertions(+), 284 deletions(-)

commit bff4ac15d09a3f80551fda41f8ff2e2c1ae30d91
Author: Dan Winship <danw@gnome.org>
Date:   Fri Sep 17 10:21:57 2010 -0400

    g_output_stream_write: fix misleadingly ungrammatical documentation

    pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=626866

 gio/goutputstream.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 8a7365d892c23573ef659d7a93ce1518ddf58763
Author: Žygimantas Beručka <zygis@gnome.org>
Date:   Fri Sep 17 03:48:23 2010 +0300

    Updated Lithuanian translation

 po/lt.po | 128
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 63 insertions(+), 65 deletions(-)

commit d6af283f4e76163abd6b4e740cb95861080f1014
Author: Gintautas Miliauskas <gintautas@miliauskas.lt>
Date:   Thu Sep 16 22:13:54 2010 +0300

    Updated Lithuanian translation by Aurimas Cernius.

 po/lt.po | 2338
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 1530 insertions(+), 808 deletions(-)

commit 1c658c9c692643463c3f215ef73f8b72b046f2b7
Author: Petr Kovar <pknbe@volny.cz>
Date:   Thu Sep 16 01:56:26 2010 +0200

    Update Czech translation

 po/cs.po | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 0469782af5bda7fe9e9be9dfc2eda68a98c7ca49
Author: Petr Kovar <pknbe@volny.cz>
Date:   Wed Sep 15 21:43:18 2010 +0200

    Update Czech translation

 po/cs.po | 2006
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1327 insertions(+), 679 deletions(-)

commit 11f06115a4cc6972aedb810848e4a0f06165eb83
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 15 11:20:51 2010 -0400

    Bug 629709 - Empty variants

    Fix some GVariant bugs uncovered by calling g_variant_new_from_data
    with
    invalid data (which it should be immune to).

 glib/gvariant-core.c       | 26 ++++++++++++++++++++++++--
 glib/gvariant-serialiser.c |  3 +++
 2 files changed, 27 insertions(+), 2 deletions(-)

commit 1c5b96e92b9a5923be4686802025b455fb353429
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Wed Sep 15 09:10:32 2010 +0200

    Updated Spanish translation

 po/es.po | 1002
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 510 insertions(+), 492 deletions(-)

commit 780b76bd3ae9c13ae065fc4bdf84dc10ca69f23d
Author: Andika Triwidada <andika@gmail.com>
Date:   Wed Sep 15 07:44:48 2010 +0700

    Updated Indonesian translation

 po/id.po | 968
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 496 insertions(+), 472 deletions(-)

commit 1220501ec86b87e6cfe8ab3eac4a1fc6ea7a8acc
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Sep 14 19:38:14 2010 +0200

    GDBusConnection leaks its GCredentials

    ==7269== 144 bytes in 6 blocks are definitely lost in loss record
    1,282 of 1,325
    ==7269==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==7269==    by 0x4056B74: g_malloc (gmem.c:164)
    ==7269==    by 0x406EDB6: g_slice_alloc (gslice.c:842)
    ==7269==    by 0x406EDFB: g_slice_alloc0 (gslice.c:854)
    ==7269==    by 0x413C627: g_type_create_instance (gtype.c:1867)
    ==7269==    by 0x412276A: g_object_constructor (gobject.c:1480)
    ==7269==    by 0x4121E5D: g_object_newv (gobject.c:1264)
    ==7269==    by 0x4121BD3: g_object_new (gobject.c:1176)
    ==7269==    by 0x417CFB9: g_credentials_new (gcredentials.c:156)
    ==7269==    by 0x41D9DBC: g_unix_credentials_message_deserialize
    (gunixcredentialsmessage.c:149)
    ==7269==    by 0x41C422C: g_socket_control_message_deserialize
    (gsocketcontrolmessage.c:198)
    ==7269==    by 0x41BFCE3: g_socket_receive_message (gsocket.c:3289)
    ==7269==    by 0x41D99CE: g_unix_connection_receive_credentials
    (gunixconnection.c:476)
    ==7269==    by 0x41FA829: _g_dbus_auth_run_server (gdbusauth.c:987)
    ==7269==    by 0x4205DDB: initable_init (gdbusconnection.c:2196)

    Bug #629689.

 gio/gdbusconnection.c | 3 +++
 1 file changed, 3 insertions(+)

commit 235820d0ef817d549844fa898349e31f28fb833d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 14 14:55:38 2010 -0400

    GVariant: Check for size == 0 in get_bytestring

    And add a test from David that shows the problem.

    Closes #629698

 glib/gvariant.c       | 2 +-
 glib/tests/gvariant.c | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 2211ab1240d9bbab2a17197f6d97fafc9373ff46
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Sep 14 19:10:35 2010 +0200

    Updated Polish translation

 po/pl.po | 2082
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1101 insertions(+), 981 deletions(-)

commit f497f3b7aee06cc2d1f04b9f9adf3555353f2579
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Sep 14 11:25:57 2010 -0400

    GSettings: reverse accidental addition to .h file

    A couple of extra function prototypes snuck into commit
    77e3badcf3f15c7ac235904160d775febfcebcb5.  Take those out.

 gio/gsettings.h | 3 ---
 1 file changed, 3 deletions(-)

commit 7d143d420b0e3d02e1103a0c9decccd18b6024c9
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Tue Sep 14 14:10:17 2010 +0200

    Updated Hungarian translation

 po/hu.po | 836
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 430 insertions(+), 406 deletions(-)

commit 152f0dd3dbc9237f24830eeea76a84332d4f14a4
Author: Christian.Kirbach <Christian.Kirbach@googlemail.com>
Date:   Tue Sep 14 11:18:20 2010 +0200

    [l10n] Updated German translation

 po/de.po | 627
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 325 insertions(+), 302 deletions(-)

commit 3d1c463b48a6d54b671d7c8f39a7b4efba636d2b
Author: Aron Xu <aronxu@gnome.org>
Date:   Tue Sep 14 16:35:31 2010 +0800

    Update Simplified Chinese translation.

 po/zh_CN.po | 1307
 +++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 827 insertions(+), 480 deletions(-)

commit 5ec302deceeb0c5f5f34be41b775fd295784c012
Author: Timo Jyrinki <timo.jyrinki@iki.fi>
Date:   Tue Sep 14 09:37:45 2010 +0300

    (slightly) updated Finnish translation.

 po/fi.po | 1999
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1323 insertions(+), 676 deletions(-)

commit 8fbfcd90adce11c95d9a89c2f79f61a2d72f01ab
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Mon Sep 13 23:22:02 2010 +0100

    Update British English translation

 po/en_GB.po | 966
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 495 insertions(+), 471 deletions(-)

commit f5edeea0e5791de8d0f0936fa821ecd22fcd30b5
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Sep 13 23:46:03 2010 +0200

    Updated Galician translations

 po/gl.po | 984
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 504 insertions(+), 480 deletions(-)

commit f3770593f8691ce4cc1d597482d9b0f457066848
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Mon Sep 13 21:54:45 2010 +0200

    Updated Slovenian translation

 po/sl.po | 2534
 +++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 1579 insertions(+), 955 deletions(-)

commit ba17efc3961b094cc853b66d66e09a3d8b0444a1
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Sep 9 17:24:00 2010 +0100

    g_strdup_value_contents(): dump GStrv more usefully

    Previously, dumping a GValue holding a GStrv just yielded "((GStrv *)
    0xDEADBEEF)". I think it'd be more useful to dump a Python list-style
    representation of the GStrv's contents, if it's not NULL.

    Fixes: <https://bugzilla.gnome.org/show_bug.cgi?id=629192>

 gobject/gvaluetypes.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit cb2ddac7a29f534350f07afdbe5631b2f9df176f
Author: A S Alam <aalam@users.sf.net>
Date:   Mon Sep 13 23:09:33 2010 +0530

    update for Punjabi

 po/pa.po | 977
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 497 insertions(+), 480 deletions(-)

commit 2e78d07f86d70de274f126a3ff00bd4af90a5c90
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 23 01:12:01 2010 -0500

    Add g_data_input_stream_read_upto{,async,finish}

    These functions are meant to replace the read_until() flavour,
    with the
    following improvements:

      - consistency between the synchronous and asynchronous versions
      as to
        if the separator character is read (it never is).

      - support for using a nul byte as a separator character by way of
        addition of a length parameter which allows stop_chars to
        be treated
        as a byte array rather than a nul-terminated string.

    The read_until() functions are not yet formally deprecated, but a note
    has been added to the documentation warning not to use them as
    they will
    be in the future.

    This is bug #584284.

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gdatainputstream.c              | 257
 +++++++++++++++++++++++++++++-------
 gio/gdatainputstream.h              |  66 +++++----
 gio/gio.symbols                     |   3 +
 gio/tests/data-input-stream.c       |  61 ++++++++-
 5 files changed, 312 insertions(+), 78 deletions(-)

commit 0ecfc6e1f9fa3439f733fc75cc462218a0a1974e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 13 12:02:13 2010 -0400

    Better msgctxt for month and weekday names

    The current msgctxt string 'GDateTime" lead to the unability to
    differentiate between the full and abbreviated name for May.
    Therefore, the msgctxt strings have been changed to
      'full month name'
      'abbreviated month name'
      'full weekday name'
      'abbreviated weekday name'
    This is a string change, but all translations have been updated
    using an sed script.

    Bug 629429

 glib/gdatetime.c | 86
 ++++++++++++++++++++++++++++++--------------------------
 po/ar.po         | 74 ++++++++++++++++++++++++------------------------
 po/de.po         | 74 ++++++++++++++++++++++++------------------------
 po/en_GB.po      | 74 ++++++++++++++++++++++++------------------------
 po/es.po         | 74 ++++++++++++++++++++++++------------------------
 po/eu.po         | 74 ++++++++++++++++++++++++------------------------
 po/gl.po         | 74 ++++++++++++++++++++++++------------------------
 po/he.po         | 74 ++++++++++++++++++++++++------------------------
 po/hu.po         | 74 ++++++++++++++++++++++++------------------------
 po/id.po         | 74 ++++++++++++++++++++++++------------------------
 po/ja.po         | 74 ++++++++++++++++++++++++------------------------
 po/nb.po         | 74 ++++++++++++++++++++++++------------------------
 po/pa.po         | 74 ++++++++++++++++++++++++------------------------
 po/pl.po         | 74 ++++++++++++++++++++++++------------------------
 po/pt.po         | 74 ++++++++++++++++++++++++------------------------
 po/sr.po         | 74 ++++++++++++++++++++++++------------------------
 po/sr@latin.po   | 74 ++++++++++++++++++++++++------------------------
 po/sv.po         | 74 ++++++++++++++++++++++++------------------------
 po/zh_HK.po      | 74 ++++++++++++++++++++++++------------------------
 po/zh_TW.po      | 74 ++++++++++++++++++++++++------------------------
 20 files changed, 749 insertions(+), 743 deletions(-)

commit bd569dc3c97fb23447951388cc57ff23844f96e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 13 11:58:56 2010 -0400

    Adapt POTFILES.in to source file renaming

 po/POTFILES.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 445f708b8ff93b96ff1e440fe9c26bf8b19ff706
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 13 12:07:51 2010 -0400

    Const 'parser' arg to g_markup_parse_context_push

    This is a vtable structure and very likely the user has allocated
    it in
    static storage and wants it to be const.  Since we never modify it, no
    harm is done to us to have it const.

    Closes bug #629328.

 glib/gmarkup.c | 2 +-
 glib/gmarkup.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 124023b06d39c5b94605368abd8f9576ece45ca4
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Mon Sep 13 17:53:54 2010 +0200

    Make g_variant_builder_end's return to be (allow none) because callers
    need to add a ref to it in addition to sinking it.

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8466ba8dc120c7e95df8a147ade9d5b449727c0e
Author: Kristian Rietveld <kris@gtk.org>
Date:   Mon Sep 13 16:52:51 2010 +0200

    Include giochannel.c for G_IO_IN, etc.

    Fixes build on OS X.

 glib/gpoll.c | 1 +
 1 file changed, 1 insertion(+)

commit 9cd43d7a4c5d3a50187c2eaba7ab903cf6456d7d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 18 15:32:27 2010 +0100

    gobject: Add install_properties()

    Since we added g_object_notify_by_pspec(), an efficient way to install
    and notify properties relies on storing the GParamSpec pointers inside
    a static arrays, like we do for signal identifiers.

    Instead of multiple calls to g_object_class_install_property(), we
    should have a single function to take the static array of GParamSpecs
    and iterate it.

    https://bugzilla.gnome.org/show_bug.cgi?id=626919

    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 docs/reference/gobject/gobject-sections.txt |   1 +
 gobject/gobject.c                           | 121 ++++++++++++++-
 gobject/gobject.h                           |   3 +
 gobject/gobject.symbols                     |   1 +
 gobject/tests/.gitignore                    |   1 +
 gobject/tests/Makefile.am                   |   4 +-
 gobject/tests/properties.c                  | 222
 ++++++++++++++++++++++++++++
 7 files changed, 350 insertions(+), 3 deletions(-)

commit 58a40904af47fbc838bea29cc6ab068b26eb74c5
Author: Daniel Nylander <po@danielnylander.se>
Date:   Sun Sep 12 20:25:57 2010 +0200

    Updated Swedish translation

 po/sv.po | 700
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 361 insertions(+), 339 deletions(-)

commit 681a72ea9923a3b37d8258b2b25e8f734d92bf21
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Sep 12 13:35:30 2010 -0400

    GSettings: no writability->value change assumption

    GSettings internally assumed that a change in key writability
    implied a
    change in value.  That may be true for some backends.  Let those
    backends deal with the situation for themselves.

 gio/gsettings.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

commit 8a8cdd1d328df0f2429e2c49050dae1aec4abf36
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Sep 12 13:58:13 2010 +0300

    Add some more individual own header includes where required

 gio/gdbusprivate.c | 1 +
 glib/gunicollate.c | 3 +++
 glib/guniprop.c    | 3 +++
 3 files changed, 7 insertions(+)

commit fc3abfffcf63a12f766f86bca29bd71544aa0416
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Sun Sep 12 11:02:47 2010 +0200

    [i18n] Updated German translation

 po/de.po | 2092
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1382 insertions(+), 710 deletions(-)

commit 825576322ab491d79fc272c5d536b241b8dad352
Author: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
Date:   Sun Sep 12 03:02:24 2010 +0900

    Updatede Japanese translation.

 po/ja.po | 2420
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 1568 insertions(+), 852 deletions(-)

commit 38a3b1730de7ec40627c2f6f75320e9e432ce12c
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Sat Sep 11 17:01:10 2010 +0200

    Add annotation for g_variant_get_string

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e7f04bf29af35e606920abb2e04a277ccb6de2bd
Author: Andika Triwidada <andika@gmail.com>
Date:   Sat Sep 11 16:29:06 2010 +0700

    Updated Indonesian translation

 po/id.po | 46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

commit dc8dc56ddd5da7d9e4a10891ba917e424cb6b7d8
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sat Sep 11 12:08:32 2010 +0300

    dos2unix glib/win_iconv.c

 glib/win_iconv.c | 3930
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 1965 insertions(+), 1965 deletions(-)

commit 1254104cea92c02f3d0e9cf10b99382dd7e71439
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Sep 11 00:12:13 2010 +0200

    docs: Clarify string encoding for GFile constructors

    The encoding was deduced from looking at the source code, feel free to
    fix if it's wrong (the docs _and_ the source code).

 gio/gfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 0b74058fa3144f85b5fefd4c81129b971010452a
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Sep 10 16:21:37 2010 -0400

    Add work-around for Bug 627724

    The root problem is with GObject - for now, just work around it in
    GDBus. Also include a test-case. See

     https://bugzilla.gnome.org/show_bug.cgi?id=627724

    for more information.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c         | 44 +++++++++++++++++++++-
 gio/tests/Makefile.am      |  4 ++
 gio/tests/gdbus-bz627724.c | 94
 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 140 insertions(+), 2 deletions(-)

commit 12029eeb6a54f2445bde0af314116844122b535b
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Sep 10 13:27:48 2010 -0400

    Remove g_dbus_message_filter_result_get_type() from gio.symbols

    Pointed out by danw on IRC.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gio.symbols | 1 -
 1 file changed, 1 deletion(-)

commit bc29aa9b0956dec53c0b957ce879b41329307058
Author: Dan Winship <danw@gnome.org>
Date:   Fri Sep 10 09:12:17 2010 -0400

    g_socket_client_connect_async: fix when g_socket_connect succeeds
    immediately

    https://bugzilla.gnome.org/show_bug.cgi?id=629251

 gio/gsocketclient.c | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

commit 59383c8bea00b8f4bf50cf82ae9f3e7ce1df1a03
Author: Dan Winship <danw@gnome.org>
Date:   Fri Sep 10 08:51:21 2010 -0400

    Fix IPv6 parsing in _g_uri_parse_authority, add _g_uri_from_authority

    Fixes connections to IPv6 address literals.

    https://bugzilla.gnome.org/show_bug.cgi?id=629259

 gio/gnetworkaddress.c    | 49
 +++++++++++++++++++++++++++++++++++++++++++++---
 gio/gnetworkingprivate.h |  4 ++++
 gio/gnetworkservice.c    |  9 +++++----
 gio/gsocketaddress.c     |  2 +-
 4 files changed, 56 insertions(+), 8 deletions(-)

commit f8cb2a60b9fb79f4d3719f842d71245d844ee9c0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 9 16:28:18 2010 -0400

    Add 3 new restrictions to the schema compiler

     - can not extend schemas that already have paths
     - can not form list of schemas that already have paths
     - the path of a list schema, if given, must end with ':/'

 gio/glib-compile-schemas.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

commit 7777dd2c3951e14fadb56a01b5c31b6404253cd3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 9 16:12:45 2010 -0400

    Rename gschema-compile.c -> glib-compile-schemas.c

 gio/Makefile.am                                   | 2 +-
 gio/{gschema-compile.c => glib-compile-schemas.c} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 77e3badcf3f15c7ac235904160d775febfcebcb5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Sep 6 12:47:37 2010 -0400

    split GSettings.list_items => list_{children,keys}

    This is an incompatible public API/ABI change.

 gio/gio.symbols       |  3 +-
 gio/gsettings-tool.c  | 18 +++++------
 gio/gsettings.c       | 88
 +++++++++++++++++++++++++++++++++++++++++----------
 gio/gsettings.h       |  6 +++-
 gio/tests/gsettings.c | 18 +++++++----
 5 files changed, 97 insertions(+), 36 deletions(-)

commit 7b4cbbb7b21c9d53922a79aa499892b3de5642dc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Sep 9 15:45:53 2010 -0400

    Create GSettingsListenerVTable

    ...instead of passing a whole whack of function pointers around

    This is an internal API.

 gio/gdelayedsettingsbackend.c  |  35 +++++++------
 gio/gsettings.c                |  48 +++++++++---------
 gio/gsettingsbackend.c         |  54 ++++++++-------------
 gio/gsettingsbackendinternal.h | 108
 +++++++++++++++++++----------------------
 4 files changed, 115 insertions(+), 130 deletions(-)

commit 7c6606854400ba2a4d0c5b5a0eb96ba90845f82e
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 9 15:15:13 2010 -0400

    GDBusMessage: Don't reset serial number when copying

    Ryan pointed out that it's safe to do this because we have the
    G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag and that it simplifies
    how filter functions work.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.h     | 12 ++++++------
 gio/gdbusmessage.c        |  3 ++-
 gio/gdbusprivate.c        |  6 ------
 gio/tests/gdbus-message.c |  2 +-
 4 files changed, 9 insertions(+), 14 deletions(-)

commit a51df8cefb17cdaea61a468076e0b67868439b4d
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 9 14:14:45 2010 -0400

    GUnixConnection: Remove comment about Linux

    Since the previous commit, the g_unix_connection_send_credentials() /
    g_unix_connection_receive_credentials() functions now also works on
    FreeBSD since GUnixCredentialsMessage now works there.

    The main idea is that the g_unix_connection_send_credentials() /
    g_unix_connection_receive_credentials() functions are the "main" API
    for getting credentials (one way or the other). So it's better to
    avoid advertising where it is currently implemented.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gunixconnection.c | 2 --
 1 file changed, 2 deletions(-)

commit 964eb62343b53cf9172d409adacbb58d78896092
Author: Joe Marcus Clarke <marcus@freebsd.org>
Date:   Thu Sep 9 14:10:01 2010 -0400

    Bug 628904 – Add credential support for FreeBSD and fix a socket
    issue

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gcredentials.c            | 53
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gioenums.h                |  4 +++-
 gio/gsocket.c                 |  9 ++++++--
 gio/gunixcredentialsmessage.c | 46 +++++++++++++++++++++++++++++++++++++
 4 files changed, 109 insertions(+), 3 deletions(-)

commit ee945d8f621609086a8777ca4226cb93308c12e4
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 9 14:00:46 2010 -0400

    GDBusServer: Make ::new-connection return whether the connection
    was claimed

    Otherwise things probably won't work in a garbage-collected world
    (consider the trivial GC that never collects garbage).

    This commit breaks GDBusServer ABI. No known released software is
    using this code.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusserver.c              | 34 ++++++++++++++++++++++------------
 gio/gio-marshal.list           |  1 +
 gio/tests/gdbus-example-peer.c |  4 +++-
 gio/tests/gdbus-peer.c         | 12 +++++++++---
 4 files changed, 35 insertions(+), 16 deletions(-)

commit c3371efcaa47b03941c6c8148687b0a21d18dfbe
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 9 13:21:35 2010 -0400

    Bug 624546 – Modification of GDBusMessage in filter function

    Rework filter functions as per

     https://bugzilla.gnome.org/show_bug.cgi?id=624546#c8

    This commit breaks ABI. However, this ABI break affects only
    applications using filter functions. The only known user of is dconf.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 -
 gio/gdbusconnection.c               | 95
 +++++++++++++++----------------------
 gio/gdbusconnection.h               | 81 +++++++++++++++++++++++++------
 gio/gdbusprivate.c                  | 37 +++++++++------
 gio/gdbusprivate.h                  |  6 +--
 gio/gioenums.h                      | 25 ----------
 gio/tests/gdbus-connection.c        | 69 +++++++++++++++++----------
 gio/tests/gdbus-peer.c              |  4 +-
 8 files changed, 175 insertions(+), 143 deletions(-)

commit 3d8095588a149826872d97151db6370e9772c42e
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 9 12:00:00 2010 -0400

    Fix tmpl files

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/glib/tmpl/conversions.sgml |  12 +--
 docs/reference/glib/tmpl/glib-unused.sgml |  40 +++++++++
 docs/reference/glib/tmpl/gregex.sgml      | 142
 +++++++++++++++---------------
 docs/reference/glib/tmpl/messages.sgml    |  27 ++----
 docs/reference/glib/tmpl/version.sgml     |  41 ---------
 5 files changed, 122 insertions(+), 140 deletions(-)

commit 67a00658eadfd99ffd1be8cb5a7387e3d77e63a7
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Sep 9 11:37:14 2010 -0400

    GDBusMessage: Make it possible to lock and copy messages

    Don't actually use this yet as that will require a couple of
    modifications to the filter function signature. This is part of the
    bug-fix for

     https://bugzilla.gnome.org/show_bug.cgi?id=624546#c8

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gdbusmessage.c                  | 210
 +++++++++++++++++++++++++++++++++++-
 gio/gdbusmessage.h                  |   5 +-
 gio/gio.symbols                     |   3 +
 gio/tests/Makefile.am               |   4 +
 gio/tests/gdbus-message.c           | 153 ++++++++++++++++++++++++++
 6 files changed, 375 insertions(+), 3 deletions(-)

commit 016cecb179de46defe84d674c277add5c2a1bd3f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Sep 8 11:58:42 2010 +0300

    Revert hack that broke things badly on Windows

    This should fix bug #628952.

    Don't include glib/gdatasetprivate.h directly. Especially don't define
    GLIB_COMPILATION when doing that, as that causes breakage on Windows
    because of the variable dllimport/dllexport stuff in gtypes.h that
    checks GLIB_COMPILATION. That macro really should be defined only when
    compiling code that goes into the libglib DLL. Otherwise the compiler
    thinks that variables that should be imported from libglib are
    actually defined in the code being compiled.

    Just call g_atomic_pointer_get() as such, don't bother with
    G_DATALIST_GET_FLAGS.

    Signed-off-by: Tor Lillqvist <tml@iki.fi>

 gobject/gobject.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

commit 349322622a46cafbda7d4d16c0fa9b245467d720
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Tue Sep 7 18:03:19 2010 +0200

    Updated Basque language

 po/eu.po | 2300
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1526 insertions(+), 774 deletions(-)

commit e96bbfe63a3d6f1a16a417ce0d1f839b77cf4f93
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Sep 7 17:43:37 2010 +0200

    Updated Polish translation

 po/pl.po | 1791
 +++++++++++++++++++++++++-------------------------------------
 1 file changed, 713 insertions(+), 1078 deletions(-)

commit c3a7e51edfadbd9fb53db5c9443aa64d82dd763d
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Tue Sep 7 17:42:19 2010 +0200

    Updated Polish translation

 po/pl.po | 2578
 +++++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 1800 insertions(+), 778 deletions(-)

commit c406b272a6b9d89f3061632507d7fc2538011b34
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Tue Sep 7 00:33:02 2010 +0100

    Updated Portuguese translation

 po/pt.po | 276
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 153 insertions(+), 123 deletions(-)

commit 5a0ba0f7fc056ec800454f4977d3307c879335d4
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Tue Sep 7 00:29:36 2010 +0100

    Updated Portuguese translation

 po/pt.po | 2291
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 1494 insertions(+), 797 deletions(-)

commit d0a4fae95f46e9b6a67057f241d7b904b5a7dbd3
Author: Daniel Nylander <po@danielnylander.se>
Date:   Mon Sep 6 23:10:09 2010 +0200

    Updated Swedish translation

 po/sv.po | 849
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 582 insertions(+), 267 deletions(-)

commit 3b9055265fd30a215cbd230dc61f77ef02337193
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Mon Sep 6 15:07:02 2010 +0200

    Updated Hungarian translation

 po/hu.po | 2287
 +++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1503 insertions(+), 784 deletions(-)

commit 548ddd5fe92fd9e14e217e68930bd036bffadc5f
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Sep 6 15:56:16 2010 +0300

    Fix build on Windows and possibly other non-Linux platforms

    Include glibconfig.h in files that test G_OS_WIN32. Include headers
    for GLib APIs used conditionally where needed.

 glib/gbacktrace.c |  1 +
 glib/gconvert.c   |  6 ++++++
 glib/gdate.c      |  5 +++++
 glib/gfileutils.c |  1 +
 glib/gmain.c      | 18 ++++++++++++++++++
 glib/gpoll.c      |  4 ++++
 glib/gslice.c     |  1 +
 glib/gstdio.c     |  1 +
 glib/gtimer.c     |  2 +-
 glib/gutils.c     |  6 ++++++
 10 files changed, 44 insertions(+), 1 deletion(-)

commit 2aa135ee3d7b0a3e3140ce994ef0f554cadf9ab4
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 6 12:26:40 2010 +0100

    Whitespace fixes

 glib/gdatetime.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

commit 43098d0038ce1273844e2fba34cfa2408cd6e3bd
Author: Damien Lespiau <damien.lespiau@intel.com>
Date:   Sun Sep 5 21:47:44 2010 +0100

    datetime: Rename shadowing variables

    timezone and tzname shadow variables declared in time.h. Let's rename
    them to time_zone and tz_name then.

    https://bugzilla.gnome.org/show_bug.cgi?id=628839

 glib/gdatetime.c | 46 +++++++++++++++++++++++-----------------------
 glib/gdatetime.h |  2 +-
 2 files changed, 24 insertions(+), 24 deletions(-)

commit 875ad12345e22b3189e524d9bede58f6e7b5cf88
Author: Thiago Santos <thiago.sousa.santos@collabora.co.uk>
Date:   Fri Sep 3 14:43:11 2010 +0100

    gdatetime: Use proleptic gregorian

    Use Proleptic Gregorian calendar instead of the Julian calendar
    as the internal representation.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/gdatetime.c       | 225
 ++++++++++++++++++++++++++++---------------------
 glib/tests/gdatetime.c |  32 +++++++
 2 files changed, 161 insertions(+), 96 deletions(-)

commit 6bb89501cf7bfb5e4365d8dd3ef045a0c096af0c
Author: Christian Hergert <chris@dronelabs.com>
Date:   Tue Aug 31 09:27:58 2010 -0700

    datetime: use g_utf8_next_char() to walk utf8 string

    Previously, the format string was iterated many times by
    walking to the given offset in the string repeatedly.
    This patch instead walks the string using g_utf8_next_char().

    Additionally, the character for lookups was a char and could
    loose content.  This uses gunichar instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

 glib/gdatetime.c | 29 +++++++++++++----------------
 1 file changed, 13 insertions(+), 16 deletions(-)

commit 52e44ddec27cca394e7aa047d994530783b7026a
Author: Christian Hergert <chris@dronelabs.com>
Date:   Tue Aug 31 09:10:16 2010 -0700

    datetime: avoid using __year

    These were left over from when the inline functions where implemented
    as macros.  They are no longer needed and where clashing with the
    global __year anyway.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

 glib/gdatetime.c | 54
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 27 insertions(+), 27 deletions(-)

commit 64300c0cc44b206db3f4dd206cced56ddda33038
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 26 15:23:13 2010 +0100

    datetime: Add get_week_of_year()

    https://bugzilla.gnome.org/show_bug.cgi?id=628029

    Based on a patch by: Joseph Pingenot

    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 docs/reference/glib/glib-sections.txt | 25 +++++++++++++------------
 glib/gdatetime.c                      | 21 +++++++++++++++++++++
 glib/gdatetime.h                      |  1 +
 glib/glib.symbols                     |  1 +
 4 files changed, 36 insertions(+), 12 deletions(-)

commit 70ef2e3bf64b4bfe85d2cf60daf95c50aa292039
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 26 13:11:46 2010 +0100

    datetime: Rename internal method

    Use add_ymd(), to reflect the order of the arguments.

 glib/gdatetime.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 959886d95e0f4caafbfd300320dc8055e8bbbac7
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Sep 6 11:43:04 2010 +0100

    build: Fix warnings caused by missing includes

 glib/giounix.c | 1 +
 glib/gslice.c  | 2 ++
 glib/gspawn.c  | 2 ++
 3 files changed, 5 insertions(+)

commit 438d195d19f627dc9da9d72ca153f5caba5db151
Author: Khaled Hosny <khaledhosny@eglug.org>
Date:   Sun Sep 5 16:23:00 2010 +0200

    Updated Arabic translation

 po/ar.po | 1982
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 1297 insertions(+), 685 deletions(-)

commit f4c84a59f89f3f22958cf5b263963e801d76065d
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sun Sep 5 19:24:01 2010 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 546
 +++++++++++++++++++++++++++++++++++++++++-------------------
 po/zh_TW.po | 546
 +++++++++++++++++++++++++++++++++++++++++-------------------
 2 files changed, 758 insertions(+), 334 deletions(-)

commit f13d5612116de1e968764721fbc60b8e1d378430
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Sep 5 00:23:03 2010 -0400

    More header inclusion cleanup

 glib/gatomic-gcc.c |  2 +-
 glib/gatomic.c     |  2 +-
 glib/gerror.c      |  4 +++-
 glib/giounix.c     | 10 +++++++---
 glib/gprintf.c     |  1 -
 glib/gslice.c      | 15 +++++++++------
 glib/gspawn.c      |  7 ++++++-
 glib/gunidecomp.c  |  3 ++-
 glib/gutils.c      | 10 +++++++++-
 9 files changed, 38 insertions(+), 16 deletions(-)

commit 19972a1b57ef092067f001bb8d870fa552cc20a2
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 4 18:24:50 2010 +0100

    build: Quench the compiler's thirst for warnings

 gio/gdbusauthmechanismsha1.c    | 1 +
 gio/gdbusmessage.c              | 1 +
 gio/gdbusproxy.c                | 1 +
 gio/gdbusserver.c               | 1 +
 gio/tests/gdbus-introspection.c | 5 ++++-
 gio/tests/gdbus-peer.c          | 1 +
 6 files changed, 9 insertions(+), 1 deletion(-)

commit 581e68b7d3f57654d881cea6de7bdfabae62e368
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 4 18:15:15 2010 +0100

    gmain: Define _GNU_SOURCE before including glibconfig.h

    As it pulls in unistd.h from something else.

 glib/gmain.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit ca7dee5949185cd43a1f71c4e2b15987a0cc3160
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 4 18:04:34 2010 +0100

    Build fixes for the fall-out of the inclusion changes

 glib/gbacktrace.c | 3 +++
 glib/gchecksum.c  | 1 +
 glib/gdataset.c   | 1 +
 glib/gdatetime.c  | 3 +++
 glib/gdatetime.h  | 2 +-
 glib/gdir.c       | 1 +
 glib/ghash.c      | 1 +
 glib/ghostutils.c | 1 +
 glib/giochannel.c | 1 +
 glib/gpoll.c      | 1 +
 glib/grand.c      | 1 +
 glib/gscanner.c   | 1 +
 glib/gshell.c     | 1 +
 13 files changed, 17 insertions(+), 1 deletion(-)

commit b1dbcc40237f77f3648b8f5fd654ce30d260f7ba
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 4 18:03:33 2010 +0100

    gtimer: Fix a compilation warning

 glib/gtimer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 01a46e5c652ec8030226a9cf54025e175f56caac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 4 17:22:39 2010 +0100

    Hack to include glib/gdatasetprivate.h directly

    The gdatasetprivate.h header includes gatomic.h directly. It all works
    well in GLib, but inside GObject it will trigger the single inclusion
    guard.

    Since this is a private header, and it's kind of a special case,
    one way
    to fix it is to declare GLIB_COMPILATION around it and fool the single
    inclusion guard in gatomic.h into thinking we're compiling GLib
    and not
    GObject.

 gobject/gobject.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 82db1446b39a4579b342b89fd0eba50c4f93441b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Sat Sep 4 17:22:18 2010 +0100

    Add missing gstrfuncs.h include

    For g_strdup() and friends.

 glib/gutf8.c | 1 +
 1 file changed, 1 insertion(+)

commit 04077ff5c5f57dd8c55c47bfb80d551e594a525c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 23:03:14 2010 -0400

    More include cleanups

 glib/gconvert.c    |   16 +-
 glib/gdataset.c    |   11 +-
 glib/gdate.c       |   10 +-
 glib/gdir.c        |    4 +-
 glib/gfileutils.c  |    4 +-
 glib/ghash.c       |    5 +-
 glib/ghook.c       |    8 +-
 glib/ghostutils.c  |   11 +-
 glib/giochannel.c  |    3 +-
 glib/gmain.c       |   17 +-
 glib/gpoll.c       |    2 +-
 glib/gqsort.c      |    4 +-
 glib/gscanner.c    |   27 +-
 glib/gshell.c      |    9 +-
 glib/gstdio.c      |    2 -
 glib/gstrfuncs.c   | 1128
 ++++++++++++++++++++++++++--------------------------
 glib/gthreadpool.c |    7 +-
 glib/gtimer.c      |   10 +-
 glib/gunicollate.c |    7 +-
 glib/guniprop.c    |    6 +-
 20 files changed, 672 insertions(+), 619 deletions(-)

commit dc2e46b2aa5b57883379807421eb1d0493ae343e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 21:24:40 2010 -0400

    Don't include glib.h in other headers

 glib/gdatasetprivate.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2effb8d0eaf8041615dda14e4cc82ed764255859
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 21:20:07 2010 -0400

    Remove excessive header includes

 glib/goption.c | 1898
 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 951 insertions(+), 947 deletions(-)

commit 7c68050451b0480673bb389c70f238fcd871790b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 21:15:45 2010 -0400

    Remove excessive header includes

 glib/gdatetime.c | 8 ++++----
 glib/gdatetime.h | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit aad19216518126306a385dd5b6fb2448bc1d3b22
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 21:12:03 2010 -0400

    Don't include glib.h in other headers

 glib/gunicodeprivate.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 349aec676c01d72c42ce186b258fdde52acd6611
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:57:05 2010 -0400

    Remove excessive header inclusions

 glib/glist.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 633f438300ab08b97f8f4ea8ff1b06bd8413cf24
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:55:17 2010 -0400

    Remove excessive header inclusions

 glib/gqueue.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 7ddd2100c36215b8806569933d046b96d7eea09a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:53:37 2010 -0400

    Remove excessive header inclusions

 glib/gmarkup.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 56818094485fdfb26ee57b86afe1526704158a73
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:51:08 2010 -0400

    Remove excessive header inclusions

 glib/gmessages.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

commit a376d9f4c85bdac832f404175b4e65e0a81825a1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:46:40 2010 -0400

    Remove some unneeded headers

 glib/gnode.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 92c577eeff6c42247a4eb3a74eb3f4894a143f9d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:44:59 2010 -0400

    Remove eexcessive header inclusions

 glib/grand.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 0a9eb80798274cb4faffcf8bd6fee829d767b336
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:41:52 2010 -0400

    Remove redundant header inclusions

 glib/gprimes.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 6e3b14e155d08e7fee722c282f2b0c42c4bb7bbe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:38:30 2010 -0400

    Remove redundant header inclusions

 glib/gunibreak.c | 1 -
 glib/gunibreak.h | 3 +++
 2 files changed, 3 insertions(+), 1 deletion(-)

commit c5049d86f94cc7f943ee63c93bb01100e759769b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:34:15 2010 -0400

    Remove redundant header inclusions

 glib/gstring.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 96d87da379879f20e2c162b468525aaa1a0a82dd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:30:54 2010 -0400

    Remove redundant header inclusions

 glib/gregex.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 3e2f1e38255d8157a2ecf244d6a5f6515b8c2d6b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:27:45 2010 -0400

    Remove redundant header inclusions

    and some whitespace cleanup.

 glib/gsequence.c | 638
 ++++++++++++++++++++++++++++---------------------------
 1 file changed, 320 insertions(+), 318 deletions(-)

commit 8f81ee86ee307448d9a687c01d4958914e5ebc90
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:15:16 2010 -0400

    Remove redundant header inclusions

 glib/gslist.c | 345
 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 173 insertions(+), 172 deletions(-)

commit d95c6b88348a7c6480c3368d7762137a40a490ba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:12:09 2010 -0400

    Remove redundant header inclusions

 glib/gvariant-parser.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 1409bbab674d935dd3e8072a17719be1e0ba9d66
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:05:27 2010 -0400

    Remove redundant header inclusions

 glib/gtree.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 9471902d4d386328f248e2db2e3be895c4ecd5f1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 20:01:55 2010 -0400

    Remove redundant header inclusions

 glib/gutf8.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit ebcdbd9555b7a1a06ad666d1fef187779f085ea1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 19:49:34 2010 -0400

    Remove redundant header inclusions

    and clean up some whitespace

 glib/gchecksum.c | 50 ++++++++++++++++++++++++++------------------------
 glib/gchecksum.h | 40 ++++++++++++++++++++--------------------
 2 files changed, 46 insertions(+), 44 deletions(-)

commit 9b3fb41a5e4fd9d87c606dcea0fd1cd505b54311
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 19:41:49 2010 -0400

    Remove redundant header inclusions

    and clean up some whitespace

 glib/gbacktrace.c | 58
 ++++++++++++++++++++++++++++---------------------------
 glib/gbacktrace.h | 14 +++++++-------
 2 files changed, 37 insertions(+), 35 deletions(-)

commit 156a3f71952e37aef199ab381f552a5fe014decb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 19:38:56 2010 -0400

    Whitespace cleanup

 glib/gcache.c | 28 ++++++++++++++--------------
 glib/gcache.h |  2 +-
 2 files changed, 15 insertions(+), 15 deletions(-)

commit 8300820f7bacd8eb85446be5a5edd7829bd640a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 19:37:54 2010 -0400

    Remove redundant header inclusions

 glib/gcache.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 5d4ef36f91074a4477bca67e2519e2ca13f3ae2c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 19:33:11 2010 -0400

    Whitespace cleanup

 glib/gbase64.c | 196
 ++++++++++++++++++++++++++++-----------------------------
 glib/gbase64.h |  44 ++++++-------
 2 files changed, 120 insertions(+), 120 deletions(-)

commit 489b780bb95d9941617ab21160823e0ad268f1b7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 19:32:02 2010 -0400

    Remove redundant header inclusions

 glib/gbase64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4e5532ec51e7091656f2853895cee3dc69f8ad5e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 19:03:34 2010 -0400

    Sort extensions properly

    Just taking the difference of the priorities has overflow issues,
    as pointed out in bug 623069.

 gio/giomodule.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 42080449d078c27f2098419b27d0f63269ee2d70
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 18:11:08 2010 -0400

    Add a note about size limits of private structures

    Also add some assertions to check these limits, instead of
    failing silently.  Bug 604479.

 gobject/gtype.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

commit db4fb1b115b2cd4142454db64da2b0abfedcd31b
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 16:05:28 2010 -0400

    Plug a mem leak in the gdbus-proxy test

    ==23341== 65 bytes in 3 blocks are definitely lost in loss record
    927 of 1,020
    ==23341==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==23341==    by 0x4057094: g_malloc (gmem.c:134)
    ==23341==    by 0x40573DB: g_malloc_n (gmem.c:281)
    ==23341==    by 0x40717FC: g_strdup (gstrfuncs.c:101)
    ==23341==    by 0x4147F56: value_lcopy_string (gvaluetypes.c:313)
    ==23341==    by 0x4123F0B: g_object_get_valist (gobject.c:1643)
    ==23341==    by 0x41240FF: g_object_get (gobject.c:1731)
    ==23341==    by 0x804C39E: test_basic (gdbus-proxy.c:522)

    Bug #628331.

 gio/tests/gdbus-proxy.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 5de1bf4a91f405ed5bca4768961e830c8b95e48c
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 16:04:29 2010 -0400

    Plug a mem leak in the gdbus-proxy test

    ==23341== 85 (24 direct, 61 indirect) bytes in 1 blocks are definitely
    lost in loss record 900 of 971
    ==23341==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==23341==    by 0x4057094: g_malloc (gmem.c:134)
    ==23341==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==23341==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==23341==    by 0x403A751: g_error_new_valist (gerror.c:54)
    ==23341==    by 0x403AAD4: g_set_error (gerror.c:240)
    ==23341==    by 0x420B807: decode_method_reply
    (gdbusconnection.c:4774)
    ==23341==    by 0x420C2BA: g_dbus_connection_call_sync
    (gdbusconnection.c:5188)
    ==23341==    by 0x421B7C9: g_dbus_proxy_call_sync (gdbusproxy.c:2477)
    ==23341==    by 0x804BD89: test_bogus_method_return
    (gdbus-proxy.c:430)

    Bug #628331.

 gio/tests/gdbus-proxy.c | 1 +
 1 file changed, 1 insertion(+)

commit be33ef85d0a89c2ded655785a4b930926e403e64
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 16:03:48 2010 -0400

    Plug some mem leaks in gdbus-peer test

    ==29535== 56 (24 direct, 32 indirect) bytes in 1 blocks are definitely
    lost in loss record 1,112 of 1,264
    ==29535==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==29535==    by 0x4057094: g_malloc (gmem.c:134)
    ==29535==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==29535==    by 0x406F364: g_slice_copy (gslice.c:858)
    ==29535==    by 0x403A9B2: g_error_copy (gerror.c:160)
    ==29535==    by 0x42066D3: initable_init (gdbusconnection.c:2314)
    ==29535==    by 0x41A73E5: g_initable_init (ginitable.c:105)
    ==29535==    by 0x41A7587: g_initable_new_valist (ginitable.c:218)
    ==29535==    by 0x41A742A: g_initable_new (ginitable.c:138)
    ==29535==    by 0x4206DCC: g_dbus_connection_new_for_address_sync
    (gdbusconnection.c:2585)
    ==29535==    by 0x804D63A: test_nonce_tcp (gdbus-peer.c:1229)

    ==29535== 107 (24 direct, 83 indirect) bytes in 1 blocks are
    definitely lost in loss record 1,188 of 1,264
    ==29535==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==29535==    by 0x4057094: g_malloc (gmem.c:134)
    ==29535==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==29535==    by 0x406F364: g_slice_copy (gslice.c:858)
    ==29535==    by 0x403A9B2: g_error_copy (gerror.c:160)
    ==29535==    by 0x42066D3: initable_init (gdbusconnection.c:2314)
    ==29535==    by 0x41A73E5: g_initable_init (ginitable.c:105)
    ==29535==    by 0x41A7587: g_initable_new_valist (ginitable.c:218)
    ==29535==    by 0x41A742A: g_initable_new (ginitable.c:138)
    ==29535==    by 0x4206DCC: g_dbus_connection_new_for_address_sync
    (gdbusconnection.c:2585)
    ==29535==    by 0x804D8E8: test_nonce_tcp (gdbus-peer.c:1259)

    ==29535== 112 (24 direct, 88 indirect) bytes in 1 blocks are
    definitely lost in loss record 1,193 of 1,264
    ==29535==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==29535==    by 0x4057094: g_malloc (gmem.c:134)
    ==29535==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==29535==    by 0x406F364: g_slice_copy (gslice.c:858)
    ==29535==    by 0x403A9B2: g_error_copy (gerror.c:160)
    ==29535==    by 0x42066D3: initable_init (gdbusconnection.c:2314)
    ==29535==    by 0x41A73E5: g_initable_init (ginitable.c:105)
    ==29535==    by 0x41A7587: g_initable_new_valist (ginitable.c:218)
    ==29535==    by 0x41A742A: g_initable_new (ginitable.c:138)
    ==29535==    by 0x4206DCC: g_dbus_connection_new_for_address_sync
    (gdbusconnection.c:2585)
    ==29535==    by 0x804D79A: test_nonce_tcp (gdbus-peer.c:1248)

    ==29535== 73 (24 direct, 49 indirect) bytes in 1 blocks are definitely
    lost in loss record 1,152 of 1,264
    ==29535==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==29535==    by 0x4057094: g_malloc (gmem.c:134)
    ==29535==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==29535==    by 0x406F364: g_slice_copy (gslice.c:858)
    ==29535==    by 0x403A9B2: g_error_copy (gerror.c:160)
    ==29535==    by 0x42066D3: initable_init (gdbusconnection.c:2314)
    ==29535==    by 0x41A73E5: g_initable_init (ginitable.c:105)
    ==29535==    by 0x41A7587: g_initable_new_valist (ginitable.c:218)
    ==29535==    by 0x41A742A: g_initable_new (ginitable.c:138)
    ==29535==    by 0x4206DCC: g_dbus_connection_new_for_address_sync
    (gdbusconnection.c:2585)
    ==29535==    by 0x804C6CE: test_peer (gdbus-peer.c:803)

    Bug #628331.

 gio/tests/gdbus-peer.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 3df586613916b44cb23edb296f5f468ac6bd80f2
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 16:02:11 2010 -0400

    Plug a mem leak in the gdbus-peer test

    ==6793== 32 (24 direct, 8 indirect) bytes in 1 blocks are definitely
    lost in loss record 779 of 1,423
    ==6793==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==6793==    by 0x4057094: g_malloc (gmem.c:134)
    ==6793==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==6793==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==6793==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==6793==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==6793==    by 0x4122E1D: g_object_newv (gobject.c:1266)
    ==6793==    by 0x4122B93: g_object_new (gobject.c:1178)
    ==6793==    by 0x41DB4F9: g_unix_fd_list_new (gunixfdlist.c:159)
    ==6793==    by 0x804AADD: test_interface_method_call
    (gdbus-peer.c:172)

    Bug #628331.

 gio/tests/gdbus-peer.c | 1 +
 1 file changed, 1 insertion(+)

commit bd2faedefdbbfa0cbe5c0ee2b3e50eed91617990
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 16:01:10 2010 -0400

    Plug a mem leak in network-address test

    ==4616== 46 (32 direct, 14 indirect) bytes in 1 blocks are definitely
    lost in loss record 193 of 305
    ==4616==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==4616==    by 0x4057094: g_malloc (gmem.c:134)
    ==4616==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==4616==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==4616==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==4616==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==4616==    by 0x4123147: g_object_newv (gobject.c:1347)
    ==4616==    by 0x41236BB: g_object_new_valist (gobject.c:1463)
    ==4616==    by 0x4122BB4: g_object_new (gobject.c:1181)
    ==4616==    by 0x41B2D0F: g_network_address_new
    (gnetworkaddress.c:262)
    ==4616==    by 0x8048A70: test_basic (network-address.c:10)

    Bug #628331.

 gio/tests/network-address.c | 2 ++
 1 file changed, 2 insertions(+)

commit fa6937603c098e8c6e83c8e3bd35ed7bab56ca38
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 16:00:15 2010 -0400

    Plug a mem leak in contexts test

    ==14059== 96 bytes in 2 blocks are definitely lost in loss record
    520 of 543
    ==14059==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==14059==    by 0x4057094: g_malloc (gmem.c:134)
    ==14059==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==14059==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==14059==    by 0x41385BB: g_type_create_instance (gtype.c:1867)
    ==14059==    by 0x411E72A: g_object_constructor (gobject.c:1482)
    ==14059==    by 0x411DE1D: g_object_newv (gobject.c:1266)
    ==14059==    by 0x411DB93: g_object_new (gobject.c:1178)
    ==14059==    by 0x42296AF: _g_local_file_input_stream_new
    (glocalfileinputstream.c:152)
    ==14059==    by 0x422281F: g_local_file_read (glocalfile.c:1322)
    ==14059==    by 0x418A8A9: open_read_async_thread (gfile.c:5050)
    ==14059==    by 0x41B71BB: run_in_thread (gsimpleasyncresult.c:853)
    ==14059==    by 0x41A5FBC: io_job_thread (gioscheduler.c:181)
    ==14059==    by 0x407DCDE: g_thread_pool_thread_proxy
    (gthreadpool.c:314)
    ==14059==    by 0x407C6B0: g_thread_create_proxy (gthread.c:1897)
    ==14059==    by 0x57D918: start_thread (pthread_create.c:301)
    ==14059==    by 0x4C6CBD: clone (clone.S:133)

    Bug #628331.

 gio/tests/contexts.c | 2 ++
 1 file changed, 2 insertions(+)

commit 60349ecc4d41c57d9461355a137316aef224b3c2
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:58:51 2010 -0400

    Plug mem leaks in contexts test

    ==2464== 80 (16 direct, 64 indirect) bytes in 1 blocks are definitely
    lost in loss record 515 of 547
    ==2464==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2464==    by 0x4057094: g_malloc (gmem.c:134)
    ==2464==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2464==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2464==    by 0x41385BB: g_type_create_instance (gtype.c:1867)
    ==2464==    by 0x411E72A: g_object_constructor (gobject.c:1482)
    ==2464==    by 0x411DE1D: g_object_newv (gobject.c:1266)
    ==2464==    by 0x411DB93: g_object_new (gobject.c:1178)
    ==2464==    by 0x4220D74: _g_local_file_new (glocalfile.c:310)
    ==2464==    by 0x422C897: g_local_vfs_get_file_for_path
    (glocalvfs.c:84)
    ==2464==    by 0x41CA91C: g_vfs_get_file_for_path (gvfs.c:94)
    ==2464==    by 0x418C1B6: g_file_new_for_path (gfile.c:5898)
    ==2464==    by 0x8049509: test1_thread (contexts.c:110)

    ==2464== 80 (16 direct, 64 indirect) bytes in 1 blocks are definitely
    lost in loss record 516 of 547
    ==2464==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2464==    by 0x4057094: g_malloc (gmem.c:134)
    ==2464==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2464==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2464==    by 0x41385BB: g_type_create_instance (gtype.c:1867)
    ==2464==    by 0x411E72A: g_object_constructor (gobject.c:1482)
    ==2464==    by 0x411DE1D: g_object_newv (gobject.c:1266)
    ==2464==    by 0x411DB93: g_object_new (gobject.c:1178)
    ==2464==    by 0x4220D74: _g_local_file_new (glocalfile.c:310)
    ==2464==    by 0x422C897: g_local_vfs_get_file_for_path
    (glocalvfs.c:84)
    ==2464==    by 0x41CA91C: g_vfs_get_file_for_path (gvfs.c:94)
    ==2464==    by 0x418C1B6: g_file_new_for_path (gfile.c:5898)
    ==2464==    by 0x804964D: test_context_independence (contexts.c:144)

    Bug #628331.

 gio/tests/contexts.c | 2 ++
 1 file changed, 2 insertions(+)

commit e4a6b1dcdc9bbe0b5d06228a662d8f3d0ce50e9c
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:57:26 2010 -0400

    Plug a mem leak in buffered-input-stream test

    ==2429== 49 (24 direct, 25 indirect) bytes in 1 blocks are definitely
    lost in loss record 276 of 355
    ==2429==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2429==    by 0x4057094: g_malloc (gmem.c:134)
    ==2429==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2429==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2429==    by 0x403A8A6: g_error_new_literal (gerror.c:117)
    ==2429==    by 0x403AC31: g_set_error_literal (gerror.c:314)
    ==2429==    by 0x4175525: g_buffered_input_stream_read_byte
    (gbufferedinputstream.c:880)
    ==2429==    by 0x804A21A: test_read_byte (buffered-input-stream.c:153)

    Bug #628331.

 gio/tests/buffered-input-stream.c | 1 +
 1 file changed, 1 insertion(+)

commit 01a19dee6855d3caede22ef8dc28606ee89cf60e
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:56:23 2010 -0400

    Plug a mem leak in g-icon test

    ==2428== 256 bytes in 1 blocks are definitely lost in loss record
    591 of 604
    ==2428==    at 0x4005CD2: realloc (vg_replace_malloc.c:476)
    ==2428==    by 0x40571A5: g_realloc (gmem.c:181)
    ==2428==    by 0x4075287: g_string_maybe_expand (gstring.c:395)
    ==2428==    by 0x40760D8: g_string_insert_c (gstring.c:1049)
    ==2428==    by 0x4074D41: g_string_append_c_inline (gstring.h:153)
    ==2428==    by 0x4075B3C: g_string_append_uri_escaped (gstring.c:822)
    ==2428==    by 0x41A46AC: g_icon_to_string_tokenized (gicon.c:164)
    ==2428==    by 0x41A498F: g_icon_to_string (gicon.c:252)
    ==2428==    by 0x8049E1A: test_g_icon_serialize (g-icon.c:222)

    Bug #628331.

 gio/tests/g-icon.c | 1 +
 1 file changed, 1 insertion(+)

commit e8bdd2cb7af29ca20a02f4ebef1c6301e22d1856
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:55:10 2010 -0400

    Plug a huge mem leak in data-output-stream test

    ==12763== 16,777,215 bytes in 1 blocks are possibly lost in loss
    record 357 of 357
    ==12763==    at 0x4004F1B: calloc (vg_replace_malloc.c:418)
    ==12763==    by 0x405711D: g_malloc0 (gmem.c:157)
    ==12763==    by 0x8048ED6: test_basic (data-output-stream.c:40)

    Bug #628331.

 gio/tests/data-output-stream.c | 1 +
 1 file changed, 1 insertion(+)

commit 05d6fcf88cee64e168e978800fb66523c36a94fc
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:53:56 2010 -0400

    Plug a mem leak in data-output-stream test

    ==2426== 45,034 bytes in 4,094 blocks are definitely lost in loss
    record 358 of 361
    ==2426==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2426==    by 0x4057094: g_malloc (gmem.c:134)
    ==2426==    by 0x40573DB: g_malloc_n (gmem.c:281)
    ==2426==    by 0x4071ABD: g_strconcat (gstrfuncs.c:315)
    ==2426==    by 0x804916A: test_read_lines (data-output-stream.c:83)

    Bug #628331.

 gio/tests/data-output-stream.c | 1 +
 1 file changed, 1 insertion(+)

commit 45331a46408777fc6a888302bad216cedbb16635
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:53:05 2010 -0400

    Plug a mem leak in data-input-stream test

    ==12351== 45,045 bytes in 4,095 blocks are definitely lost in loss
    record 377 of 380
    ==12351==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==12351==    by 0x4057094: g_malloc (gmem.c:134)
    ==12351==    by 0x40573DB: g_malloc_n (gmem.c:281)
    ==12351==    by 0x4071ABD: g_strconcat (gstrfuncs.c:315)
    ==12351==    by 0x8049811: test_read_lines (data-input-stream.c:99)

    Bug #628331.

 gio/tests/data-input-stream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 36c7d95c9c18e36468755dc8a7cfced32170c6ca
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:47:38 2010 -0400

    Plug a mem leak in data-input-stream test

    ==2415== 45,045 bytes in 4,095 blocks are definitely lost in loss
    record 393 of 399
    ==2415==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2415==    by 0x4057094: g_malloc (gmem.c:134)
    ==2415==    by 0x417FC29: g_data_input_stream_read_line
    (gdatainputstream.c:797)
    ==2415==    by 0x8049874: test_read_lines (data-input-stream.c:111)

    ==12088== 360 bytes in 40 blocks are definitely lost in loss record
    368 of 381
    ==12088==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==12088==    by 0x4057094: g_malloc (gmem.c:134)
    ==12088==    by 0x417FF4C: g_data_input_stream_read_until
    (gdatainputstream.c:914)
    ==12088==    by 0x8049B6F: test_read_until (data-input-stream.c:182)

    Bug #628331.

 gio/tests/data-input-stream.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 91e380359604dfabf5c98fab8e317c655d32f98b
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:45:48 2010 -0400

    Plug a mem leak in data-input-stream test

    ==2415== 165 (72 direct, 93 indirect) bytes in 3 blocks are definitely
    lost in loss record 373 of 399
    ==2415==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2415==    by 0x4057094: g_malloc (gmem.c:134)
    ==2415==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2415==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2415==    by 0x403A8A6: g_error_new_literal (gerror.c:117)
    ==2415==    by 0x403AC31: g_set_error_literal (gerror.c:314)
    ==2415==    by 0x417ED29: read_data (gdatainputstream.c:309)
    ==2415==    by 0x417EE9D: g_data_input_stream_read_byte
    (gdatainputstream.c:344)
    ==2415==    by 0x8049DEC: test_data_array (data-input-stream.c:263)

    Bug #628331.

 gio/tests/data-input-stream.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 31b15451cf657499c15c1d08ccee0062a3486a9f
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:44:28 2010 -0400

    Plug a mem leak in readwrite test

    ==10395== 80 (24 direct, 56 indirect) bytes in 1 blocks are definitely
    lost in loss record 529 of 561
    ==10395==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==10395==    by 0x4057094: g_malloc (gmem.c:134)
    ==10395==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==10395==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==10395==    by 0x403A751: g_error_new_valist (gerror.c:54)
    ==10395==    by 0x403AAD4: g_set_error (gerror.c:240)
    ==10395==    by 0x4230328: _g_local_file_output_stream_create
    (glocalfileoutputstream.c:628)
    ==10395==    by 0x4227A04: g_local_file_create_readwrite
    (glocalfile.c:1388)
    ==10395==    by 0x418974C: g_file_create_readwrite (gfile.c:1784)
    ==10395==    by 0x8049FCD: test_g_file_create_readwrite
    (readwrite.c:187)

    Bug #628331.

 gio/tests/readwrite.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 94102a40f733dc86e61aaaee0822b8ecc2e9927b
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:43:03 2010 -0400

    Plug some huge mem leaks in converter-stream test

    ==8564== 24,000,000 bytes in 6 blocks are possibly lost in loss
    record 592 of 594
    ==8564==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==8564==    by 0x4057094: g_malloc (gmem.c:134)
    ==8564==    by 0x804AA37: test_corruption (converter-stream.c:589)
    ==8564==    by 0x804B05B: test_roundtrip (converter-stream.c:652)

    ==9459== 25,165,824 bytes in 6 blocks are possibly lost in loss
    record 593 of 594
    ==9459==    at 0x4005CD2: realloc (vg_replace_malloc.c:476)
    ==9459==    by 0x40571A5: g_realloc (gmem.c:181)
    ==9459==    by 0x41B08A3: array_resize (gmemoryoutputstream.c:501)
    ==9459==    by 0x41B0A5D: g_memory_output_stream_write
    (gmemoryoutputstream.c:578)
    ==9459==    by 0x41B57EF: g_output_stream_write (goutputstream.c:216)
    ==9459==    by 0x41B591B: g_output_stream_write_all
    (goutputstream.c:268)
    ==9459==    by 0x417D617: flush_buffer (gconverteroutputstream.c:359)
    ==9459==    by 0x417D958: g_converter_output_stream_write
    (gconverteroutputstream.c:502)
    ==9459==    by 0x41B5D7F: g_output_stream_real_splice
    (goutputstream.c:428)
    ==9459==    by 0x41B5C6C: g_output_stream_splice (goutputstream.c:380)
    ==9459==    by 0x804AB10: test_corruption (converter-stream.c:600)

    ==9785== 25,165,824 bytes in 6 blocks are possibly lost in loss
    record 592 of 592
    ==9785==    at 0x4005CD2: realloc (vg_replace_malloc.c:476)
    ==9785==    by 0x40571A5: g_realloc (gmem.c:181)
    ==9785==    by 0x41B08A3: array_resize (gmemoryoutputstream.c:501)
    ==9785==    by 0x41B0A5D: g_memory_output_stream_write
    (gmemoryoutputstream.c:578)
    ==9785==    by 0x41B5D7F: g_output_stream_real_splice
    (goutputstream.c:428)
    ==9785==    by 0x41B5C6C: g_output_stream_splice (goutputstream.c:380)
    ==9785==    by 0x804ADF1: test_corruption (converter-stream.c:622)
    ==9785==    by 0x804B06C: test_roundtrip (converter-stream.c:652)

    Bug #628331.

 gio/tests/converter-stream.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 24bee1a130152dece7f7ae470b81bd6ed69a9a4f
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:40:55 2010 -0400

    Plug a mem leak in convert-stream test

    ==7540== 487 (64 direct, 423 indirect) bytes in 2 blocks are
    definitely lost in loss record 597 of 615
    ==7540==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==7540==    by 0x4057094: g_malloc (gmem.c:134)
    ==7540==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==7540==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==7540==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==7540==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==7540==    by 0x4123147: g_object_newv (gobject.c:1347)
    ==7540==    by 0x41236BB: g_object_new_valist (gobject.c:1463)
    ==7540==    by 0x41A756E: g_initable_new_valist (ginitable.c:214)
    ==7540==    by 0x41A743E: g_initable_new (ginitable.c:138)
    ==7540==    by 0x417B67A: g_charset_converter_new
    (gcharsetconverter.c:215)
    ==7540==    by 0x804B043: test_charset (converter-stream.c:675)

    Bug #628331.

 gio/tests/converter-stream.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit ac8600a14b7e79c6eb19dd779be3b2c8a492d934
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:39:58 2010 -0400

    Plug a mem leak in converter-stream test

    ==2396== 168 (92 direct, 76 indirect) bytes in 1 blocks are definitely
    lost in loss record 598 of 625
    ==2396==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2396==    by 0x4057094: g_malloc (gmem.c:134)
    ==2396==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2396==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2396==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==2396==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==2396==    by 0x4123147: g_object_newv (gobject.c:1347)
    ==2396==    by 0x41236BB: g_object_new_valist (gobject.c:1463)
    ==2396==    by 0x4122BB4: g_object_new (gobject.c:1181)
    ==2396==    by 0x417C54D: g_converter_input_stream_new
    (gconverterinputstream.c:204)
    ==2396==    by 0x804A53E: test_compressor (converter-stream.c:484)

    Bug #628331.

 gio/tests/converter-stream.c | 2 ++
 1 file changed, 2 insertions(+)

commit 85179745ac72280746da101a5232f7843f2426d3
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:39:07 2010 -0400

    Plug a mem leak in converter-stream test

    ==2396== 66 (24 direct, 42 indirect) bytes in 1 blocks are definitely
    lost in loss record 565 of 625
    ==2396==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2396==    by 0x4057094: g_malloc (gmem.c:134)
    ==2396==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2396==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2396==    by 0x403A8A6: g_error_new_literal (gerror.c:117)
    ==2396==    by 0x403AC31: g_set_error_literal (gerror.c:314)
    ==2396==    by 0x417BA38: g_charset_converter_convert
    (gcharsetconverter.c:344)
    ==2396==    by 0x417BF67: g_converter_convert (gconverter.c:174)
    ==2396==    by 0x417C9EB: g_converter_input_stream_read
    (gconverterinputstream.c:403)
    ==2396==    by 0x41A7A17: g_input_stream_read (ginputstream.c:204)
    ==2396==    by 0x41A7B43: g_input_stream_read_all (ginputstream.c:256)
    ==2396==    by 0x804B0E4: test_charset (converter-stream.c:682)

    Bug #628331.

 gio/tests/converter-stream.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 7ec414229b8d42a5ce4f5519d18af59a3098f544
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:37:56 2010 -0400

    Plug a mem leak in converter-stream test

    ==2396== 39 (24 direct, 15 indirect) bytes in 1 blocks are definitely
    lost in loss record 398 of 625
    ==2396==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2396==    by 0x4057094: g_malloc (gmem.c:134)
    ==2396==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2396==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2396==    by 0x403A8A6: g_error_new_literal (gerror.c:117)
    ==2396==    by 0x403AC31: g_set_error_literal (gerror.c:314)
    ==2396==    by 0x80498F7: g_compressor_converter_convert
    (converter-stream.c:244)
    ==2396==    by 0x417BF67: g_converter_convert (gconverter.c:174)
    ==2396==    by 0x417CBDE: g_converter_input_stream_read
    (gconverterinputstream.c:460)
    ==2396==    by 0x41A7A17: g_input_stream_read (ginputstream.c:204)
    ==2396==    by 0x804A832: test_compressor (converter-stream.c:545)

    Bug #628331.

 gio/tests/converter-stream.c | 1 +
 1 file changed, 1 insertion(+)

commit d5d277dccf3637518b3a34af1609ffd60ce1e308
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:37:08 2010 -0400

    Plug a mem leak in g-file-info test

    ==2395== 64 bytes in 1 blocks are definitely lost in loss record
    381 of 407
    ==2395==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2395==    by 0x4005C66: realloc (vg_replace_malloc.c:476)
    ==2395==    by 0x40571A5: g_realloc (gmem.c:181)
    ==2395==    by 0x401D670: g_ptr_array_maybe_expand (garray.c:968)
    ==2395==    by 0x401DD0B: g_ptr_array_add (garray.c:1225)
    ==2395==    by 0x4199AA9: g_file_info_list_attributes
    (gfileinfo.c:646)
    ==2395==    by 0x80491CE: test_g_file_info (g-file-info.c:76)

    ==2395== 132 (64 direct, 68 indirect) bytes in 1 blocks are definitely
    lost in loss record 396 of 407
    ==2395==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2395==    by 0x4005C66: realloc (vg_replace_malloc.c:476)
    ==2395==    by 0x40571A5: g_realloc (gmem.c:181)
    ==2395==    by 0x401D670: g_ptr_array_maybe_expand (garray.c:968)
    ==2395==    by 0x401DD0B: g_ptr_array_add (garray.c:1225)
    ==2395==    by 0x4199A82: g_file_info_list_attributes
    (gfileinfo.c:642)
    ==2395==    by 0x80492B7: test_g_file_info (g-file-info.c:86)

    Bug #628331.

 gio/tests/g-file-info.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 35e101fa0a96fb03db4f503a4b24f4818ada114f
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:35:44 2010 -0400

    Plug a mem leak in the readwrite test

    And use g_assert_[no_]error().

    ==2392== 49 (24 direct, 25 indirect) bytes in 1 blocks are definitely
    lost in loss record 451 of 573
    ==2392==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2392==    by 0x4057094: g_malloc (gmem.c:134)
    ==2392==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2392==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2392==    by 0x403A8A6: g_error_new_literal (gerror.c:117)
    ==2392==    by 0x403AC31: g_set_error_literal (gerror.c:314)
    ==2392==    by 0x41B7619: g_output_stream_set_pending
    (goutputstream.c:1198)
    ==2392==    by 0x41B5799: g_output_stream_write (goutputstream.c:210)
    ==2392==    by 0x41B590B: g_output_stream_write_all
    (goutputstream.c:268)
    ==2392==    by 0x8049B54: verify_iostream (readwrite.c:110)

    Bug #628331.

 gio/tests/readwrite.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 93d85ade571b87d1c71ac6ef3fb5e40eaceb68d7
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:34:12 2010 -0400

    Plug a mem leak in the readwrite test

    ==2392== 38 (16 direct, 22 indirect) bytes in 1 blocks are definitely
    lost in loss record 369 of 573
    ==2392==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2392==    by 0x4057094: g_malloc (gmem.c:134)
    ==2392==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2392==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2392==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==2392==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==2392==    by 0x4122E1D: g_object_newv (gobject.c:1266)
    ==2392==    by 0x4122B93: g_object_new (gobject.c:1178)
    ==2392==    by 0x4225D74: _g_local_file_new (glocalfile.c:310)
    ==2392==    by 0x4231897: g_local_vfs_get_file_for_path
    (glocalvfs.c:84)
    ==2392==    by 0x41CF91C: g_vfs_get_file_for_path (gvfs.c:94)
    ==2392==    by 0x41911B6: g_file_new_for_path (gfile.c:5898)
    ==2392==    by 0x804A2B9: test_g_file_replace_readwrite
    (readwrite.c:235)

    Bug #628331.

 gio/tests/readwrite.c | 1 +
 1 file changed, 1 insertion(+)

commit 9fba7a43be2481d59ae887f23d831947f27537d3
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:33:28 2010 -0400

    Plug a mem leak in the readwrite test

    ==2392== 38 (16 direct, 22 indirect) bytes in 1 blocks are definitely
    lost in loss record 368 of 573
    ==2392==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2392==    by 0x4057094: g_malloc (gmem.c:134)
    ==2392==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2392==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2392==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==2392==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==2392==    by 0x4122E1D: g_object_newv (gobject.c:1266)
    ==2392==    by 0x4122B93: g_object_new (gobject.c:1178)
    ==2392==    by 0x4225D74: _g_local_file_new (glocalfile.c:310)
    ==2392==    by 0x4231897: g_local_vfs_get_file_for_path
    (glocalvfs.c:84)
    ==2392==    by 0x41CF91C: g_vfs_get_file_for_path (gvfs.c:94)
    ==2392==    by 0x41911B6: g_file_new_for_path (gfile.c:5898)
    ==2392==    by 0x8049F23: test_g_file_create_readwrite
    (readwrite.c:183)

    Bug #628331.

 gio/tests/readwrite.c | 1 +
 1 file changed, 1 insertion(+)

commit e481bf8bf68f46e82fa5624cd941f7880321e945
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:32:32 2010 -0400

    Plug a mem leak in the readwrite test

    ==2392== 38 (16 direct, 22 indirect) bytes in 1 blocks are definitely
    lost in loss record 367 of 573
    ==2392==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2392==    by 0x4057094: g_malloc (gmem.c:134)
    ==2392==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2392==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2392==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==2392==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==2392==    by 0x4122E1D: g_object_newv (gobject.c:1266)
    ==2392==    by 0x4122B93: g_object_new (gobject.c:1178)
    ==2392==    by 0x4225D74: _g_local_file_new (glocalfile.c:310)
    ==2392==    by 0x4231897: g_local_vfs_get_file_for_path
    (glocalvfs.c:84)
    ==2392==    by 0x41CF91C: g_vfs_get_file_for_path (gvfs.c:94)
    ==2392==    by 0x41911B6: g_file_new_for_path (gfile.c:5898)
    ==2392==    by 0x8049E30: test_g_file_open_readwrite (readwrite.c:153)

    Bug #628331.

 gio/tests/readwrite.c | 1 +
 1 file changed, 1 insertion(+)

commit 689b054b6e176c2f1b4bb90ca2a0e514de5e2a0e
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:31:37 2010 -0400

    Plug a mem leak in the memory-input-stream test

    ==2389== 84 (44 direct, 40 indirect) bytes in 1 blocks are definitely
    lost in loss record 299 of 315
    ==2389==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2389==    by 0x4057094: g_malloc (gmem.c:134)
    ==2389==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2389==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2389==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==2389==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==2389==    by 0x4122E1D: g_object_newv (gobject.c:1266)
    ==2389==    by 0x4122B93: g_object_new (gobject.c:1178)
    ==2389==    by 0x41AF54C: g_memory_input_stream_new
    (gmemoryinputstream.c:199)
    ==2389==    by 0x8048BD1: test_read_chunks (memory-input-stream.c:40)

    Bug #628331.

 gio/tests/memory-input-stream.c | 2 ++
 1 file changed, 2 insertions(+)

commit 53ae72b926e34b22f36fbc162cd12fc4d0bd7028
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:30:47 2010 -0400

    Plug a mem leak in the memory-input-stream test

    ==2389== 59 (24 direct, 35 indirect) bytes in 1 blocks are definitely
    lost in loss record 290 of 315
    ==2389==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2389==    by 0x4057094: g_malloc (gmem.c:134)
    ==2389==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==2389==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==2389==    by 0x403A8A6: g_error_new_literal (gerror.c:117)
    ==2389==    by 0x403AC31: g_set_error_literal (gerror.c:314)
    ==2389==    by 0x41AFD15: g_memory_input_stream_truncate
    (gmemoryinputstream.c:517)
    ==2389==    by 0x41BAC0F: g_seekable_truncate (gseekable.c:174)
    ==2389==    by 0x8049595: test_truncate (memory-input-stream.c:123)

    Bug #628331.

 gio/tests/memory-input-stream.c | 1 +
 1 file changed, 1 insertion(+)

commit 6320b04fe97bcdb16e6ca4235db6c85eb91d2bab
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Sep 3 15:29:51 2010 -0400

    Plug a mem leak in gsettings test

    ==2530== 13 bytes in 1 blocks are definitely lost in loss record
    373 of 681
    ==2530==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==2530==    by 0x4057094: g_malloc (gmem.c:134)
    ==2530==    by 0x40573DB: g_malloc_n (gmem.c:281)
    ==2530==    by 0x40717FC: g_strdup (gstrfuncs.c:101)
    ==2530==    by 0x4147F56: value_lcopy_string (gvaluetypes.c:313)
    ==2530==    by 0x4123F0B: g_object_get_valist (gobject.c:1643)
    ==2530==    by 0x41240FF: g_object_get (gobject.c:1731)
    ==2530==    by 0x804A4BA: test_basic (gsettings.c:28)

    Bug #628331.

 gio/tests/gsettings.c | 1 +
 1 file changed, 1 insertion(+)

commit e8fc3ba3d0dbb4e8d0592fddcbdc189c9d20056a
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Aug 31 19:42:32 2010 +0200

    Plug a mem leak

    Don't leak the ptr arrays in the
    map_sender_unique_name_to_signal_data_array
    hash table.

    ==23440== 84 (20 direct, 64 indirect) bytes in 1 blocks are definitely
    lost in loss record 920 of 993
    ==23440==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==23440==    by 0x4057094: g_malloc (gmem.c:134)
    ==23440==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==23440==    by 0x401D2D0: g_ptr_array_sized_new (garray.c:799)
    ==23440==    by 0x401D2AC: g_ptr_array_new (garray.c:783)
    ==23440==    by 0x420834A: g_dbus_connection_signal_subscribe
    (gdbusconnection.c:3084)

    Bug #628436.

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8795f52aae10add70929cd0fad1ccf6d0c8db4af
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 19:31:09 2010 +0200

    Plug a mem leak

    ==31063== 98 (24 direct, 74 indirect) bytes in 1 blocks are definitely
    lost in loss record 946 of 1,136
    ==31063==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==31063==    by 0x4057094: g_malloc (gmem.c:134)
    ==31063==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==31063==    by 0x4092383: g_variant_get_child_value
    (gvariant-core.c:847)
    ==31063==    by 0x408BE9E: g_variant_get_variant (gvariant.c:709)
    ==31063==    by 0x40903F5: g_variant_valist_get_nnp (gvariant.c:3767)
    ==31063==    by 0x40907A9: g_variant_valist_get_leaf (gvariant.c:3884)
    ==31063==    by 0x4090D10: g_variant_valist_get (gvariant.c:4065)
    ==31063==    by 0x4090E59: g_variant_valist_get (gvariant.c:4100)
    ==31063==    by 0x40911B6: g_variant_get_va (gvariant.c:4296)
    ==31063==    by 0x40910BC: g_variant_get (gvariant.c:4248)
    ==31063==    by 0x4208DAF: invoke_set_property_in_idle_cb
    (gdbusconnection.c:3676)

    Bug #628346.

 gio/gdbusconnection.c | 1 +
 1 file changed, 1 insertion(+)

commit 1f49f3fa349a49bf17f6cb58d060173b7a448bf5
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 19:00:05 2010 +0200

    Plug a mem leak

    ... and use g_error_matches().

    ==29535== 1,360 (408 direct, 952 indirect) bytes in 17 blocks are
    definitely lost in loss record 1,252 of 1,264
    ==29535==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==29535==    by 0x4057094: g_malloc (gmem.c:134)
    ==29535==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==29535==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==29535==    by 0x403A751: g_error_new_valist (gerror.c:54)
    ==29535==    by 0x403AAD4: g_set_error (gerror.c:240)
    ==29535==    by 0x41C06C8: g_socket_send_message (gsocket.c:2967)
    ==29535==    by 0x421CB64: write_message_continue_writing
    (gdbusprivate.c:958)
    ==29535==    by 0x421CE2A: write_message_async (gdbusprivate.c:1049)
    ==29535==    by 0x421D4DD: maybe_write_next_message
    (gdbusprivate.c:1291)
    ==29535==    by 0x421D26B: message_written (gdbusprivate.c:1187)
    ==29535==    by 0x421D322: write_message_cb (gdbusprivate.c:1216)

    Bug #628345.

 gio/gdbusprivate.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c75429d0a0564c3620c6f72afea9838f661c4e88
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 3 14:52:16 2010 -0400

    Make ordering for overridden interface properties consistent

    g_object_class_list_properties tries to sort the returned list of
    paramspecs by 'type depth' and param_id. But all the overridden
    interface properties have a param_id of 0, so they come out in
    a random order.

    Bug 628253.

 gobject/gparam.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 6ddef375c8eb41da3160ac6984f707a19f1da63b
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Sep 2 21:56:02 2010 +0300

    Recuce DLL hijack risk on Windows

    Don't call LoadLibrary() on shell32.dll or kernel32.dll. kernel32.dll
    is always loaded. Shell32.dll is also already loaded as glib links to
    functions in it. So just call GetModuleHandle() on them.

    For mlang.dll in win_iconv.c and winhttp.dll in gwinhttpvfs.c, always
    try loading them from a complete path, from the Windows system
    directory.

    Use the "tool help" API to enumerate modules in gmodule-win32.c. It is
    present in all Windows versions since Windows 2000, which is all we
    support anyway. Thus no need to look that API up dynamically. Just
    link to it normally. We can bin the fallback code that attempts to use
    the psapi API.

 gio/win32/gwinhttpvfs.c | 15 +++++++--
 glib/gutils.c           |  6 ++--
 glib/win_iconv.c        | 14 +++++++--
 gmodule/gmodule-win32.c | 82
 +++----------------------------------------------
 4 files changed, 33 insertions(+), 84 deletions(-)

commit 54c51c73c60008868f6718a23b4b00a5db61c167
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Sep 2 11:56:09 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 708
 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 515 insertions(+), 193 deletions(-)

commit b4d3acf9be3aeaf60326e44b0ad706c45e68f590
Author: noch <norayr@arnet.am>
Date:   Thu Sep 2 12:35:02 2010 +0500

    Modified Armenian translation - po file

 po/hy.po | 1139
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 576 insertions(+), 563 deletions(-)

commit db0eaa299c66d82552645fa42f20d13a791bc53c
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Sep 1 15:05:59 2010 +0200

    Fix building with zlib < 1.2.4 on win32

    The gzip header processing functions were only exported
    since 1.2.4 on win32, so #ifdef this code accordingly.

    Bug #628505.

 gio/gzlibcompressor.c   | 3 +++
 gio/gzlibdecompressor.c | 5 +++++
 2 files changed, 8 insertions(+)

commit ed72dcdd4507865780ebc14567bf582721a6bce4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Sep 1 15:04:41 2010 +0200

    Fix small bug in registry backend

    'n' and 'q' types had their signed/unsigned meaning inverted.

 gio/gregistrysettingsbackend.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 3209024c3ba730df9551074819672756477bd5aa
Author: Sam Thursfield <ssssam@gmail.com>
Date:   Thu Aug 12 16:10:23 2010 +0100

    Add GSettings Windows Registry backend

 gio/Makefile.am                |    7 +-
 gio/giomodule.c                |    4 +
 gio/gregistrysettingsbackend.c | 1966
 ++++++++++++++++++++++++++++++++++++++++
 gio/gregistrysettingsbackend.h |   31 +
 4 files changed, 2007 insertions(+), 1 deletion(-)

commit fb15dde6c171acb445da5e51ce17e241bf9c52fb
Author: Jon Nordby <jonn@openismus.com>
Date:   Thu Aug 26 16:51:33 2010 +0200

    docs: Inline docs from tmpl/memory.smgl

 docs/reference/glib/tmpl/.gitignore  |   1 +
 docs/reference/glib/tmpl/memory.sgml | 428
 -----------------------------------
 glib/galloca.h                       |  47 ++++
 glib/gmem.c                          | 201 +++++++++++++++-
 glib/gmem.h                          | 106 +++++++++
 glib/gstrfuncs.c                     |  11 +
 6 files changed, 365 insertions(+), 429 deletions(-)

commit 4497e84215e37f1d7dc55432ab50825652f9fe80
Author: Andika Triwidada <andika@gmail.com>
Date:   Wed Sep 1 09:54:52 2010 +0700

    Updated Indonesian translation

 po/id.po | 2301
 ++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 1479 insertions(+), 822 deletions(-)

commit 94e34d8a12e94c6aa2d2fcc8440439de5671f6f2
Author: noch <norayr@arnet.am>
Date:   Tue Aug 31 16:49:31 2010 +0500

    Modified hy.po

 po/hy.po | 1776
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 1061 insertions(+), 715 deletions(-)

commit b10d3a73bc39763ed528baaf93b1143157115690
Author: noch <norayr@arnet.am>
Date:   Tue Aug 31 12:34:36 2010 +0500

    Modified hy.po

 po/hy.po | 971
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 470 insertions(+), 501 deletions(-)

commit e57884041bf17d851915994370f480f554b49c6a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 20:47:40 2010 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 31a72dd719940ca5b97da9eb36ce5467458ed7f5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 19:29:09 2010 -0400

    Update symbol list

 gio/gio.symbols | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit ee2c6f4554661ed449dda0076bc4d7627ed05e80
Author: Branko Kokanović <branko.kokanovic@gmail.com>
Date:   Tue Aug 31 02:33:26 2010 +0200

    Updated Serbian translation

 po/sr.po       | 125
 ++++++++++++++++++++++++++-------------------------------
 po/sr@latin.po | 125
 ++++++++++++++++++++++++++-------------------------------
 2 files changed, 116 insertions(+), 134 deletions(-)

commit 1d2229129cd5a6ac09cd94b5f9751a8f32d81e05
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Mon Aug 30 22:13:18 2010 +0100

    Update British English translation

 po/en_GB.po | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

commit 6f327315dcd617f93a59ba235f48f9125a0ee593
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 16:08:25 2010 -0400

    Add one more bug ref

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit f4f45e980ba222f749e533b445d88996ed66ebe0
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 30 13:58:41 2010 -0400

    GDBusProxy: remove superfluous -gdbus-proxy-method-name qdata

    Looks like we're not using this anymore.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 4 ----
 1 file changed, 4 deletions(-)

commit 52348e15874869cb02052253847358361f10ec7f
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 30 13:45:46 2010 -0400

    Bug 628324 – Invalid reads in gdbus-export test

    Looks like we forgot to ref the returned GVariant in
    g_dbus_proxy_call_finish().

    It's a good question why code using g_dbus_proxy_call() and
    g_dbus_proxy_call_finish() worked in the first place - probably the
    answer is that no-one really used these APIs.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 72ea8b1df744ef8a11e67d1b7df121849c0298fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 13:28:06 2010 -0400

    Tweak the wording

 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 846b0b34660279871bbafb476adf5b5c597eb08d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 30 18:58:49 2010 +0200

    GAction is now an interface

    the new class GSimpleAction is the implementation half

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  40 ++-
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gaction.c                       | 416 +++++-------------------------
 gio/gaction.h                       |  69 ++---
 gio/gactiongroup.c                  |   2 +-
 gio/gio.h                           |   1 +
 gio/giotypes.h                      |   1 +
 gio/gsimpleaction.c                 | 498
 ++++++++++++++++++++++++++++++++++++
 gio/gsimpleaction.h                 |  95 +++++++
 gio/tests/actions.c                 |  83 +++---
 12 files changed, 754 insertions(+), 455 deletions(-)

commit 6cd62920bbb8ed42c7381bb56deca820515500f9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Aug 30 17:31:06 2010 +0200

    GActionGroup is now an interface

     - make GAction.get_state() return a reference
     - fix some leaks/warnings in the tests
     - fix signal propagation in GSimpleActionGroup

 gio/gaction.c            |  9 +++--
 gio/gactiongroup.c       | 46 ++++++++++++++-----------
 gio/gactiongroup.h       | 43 +++++------------------
 gio/gsimpleactiongroup.c | 89
 ++++++++++++++++++------------------------------
 gio/gsimpleactiongroup.h |  8 ++---
 gio/tests/actions.c      | 21 ++++++++----
 6 files changed, 90 insertions(+), 126 deletions(-)

commit 75891001bc5ed5a99c9a9af17407b0a797f79df4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 13:11:52 2010 -0400

    Update NEWS for 2.25.15

 NEWS | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 949392585402916d86920c652d182e92ad109a6d
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 16:12:42 2010 +0200

    Make g_emblemed_icon_add_emblem() keep the list sorted

    Fixes bug #628317.

 gio/gemblemedicon.c | 37 +++++++++++++++++--------------------
 1 file changed, 17 insertions(+), 20 deletions(-)

commit 7a6f8bd3c34e5f5e20f6770d54406b7abc5a396d
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 15:53:49 2010 +0200

    Don't leak the FD list

    ==6793== 32 (24 direct, 8 indirect) bytes in 1 blocks are definitely
    lost in loss record 780 of 1,423
    ==6793==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==6793==    by 0x4057094: g_malloc (gmem.c:134)
    ==6793==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==6793==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==6793==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==6793==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==6793==    by 0x4122E1D: g_object_newv (gobject.c:1266)
    ==6793==    by 0x4122B93: g_object_new (gobject.c:1178)
    ==6793==    by 0x41DB582: g_unix_fd_list_new_from_array
    (gunixfdlist.c:191)
    ==6793==    by 0x421BFD6: _g_dbus_worker_do_read_cb
    (gdbusprivate.c:590)

    Bug #628329.

 gio/gdbusprivate.c | 1 +
 1 file changed, 1 insertion(+)

commit fa671dc5e28369c50aaef525c6980803a9946471
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 10:21:43 2010 -0400

    Fix invalid reads

    Don't use a guint16* when getting a guint property via g_object_get()!

    Bug #628323.

 gio/gproxyaddressenumerator.c | 5 ++++-
 gio/tests/network-address.c   | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 08924ad1472a17cd6c144ae25a350af0b2d9afe7
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 10:18:30 2010 -0400

    Plug a mem leak in GConverterOutputStream

    ==8221== 1,047 (672 direct, 375 indirect) bytes in 28 blocks are
    definitely lost in loss record 589 of 603
    ==8221==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==8221==    by 0x4057094: g_malloc (gmem.c:134)
    ==8221==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==8221==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==8221==    by 0x403A8A6: g_error_new_literal (gerror.c:117)
    ==8221==    by 0x403AC31: g_set_error_literal (gerror.c:314)
    ==8221==    by 0x80499DC: g_compressor_converter_convert
    (converter-stream.c:267)
    ==8221==    by 0x417BF67: g_converter_convert (gconverter.c:174)
    ==8221==    by 0x417D7F0: g_converter_output_stream_write
    (gconverteroutputstream.c:428)
    ==8221==    by 0x41B57DF: g_output_stream_write (goutputstream.c:216)
    ==8221==    by 0x804A367: test_compressor (converter-stream.c:456)

    Bug #628309.

 gio/gconverteroutputstream.c | 1 +
 1 file changed, 1 insertion(+)

commit 802c25832cb34976308a8a2b356ad3273108761f
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 10:16:31 2010 -0400

    Plug a mem leak

    ==6793== 19 (8 direct, 11 indirect) bytes in 1 blocks are definitely
    lost in loss record 640 of 1,423
    ==6793==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==6793==    by 0x4057094: g_malloc (gmem.c:134)
    ==6793==    by 0x40573DB: g_malloc_n (gmem.c:281)
    ==6793==    by 0x4073D1B: g_strsplit (gstrfuncs.c:2436)
    ==6793==    by 0x4224A89: initable_init (gdbusserver.c:1040)
    ==6793==    by 0x41A73F9: g_initable_init (ginitable.c:105)
    ==6793==    by 0x41A759B: g_initable_new_valist (ginitable.c:218)
    ==6793==    by 0x41A743E: g_initable_new (ginitable.c:138)
    ==6793==    by 0x42238F5: g_dbus_server_new_sync (gdbusserver.c:484)

    Bug #628328.

 gio/gdbusserver.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6879256f360ed46c2238b273a239f99d08a62915
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Aug 30 10:14:39 2010 -0400

    Plug a mem leak

    ==6793== 16 bytes in 1 blocks are definitely lost in loss record
    632 of 1,423
    ==6793==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==6793==    by 0x4057094: g_malloc (gmem.c:134)
    ==6793==    by 0x417FC29: g_data_input_stream_read_line
    (gdatainputstream.c:797)
    ==6793==    by 0x41F99C1: _my_g_data_input_stream_read_line
    (gdbusauth.c:279)
    ==6793==    by 0x41FA728: _g_dbus_auth_run_client (gdbusauth.c:759)

    Bug #628327.

 gio/gdbusauth.c | 1 +
 1 file changed, 1 insertion(+)

commit bb221b68df5de89fce4cb70b789df6173d9c2c92
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 10:02:32 2010 -0400

    Add an annotation

 gio/gdbusmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a3cc274fc681f5266b621f730d3d8eef811e41cf
Author: Dan Winship <danw@gnome.org>
Date:   Mon Aug 30 09:23:09 2010 -0400

    GSocketClient: fix a crash on cancellation

    some code rearrangement when adding proxy support resulted in
    trying to
    use a GSocket that wasn't there.

    https://bugzilla.gnome.org/show_bug.cgi?id=628296

 gio/gsocketclient.c | 3 +++
 1 file changed, 3 insertions(+)

commit b8ff287167f668d0c10c2b98c13661042633163e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 08:58:31 2010 -0400

    Disable the 'extra data' test for now

 gio/tests/gdbus-introspection.c | 3 +++
 1 file changed, 3 insertions(+)

commit b4a61235da4e604eca92d3f38a391a1e76a63d1c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 08:50:09 2010 -0400

    Introspection: make 'direction' default to 'in' for methods

 gio/gdbusintrospection.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit c3135d1d39cbbbb1947843d3937984887764137e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 30 08:49:41 2010 -0400

    Add some more gdbus introspection tests (currently failing)

 gio/tests/gdbus-introspection.c | 90
 ++++++++++++++++++++++++++++++++++++++---
 1 file changed, 85 insertions(+), 5 deletions(-)

commit 1ce14a88d6b2ff7007163bef929c88daed0183e5
Author: Branko Kokanović <branko.kokanovic@gmail.com>
Date:   Sun Aug 29 19:07:46 2010 +0200

    Updated Serbian translation

 po/sr.po       | 801
 ++++++++++++++++++++++++++++++++++++++++-----------------
 po/sr@latin.po | 801
 ++++++++++++++++++++++++++++++++++++++++-----------------
 2 files changed, 1118 insertions(+), 484 deletions(-)

commit 0e93b0f5c0dfb0bd3a828c5c8a7295c4085598f5
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Aug 29 15:57:41 2010 +0300

    Updated Hebrew translation.

 po/he.po | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

commit b09a01c6264c08abc2e5eda54fe30d56f06802dd
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Aug 29 11:33:56 2010 +0200

    Updated Spanish translation

 po/es.po | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

commit 2286d1d669ac3bcef1faa709290831df9197ba02
Author: A S Alam <aalam@users.sf.net>
Date:   Sun Aug 29 09:32:03 2010 +0530

    update translation for Punjabi

 po/pa.po | 360
 +++++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 291 insertions(+), 69 deletions(-)

commit 849dbc12056b72f4284bcb6e4b466ec3fcea13f4
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Aug 29 04:19:12 2010 +0200

    Added Galician help translations

 po/gl.po | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 1399913f31b60ffebb84e08d8901e82aab2bb075
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Aug 28 12:18:37 2010 +0100

    Change "type-string" to "type string" in translatable strings

    Helps: bgo#628193

 gio/gdbusmessage.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ea9f5f025188731f4347f5be1248e84dc3710c7b
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Aug 28 12:17:45 2010 +0100

    Change "lock-file" to "lock file" in translatable strings

    Helps: bgo#628193

 gio/gdbusauthmechanismsha1.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 61e53e0d196d12d7ea612794ce2ff3550927f9d0
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Sat Aug 28 11:54:01 2010 +0100

    Update British English translation

 po/en_GB.po | 2289
 ++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 1493 insertions(+), 796 deletions(-)

commit 62788fdf66f321edb15671cb895aa9072df38149
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Aug 28 10:08:04 2010 +0200

    Updated Spanish translation

 po/es.po | 287
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 249 insertions(+), 38 deletions(-)

commit 5a76228e458ccd9846f7dbe2ad35f9e874a07be4
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Aug 28 10:46:19 2010 +0300

    Updated Hebrew translation.

 po/he.po | 230
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 223 insertions(+), 7 deletions(-)

commit e0aa877e64b5d2de27c9d6c00119a33b735f5b58
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Aug 27 23:15:49 2010 +0200

    Update Galician translations

 po/gl.po | 279
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 248 insertions(+), 31 deletions(-)

commit 52a41b81bd6770434a62aa4a4b7bef100e27da44
Author: Claude Paroz <claude@2xlibre.net>
Date:   Fri Aug 27 20:04:38 2010 +0200

    Added missing files in POTFILES.in

 po/POTFILES.in | 6 ++++++
 1 file changed, 6 insertions(+)

commit 1e7243ad7b48d833ef6eec8fa305f25487f640b0
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Aug 27 10:50:03 2010 -0400

    Bug 628084 – gdbus-peer fails with assertion

    Make it work on systems where /etc/hosts is bigger than 1024 bytes.

    https://bugzilla.gnome.org/show_bug.cgi?id=628084

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-peer.c | 67
 ++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 60 insertions(+), 7 deletions(-)

commit 95107e0ab69fdcc9e7f27832dd492582c4e3fb3e
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Aug 27 14:53:57 2010 +0300

    Updated Hebrew translation.

 po/he.po | 72
 +++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 35 insertions(+), 37 deletions(-)

commit db7ddcc19529a101b820347e8cca419fb37f6a02
Author: Jens Georg <mail@jensge.org>
Date:   Wed Aug 25 00:18:23 2010 +0300

    Improve parsing of date-only iso8601 strings

 glib/gtimer.c    | 15 +++++++++++++--
 tests/testglib.c |  4 ++++
 2 files changed, 17 insertions(+), 2 deletions(-)

commit 9a61fb2c640708070a32c18bd06ae94ee71c925f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Thu Aug 26 12:58:19 2010 +0100

    datetime: Re-use add_dmy()

    Avoid code duplication.

 glib/gdatetime.c       | 55
 ++++++--------------------------------------------
 glib/tests/gdatetime.c |  5 ++++-
 2 files changed, 10 insertions(+), 50 deletions(-)

commit 3c86a77ae5efa57a6f62c2eeec9c67aa66246496
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Aug 26 12:41:46 2010 +0300

    Fix Win32 build

 configure.ac           |  1 +
 glib/gdatetime.c       |  2 +-
 glib/tests/gdatetime.c | 26 +++++++++++++++++++++++---
 3 files changed, 25 insertions(+), 4 deletions(-)

commit ca26f9a5029cfd97f92c81f3993628068d60c4a9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 26 00:16:30 2010 -0400

    Make this thing work

 glib/gtester-report | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b52cdaf2f01411df86b418f45a7dc04f1499fabe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 26 00:00:56 2010 -0400

    Improve g_file_set_contents docs

    Mention that the temporary filename is longer than the passed-in
    filename, so people can avoid passing a name that is already
    NAME_MAX long.

 glib/gfileutils.c | 3 +++
 1 file changed, 3 insertions(+)

commit 925b4231dc7af90fa9ec2c442e640ebe20aedb5c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 25 22:07:59 2010 -0400

    Point out that g_type_init() is required

 docs/reference/gio/overview.xml | 6 ++++++
 1 file changed, 6 insertions(+)

commit 1681f7410a90f8408fd9dbd5b7e58a6e38c06fe7
Author: A S Alam <aalam@users.sf.net>
Date:   Wed Aug 25 22:00:53 2010 +0530

    update translation for Punjabi

 po/pa.po | 658
 ++++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 402 insertions(+), 256 deletions(-)

commit 8803182f4a1d0d3aa51407bad633dfa1c3f71890
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 25 20:04:45 2010 -0400

    Guarantee that g_get_tmp_dir () doesn't return an empty string

    If it does, g_file_open_tmp() would be in trouble. Pointed
    out by Morten Welinder in bug 627969.

 glib/gutils.c      | 12 ++++++------
 glib/tests/utils.c | 14 ++++++++++++++
 2 files changed, 20 insertions(+), 6 deletions(-)

commit 8e16bf2fb61bf38c9b634c18d9d7ca48e3623169
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 25 18:44:59 2010 -0400

    NEWS for 2.25.15

 NEWS | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

commit 08877ee0dc61b73978d6e7f46216c9405498dbf8
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 23:08:18 2010 +0100

    datetime: Fix a thinko

    We need to check if a year is a leap one *after* we increased it with
    the given value, not before.

 glib/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 026375b395fcdc2336666546afd2f21e7ee8bc67
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 23:00:31 2010 +0100

    datetime: Avoid excessive copies in add_full()

    The current implementation of g_date_time_add_full() creates multiple
    GDateTime temporary objects and unrefs them immediately; even with the
    slice allocator this could result in a performance bottleneck,
    especially if the atomic integer operations fall back to slow paths.

    We can isolate the components of the add_full() operation and create
    internal modifiers that operate on an existing GDateTime; this brings
    down the number of GDateTime copies created from six to one.

    While at it, the test suite for add_full() should have more checks for
    roll-over of months and days.

    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/gdatetime.c       | 133
 ++++++++++++++++++++++++++++++++++---------------
 glib/tests/gdatetime.c |  24 +++++----
 2 files changed, 108 insertions(+), 49 deletions(-)

commit 0d0a9bb4485069a56caf139346e6a6aad81c4efd
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 25 14:45:28 2010 -0400

    GDBusConnection: Document memory management semantics for
    get_property()

    Turns out we are leaking non-floating GVariant instances returned by
    get_property() functions.

    Also avoid imprecise language such as "newly-allocated GVariant" as
    this doesn't specify whether the variant can be floating or not.

    Also see https://bugzilla.gnome.org/show_bug.cgi?id=627974 as it is
    very related to this change.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 6 +++++-
 gio/gdbusconnection.h | 4 +++-
 2 files changed, 8 insertions(+), 2 deletions(-)

commit d31c1c863a357e94b87529dfdfb6abad3fcef84b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 16:24:46 2010 +0100

    docs: Fix up GDateTime for the GObject reference

 docs/reference/gobject/gobject-sections.txt | 1 +
 gobject/gboxed.h                            | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 99621efbd559afe9c3833befab90daf6d00fc8a9
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 16:23:34 2010 +0100

    docs: Reword the datetime short description

 glib/gdatetime.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 250b1d576b71f2bafd6cf7abbe679dc2a21fbd65
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 16:13:24 2010 +0100

    docs: Fix the section name for GDateTime

 docs/reference/glib/glib-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5e65ed4e4458d0a359259298c33b222e16441e5e
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 12:30:09 2010 +0100

    datetime: Fix leap year check

    Remove a FIXME and an approximation when computing the seconds from
    the Unix epoch.

 glib/gdatetime.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

commit 2952e908e4a67929a72c5ad9a26db95f1dde2d29
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 12:24:54 2010 +0100

    datetime: Fix coding style

 glib/gdatetime.c | 310
 ++++++++++++++++++++++++++-----------------------------
 1 file changed, 148 insertions(+), 162 deletions(-)

commit 0a59ab6e8594f0f2f9203390052364bef9212697
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 12:14:04 2010 +0100

    datetime: Use %Z for the timezone name

    We should try and follow strftime(3) for the format control characters
    as much as possible.

 glib/gdatetime.c       | 4 ++--
 glib/tests/gdatetime.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit b4c0b958af875bcba830ee734cd50df30a88236a
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 12:09:16 2010 +0100

    datetime: Fix the format documentation

    The %x format is for the preferred date, and the %X format is for the
    preferred time.

 glib/gdatetime.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9a39b1d7051bd5a8f725aacf621649619067857b
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 12:06:47 2010 +0100

    datetime: Clean up macros and unused variables

    The most complex macros should be converted to inlined functions,
    instead, to guarantee some type safety.

 glib/gdatetime.c | 147
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 73 insertions(+), 74 deletions(-)

commit 0f87f09397ef9a796258ec3200e0e987a761e505
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 25 00:27:49 2010 +0100

    datetime: Remove the translation marker for a warning message

 glib/gdatetime.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 96dc06e6e06ec0347ecb4e44b15acf8ce7e31af0
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 24 23:30:30 2010 +0100

    docs: Add GDateTime to the GLib API reference

 docs/reference/glib/glib-docs.sgml    |  1 +
 docs/reference/glib/glib-sections.txt | 62
 +++++++++++++++++++++++++++++++++++
 2 files changed, 63 insertions(+)

commit d62eb80c5489bbd4590c10f218b9eb71393bdfaf
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 24 21:37:43 2010 +0100

    docs: Mention TZDIR

    The timezone code in GDateTime honours the TZDIR environment variable,
    so it should be mentioned in the list of variables GLib checks at
    runtime.

 docs/reference/glib/running.sgml | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit e35ed21f43f94443e5b137d85120b87542261c5b
Author: Thiago Santos <thiago.sousa.santos@collabora.co.uk>
Date:   Fri May 28 08:19:29 2010 -0300

    datetime: Add GDateTime to the GType system

    As with other GLib data types, use a GBoxed.

 gobject/gboxed.c        |  2 ++
 gobject/gboxed.h        | 10 +++++++++-
 gobject/gobject.symbols |  1 +
 3 files changed, 12 insertions(+), 1 deletion(-)

commit e1f13ee9ed38d4f14bf927b6fa3f28530afc3640
Author: Thiago Santos <thiago.sousa.santos@collabora.co.uk>
Date:   Fri May 28 08:19:29 2010 -0300

    Add GDateTime to GLib

    GDateTime is an opaque data type containing a date and time
    representation. It's immutable once created and reference
    counted.

    https://bugzilla.gnome.org/show_bug.cgi?id=50076

    Based on the code by: Christian Hergert <chris@dronelabs.com>

    Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>

 glib/Makefile.am       |   16 +-
 glib/gdatetime.c       | 2227
 ++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gdatetime.h       |  190 +++++
 glib/glib.h            |    1 +
 glib/glib.symbols      |   51 ++
 glib/tests/.gitignore  |    1 +
 glib/tests/Makefile.am |    5 +-
 glib/tests/gdatetime.c |  962 +++++++++++++++++++++
 8 files changed, 3445 insertions(+), 8 deletions(-)

commit 3cee971db55da9b3bdd1c05e5be68152cd6fd165
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 24 22:47:02 2010 +0100

    Add C_() to glibintl.h

 glib/glibintl.h | 2 ++
 1 file changed, 2 insertions(+)

commit 0a9bfa1c7d1d30a926c20cb45f935d05e2d2752a
Author: Cody Russell <bratsche@gnome.org>
Date:   Mon Aug 23 12:34:53 2010 -0500

    Add const to _pcre_ucp_othercase() definition in pcre_internal.h

 glib/pcre/pcre_internal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5ff83633744db6f07fa990deab20b17c583b40e9
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon Aug 23 17:40:02 2010 +0200

    Updated Spanish translation

 po/es.po | 67
 ++++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 38 insertions(+), 29 deletions(-)

commit 6c24062880b19a239b57435694a9daed1c90edca
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Aug 23 14:31:20 2010 +0300

    Include gproxyaddress.h explicitly

 gio/gsocketaddress.c | 1 +
 1 file changed, 1 insertion(+)

commit 780d6bfa88900fa5a01375467b0cbb686f7b1d1f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 23 00:37:52 2010 -0400

    Improve testutils test coverage

 glib/tests/testing.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit fa6926e5d4ff7fc7efde46222ff70f2a75298ac4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 23 00:37:37 2010 -0400

    Improve printf test coverage

 glib/tests/printf.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 7d970fadbc4bad8635f2e5e109517bc015e0e14a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 23 00:37:21 2010 -0400

    Improve GDate test coverate

 glib/tests/date.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 8f40c0e45a158440edb7f4e4fcc95471c028a2e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 23 00:36:36 2010 -0400

    Improve GDBus introspection test coverage

 gio/tests/gdbus-introspection.c | 81
 +++++++++++++++++++++++++++++++++++++++++
 gio/tests/gdbus-peer.c          |  4 ++
 2 files changed, 85 insertions(+)

commit 847e4dfe7d2ff84c23fba332381e5121ab54aa39
Author: David Zeuthen <davidz@redhat.com>
Date:   Sun Aug 22 22:56:49 2010 -0400

    GDBusMethodInvocation: nuke constructor

    ... that is, make it private. This makes sense because users are never
    expected to create such objects themselves - only the GDBus core will
    need this.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 -
 gio/gdbusconnection.c               | 18 +++++++++---------
 gio/gdbusmethodinvocation.c         | 22 +++++++++++-----------
 gio/gdbusmethodinvocation.h         |  9 ---------
 gio/gdbusprivate.h                  | 12 ++++++++++++
 gio/gio.symbols                     |  1 -
 6 files changed, 32 insertions(+), 31 deletions(-)

commit 5668d52babfd40ac502463006f964665f3561008
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Aug 23 02:24:25 2010 +0200

    Updated galician translations

 po/gl.po | 47 +++++++++++++++++++++++------------------------
 1 file changed, 23 insertions(+), 24 deletions(-)

commit ff59b66ebaaf580cb355f187e83ce36b198ee880
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Aug 22 21:17:53 2010 +0200

    Updated Spanish translation

 po/es.po | 160
 +++++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 130 insertions(+), 30 deletions(-)

commit 3ff9894826215790fdd6c8b53584f94a7172c39f
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Aug 5 20:37:27 2010 -0400

    Bug 624546 – Modification of GDBusMessage in filter function

    Allow modifying a GDBusMessage in a filter function and also add tests
    for this. This breaks API but leaves ABI (almost) intact - at least
    dconf's GSettings backend (the only big user I know of) will keep
    working.

    https://bugzilla.gnome.org/show_bug.cgi?id=624546

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gdbusconnection.c               |  85 +++++++++++++++------
 gio/gdbusconnection.h               |  18 +++--
 gio/gdbusprivate.c                  |  59 +++++++++++----
 gio/gdbusprivate.h                  |   6 +-
 gio/gio.symbols                     |   1 +
 gio/gioenums.h                      |  25 ++++++
 gio/tests/gdbus-connection.c        | 147
 +++++++++++++++++++++++++++++++++++-
 gio/tests/gdbus-peer.c              |   4 +-
 9 files changed, 298 insertions(+), 48 deletions(-)

commit 6d359d60290f5651b868d326e1e9514f68dfaa32
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sun Aug 22 13:17:24 2010 +0200

    Updated Danish translation

 po/da.po | 2102
 +++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 1310 insertions(+), 792 deletions(-)

commit ef16ea4616b6d47b533474dd163ae23add7037bc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 22:22:25 2010 -0400

    Add proxy extension point to overview docs

    The 'Extending GIO' section is supposed to list all extension
    points, so add the proxy extension point here.

 docs/reference/gio/overview.xml | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit 040bffed38529f18d71713fce994b8ea705dbfb6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 22:14:28 2010 -0400

    Fix build on !unix

    There was one code block still referring to fd_list outside of
    the ifdef G_OS_UNIX. Pointed out by Sam Thursfield in bug 627392.

 gio/gdbusprivate.c | 2 ++
 1 file changed, 2 insertions(+)

commit 41ce91d0579aa05b89e357c9fd59d9530ad7bf76
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 22:09:32 2010 -0400

    Better fix for the build problem

    Use gnetworkingprivate.h instead, patch by Emilio Pozuelo Monfort,
    bug 627407.

 gio/tests/gdbus-peer.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

commit 3d01283f6908000e0a989ba22769c869461be398
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 22:06:56 2010 -0400

    Make gdbus-peer build on !linux

    Based on a patch by Koop Mast, bug 627088.

 gio/tests/gdbus-peer.c | 3 +++
 1 file changed, 3 insertions(+)

commit 61de05e774829f1687244b014732490005cf4b48
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 21:58:51 2010 -0400

    Fix a duplicate word

    Pointed out in bug 627604.

 gio/gdbusmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a54e2c4fb302ebbeae3e28c70f2342a57edb7521
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 19:27:11 2010 -0400

    Add some more annotations

 gio/gactiongroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 892f9b64584b7a05c517f19f8a9a22d8533a6413
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 19:18:40 2010 -0400

    Improve test coverage for actions and action groups

 gio/tests/actions.c | 116
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 116 insertions(+)

commit 33b775308bd97c02ecdd6de4f91a619c8fcdc282
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 19:18:17 2010 -0400

    Document behaviour wrt. to floating variants

 gio/gaction.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 9581b33ca5c2cc56d0e6f1fef5d437f856928494
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 19:11:03 2010 -0400

    Document behaviour wrt to floating variants

 gio/gactiongroup.c | 2 ++
 1 file changed, 2 insertions(+)

commit e8ffb1ae83cf63837254ee5979798b2ada18c38a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 16:30:50 2010 -0400

    Add some annotations

 gio/gaction.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit 5b38bc5ad5181bb4900c1da898b2e4fcdcec1757
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Aug 21 17:35:32 2010 -0400

    Simplify/fix state logic in GAction, test it.

 gio/gaction.c       | 55
 ++++++++++++++++++++++++++++++++++-------------------
 gio/tests/actions.c | 35 ++++++++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+), 20 deletions(-)

commit 3c5388d9f41b39c939cb67c5fa28cf38ec832cd0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 15:40:46 2010 -0400

    Add some forgotten symbols

 docs/reference/gio/gio-sections.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit bff2af486827499c2da507f17e61fc88c96b43ba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 15:40:32 2010 -0400

    Ignore some more private headers

 docs/reference/gio/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit b876e47e3b623b50dcced6c1c8f6f953c1113753
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 15:34:40 2010 -0400

    Fix documentation issues

    Gtk-doc is unhappy if the parameter names don't match between header
    and source.

 gio/gnetworkservice.c |  4 +++-
 gio/gproxy.c          | 18 +++++++++---------
 2 files changed, 12 insertions(+), 10 deletions(-)

commit 4831a102e51825b79d39686983326bcf82490ede
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 21 15:34:18 2010 -0400

    Fix GActionGroup docs

 gio/gactiongroup.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fceea19be5a7744904f793e38e090b627b8c0ed8
Author: Милош Поповић <gpopac@gmail.com>
Date:   Sat Aug 21 20:05:14 2010 +0200

    Updated Serbian translation

 po/sr.po       | 1756
 ++++++++++++++++++++++++++++++++++---------------------
 po/sr@latin.po | 1767
 +++++++++++++++++++++++++++++++++++---------------------
 2 files changed, 2185 insertions(+), 1338 deletions(-)

commit de07279709d35aeb28dfb60ea836cd043eb4cfc2
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Aug 21 19:43:37 2010 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 951
 ++++++++++++++++++++++++++++++++++++++++-------------------
 po/zh_TW.po | 964
 +++++++++++++++++++++++++++++++++++++++++-------------------
 2 files changed, 1305 insertions(+), 610 deletions(-)

commit 276a9ba385a2cde538c7d5176ea5ee761c21e9ed
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Aug 21 02:35:07 2010 +0300

    Updated Hebrew translation.

 po/he.po | 157
 +++++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 127 insertions(+), 30 deletions(-)

commit 8524f0dc0d0c2742a90a3fee6dbb7fe290dfb8dd
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Fri Aug 20 13:23:11 2010 +0200

    Updated galician translations

 po/gl.po | 396
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 254 insertions(+), 142 deletions(-)

commit 8f5ec0dad328cbb498fe2f60bd465f0e4c5d4cad
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 19 18:24:53 2010 -0400

    Fix misc compiler warnings in (mostly) test programs

 gio/gdbusmessage.c              |  2 +-
 gio/gio.symbols                 |  1 -
 gio/tests/file.c                | 17 +++++++++++++++--
 gio/tests/g-icon.c              |  2 +-
 glib/tests/date.c               |  2 +-
 glib/tests/node.c               |  2 +-
 glib/tests/shell.c              |  4 ++--
 tests/gobject/ifaceproperties.c |  2 +-
 8 files changed, 22 insertions(+), 10 deletions(-)

commit 22b3f0d4b26d0b729c1850f45670a9050dc10772
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 19 17:51:24 2010 -0400

    gio.symbols: add missing g_simple_action_group stuff

 gio/gio.symbols | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit ab778737aa6d145a0d19d0775270959a72716260
Author: Dan Winship <danw@gnome.org>
Date:   Thu Aug 19 17:51:01 2010 -0400

    gproxyaddressenumerator.h: add missing G_END_DECLS

 gio/gproxyaddressenumerator.h | 2 ++
 1 file changed, 2 insertions(+)

commit de1598a34d920882991d6b5166bce815ca4aa428
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu Aug 19 17:31:42 2010 -0400

    gio/proxy: Fixed compilation warnings

    * Wrong return type (NULL instead of FALSE)
    * Unused static function declaration

 gio/gproxy.c       | 2 +-
 gio/gsocks4proxy.c | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

commit 0958e663175fe51361aa1e6a87a3f3c5de08bebf
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu Aug 19 16:23:50 2010 -0400

    Add support for g_socket_client_add_application_proxy()

    This allow application to take control over certain proxy protocol
    handling. When a proxy protocol must be used and is found in the
    application proxies, GSocketClient will simply TCP connect to
    the proxy
    server and return the connection.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gsocketclient.c                 | 41
 +++++++++++++++++++++++++++++++++++--
 gio/gsocketclient.h                 |  2 ++
 4 files changed, 43 insertions(+), 2 deletions(-)

commit ced1d0e2e7d164873d8b7e335a00cfac13785760
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue May 25 16:02:42 2010 -0400

    Implemented SOCKSv4 and SOCKSv4a

 gio/Makefile.am     |   4 +
 gio/giomodule.c     |   4 +
 gio/gsocks4aproxy.c | 495
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gsocks4aproxy.h |  55 ++++++
 gio/gsocks4proxy.c  |  73 ++++++++
 gio/gsocks4proxy.h  |  44 +++++
 po/POTFILES.in      |   1 +
 7 files changed, 676 insertions(+)

commit e2a90bcb5fc50f099cbf8df01a09697f7e48522d
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Fri May 7 16:35:04 2010 -0400

    Implemented proxy sample code that connect to proxy

 gio/tests/proxy.c | 83
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

commit 0ebb79a7488121ae4a18cc84ac92e25ddb2b9544
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu Apr 29 18:51:42 2010 -0400

    Implemented g_socket_client_connect_to_uri() method

    Using this rather than g_socket_client_connect() or
    g_socket_client_connect_to_host() allows #GSocketClient to
    determine when to use application-specific proxy protocols.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gio.symbols                     |   3 +
 gio/gsocketclient.c                 | 122
 +++++++++++++++++++++++++++++++++++-
 gio/gsocketclient.h                 |  14 +++++
 4 files changed, 141 insertions(+), 1 deletion(-)

commit a6c3820f46b9caabc45ab19aaf2669b4cb04c5d5
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Aug 10 16:48:45 2010 -0400

    Hooked proxy enumeration into GSocketClient

    This functionnallity can be disabled using property enable-proxy. It
    enumerates addresses using GSocketConnectable::proxy_enumerate()
    instead of
    enumerate(). When the returned address is of type GProxyAddress
    (a type
    based on GInetSocketAddress), it gets the proxy protocol handler using
    g_proxy_get_default_for_protocol() and call connect() on it.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gsocketclient.c                 | 307
 ++++++++++++++++++++++++++++++++----
 gio/gsocketclient.h                 |   3 +
 4 files changed, 282 insertions(+), 32 deletions(-)

commit ee3dbf747e48a41c916674f111906f57996fd626
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu Jul 22 20:51:23 2010 -0400

    Implement GProxyConnection a GIOStream+GTcpConn wrapper

    This class inherit from GTcpConnection by refing the socket of
    an existing GTcpConnection and wraps a custom GIOStream into
    itself. This
    is to allow implementing proxies that alters data stream, like
    when using
    GSSAPI privacy inside SOCKS5.

 gio/Makefile.am        |   2 +
 gio/gproxyconnection.c | 155
 +++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gproxyconnection.h |  69 ++++++++++++++++++++++
 3 files changed, 226 insertions(+)

commit 6fa113660057e0e6592b180d1a2aead617e71dec
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Thu Apr 29 15:22:55 2010 -0400

    Implemented SOCKSv5 proxy support

 gio/Makefile.am    |    2 +
 gio/giomodule.c    |    2 +
 gio/gsocks5proxy.c | 1053
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gsocks5proxy.h |   48 +++
 po/POTFILES.in     |    1 +
 5 files changed, 1106 insertions(+)

commit c32ef1d85e0b7cca02677bbe50fef2ef79a98002
Author: Dan Winship <danw@gnome.org>
Date:   Fri Jun 25 14:28:02 2010 -0400

    GSocket: store the remote_address when connecting

    This way, if g_socket_connect() is called with a GProxyAddress,
    g_socket_get_remote_address() will later return that same address.

    Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>

 gio/gsocket.c | 51 +++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 43 insertions(+), 8 deletions(-)

commit b304a23af73374857e6bb18fc636d83fe9ed58ea
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Wed Apr 28 15:39:56 2010 -0400

    Extend IO_ERROR enum for Proxy support

 gio/gioenums.h | 17 ++++++++++++++++-
 gio/gioerror.c | 18 ++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)

commit 1094c84238e05304e4175990c5e0e018cdf97e28
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Fri May 7 16:32:05 2010 -0400

    Implemented proxy sample for all Connectables

 gio/tests/proxy.c | 309
 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 290 insertions(+), 19 deletions(-)

commit fc03ecce831cd94639df1a355f5dd8c9b8eebfae
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Aug 10 15:45:32 2010 -0400

    Implemented proxy_enumerate() for all Connectables

    This patch implements method proxy_enumerate from GSocketConnectable
    for
    all connectables (GNetworkAddress, GNetworkService, GInetSocketAddress
    and GUnixSocketAddress).

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gnetworkaddress.c               |  28 ++-
 gio/gnetworkservice.c               | 441
 +++++++++++++++++++++---------------
 gio/gnetworkservice.h               |   2 +
 gio/gsocketaddress.c                |  42 +++-
 6 files changed, 329 insertions(+), 188 deletions(-)

commit f82f484b8ffa18aab10e79baa96bcfa438f8dc5b
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Aug 10 16:53:25 2010 -0400

    Added proxy_enumerate method to GSocketConnectable

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  3 ++-
 gio/gnetworkaddress.c               |  2 +-
 gio/gnetworkingprivate.h            |  5 +++++
 gio/gsocketconnectable.c            | 31 +++++++++++++++++++++++++++++++
 gio/gsocketconnectable.h            |  8 +++++++-
 6 files changed, 47 insertions(+), 3 deletions(-)

commit 6749ffce594b146ef49c8fe014bfa8b0272b6b9f
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Fri May 7 16:27:34 2010 -0400

    Added GProxyAddressEnumerator to proxy sample code

 gio/tests/proxy.c | 133
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)

commit a7e0e8fc0852255d430daa90e7345db67a2a9594
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Aug 10 15:25:11 2010 -0400

    Adding GProxyAddressEnumerator class

    An implementation of GSocketAddressEnumerator that handles proxy
    enumeration. This class is mainly usefull for Connectables
    implementation
    such as NetworkService, NetworkAddress and SocketAddress to handle
    proxies.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-sections.txt |  13 +-
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   6 +
 gio/giotypes.h                      |   1 +
 gio/gproxyaddressenumerator.c       | 728
 ++++++++++++++++++++++++++++++++++++
 gio/gproxyaddressenumerator.h       |  73 ++++
 8 files changed, 824 insertions(+), 1 deletion(-)

commit d76de5e3591431c03a5812acd7682f2ff68fba69
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Aug 10 15:24:37 2010 -0400

    Added GProxy interface for proxy extension point

    Implement an extension point for proxy protocol implementation. This
    is mainly useful for socket-based proxy where it is possible to
    use the
    proxied socket the same way it would for other stream based socket.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  19 ++++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  11 ++
 gio/giomodule.c                     |   4 +
 gio/giotypes.h                      |   1 +
 gio/gproxy.c                        | 208
 ++++++++++++++++++++++++++++++++++++
 gio/gproxy.h                        | 123 +++++++++++++++++++++
 10 files changed, 371 insertions(+)

commit 63105d1074ce54fdda9c81bb0353abc9b0a24d62
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Aug 10 15:23:37 2010 -0400

    Added method g_network_address_parse_uri()

    This method allow creating a network address from a URI. If no port is
    found in the URI, the default_port parameter will be used. Note
    that new
    property scheme is there for future TLS implementation.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gnetworkaddress.c               | 296
 ++++++++++++++++++++++++++++++++++++
 gio/gnetworkaddress.h               |   4 +
 4 files changed, 304 insertions(+)

commit 466111c9605ace99389d56ace213621db01e18d9
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Mon Apr 26 17:27:33 2010 -0400

    Implement GProxyAddress

    A GSocketInetAddress representing the proxy server address with
    additional
    properties proxy type, destination address and port, username and
    password.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  23 +++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  12 ++
 gio/giotypes.h                      |   1 +
 gio/gproxyaddress.c                 | 345
 ++++++++++++++++++++++++++++++++++++
 gio/gproxyaddress.h                 |  76 ++++++++
 9 files changed, 462 insertions(+)

commit 6b1d851cc5ba8ce4276f2e3236da7554b763cf0c
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Fri May 7 16:23:45 2010 -0400

    Implemented proxy sample code

    Reviewed-by: Dan Winship <danw@gnome.org>

 gio/tests/.gitignore  |   1 +
 gio/tests/Makefile.am |   5 ++
 gio/tests/proxy.c     | 175
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 181 insertions(+)

commit f3debedfd2a3197230ac6f09f56741c3eda61e29
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Fri May 7 15:55:54 2010 -0400

    Implemented proxy-resolver extension point

    This extension point allow extending GLib with library like LibProxy
    that
    interprets system proxy settings and finds the appropriate
    configuration
    based on the type of connection being made.

    Reviewed-by: Dan Winship <danw@gnome.org>

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  20 +++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   4 +
 gio/gdummyproxyresolver.c           | 156 +++++++++++++++++++++++
 gio/gdummyproxyresolver.h           |  54 ++++++++
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  11 ++
 gio/giomodule.c                     |   7 ++
 gio/giotypes.h                      |   9 ++
 gio/gproxyresolver.c                | 241
 ++++++++++++++++++++++++++++++++++++
 gio/gproxyresolver.h                |  96 ++++++++++++++
 12 files changed, 601 insertions(+)

commit f82740f7beeac91398fc152a3efef0918540cd7b
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Thu Aug 19 21:17:09 2010 +0200

    Updated Spanish translation

 po/es.po | 295
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 150 insertions(+), 145 deletions(-)

commit b4b5ca4fd89a469c423df9d917af0c523196aab5
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Thu Aug 19 09:31:02 2010 +0300

    Updated Hebrew translation.

 po/he.po | 285
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 146 insertions(+), 139 deletions(-)

commit 7d6a6ca57b5a5dc1ad55a785dfd79fa98d7e4093
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 18 13:07:25 2010 -0400

    Bug 627188 – gdbus-non-socket test occasionally fails

    Fix logical bug in test case to avoid race condition between the
    client and the server.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-non-socket.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit 6c340c0b0312fc12f01ba1887e559fd36fcf28cb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Aug 18 12:07:01 2010 -0400

    Make gunixcredentialsmessage.h standalone includable

 gio/gunixcredentialsmessage.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 81b91a8852c0840d907c8192c67b2e65b29d41c6
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 18 16:54:36 2010 +0100

    action: Minor fixes

    • Argument validation.

    • Since: annotations.

    • Remove (allow-none) annotations from return values.

    • Coding style fixes.

 gio/gaction.c      |  89 +++++++++++++++++++++----------
 gio/gactiongroup.c | 154
 ++++++++++++++++++++++++++++++++++++-----------------
 2 files changed, 166 insertions(+), 77 deletions(-)

commit 504117e284682bff973ad73646fa67103978d016
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 18 16:54:11 2010 +0100

    action-group: Check aginst the correct GType macro

    G_TYPE_ACTION_GROUP is not a G_TYPE_ACTION.

 gio/gactiongroup.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5bb94348f4760352f6ae974002db48cb130343a4
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 18 11:35:25 2010 -0400

    GDBusProxy: Call into well-known name if no name owner currently
    exists

    This is really what (API) users expect from GDBusProxy - in
    particular, mclasen and I ran into this problem while debugging a
    upower issue, see

     https://bugzilla.redhat.com/show_bug.cgi?id=624125

    In a nutshell, the problem is that polkitd crashes while upower holds
    a PolkitAuthority object (which in turns contains a GDBusProxy for the
    well-known name org.freedesktop.PolicyKit1). This means that
    subsequent calls on the PolkitAuthority (which is translated into
    calls into the GDBusProxy) fails since :g-name-owner is NULL.

    With this fix, we'll be requesting the bus daemon to launch polkitd
    since we will start calling into org.freedesktop.PolicyKit1 as soon as
    we notice that there is no owner for this name.

    Unfortunately our test suite doesn't cover service activation so there
    is no way to reliably test this. I will file a bug about this.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 108
 ++++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 80 insertions(+), 28 deletions(-)

commit c2945808acc09562fad0ecd1247fcc3e53eeb913
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 18 10:52:28 2010 -0400

    GDBusProxy: Use %, not #, for referencing enum constants in gtk-doc
    comments

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit a35efb0939c05d572b3a601fb3de62c599d2cf9c
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Aug 18 01:02:22 2010 +0200

    G_OPTION_FLAG_NO_ARG is only for callback options

    Bug #627252.

 glib/tests/option-context.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 5db9e5ad58040b5ccdba73c59a76522f9c35aa34
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 02:15:09 2010 -0400

    add GSimpleActionGroup

    and a simple test

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  28 +++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/giotypes.h                      |   1 +
 gio/gsimpleactiongroup.c            | 401
 ++++++++++++++++++++++++++++++++++++
 gio/gsimpleactiongroup.h            |  91 ++++++++
 gio/tests/actions.c                 |  28 +++
 9 files changed, 554 insertions(+)

commit 972c563f2328e5d1e176d99dd8abaf490b5db324
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 02:14:37 2010 -0400

    add some missed bits in the docs

 docs/reference/gio/gio-sections.txt | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit e1ded9f900349a64d25f659b0515e61956325557
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 01:56:34 2010 -0400

    add gaction.h to gio.h

 gio/gio.h | 1 +
 1 file changed, 1 insertion(+)

commit 8014e9c6e67958103ef490e1bc753e4426751751
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 01:55:48 2010 -0400

    add testcase for GAction

    fix some small bugs it found

 gio/gaction.c         |  9 ++++--
 gio/tests/.gitignore  |  1 +
 gio/tests/Makefile.am |  3 ++
 gio/tests/actions.c   | 81
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 91 insertions(+), 3 deletions(-)

commit 8475d6d7d05f00e6fd43ffe882b47025330caa6f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 01:45:15 2010 -0400

    add GAction base class

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  31 ++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gaction.c                       | 597
 ++++++++++++++++++++++++++++++++++++
 gio/gaction.h                       | 120 ++++++++
 gio/gio.symbols                     |  17 +
 gio/giotypes.h                      |   1 +
 8 files changed, 770 insertions(+)

commit a3f4ff52ca7e8cea8db6374d55d44729936da243
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 01:07:07 2010 -0400

    gio.symbols: Fix missed symbol name tweak

 gio/gio.symbols | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6e04125e3543fd59a067abefc72011433a7db915
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 00:37:50 2010 -0400

    pad the GActionGroup vtable

 gio/gactiongroup.h | 4 ++++
 1 file changed, 4 insertions(+)

commit 6fe74a4c6ab9895f77e889253ad9a369a0f9d1cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 00:33:17 2010 -0400

    Add gactiongroup.h to gio.h

 gio/gio.h | 1 +
 1 file changed, 1 insertion(+)

commit e71dbb97326f767881142cb24cf0850ee8c40008
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Aug 18 00:30:44 2010 -0400

    add GActionGroup base class

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  38 +++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |  14 +-
 gio/gactiongroup.c                  | 453
 ++++++++++++++++++++++++++++++++++++
 gio/gactiongroup.h                  | 173 ++++++++++++++
 gio/gio-marshal.list                |   1 +
 gio/gio.symbols                     |  20 ++
 gio/giotypes.h                      |   1 +
 9 files changed, 699 insertions(+), 3 deletions(-)

commit ddad707b85bf2075c0ca37b4a2267c6eac60a358
Author: Dan Winship <danw@gnome.org>
Date:   Tue Aug 17 18:38:34 2010 -0400

    update gio/tests/.gitignore

 gio/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit c56379264dd8714bdf08675927a5e59debaa7fc3
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Aug 17 18:38:46 2010 +0200

    Plug a mem leak in GDBusWorker

    Free the read buffer.

    ==26538== 4,096 bytes in 1 blocks are definitely lost in loss record
    781 of 781
    ==26538==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==26538==    by 0x4005C66: realloc (vg_replace_malloc.c:476)
    ==26538==    by 0x405244D: g_realloc (gmem.c:181)
    ==26538==    by 0x420E066: _g_dbus_worker_do_read_unlocked
    (gdbusprivate.c:780)
    ==26538==    by 0x420E1D1: _g_dbus_worker_do_read (gdbusprivate.c:812)
    ==26538==    by 0x420F14A: _g_dbus_worker_thread_begin_func
    (gdbusprivate.c:1318)
    ==26538==    by 0x420D2ED: invoke_caller (gdbusprivate.c:266)
    ==26538==    by 0x404DA7C: g_idle_dispatch (gmain.c:4224)
    ==26538==    by 0x4049FCD: g_main_dispatch (gmain.c:2119)
    ==26538==    by 0x404B2C1: g_main_context_dispatch (gmain.c:2672)
    ==26538==    by 0x404B716: g_main_context_iterate (gmain.c:2750)
    ==26538==    by 0x404BE7F: g_main_loop_run (gmain.c:2958)
    ==26538==    by 0x420D2B5: shared_thread_func (gdbusprivate.c:248)
    ==26538==    by 0x4077958: g_thread_create_proxy (gthread.c:1897)
    ==26538==    by 0x57D918: start_thread (pthread_create.c:301)
    ==26538==    by 0x4C6CBD: clone (clone.S:133)

    Bug #627187.

 gio/gdbusprivate.c | 2 ++
 1 file changed, 2 insertions(+)

commit a91a4a420e8ba6428e7db13bd9c308256cfbb323
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Aug 17 18:29:14 2010 +0200

    Plug a mem leak in gdbus-connection test

    ==26538== 145 (24 direct, 121 indirect) bytes in 1 blocks are
    definitely lost in loss record 765 of 790
    ==26538==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==26538==    by 0x405233C: g_malloc (gmem.c:134)
    ==26538==    by 0x406A57E: g_slice_alloc (gslice.c:836)
    ==26538==    by 0x406A60C: g_slice_copy (gslice.c:858)
    ==26538==    by 0x4035C5A: g_error_copy (gerror.c:160)
    ==26538==    by 0x41B6387: g_simple_async_result_set_from_error
    (gsimpleasyncresult.c:638)
    ==26538==    by 0x41FCDEB: g_dbus_connection_call_done
    (gdbusconnection.c:4808)
    ==26538==    by 0x41B682E: g_simple_async_result_complete
    (gsimpleasyncresult.c:762)
    ==26538==    by 0x41B686A: complete_in_idle_cb
    (gsimpleasyncresult.c:772)
    ==26538==    by 0x404DA7C: g_idle_dispatch (gmain.c:4224)
    ==26538==    by 0x4049FCD: g_main_dispatch (gmain.c:2119)
    ==26538==    by 0x404B2C1: g_main_context_dispatch (gmain.c:2672)
    ==26538==    by 0x404B716: g_main_context_iterate (gmain.c:2750)
    ==26538==    by 0x404BE7F: g_main_loop_run (gmain.c:2958)
    ==26538==    by 0x804B5CC: test_connection_send
    (gdbus-connection.c:407)
    ==26538==    by 0x4073D04: test_case_run (gtestutils.c:1174)

    Bug #627187.

 gio/tests/gdbus-connection.c | 1 +
 1 file changed, 1 insertion(+)

commit 75563e81c2b6bab345e08daafd3206cec699f2ea
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Aug 17 18:20:23 2010 +0200

    Plug a mem leak in gdbus-connection test

    ==25403== 49 (24 direct, 25 indirect) bytes in 1 blocks are definitely
    lost in loss record 603 of 787
    ==25403==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==25403==    by 0x405233C: g_malloc (gmem.c:134)
    ==25403==    by 0x406A57E: g_slice_alloc (gslice.c:836)
    ==25403==    by 0x406A5C3: g_slice_alloc0 (gslice.c:848)
    ==25403==    by 0x4035B4E: g_error_new_literal (gerror.c:117)
    ==25403==    by 0x4035ED9: g_set_error_literal (gerror.c:314)
    ==25403==    by 0x41F6434: g_dbus_connection_close_sync
    (gdbusconnection.c:1284)
    ==25403==    by 0x804A861: test_connection_life_cycle
    (gdbus-connection.c:158)
    ==25403==    by 0x4073D04: test_case_run (gtestutils.c:1174)
    ==25403==    by 0x4073FC2: g_test_run_suite_internal
    (gtestutils.c:1223)
    ==25403==    by 0x4074077: g_test_run_suite_internal
    (gtestutils.c:1233)
    ==25403==    by 0x4074077: g_test_run_suite_internal
    (gtestutils.c:1233)
    ==25403==    by 0x40741FB: g_test_run_suite (gtestutils.c:1274)
    ==25403==    by 0x40733E5: g_test_run (gtestutils.c:877)
    ==25403==    by 0x804DC92: main (gdbus-connection.c:1024)

    Bug #627187.

 gio/tests/gdbus-connection.c | 1 +
 1 file changed, 1 insertion(+)

commit a62a2fd8edc0ca771ca1c1df1889766f3c73b0e4
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Aug 17 18:08:07 2010 +0200

    Plug a mem leak in the gdbus-connection test

    Bug #627182.

 gio/tests/gdbus-connection.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 7191fc3f17d39a3fa27e990a3723403066d34826
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 20 14:33:27 2010 +0200

    Use g_memory_output_stream_steal_data here

    ... instead of one extra g_memdup().

    Bug #627181.

 gio/gdbusmessage.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 71e73ffdfbd7a33f4e233cfe1353adf143a2c14c
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 24 16:08:28 2008 +0200

    Use G_DEFINE_[BOXED|POINTER]_TYPE instead of handwritten code

    Now that we have convenience macros to implement boxed and pointer
    types, use them.

 gio/gdbusintrospection.c |  17 +---
 gio/gfileattribute.c     |  20 +----
 gio/gfileinfo.c          |  20 +----
 gio/gsrvtarget.c         |  17 +---
 gobject/gboxed.c         | 215
 +++++++++--------------------------------------
 gobject/gsourceclosure.c |  14 +--
 gobject/gvaluetypes.c    |  10 +--
 7 files changed, 50 insertions(+), 263 deletions(-)

commit dc1999316da0409c5bc15e37a0a568a8309bb5a3
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 24 16:08:04 2008 +0200

    Add G_DEFINE_{BOXED,POINTER}_TYPE[_WITH_CODE]

    Add convenience type definition macros for boxed and pointer types
    similar to G_DEFINE_TYPE for object types. Bug #449565.

 docs/reference/gobject/gobject-sections.txt |   4 +
 gobject/gtype.h                             | 110
 ++++++++++++++++++++++++++++
 2 files changed, 114 insertions(+)

commit cae86073eaf932b85836e98df8d87c65d90f5842
Author: Christian Persch <chpe@gnome.org>
Date:   Thu May 13 19:57:41 2010 +0200

    Add GZIP header processing to GZlibCompressor/GZlibDecompressor

    Add GZlibCompressor:file-info property. If it contains a non-NULL
    GFileInfo, and the compressor is in GZIP mode, the filename and
    modification time from the file info are written to the GZIP header
    in the output data.

    Add GZlibDeompressor:file-info property. If the decompressor is
    in GZIP
    mode, and the GZIP data contains a GZIP header, the filename and
    modification time are read from it, stored in a GFileInfo, and the
    file-info property is notified.

    Bug #617691.

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gio.symbols                     |   3 +
 gio/gzlibcompressor.c               | 117 ++++++++++++++++++++++++++++++-
 gio/gzlibcompressor.h               |   5 ++
 gio/gzlibdecompressor.c             | 134
 +++++++++++++++++++++++++++++++++---
 gio/gzlibdecompressor.h             |   3 +
 gio/tests/filter-cat.c              |  38 +++++++++-
 7 files changed, 293 insertions(+), 10 deletions(-)

commit b196cd74473cbc812359ee3b484a3986604e9aba
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 20 14:32:52 2010 +0200

    Add g_memory_output_stream_steal_data

    Bug #622184.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gmemoryoutputstream.c           | 29 +++++++++++++++++++++++++++++
 gio/gmemoryoutputstream.h           |  1 +
 4 files changed, 32 insertions(+)

commit 322ac7ff68205daf52a2d0bcecc098edd6b413b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 16 16:36:38 2010 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 503b0744744517ecf1c29eaa83e8e69537ae3547
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 16 15:44:40 2010 -0400

    Fix a typo

 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e21e44fc2e96d86c9cdeb6b904b29fed70acec18
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 16 15:42:23 2010 -0400

    Add NEWS item for bug 627071

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit b8e7ef6e90512999be0340a6ef3f20e1783647c4
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 16 15:37:01 2010 -0400

    Bug 627071 – g_output_stream_write() clarification

    This patch guarantees that g_output_stream_write() can never fail with
    G_IO_ERROR_WOULD_BLOCK. Without such a guarantee, we would need some
    kind of GIOPollable interface or some way to get an event when the
    stream is writable again. Which is mostly useless considering that
    this method is asynchronous anyway.

    Note: this patch just codifies existing behavior - GUnixOutputStream,
    GSocketOutputStream and other implementations already work this way.

    See also bug 626748 comment 5 for how the GDBus code relies on this
    guarantee.

    https://bugzilla.gnome.org/show_bug.cgi?id=627071

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/goutputstream.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 285170637de0df2011b9b667cab5c68640832580
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 16 15:32:13 2010 -0400

    More NEWS

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit 789c0cc877a41a65417b0ee1d6eed5803c48c238
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 16 15:28:36 2010 -0400

    Fix a doc format issue

 glib/gregex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d848a5eade18ba4567899601d5e34e381a636817
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 16 15:16:16 2010 -0400

    Update NEWS for 2.25.14

 NEWS | 7 +++++++
 1 file changed, 7 insertions(+)

commit 8a3a4596e2e3a718d77bf214c6e2d16c21856da2
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 16 13:43:35 2010 -0400

    Bug 626748 – Use async methods for writing and handle EAGAIN

    If sending a lot of data and/or the other peer is not reading it, then
    socket buffers can overflow. This is communicated from the kernel by
    returning EAGAIN. In GIO, it is modelled by g_output_stream_write()
    and g_socket_send_message() returning G_IO_ERROR_WOULD_BLOCK.

    It is also problematic that that we're using synchronous IO in the
    shared GDBus IO thread. It means that one GDBusConnection can lock up
    others.

    It turns out that by porting from g_output_stream_write() to
    g_output_stream_write_async() we fix the EAGAIN issue. For GSocket, we
    still need to handle things manually (by creating a GSource) as
    g_socket_send_message() is used.

    We check the new behavior in Michael's producer/consumer test case (at
    /gdbus/overflow in gdbus-peer.c) added in the last commit.

    Also add a test case that sends and receives a 20 MiB message.

    Also add a new `transport' G_DBUS_DEBUG option so it is easy to
    inspect partial writes:

     $ G_DBUS_DEBUG=transport ./gdbus-connection -p
     /gdbus/connection/large_message
     [...]
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 128000 bytes of message with serial 4 and
            size 20971669 from offset 0 on a GSocketOutputStream
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 128000 bytes of message with serial 4 and
            size 20971669 from offset 128000 on a GSocketOutputStream
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 128000 bytes of message with serial 4 and
            size 20971669 from offset 256000 on a GSocketOutputStream
     [...]
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 43669 bytes of message with serial 4 and
            size 20971669 from offset 20928000 on a GSocketOutputStream
     [...]
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 16 bytes of message with serial 3 and
            size 20971620 to offset 0 from a GSocketInputStream
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 15984 bytes of message with serial 3 and
            size 20971620 to offset 16 from a GSocketInputStream
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 16000 bytes of message with serial 3 and
            size 20971620 to offset 16000 from a GSocketInputStream
     [...]
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 144000 bytes of message with serial 3 and
            size 20971620 to offset 20720000 from a GSocketInputStream
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 107620 bytes of message with serial 3 and
            size 20971620 to offset 20864000 from a GSocketInputStream
     OK

    https://bugzilla.gnome.org/show_bug.cgi?id=626748

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/overview.xml |   4 +
 gio/gdbusprivate.c              | 589
 +++++++++++++++++++++++++++++++---------
 gio/gdbusprivate.h              |   1 +
 gio/tests/gdbus-connection.c    |  80 ++++++
 gio/tests/gdbus-peer.c          |  76 ++++--
 5 files changed, 596 insertions(+), 154 deletions(-)

commit a6264a3a19c29fc7c4fe0719a8c2ff1554924b12
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Aug 16 12:30:25 2010 -0400

    GSocket: Properly initialize msg.msg_control

    This patch fixes this problem

       Syscall param socketcall.sendmsg(msg.msg_control) points to
       uninitialised byte(s)
          at 0x3D5B00EA60: __sendmsg_nocancel (syscall-template.S:82)
          by 0x53F9790: g_socket_send_message (gsocket.c:2918)
          by 0x540FDD0: g_unix_connection_send_credentials
          (gunixconnection.c:351)
          by 0x542B93F: _g_dbus_auth_run_client (gdbusauth.c:618)
          by 0x5438001: initable_init (gdbusconnection.c:2191)
          by 0x53E09CC: g_initable_init (ginitable.c:105)
          by 0x543F6E9: g_bus_get_sync (gdbusconnection.c:6091)
          by 0x402C7E: test_connection_life_cycle (gdbus-connection.c:126)
          by 0x4C7CABB: test_case_run (gtestutils.c:1174)
          by 0x4C7CD84: g_test_run_suite_internal (gtestutils.c:1223)
          by 0x4C7CE49: g_test_run_suite_internal (gtestutils.c:1233)
          by 0x4C7CE49: g_test_run_suite_internal (gtestutils.c:1233)
        Address 0x7fefff9fc is on thread 1's stack

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gsocket.c | 1 +
 1 file changed, 1 insertion(+)

commit 4bc4590c7bb5d8e7c248347e4b702ab8b506d937
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 16 10:21:38 2010 -0400

    Declare stream base classes as abstract

 gio/gfilterinputstream.c  | 2 +-
 gio/gfilteroutputstream.c | 2 +-
 gio/ginputstream.c        | 2 +-
 gio/giostream.c           | 2 +-
 gio/goutputstream.c       | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit 547311bfd8661e25e588e1f434f15c5f2f32c3a7
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jun 24 13:09:14 2010 -0400

    Always do async vs sync correctly in GSocketConnection streams

    Previously if a GSocketConnection had a blocking GSocket, it would
    sometimes block during asynchonous I/O, and if it had a non-blocking
    socket, it would sometimes return G_IO_ERROR_WOULD_BLOCK from
    synchronous I/O. This fixes the connection to not depend on the socket
    state.

    https://bugzilla.gnome.org/show_bug.cgi?id=616458

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/gio.symbols                     |  2 ++
 gio/gsocket.c                       | 70
 ++++++++++++++++++++++++++++++++++---
 gio/gsocket.h                       | 13 +++++++
 gio/gsocketinputstream.c            | 16 +++++----
 gio/gsocketoutputstream.c           | 16 +++++----
 6 files changed, 101 insertions(+), 18 deletions(-)

commit 17fea2f749a407a15a82977b3488530cd5305266
Author: Dan Winship <danw@gnome.org>
Date:   Sun Aug 15 07:57:37 2010 -0400

    Belatedly add g_socket_client_get/set_timeout to docs and symbols

 docs/reference/gio/gio-sections.txt | 2 ++
 gio/gio.symbols                     | 2 ++
 2 files changed, 4 insertions(+)

commit b76b24f1b3f82c2400cce8948b44ae32aa0e23ee
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 14 16:15:39 2010 -0400

    GSocketClient: plug two leaks

    g_socket_client_connect_async() was always leaking its GCancellable,
    and would also leak any GSocket that eventually failed to connect
    after returning G_IO_ERROR_PENDING.

 gio/gsocketclient.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 16bafb479995e69417b86b5b26682ec7c2ceb5a0
Author: Dan Winship <danw@gnome.org>
Date:   Sat Aug 14 15:04:24 2010 -0400

    GSocketClient: add a timeout property

    GSocket has a timeout flag now, but when using GSocketClient there was
    no way to set the timeout until after connecting (or failing). Fix
    that by adding a timeout property to GSocketClient.

 gio/gsocketclient.c   | 69
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 gio/gsocketclient.h   |  3 +++
 gio/tests/send-data.c |  5 ++++
 3 files changed, 76 insertions(+), 1 deletion(-)

commit 28a4fff7ec63000238c7e20ff965238027922c47
Author: Will Thompson <will@willthompson.co.uk>
Date:   Fri Aug 13 23:34:44 2010 -0400

    Add examples for GAsyncInitiable and GSimpleAsyncResult

    Bug 602417

 gio/gasyncinitable.c     |  94 ++++++++++++++++++++++++++++++++++++++++++
 gio/gsimpleasyncresult.c | 104
 ++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 197 insertions(+), 1 deletion(-)

commit 7a32e34f7c46a4e1e2fe6f35490b1f8469ed08b7
Author: Will Thompson <will@willthompson.co.uk>
Date:   Fri Aug 13 23:20:06 2010 -0400

    Document that _complete() et al. ref the GSimpleAsyncResult

 gio/gsimpleasyncresult.c | 3 +++
 1 file changed, 3 insertions(+)

commit ec31612ea00e2babd5d6b02d65966164594a03f8
Author: Will Thompson <will@willthompson.co.uk>
Date:   Fri Aug 13 23:15:27 2010 -0400

    _simple_async_result_is_valid: allow tag to be NULL

    Because g_simple_async_report_[g]error_in_idle() don't take a
    source tag
    parameter, code that uses them can't currently use
    g_simple_async_result_is_valid() (at least, not for the error case).

    Bug 602417

 gio/gsimpleasyncresult.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

commit c29d800d84d446d3762329815824a8be269c969b
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Fri Aug 13 22:42:24 2010 -0400

    GVariant: be more explicit about adopting and returning floating refs

    Bug: https://bugzilla.gnome.org/show_bug.cgi?id=622770

 docs/reference/glib/gvariant-varargs.xml |  4 ++-
 glib/gvariant.c                          | 53
 ++++++++++++++++++++------------
 2 files changed, 37 insertions(+), 20 deletions(-)

commit e02571e93bb4c1986ec1190fb6c7d02eba0c746a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 21:22:45 2010 -0400

    Add bug references to some tests

 gio/tests/async-close-output-stream.c |  8 ++++++++
 gio/tests/converter-stream.c          |  4 ++++
 glib/tests/mem-overflow.c             | 29 +++++++++++++++++++++++++++++
 gobject/tests/binding.c               |  4 ++++
 4 files changed, 45 insertions(+)

commit ea8a963936655ee3c13c5552cce96c309f8a384f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 21:21:43 2010 -0400

    Document vendor override files

    Features without documentation, tsk tsk.

 docs/reference/gio/glib-compile-schemas.xml |  6 ++++
 gio/gsettings.c                             | 48
 ++++++++++++++++++++---------
 2 files changed, 40 insertions(+), 14 deletions(-)

commit 63d19f065690b77059c335c0378a93f1a18b09c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 21:05:05 2010 -0400

    Fix doc format errors

 glib/gconvert.c | 4 ++--
 glib/gregex.c   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 4160c5c74a06404037462dde572ec49663d685ea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 19:40:48 2010 -0400

    Add tests for async file replace and load

 gio/tests/file.c | 151
 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 143 insertions(+), 8 deletions(-)

commit c003468296642dccdca230e5fbec22ceab0a9959
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 17:22:28 2010 -0400

    Correct a comment

 gio/inotify/inotify-kernel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 93bd5298c7f78fd7cb12734b6f3df5aa93f2c82b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 17:21:22 2010 -0400

    Add an async file create/write/read/delete test

 gio/tests/file.c | 163
 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 144 insertions(+), 19 deletions(-)

commit 7ed4762190afca85424903a0977300585169b510
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 17:19:01 2010 -0400

    Fix a typo, and some doc reformatting

 gio/ginputstream.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit effdb785fd941daf5fdec7df434242de25e5127e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 16:04:04 2010 -0400

    Add some long descriptions for filter streams

 gio/gfilterinputstream.c  | 4 ++++
 gio/gfilteroutputstream.c | 6 +++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 13e55b84ebb1aa148260a7d21da6a592d1e1dadb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 15:15:21 2010 -0400

    Run volumemonitor test with local vfs

    This is an attempt to stop the test from hanging on some build bots
    in build.gnome.org.

 gio/tests/volumemonitor.c | 2 ++
 1 file changed, 2 insertions(+)

commit d344ff9d67a7e723a1c2163e7d9254dd6ef049d2
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Aug 13 13:58:27 2010 -0400

    Bug 626841 – Add test-case for non-socket GIOStream

    Also fix a couple of bugs so it actually works.

    https://bugzilla.gnome.org/show_bug.cgi?id=626841

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c           | 140 ++++++++---------
 gio/tests/Makefile.am        |   6 +-
 gio/tests/gdbus-non-socket.c | 346
 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 424 insertions(+), 68 deletions(-)

commit 9be94e88999b5f10347b5c1b8542b88a35d3f93a
Author: Michael Meeks <michael.meeks@novell.com>
Date:   Fri Aug 13 17:56:19 2010 +0100

    Add test for EAGAIN overflow in gdbusconnection based on David's test.

 gio/tests/gdbus-peer.c | 110
 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 109 insertions(+), 1 deletion(-)

commit 5d9d3f03182d732ad732370dffc7d268c9d65e9d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 12:04:21 2010 -0400

    Add some async file tests

 gio/tests/file.c | 237
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 237 insertions(+)

commit ee38c03582df8b757c2fe64b3b5a6be9b6083135
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 00:47:02 2010 -0400

    Collect NEWS for 2.25.14

 NEWS | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit ef4b0afc0b3217ce65e12c0606855af52659490b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Aug 13 00:30:58 2010 -0400

    Bump version

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 106bde0a8fa34a72f66f037b0428a3105cb953bc
Author: Havoc Pennington <hp@pobox.com>
Date:   Thu Aug 12 23:57:26 2010 -0400

    GAsyncQueue: use g_queue_init() not g_queue_new()

    By using g_queue_init() instead of g_queue_new(), we can avoid
    a separate memory allocation.

    Bug 626704

 glib/gasyncqueue.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit f424aa9581ff4fedb9205f360112b6b17518edeb
Author: Daniel Nylander <po@danielnylander.se>
Date:   Thu Aug 12 13:19:50 2010 +0200

    Updated Swedish translation

 po/sv.po | 2135
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 1226 insertions(+), 909 deletions(-)

commit 398f9841eddc10e0e6b1ccee4823e2ea3650bd9a
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Aug 10 16:01:39 2010 +0300

    Fix gio/win32 build after -I flag changes

 gio/win32/gwin32directorymonitor.c   | 1 -
 gio/win32/gwin32directorymonitor.h   | 4 ++--
 gio/win32/gwinhttpfile.c             | 8 ++++----
 gio/win32/gwinhttpfileinputstream.c  | 4 ++--
 gio/win32/gwinhttpfileoutputstream.c | 4 ++--
 gio/win32/gwinhttpvfs.c              | 6 +++---
 gio/win32/gwinhttpvfs.h              | 3 +--
 7 files changed, 14 insertions(+), 16 deletions(-)

commit 304c0c4746fb8df993a3e6429414d6cf1ba287b8
Author: Aron Xu <aronxu@gnome.org>
Date:   Mon Aug 9 14:26:38 2010 +0800

    Update Simplified Chinese translation.

 po/zh_CN.po | 594
 +++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 405 insertions(+), 189 deletions(-)

commit 43c0aa9ebe16cf17009678732decc9e852701f15
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 23:53:52 2010 -0400

    Replace the explicit list of character categories by a reference
    to the GUnicodeType docs.

 docs/reference/glib/regex-syntax.sgml | 124
 +---------------------------------
 1 file changed, 3 insertions(+), 121 deletions(-)

commit 4e42893369c8b8092de7feedb447ca538f8dccf2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 23:43:29 2010 -0400

    Refer to GUnicodeScript docs instead of listing scripts explicitly

 docs/reference/glib/regex-syntax.sgml | 80
 +++++------------------------------
 1 file changed, 10 insertions(+), 70 deletions(-)

commit 733d209b14f1b88288e08241a64ef77284108505
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 23:21:54 2010 -0400

    Move GRegex docs inline

 docs/reference/glib/tmpl/gregex.sgml | 302
 ++++++++++-------------------------
 glib/gregex.c                        |  60 +++++++
 glib/gregex.h                        | 225 ++++++++++++++++++++++++++
 3 files changed, 371 insertions(+), 216 deletions(-)

commit c3e5b3cca883546a40a5d7aa219c74cb6574bcd6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 22:19:10 2010 -0400

    Whitespace cleanup

 glib/gregex.c | 1067
 ++++++++++++++++++++++++++++-----------------------------
 1 file changed, 533 insertions(+), 534 deletions(-)

commit de3c6efa222389ef253fbe1b7b868b95a37aedb1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 22:15:16 2010 -0400

    Remove two redundant comments

 glib/garray.c | 4 ----
 1 file changed, 4 deletions(-)

commit b5bda64a730876205ce5aae069f11161d6b94cc4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 22:14:56 2010 -0400

    Fix up a doc typo

 glib/gbase64.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f5a58639759af5333990a24ef6c8275c8f5afcde
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 22:12:40 2010 -0400

    Minor cleanup

    The definition is now present in pcre.h

 glib/gregex.c | 5 -----
 1 file changed, 5 deletions(-)

commit def0dc01f74e9b8b0904c6b8866835f9efb640a8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 22:11:38 2010 -0400

    Move GConvert docs inline

 docs/reference/glib/tmpl/conversions.sgml | 174
 ++----------------------------
 glib/gconvert.c                           | 121 +++++++++++++++++++++
 glib/gconvert.h                           |  28 ++++-
 3 files changed, 157 insertions(+), 166 deletions(-)

commit f837e15972d7cd93ac8bddbaeed60289c7263c1a
Author: A S Alam <aalam@users.sf.net>
Date:   Tue Aug 10 06:24:02 2010 +0530

    update translation for master

 po/pa.po | 1808
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 1048 insertions(+), 760 deletions(-)

commit f9a4b4ecc7a0f838897797dc5b478520c9f05168
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 21:29:26 2010 -0400

    Add introspection annotations in gregex.c

    Also, make the new getters follow the style of other GRegex getters,
    and take a const GRegex *.

 glib/gregex.c | 192
 ++++++++++++++++++++++++++++++----------------------------
 glib/gregex.h |   4 +-
 2 files changed, 100 insertions(+), 96 deletions(-)

commit 14e0ad7c5379e14f31a0e54bc2bf73f3c2d07d0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 20:49:59 2010 -0400

    Don't compile some unused functions in gio/xdgmime/

 gio/xdgmime/xdgmime.c            | 22 +++++++++++++++++++++-
 gio/xdgmime/xdgmime.h            | 14 ++++++++++++--
 gio/xdgmime/xdgmimealias.c       |  4 +++-
 gio/xdgmime/xdgmimealias.h       |  3 ++-
 gio/xdgmime/xdgmimecache.c       |  8 +++++++-
 gio/xdgmime/xdgmimecache.h       |  6 ++++++
 gio/xdgmime/xdgmimeglob.c        |  7 +++++++
 gio/xdgmime/xdgmimeglob.h        |  2 ++
 gio/xdgmime/xdgmimeicon.c        |  2 ++
 gio/xdgmime/xdgmimeicon.h        |  2 ++
 gio/xdgmime/xdgmimeparent.c      |  2 ++
 gio/xdgmime/xdgmimeparent.h      |  2 ++
 glib/pcre/pcre_compile.c         |  4 +++-
 glib/pcre/pcre_get.c             |  2 +-
 glib/pcre/pcre_ucp_searchfuncs.c |  4 +++-
 15 files changed, 75 insertions(+), 9 deletions(-)

commit 7acdaf6f1db90c17985b81033050e1814723d6ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 18:35:12 2010 -0400

    Don't compile an unused function

 glib/pcre/pcre_compile.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 3fd1fc4f9a8511587637efc9b0942e4919fab031
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 18:34:59 2010 -0400

    Trivial typo fix

 glib/gregex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c9916d64b1cf996a4cdb9f8887972038b492426d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 18:34:38 2010 -0400

    Improve regex test coverage

 glib/tests/regex.c | 559
 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 558 insertions(+), 1 deletion(-)

commit 584787f580cf6e36c020b7d7ee0a01baea8896aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 11:32:50 2010 -0400

    Improve the async result test coverage

 gio/tests/simple-async-result.c | 1 +
 1 file changed, 1 insertion(+)

commit 7c129c901121b2ca8374d64c716828101ce79cb9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 11:31:53 2010 -0400

    Improve dbus address test coverage

 gio/tests/gdbus-addresses.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

commit ae8b375f0ffe4c26c366728a33b04167d3f1fd1b
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon Aug 9 01:11:59 2010 +0200

    Updated galician translations

 po/gl.po | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit bbd1d2a72429929d15c0764853addcf3a6a8bead
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 01:09:18 2010 -0400

    Improve regex test coverage

 glib/tests/regex.c | 66
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

commit 6ada7532b5e8d3c613e26144afbf4c38367afd90
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 01:08:34 2010 -0400

    Drop some unused code

    Some functions in pcre_get.c are not used.

 glib/pcre/pcre_get.c | 3 +++
 1 file changed, 3 insertions(+)

commit 8804d6a98ffabc83bea2a35d4aaf26617fa062f0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 8 01:07:53 2010 -0400

    Simplify gcov generation

    lcov seems to handle .libs just fine on its own.

 Makefile.decl | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 01cae84e47ff749e475d7931106c8b00829021e5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Aug 7 19:58:12 2010 -0400

    Bug 578295 - gtester has a race condition

    Deal with the race in GMainLoop by installing a do-nothing timeout.

 glib/gtester.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 51ad83f7119bcf43d5e9b6b89fd3f33bd9ab1e3d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 7 18:56:12 2010 -0400

    Make g_dbus_error_unregister_error work

 gio/gdbuserror.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 8e236f7ec1e0f620a516255a6b8ed7ae169bc87e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 7 18:55:21 2010 -0400

    Add some more test about gdbus_error apis

 gio/tests/gdbus-error.c | 71
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

commit 7de6658f74a43065fa9a27db6cb4d26b6a946a32
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 7 17:08:54 2010 -0400

    Make g_simple_async_result_is_valid work without source

    The problem was pointed out by Xavier Claessens in bug 626208.

 gio/gsimpleasyncresult.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 402ad1958ccdb4586da9614ec4276396fd4c0faf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Aug 7 16:27:38 2010 -0400

    Make the closure variants of name owning and watching actually work

    The GClosure API is a bit funky (and badly documented), and requires
    you to set a marshaller on the closure, and the marshaller has an
    implicit 'this' argument, and the caller is reponsible for unsetting
    the values after invoking the closure.

    I've added some calls of the _with_closures variants to the
    gdbus-names test now.

 gio/gdbusnameowning.c   | 92
 ++++++++++++++++++++++++++++---------------------
 gio/gdbusnamewatching.c | 76 ++++++++++++++++++++--------------------
 gio/gio-marshal.list    |  2 ++
 gio/tests/gdbus-names.c | 57 ++++++++++++++++++------------
 4 files changed, 128 insertions(+), 99 deletions(-)

commit c15d20e53a9fdccd4fbe17c6a51c57e6b34410fd
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat Aug 7 18:43:01 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 179
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 115 insertions(+), 64 deletions(-)

commit 4ac7f8f08433c37cf0a69cdea601514a0c06c1b6
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Aug 6 23:15:28 2010 +0200

    notifyqueue: Dedup pspecs when adding

    The previous code dedup'd when thawing and threw nasty warnings
    your way
    if you notified too often. This can now easily be avoided.

    Performance should be roughly identical, as both are O(n²).

 gobject/gobjectnotifyqueue.c | 23 +++++++----------------
 1 file changed, 7 insertions(+), 16 deletions(-)

commit e88eb048659be2e09081a27ddaef0e261667b6b8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 16:48:03 2010 -0400

    Prepare to release glib 2.25.13

 NEWS                                      | 67
 +++++++++++++++++++++++++++++++
 docs/reference/glib/tmpl/glib-unused.sgml | 40 ------------------
 docs/reference/glib/tmpl/messages.sgml    | 27 ++++++++++---
 docs/reference/glib/tmpl/version.sgml     | 41 +++++++++++++++++++
 4 files changed, 129 insertions(+), 46 deletions(-)

commit 80046f36e0ed2fe3d12c3128145033043f46734d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 16:42:36 2010 -0400

    gitignore update

 glib/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit d96b7c5c8aacc2b8516c03a2801db731d4171570
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 15:28:58 2010 -0400

    gtester: Run tests only once on 'make check'

    The gtester makefile runs 'make test' on 'make check' and also
    recurses
    on 'make test'.  automake recurses on 'make check'.

    This means that every level of recursive make that we go through
    results
    in the tests running twice as many times.  If you type 'make check' at
    the toplevel, for example, tests in gio/tests/ run 4 times.

    Fix that by introducing a 'test-nonrecursive' target and using
    that one
    from 'make check'.  'make test', 'make test-report', etc. are still
    recursive.

 Makefile.decl | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

commit b91f9274d9de1e9f0a1b407913ab893cfe1d5b25
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 13:12:20 2010 -0400

    Fix volumemonitor test case

    Don't blindly g_object_unref() that which may be NULL.

 gio/tests/volumemonitor.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit 889a7f81dd808d35a17baa53a87255ef588d27da
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 13:11:38 2010 -0400

    gio.symbols: add g_dbus_message_[gs]et_byte_order

 gio/gio.symbols | 2 ++
 1 file changed, 2 insertions(+)

commit 5e044a943c96967841c3c341ac5975c36064d640
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 13:11:20 2010 -0400

    typo fix: Dist the data for the test cases

    change 'dist_hook:' to 'dist-hook:'

 glib/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b3b7ea8e227035ae27d6ac62595478d27b8152e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 13:09:26 2010 -0400

    Replace -I with $(glib_INCLUDES) and friends

    Stop using ad hoc -I in all of our Makefile.am.  Use the new variables
    instead.

 docs/reference/gio/Makefile.am     | 10 +---------
 docs/reference/gobject/Makefile.am |  5 +----
 gio/Makefile.am                    |  6 +-----
 gio/fam/Makefile.am                |  5 +----
 gio/fen/Makefile.am                |  6 +-----
 gio/inotify/Makefile.am            |  6 +-----
 gio/libasyncns/Makefile.am         |  2 +-
 gio/tests/Makefile.am              |  7 +------
 gio/win32/Makefile.am              |  6 +-----
 glib/Makefile.am                   |  2 +-
 glib/gnulib/Makefile.am            |  3 +--
 glib/libcharset/Makefile.am        |  2 +-
 glib/pcre/Makefile.am              |  5 +----
 glib/tests/Makefile.am             |  4 +---
 glib/update-pcre/Makefile.am-1     |  4 +---
 gmodule/Makefile.am                |  5 +----
 gobject/Makefile.am                |  5 +----
 gobject/tests/Makefile.am          |  2 +-
 gthread/Makefile.am                |  5 +----
 gthread/tests/Makefile.am          |  2 +-
 tests/Makefile.am                  |  5 +----
 tests/gobject/Makefile.am          |  5 +----
 tests/refcount/Makefile.am         |  5 +----
 23 files changed, 23 insertions(+), 84 deletions(-)

commit 8ad9d9dbe35973951faaf595b1fe847b6b180159
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 13:07:31 2010 -0400

    configure.ac: define glib_INCLUDES and friends

    These macros should be used instead of -I for things in the tree that
    depend on various bits of glib.

    also gobject_INCLUDES, gthread_INCLUDES, gmodule_INCLUDES,
    gio_INCLUDES

 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

commit ba0208b3a8076f8c3c545ba5716347ad446525f7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 13:05:18 2010 -0400

    Clean up improper #includes

    We have a lot of broken #including going on around the tree.  This has
    gone unnoticed due to our sloppy use of -I.

 gio/fam/fam-helper.c                   | 2 +-
 gio/fam/fam-module.c                   | 2 +-
 gio/fam/gfamdirectorymonitor.c         | 2 +-
 gio/fam/gfamdirectorymonitor.h         | 4 ++--
 gio/fam/gfamfilemonitor.c              | 2 +-
 gio/fam/gfamfilemonitor.h              | 4 ++--
 gio/fen/fen-helper.c                   | 2 +-
 gio/fen/fen-node.c                     | 2 +-
 gio/fen/gfendirectorymonitor.c         | 2 +-
 gio/fen/gfendirectorymonitor.h         | 4 ++--
 gio/inotify/ginotifydirectorymonitor.c | 2 +-
 gio/inotify/ginotifydirectorymonitor.h | 4 ++--
 gio/tests/application.c                | 2 +-
 gio/tests/gschema-compile.c            | 2 +-
 gio/tests/testapp.c                    | 2 +-
 15 files changed, 19 insertions(+), 19 deletions(-)

commit 78f7f14b34b4c04742fc848eec536ffdb8c8ab01
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 10:53:07 2010 -0400

    Don't dist 'glibconfig.h'

    This is causing very serious problems when doing out-of-tree
    builds from
    tarballs on architectures that are different from the architecture
    that
    the tarball was created on.

    This commit breaks the build in those cases, but I'll fix that in the
    next commits.

    https://bugzilla.gnome.org/show_bug.cgi?id=626107

 glib/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 25c6bdc22add2f306c24e5200de2899f39f86c48
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Aug 6 10:29:32 2010 -0400

    error test case: don't double-free the source

    g_propagate_prefixed_error() frees the source already, don't
    g_error_free() it.

 glib/tests/error.c | 1 -
 1 file changed, 1 deletion(-)

commit a1b015f7b70b3851d5a6e45fd4114c7723b4f1ea
Author: Hannes Müller <h.c.f.mueller@gmx.de>
Date:   Thu Aug 5 23:11:03 2010 +0200

    avoid warning in gutils.h when using gcc with -Wconversion

    https://bugzilla.gnome.org/show_bug.cgi?id=619026

 glib/gutils.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 970d0634e9ade050158bdb529a6f8a7deb8fb319
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu Aug 5 15:36:39 2010 +0200

    Updated Galician translations

 po/gl.po | 234
 ++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 149 insertions(+), 85 deletions(-)

commit c789f72f9dfb6dcb86c536dfa6f65e5a7e5c72f4
Author: Claude Paroz <claude@2xlibre.net>
Date:   Thu Aug 5 15:17:40 2010 +0200

    Updated French translation

    Contributed by Gérard Baylard and Claude Paroz

 po/fr.po | 2016
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 1220 insertions(+), 796 deletions(-)

commit 9f6faaffb6491a8de5508b7678ab48fee4f59efa
Author: paul <ephraim_owns@hotmail.com>
Date:   Thu Aug 5 09:08:34 2010 -0400

    Add $(top_builddir)/glib to includes

    This is required to find glibconfig.h during srcdir != builddir builds

 gio/Makefile.am            | 1 +
 gio/tests/Makefile.am      | 1 +
 glib/gnulib/Makefile.am    | 3 ++-
 glib/tests/Makefile.am     | 1 +
 gmodule/Makefile.am        | 1 +
 gobject/Makefile.am        | 1 +
 gobject/tests/Makefile.am  | 2 +-
 gthread/Makefile.am        | 1 +
 tests/Makefile.am          | 1 +
 tests/gobject/Makefile.am  | 1 +
 tests/refcount/Makefile.am | 1 +
 11 files changed, 12 insertions(+), 2 deletions(-)

commit 38c3f9964c2c0b7243cf5033ffc1d197c292b337
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Thu Aug 5 12:11:05 2010 +0200

    Updated Spanish translation

 po/es.po | 238
 +++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 156 insertions(+), 82 deletions(-)

commit abe820e0d935f41744292146c71ccc4cf479751e
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Aug 2 14:14:11 2010 +0100

    Expand documentation about error quark naming

    Closes: bgo#625827

 docs/reference/glib/tmpl/error_reporting.sgml | 5 +++++
 1 file changed, 5 insertions(+)

commit 008615f9999641158a89e3e6163b1580cac53dd0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 5 02:23:42 2010 -0400

    Test an option handling corner-case

 glib/tests/option-context.c | 59
 ++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 58 insertions(+), 1 deletion(-)

commit e2657d8dce32e10869ec2b18edc7dbf489dd2941
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 5 02:01:58 2010 -0400

    Add a not about arguments beginning with dashes

 glib/goption.c | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

commit e4994cb0a10c35f373b17ef970e2f8e4034d387c
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Thu Aug 5 09:14:40 2010 +0300

    Updated Hebrew translation.

 po/he.po | 205
 +++++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 133 insertions(+), 72 deletions(-)

commit 84d3aa652f4e5853d5612bd4b189c2146168f038
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 5 01:53:15 2010 -0400

    Beautify configure output

    Checking for cpp before using it avoids somewhat ugly
    nested output. Pointed out in bug 593544.

 configure.ac | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 530f67384ea656ef9a5d8c05df5c35a9bf2a5ec0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 5 01:45:26 2010 -0400

    Modernize pkg-config check

    As pointed out in bug 599590, our hand-rolled check fails to find
    cross-complication variants of pkg-config like
    i686-pc-mingw32-pkg-config.

 configure.ac | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

commit 3e8a9c7b52211ad1991711e02d682dc6e03439c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 5 01:39:02 2010 -0400

    Add missing files

    Reported in bug 624739

 po/POTFILES.in | 2 ++
 1 file changed, 2 insertions(+)

commit d52e1c33f71a28908dac3658a8d5394e333324fc
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 4 16:59:26 2010 -0400

    GDBus: Add `return' debug option

    This prints all GDBusMethodInvocation API usage and is normally used
    with the `incoming' option. Example:

     # G_DBUS_DEBUG=incoming,return ./polkitd --replace
     Entering main event loop
     Connected to the system bus
     Registering null backend at priority -10
     [...]
     Acquired the name org.freedesktop.PolicyKit1
     [...]

     ========================================================================
     GDBus-debug:Incoming:
      <<<< METHOD INVOCATION
      org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()
           on object /org/freedesktop/PolicyKit1/Authority
           invoked by name :1.26
           serial 299
     ========================================================================
     GDBus-debug:Return:
      >>>> METHOD ERROR org.freedesktop.PolicyKit1.Error.Failed
           message `Cannot determine session the caller is in'
           in response to
           org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()
           on object /org/freedesktop/PolicyKit1/Authority
           to name :1.26
           reply-serial 299

     [...]

     ========================================================================
     GDBus-debug:Incoming:
      <<<< METHOD INVOCATION
      org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()
           on object /org/freedesktop/PolicyKit1/Authority
           invoked by name :1.2402
           serial 25
     ========================================================================
     GDBus-debug:Return:
      >>>> METHOD RETURN
           in response to
           org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()
           on object /org/freedesktop/PolicyKit1/Authority
           to name :1.2402
           reply-serial 25

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/overview.xml | 10 ++++++++--
 gio/gdbusconnection.c           |  6 ++++--
 gio/gdbusmethodinvocation.c     | 37
 +++++++++++++++++++++++++++++++++++++
 gio/gdbusprivate.c              | 13 +++++++++++--
 gio/gdbusprivate.h              |  1 +
 5 files changed, 61 insertions(+), 6 deletions(-)

commit 89a1b571adde644664093dd4763fb9aa077dfafc
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 4 14:38:51 2010 -0400

    GDBusMessage: Validate header fields when serializing/deserializing

    The D-Bus spec mentions exactly what header fields are required for
    various message types. Add tests for this as well.

    Also disallow empty interfaces for signals since the D-Bus spec says
    this is Verboten already.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c           |   5 --
 gio/gdbusmessage.c              | 119 ++++++++++++++++++++++++++++--
 gio/tests/gdbus-serialization.c | 155
 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 268 insertions(+), 11 deletions(-)

commit 6f070be65bb4bb665cb8a4c1f48cac59c1f4fba3
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 4 13:32:19 2010 -0400

    GDBusMessage: Add a way to get/set byte order of a message

    Also use this in the test cases to check that serialization to and
    from both big and little endian works.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gdbusmessage.c                  |  85 +++++++++++++++++-----
 gio/gdbusmessage.h                  |   4 ++
 gio/gio.symbols                     |   1 +
 gio/gioenums.h                      |  15 ++++
 gio/tests/gdbus-serialization.c     | 139
 ++++++++++++++++++++++--------------
 6 files changed, 175 insertions(+), 72 deletions(-)

commit 6e723e8b3e5f138f8e0b4fe45c5872a92510d5d3
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 4 12:24:22 2010 -0400

    GDBusMessage: Assert various things when serializing to a blob

    We use g_assert() instead of setting the GError because it is a
    programming error if the GVariant contains invalid data - see commit
    5e6f762d61db1a5c64bd1d33e5ba112755106581 for where the last hole in
    GVariant was closed.

    So if we can trust GVariant to only contain valid data (ignoring the
    case where unsafe API such as g_variant_new_from_data() is used), why
    g_assert() at all with costly g_utf8_validate() checks? Because a) it
    is relatively inexpensive; and b) it helps find bugs such as the one
    fixed in commit 5e6f762d61db1a5c64bd1d33e5ba112755106581.

    If performance is a concern we can play games like introducing
    environment variables or other machinery to avoid such "costly"
    checks. I doubt it will ever be an issue.

    Also replace two "Hmm" TODO item with a static assert - the code that
    serializes a gdouble into the D-Bus wire format by treating it as a
    guint64 is indeed correct - endianess needs to be taken into account
    (see the D-Bus reference implementation for similar code). But we want
    to make sure that we're indeed using an architecture/compiler where a
    gdouble takes up 8 bytes - hence the assertion.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 5bd34a820eb79f0765e312215e0a3e0a339ace78
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Aug 4 11:26:48 2010 -0400

    GDBusMessage: Validate UTF-8 strings when serializing from blob

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c              | 24 +++++++++--
 gio/tests/gdbus-serialization.c | 88
 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 109 insertions(+), 3 deletions(-)

commit e62bc8e8f66c096829b282a53a769fbb55ab6b4d
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 4 07:36:04 2010 -0400

    remove a junk line

 gio/tests/.gitignore | 1 -
 1 file changed, 1 deletion(-)

commit 27bc1d60ebcbd1b6e887fde138840a9ddda7fc3b
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Aug 4 13:23:02 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 554
 +++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 376 insertions(+), 178 deletions(-)

commit 4bc9654c63feee596de5aa214d7cbd8fc293cd9d
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Aug 4 00:57:52 2010 +0100

    binding: Add a default marshaller for the closure API

    The g_object_bind_property_with_closures() function should set a
    marshaller if the two GClosures don't have one already. This
    simplifies
    the caller code and avoids duplication.

    We need to add a new marshaller to the gmarshal.list matching the
    signature of the GBindingTransformFunc function.

 gobject/gbinding.c      |  7 +++++++
 gobject/gclosure.c      | 15 +++++++++++++++
 gobject/gmarshal.list   |  1 +
 gobject/gobject.symbols |  1 +
 gobject/tests/binding.c | 39 ---------------------------------------
 5 files changed, 24 insertions(+), 39 deletions(-)

commit f5cd8ddeaac7e6df484629b7ae54a86ffa155a05
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 3 15:36:16 2010 -0400

    GDBusConnection: Debug messages when receiving signals and method
    invocations

    Spell out "RECEIVED SIGNAL" instead of "SIGNAL" to emphasize this is
    about receiving a signal, not emitting one (which is "SIGNAL
    EMISSION"). Also make the "arrows" point in the "right" direction
    ("<<<<" vs ">>>>") - like this:

     ========================================================================
     GDBus-debug:Signal:
      <<<< RECEIVED SIGNAL org.freedesktop.DBus.NameOwnerChanged
           on object /org/freedesktop/DBus
           sent by name org.freedesktop.DBus

    and

     ========================================================================
     GDBus-debug:Incoming:
      <<<< METHOD INVOCATION
      org.freedesktop.PolicyKit1.Authority.EnumerateTemporaryAuthorizations()
           on object /org/freedesktop/PolicyKit1/Authority
           invoked by name :1.2176

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 69341e2ba9a864ed2848527570988afc3e1c9df4
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 3 14:32:29 2010 -0400

    glib-compile-schemas: Pass a C string, not a GString wrapper

    Commit 5e6f762d61db1a5c64bd1d33e5ba112755106581 (introducing UTF-8
    validity checks for GVariant instances containing strsings) actually
    uncovered a bug in glib-compile-schemas - a GString was passed when a
    C string was expected.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gschema-compile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5e6f762d61db1a5c64bd1d33e5ba112755106581
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 3 13:33:03 2010 -0400

    GVariant: validate that passed string is UTF-8

    As discussed with Ryan on IRC.

    This check is crucial because it guarantees that
    g_variant_get_string() will _always_ return valid UTF-8. Except in
    cases where the programmer used unsafe API such as
    g_variant_new_from_data() and setting @trusted to TRUE.

    In fact, this check revealed a flaw in my polkit gdbus port

     (lt-polkitd:11632): GLib-CRITICAL **: g_variant_new_string: assertion
     `g_utf8_validate (string, len, NULL)' failed

    and with this I could easily find the problem by using gdb(1) and
    G_DBUS=fatal-warnings.

    Without this check we'd pass the non-UTF8 string all the way to the
    message bus and the bus would then disconnect us. So instead I was
    seeing

      g_dbus_connection_real_closed: Remote peer vanished with error:
      Underlying GIOStream returned 0 bytes on an async read
      (g-io-error-quark, 0). Exiting.

    and then SIGTERM as raised by g_dbus_connection_real_closed() and my
    polkitd process would exit. This behavior is much harder to debug than
    failing early (as this patch implements).

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 glib/gvariant.c | 1 +
 1 file changed, 1 insertion(+)

commit 86d947f01fba4b79aa9f0bdcea9d510f5411ea4b
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 3 12:47:07 2010 -0400

    Fix gdbus-exit-on-close test case

    Forgot to update the test case after last commit.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gdbus-exit-on-close.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a492a45191335ac97f54785db543f21dfce379c
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 3 12:24:48 2010 -0400

    GDBus: If exiting b/c remote peer disconnected and error is set,
    print it

    This should make things easier to debug:

      g_dbus_connection_real_closed: Remote peer vanished with error:
      Underlying GIOStream returned 0 bytes on an async read
      (g-io-error-quark, 0). Exiting.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 3940cc9a11fde063bb9f83cc362e575e5f378609
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Aug 3 11:14:21 2010 -0400

    GDBusProxy: Don't leak a GSimpleAsyncResult when doing async calls

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 1 +
 1 file changed, 1 insertion(+)

commit b2715bbc5eaa1454df879964f58e36dbed65dc77
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 3 10:41:21 2010 -0400

    Fix a possible deadlock

    the FdSource was calling g_cancellable_disconnect while holding the
    main context lock, which is bad news if the ::cancelled handler is
    trying to get that lock to wake up the mainloop...

    Bug 586432

 gio/gasynchelper.c       |  8 ++++++--
 gio/tests/unix-streams.c | 22 +---------------------
 2 files changed, 7 insertions(+), 23 deletions(-)

commit 5179d92e9ce8f5b88db73613ef0485c82656801e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 1 02:36:27 2010 -0400

    fix the completion test

 tests/completion-test.c | 1 -
 1 file changed, 1 deletion(-)

commit 21d98dbc4b57783bc98f612ca459562bcd25bd5b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 1 02:11:15 2010 -0400

    improve completion test coverage

 tests/completion-test.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 9b96e31968383619ff0a76212c5200022d62b23c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 1 02:07:50 2010 -0400

    Don't assert too much

 glib/gbookmarkfile.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit e4b5104003e9281e5737a9611517c4878522df5c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Aug 1 02:07:21 2010 -0400

    Move bookmarkfile tests to the test framework

 glib/tests/Makefile.am                        |   7 +
 glib/tests/bookmarkfile.c                     | 298
 ++++++++++++++++++++++++++
 {tests => glib/tests}/bookmarks/fail-01.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-02.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-03.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-04.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-05.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-06.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-07.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-08.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-09.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-10.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-11.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-12.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-13.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-14.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-15.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-16.xbel  |   0
 {tests => glib/tests}/bookmarks/fail-17.xbel  |   0
 {tests => glib/tests}/bookmarks/valid-01.xbel |   0
 {tests => glib/tests}/bookmarks/valid-02.xbel |   0
 {tests => glib/tests}/bookmarks/valid-03.xbel |   0
 tests/Makefile.am                             |   8 +-
 tests/bookmarkfile-test.c                     | 188 ----------------
 tests/run-bookmark-test.sh                    |  34 ---
 25 files changed, 307 insertions(+), 228 deletions(-)

commit b3de028a43873913106c31fa2c4b6e31d14b9fc1
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 3 14:21:02 2010 +0100

    Update the Git ignore files

 gio/tests/.gitignore  | 2 ++
 glib/tests/.gitignore | 8 ++++++++
 m4macros/.gitignore   | 5 +++++
 3 files changed, 15 insertions(+)

commit f8ec75620d5e7c2d139cc523729a1223875f1fa0
Author: Mark Wielaard <mjw@redhat.com>
Date:   Mon Aug 2 23:28:50 2010 +0200

    Don't add (extra) DESTDIR to tapsetdir for tapset_DATA.

    https://bugzilla.gnome.org/show_bug.cgi?id=625876

 glib/Makefile.am    | 2 +-
 gobject/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5e1c4b18a806cd8a0f259b314f64f3d99e824773
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 3 10:34:59 2010 +0100

    docs: Clarify user_data behavior for bind_property_full()

 gobject/gbinding.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 90f7f171e621c296526b3978a75433c30c088b46
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Aug 3 10:29:50 2010 +0100

    binding: Add G_BINDING_INVERT_BOOLEAN

    Since GSettings got the same functionality and flag in commit
    ca3b7b75b
    GBinding should also have the ability to automatically invert
    a boolean
    value without requiring a custom transformation function.

 gobject/gbinding.c      | 61
 ++++++++++++++++++++++++++++++++++++++++++++--
 gobject/gbinding.h      | 18 +++++++++-----
 gobject/tests/binding.c | 64
 +++++++++++++++++++++++++++++++++++++++++++++----
 3 files changed, 130 insertions(+), 13 deletions(-)

commit 3be3ad61d142ca5bbd5659809af749ea5bf441ac
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Jul 13 06:03:03 2010 +0100

    binding: Add a closure-based variant of bind_property_full()

    Since using the function pointer version muddles the memory management
    requirements of language bindings, we should implement a
    GClosure-based
    variant on top of g_object_bind_property_full().

    https://bugzilla.gnome.org/show_bug.cgi?id=622278

 docs/reference/gobject/gobject-sections.txt |   1 +
 gobject/gbinding.c                          | 183
 ++++++++++++++++++++++++++--
 gobject/gbinding.h                          |  35 +++---
 gobject/gobject.symbols                     |   1 +
 gobject/tests/binding.c                     |  76 +++++++++++-
 5 files changed, 271 insertions(+), 25 deletions(-)

commit ca3b7b75bff00ea05c967eea06e2c3397da17e41
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Aug 3 02:08:03 2010 -0400

    GSettings: add G_SETTINGS_BIND_INVERT_BOOLEAN flag

    When binding a boolean setting to a boolean property, invert the
    values.
    This avoids the requirement for writing a pair of mapping functions
    for
    this extremely common case.

    Add a test.

    https://bugzilla.gnome.org/show_bug.cgi?id=625833

 gio/gsettings.c                    | 71
 ++++++++++++++++++++++++++++++++++----
 gio/gsettings.h                    |  6 +++-
 gio/tests/gsettings.c              | 21 ++++++++++-
 gio/tests/org.gtk.test.gschema.xml |  3 ++
 4 files changed, 93 insertions(+), 8 deletions(-)

commit dd2bbc95330355d5ff044dc76649e41ee5063894
Author: Fridrich Štrba <fridrich.strba@bluewin.ch>
Date:   Mon Aug 2 10:16:29 2010 +0200

    On windows, export also symbols defined in gio/gwin32appinfo.c

 gio/gio.symbols | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 9c399b10b8da98e87d12c1fbd8f8e6a44256f68b
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Aug 1 23:18:31 2010 +0200

    Updated Galician translations

 po/gl.po | 259
 +++++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 212 insertions(+), 47 deletions(-)

commit 892012b951a5222a3e47afc18179b064420ff98b
Author: Carlos Garcia Campos <carlosgc@gnome.org>
Date:   Sun Aug 1 12:56:06 2010 +0200

    GDBusConnection: fix message flags in g_dbus_connection_call_sync()

    GDBusCallFlags were used instead of GDBusSendMessageFlags for
    g_dbus_connection_send_message_with_reply_sync(). Fixes bug #625753.

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e7c7e46cf20cbca1684cecd1ba45e5555797844e
Author: Stef Walter <stef@memberwebs.com>
Date:   Sun Aug 1 07:14:43 2010 +0200

    Add comment to g_date_set_time_val about local timezone.

    Local time zone is used in conversion during g_date_set_time_val().
    We now mention this in the documentation.

    Fixes bug #625500

 glib/gdate.c | 2 ++
 1 file changed, 2 insertions(+)

commit d01a4374901af59a9b80fed1372a1366c9c9705d
Author: Milan Crha <mcrha@redhat.com>
Date:   Sat Jul 31 23:51:45 2010 -0400

    Silence valgrind

    Initialize all fields of struct msghdr. Bug 625472.

 gio/gsocket.c | 2 ++
 1 file changed, 2 insertions(+)

commit b6c42d05c07479c49f5dd36ad74caae518568381
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Jul 31 15:11:48 2010 +0200

    Updated Spanish translation

 po/es.po | 206
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 182 insertions(+), 24 deletions(-)

commit 7e33c4977c1772a741d9beb1f5ceca2009a0cea5
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Jul 31 10:05:05 2010 +0300

    Updated Hebrew translation.

 po/he.po | 253
 +++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 213 insertions(+), 40 deletions(-)

commit 917456973643cfe303017f1bb3266d41bba7cfd2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 02:40:16 2010 -0400

    Also use trylock in the bitlock tests

 gthread/tests/1bit-mutex.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit ce7463a87b8f039490be075ba0505fa2986509b6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 02:39:53 2010 -0400

    improve scanner api test coverage

 glib/tests/scannerapi.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6d41af0f724fad717b2cba4dc0001cd53564a9eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 02:15:03 2010 -0400

    Improve tree test coverage

 glib/tests/tree.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

commit a94657782680312592f860d5d867a446b8beda85
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 02:14:51 2010 -0400

    Improve keyfile test coverage

 glib/tests/keyfile.c | 48
 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

commit ef4690c6c96824a2099a5feca11a1785329ec5ca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 02:14:28 2010 -0400

    Test some GError functionality explicitly

 glib/tests/Makefile.am |  3 +++
 glib/tests/error.c     | 73
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)

commit a4d0038c288587bd2d8b50a7b5b442e6ba0f59a7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 02:14:01 2010 -0400

    Add a test for g_variant_builder_add_parsed

 glib/tests/gvariant.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3c0f77a499f01f42c70313568870681f00e4cc82
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 02:07:38 2010 -0400

    Fix a typo

 glib/gvariant-parser.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 12e47411c3ad3d04619036a1001801382ea9e9da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 00:56:11 2010 -0400

    Improve string test coverage

 glib/tests/string.c | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

commit dd25bdeff14ebad9c0ffc5231032ede0c761c47e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 00:55:57 2010 -0400

    Improve byte array test coverage

 glib/tests/array-test.c | 3 +++
 1 file changed, 3 insertions(+)

commit 8246bf4bdebb1a12e40111b483e7d6a474ec6b58
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 31 00:13:02 2010 -0400

    Improve gdbus test coverage

 gio/tests/gdbus-connection.c |  61 ++++++++++++++++++++--
 gio/tests/gdbus-proxy.c      | 118
 +++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 171 insertions(+), 8 deletions(-)

commit 116b945c944a8dcfeb21e9b9ea7781a492a81101
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 30 23:44:30 2010 -0400

    Fix a typo

    Its credentials, not crendentials

 gio/gdbusconnection.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit eb3e926b09538f22ac115ce0f18ac7530dc2dc87
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 30 16:44:25 2010 -0400

    Fix an off-by-one error

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5033be80d15cfb6c0a89f4ab0bc5e76cc2cd0a71
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 30 16:21:49 2010 -0400

    Add a test for g_dbus_proxy_get_cached_property_names

 gio/tests/gdbus-proxy.c | 65
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

commit 5f89498f071a100d3e159dd0d967477047249d73
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 30 15:36:15 2010 -0400

    improve printf tests coverage

 glib/tests/printf.c | 241
 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 227 insertions(+), 14 deletions(-)

commit 9100828185316503e2da366a8e0de8e361944301
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 30 15:35:47 2010 -0400

    Improve option context test coverage

 glib/tests/option-context.c | 65
 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

commit 027905c27aca3cdedca59a3d084e9a9279e03b19
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 23:08:07 2010 -0400

    Improve array test coverage

 glib/tests/array-test.c | 461
 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 455 insertions(+), 6 deletions(-)

commit 03be0d7237c7f250e01b785af4e4e4e8724a3e8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 20:52:31 2010 -0400

    Move markup parse tests to the test framework

 glib/tests/Makefile.am                             |  20 +-
 glib/tests/markup-parse.c                          | 290
 +++++++++++++++++++++
 glib/tests/markups/fail-1.expected                 |   1 +
 {tests => glib/tests}/markups/fail-1.gmarkup       |   0
 glib/tests/markups/fail-10.expected                |   4 +
 {tests => glib/tests}/markups/fail-10.gmarkup      |   0
 glib/tests/markups/fail-11.expected                |   7 +
 {tests => glib/tests}/markups/fail-11.gmarkup      |   0
 glib/tests/markups/fail-12.expected                |   1 +
 {tests => glib/tests}/markups/fail-12.gmarkup      |   0
 glib/tests/markups/fail-13.expected                |   1 +
 {tests => glib/tests}/markups/fail-13.gmarkup      |   0
 glib/tests/markups/fail-14.expected                |   4 +
 {tests => glib/tests}/markups/fail-14.gmarkup      |   0
 glib/tests/markups/fail-15.expected                |   8 +
 {tests => glib/tests}/markups/fail-15.gmarkup      |   0
 glib/tests/markups/fail-16.expected                |   2 +
 {tests => glib/tests}/markups/fail-16.gmarkup      |   0
 glib/tests/markups/fail-17.expected                |   1 +
 {tests => glib/tests}/markups/fail-17.gmarkup      |   0
 glib/tests/markups/fail-18.expected                |   1 +
 {tests => glib/tests}/markups/fail-18.gmarkup      |   0
 glib/tests/markups/fail-19.expected                |   1 +
 {tests => glib/tests}/markups/fail-19.gmarkup      |   0
 glib/tests/markups/fail-2.expected                 |   1 +
 {tests => glib/tests}/markups/fail-2.gmarkup       |   0
 glib/tests/markups/fail-20.expected                |   1 +
 {tests => glib/tests}/markups/fail-20.gmarkup      |   0
 glib/tests/markups/fail-21.expected                |   1 +
 {tests => glib/tests}/markups/fail-21.gmarkup      |   0
 glib/tests/markups/fail-22.expected                |   2 +
 {tests => glib/tests}/markups/fail-22.gmarkup      |   0
 glib/tests/markups/fail-23.expected                |   4 +
 {tests => glib/tests}/markups/fail-23.gmarkup      |   0
 glib/tests/markups/fail-24.expected                |   1 +
 {tests => glib/tests}/markups/fail-24.gmarkup      |   0
 glib/tests/markups/fail-25.expected                |   1 +
 {tests => glib/tests}/markups/fail-25.gmarkup      |   0
 glib/tests/markups/fail-26.expected                |   2 +
 {tests => glib/tests}/markups/fail-26.gmarkup      |   0
 glib/tests/markups/fail-27.expected                |   2 +
 {tests => glib/tests}/markups/fail-27.gmarkup      |   0
 glib/tests/markups/fail-28.expected                |   2 +
 {tests => glib/tests}/markups/fail-28.gmarkup      |   0
 glib/tests/markups/fail-29.expected                |   2 +
 {tests => glib/tests}/markups/fail-29.gmarkup      |   0
 {tests => glib/tests}/markups/fail-3.gmarkup       |   0
 glib/tests/markups/fail-30.expected                |   2 +
 {tests => glib/tests}/markups/fail-30.gmarkup      |   0
 glib/tests/markups/fail-31.expected                |   2 +
 {tests => glib/tests}/markups/fail-31.gmarkup      |   0
 glib/tests/markups/fail-32.expected                |   2 +
 {tests => glib/tests}/markups/fail-32.gmarkup      |   0
 glib/tests/markups/fail-33.expected                |   2 +
 {tests => glib/tests}/markups/fail-33.gmarkup      |   0
 glib/tests/markups/fail-34.expected                |   2 +
 {tests => glib/tests}/markups/fail-34.gmarkup      |   0
 glib/tests/markups/fail-35.expected                |   2 +
 {tests => glib/tests}/markups/fail-35.gmarkup      |   0
 {tests => glib/tests}/markups/fail-36.gmarkup      |   0
 glib/tests/markups/fail-37.expected                |   1 +
 {tests => glib/tests}/markups/fail-37.gmarkup      |   0
 glib/tests/markups/fail-38.expected                |   3 +
 {tests => glib/tests}/markups/fail-38.gmarkup      |   0
 glib/tests/markups/fail-39.expected                |   3 +
 {tests => glib/tests}/markups/fail-39.gmarkup      |   0
 glib/tests/markups/fail-4.expected                 |   1 +
 {tests => glib/tests}/markups/fail-4.gmarkup       |   0
 glib/tests/markups/fail-40.expected                |   2 +
 {tests => glib/tests}/markups/fail-40.gmarkup      |   0
 glib/tests/markups/fail-5.expected                 |   1 +
 {tests => glib/tests}/markups/fail-5.gmarkup       |   0
 glib/tests/markups/fail-6.expected                 |   1 +
 {tests => glib/tests}/markups/fail-6.gmarkup       |   0
 glib/tests/markups/fail-7.expected                 |   1 +
 {tests => glib/tests}/markups/fail-7.gmarkup       |   0
 glib/tests/markups/fail-8.expected                 |   3 +
 {tests => glib/tests}/markups/fail-8.gmarkup       |   0
 glib/tests/markups/fail-9.expected                 |   1 +
 {tests => glib/tests}/markups/fail-9.gmarkup       |   0
 .../tests/markups/valid-1.expected                 |   0
 {tests => glib/tests}/markups/valid-1.gmarkup      |   0
 .../tests/markups/valid-10.expected                |   0
 {tests => glib/tests}/markups/valid-10.gmarkup     |   0
 .../tests/markups/valid-11.expected                |   0
 {tests => glib/tests}/markups/valid-11.gmarkup     |   0
 .../tests/markups/valid-2.expected                 |   0
 {tests => glib/tests}/markups/valid-2.gmarkup      |   0
 .../tests/markups/valid-3.expected                 |   0
 {tests => glib/tests}/markups/valid-3.gmarkup      |   0
 .../tests/markups/valid-4.expected                 |   0
 {tests => glib/tests}/markups/valid-4.gmarkup      |   0
 .../tests/markups/valid-5.expected                 |   0
 {tests => glib/tests}/markups/valid-5.gmarkup      |   0
 .../tests/markups/valid-6.expected                 |   0
 {tests => glib/tests}/markups/valid-6.gmarkup      |   0
 .../tests/markups/valid-7.expected                 |   0
 {tests => glib/tests}/markups/valid-7.gmarkup      |   0
 .../tests/markups/valid-8.expected                 |   0
 {tests => glib/tests}/markups/valid-8.gmarkup      |   0
 .../tests/markups/valid-9.expected                 |   0
 {tests => glib/tests}/markups/valid-9.gmarkup      |   0
 tests/Makefile.am                                  |   8 +-
 tests/markup-test.c                                | 214 ---------------
 tests/run-markup-tests.sh                          |  41 ---
 105 files changed, 385 insertions(+), 267 deletions(-)

commit aa196c60df8bbe6f8e998780579b12863098107f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 02:20:43 2010 -0400

    Improve coverage of buffered output stream tests

 gio/tests/buffered-output-stream.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit ffa938fc652543c70c8bada3f65f1626e127731b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 02:20:29 2010 -0400

    Improve coverage of credentials tests

 gio/tests/gdbus-peer.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit 670528c187b0ae59a8fca1b6921722461992a9fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 02:20:15 2010 -0400

    Improve coverage of converter stream tests

 gio/tests/converter-stream.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 9794a648a9af25a9d409ce6aef97ac95f94c5cfb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 02:19:46 2010 -0400

    Improve coverage of memory stream tests

 gio/tests/memory-input-stream.c  | 63
 ++++++++++++++++++++++++++++++++++++++++
 gio/tests/memory-output-stream.c | 29 +++++++++++++++++-
 2 files changed, 91 insertions(+), 1 deletion(-)

commit 620582e59c9caf355c12b072258ea74ad1aadc1e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 02:19:27 2010 -0400

    Remove redundant include

 gio/tests/unix-streams.c | 1 -
 1 file changed, 1 deletion(-)

commit 17d4898d75fc41038a1d13740bfe1279ca902235
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 02:19:01 2010 -0400

    Improve coverage of icon tests

 gio/tests/g-icon.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 7710c50fb22d44bc8554ad811418141490e09f78
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 02:18:45 2010 -0400

    Improve coverage of application tests

 gio/tests/application.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

commit 758c3216cddf35721b3c1fc244f93f6169d9a84b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 00:54:23 2010 -0400

    Improve coverage of stream tests

 gio/tests/buffered-input-stream.c |  2 ++
 gio/tests/converter-stream.c      |  4 ++++
 gio/tests/data-input-stream.c     | 31 +++++++++++++++++++++++++++++++
 gio/tests/data-output-stream.c    | 32 ++++++++++++++++++++++++++++----
 4 files changed, 65 insertions(+), 4 deletions(-)

commit c6b050716717529a4b31f4eb2bae3fef06277bb3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 00:53:30 2010 -0400

    Reenable unix-streams test

 gio/tests/Makefile.am | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 04c7abba11abb54fe8f43b027ed42ed4ff46aa82
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 29 00:52:34 2010 -0400

    Work around deadlock in unix-streams test

 gio/tests/unix-streams.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

commit b463b2ea25d214c9ba3fc2c5a77b3d321eb842d1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 28 16:59:11 2010 -0400

    Add tests about file associations

 gio/tests/appinfo.c | 62
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

commit 60932b2f3deeb612a7e6c097973f2fb17f557202
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 28 16:05:19 2010 -0400

    Improve regex test coverage

 glib/tests/regex.c | 106
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)

commit 154880b2ad9064ac78c8e1d55a2ae96bf48d159a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 18:21:15 2010 -0400

    Remove duplicate utf8 strreverse test

    Also add some tests for find next/prev char.

 glib/tests/utf8-misc.c    | 18 ++++++++++++++++++
 glib/tests/utf8-pointer.c | 41 ++++++++++++++++++++++++++++++++---------
 2 files changed, 50 insertions(+), 9 deletions(-)

commit 0e48b7ea7c436dde8e1e3d432a4c0dd6da7055fa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 16:52:36 2010 -0400

    Improve strfuncs test coverage a bit

 glib/tests/strfuncs.c | 5 +++++
 1 file changed, 5 insertions(+)

commit c617e94cf111b435cc2765b9ffcb219fec7b4016
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 16:25:13 2010 -0400

    Improve option context test coverage a bit

 glib/tests/option-context.c | 116
 ++++++++++++++++++++++++++++----------------
 1 file changed, 74 insertions(+), 42 deletions(-)

commit c4dd9fa41b9ec8387e765d9463e181d0be33c5ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 16:24:56 2010 -0400

    Move markup collect tests to the test framework

 glib/tests/Makefile.am      |   3 ++
 glib/tests/markup-collect.c | 113
 ++++++++++++++++----------------------------
 2 files changed, 43 insertions(+), 73 deletions(-)

commit 13ac9f94fdc1fcbf2be15e65af57c362a1c71f5d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 16:24:08 2010 -0400

    Add some more GFile tests

 gio/tests/file.c                       | 38
 ++++++++++++++++++++++++++++++++++
 {tests => glib/tests}/markup-collect.c |  0
 tests/Makefile.am                      |  1 -
 3 files changed, 38 insertions(+), 1 deletion(-)

commit 8263d691cb0cf5d2c80d1c949a3c693d333510c0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 14:01:48 2010 -0400

    Improve compressor test coverage a bit

 gio/tests/converter-stream.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit b77a19f238e34cd2ba7ecf204beacc7252477605
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 01:00:55 2010 -0400

    Test g_settings_list_schemas

 gio/tests/gsettings.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit b4ed2af52fbe195aab3771066dac71172f8716ed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 27 00:17:20 2010 -0400

    Improve GNode test coverage a bit

 glib/tests/node.c | 117
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 117 insertions(+)

commit 568eeeafe1636bba440dc18cd34c4fce551ddd15
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 23:24:31 2010 -0400

    Add some logging tests

 glib/tests/Makefile.am |   3 +
 glib/tests/logging.c   | 147
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 150 insertions(+)

commit 2b113e4a9ad375691d72347d31999fd5654f5361
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 23:06:33 2010 -0400

    Silence log handler tests

 glib/tests/testing.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit b91cde61408bfe58c849b44ca3100ba4c5f8a3fc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 22:13:25 2010 -0400

    Improve tree test coverage

 glib/tests/tree.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

commit c972d4df64299b335012b7af2b902589d191f8e0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 22:12:59 2010 -0400

    Move markup escape tests to test framework

 glib/tests/Makefile.am     |   4 ++
 glib/tests/markup-escape.c | 159
 +++++++++++++++++++++++++++++++++++++++++++++
 tests/Makefile.am          |   3 -
 tests/markup-escape-test.c | 132 -------------------------------------
 4 files changed, 163 insertions(+), 135 deletions(-)

commit a804e22ed047514d7f267a8e991eca82bc5eaf57
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 21:19:04 2010 -0400

    More pattern tests

 glib/tests/pattern.c | 400
 ++++++++++++++++++++++-----------------------------
 1 file changed, 168 insertions(+), 232 deletions(-)

commit d3f00313617c3e646d5a236f1f06a84a07279c2a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 21:18:22 2010 -0400

    Add tests for g_utf8_strreverse

 glib/tests/utf8-misc.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit caa9453b72ca3a7b7bafb8cafac84934f7036682
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 21:17:56 2010 -0400

    Fix a warning

 gio/tests/network-address.c | 3 ++-
 glib/pcre/Makefile.am       | 5 -----
 glib/pcre/pcre_internal.h   | 2 +-
 3 files changed, 3 insertions(+), 7 deletions(-)

commit d0750c9d6e2b0479a47f93c545607ac43da0b1dd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 21:16:03 2010 -0400

    Don't leak in converter test

 gio/tests/converter-stream.c                | 4 ++++
 glib/tests/Makefile.am                      | 2 ++
 tests/patterntest.c => glib/tests/pattern.c | 0
 tests/Makefile.am                           | 2 --
 4 files changed, 6 insertions(+), 2 deletions(-)

commit 63bdeb0dab81a4aed4a2e215cae4669de7f583c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 20:22:33 2010 -0400

    Fix an icon test

 gio/tests/g-icon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a8f83ea8340459e22a2f2d18f4aa410ccf1cde34
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 19:07:16 2010 -0400

    Add tests for GNetworkAddress

 gio/tests/Makefile.am       |  8 ++--
 gio/tests/network-address.c | 91
 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 95 insertions(+), 4 deletions(-)

commit e103b93694be98b5b7bfcfbb22ef0be014079f1a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 18:40:17 2010 -0400

    Drop an unneeded if

 gio/gnetworkaddress.c |   3 +-
 gio/tests/g-icon.c    | 112 ++++++++++++++++++++++++++++++++++++++++++++-
 gio/tests/icons.c     | 122
 --------------------------------------------------
 3 files changed, 112 insertions(+), 125 deletions(-)

commit 9d93dc5554b7b7da4a724d6b9d464cb8be1e0475
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 18:15:24 2010 -0400

    Remove some unused pcre code

 glib/pcre/pcre_info.c       |  93 ----------------------------
 glib/pcre/pcre_maketables.c | 143
 --------------------------------------------
 glib/pcre/pcre_refcount.c   |  82 -------------------------
 glib/pcre/pcre_valid_utf8.c |  14 -----
 glib/pcre/pcre_version.c    |  90 ----------------------------
 5 files changed, 422 deletions(-)

commit 9fc3c980ccbaa6772f9b97b60c786546b67ae8b4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 26 17:59:18 2010 -0400

    Add some volume monitor tests

    Although not much of this is easily testable.

 gio/tests/Makefile.am     |   4 +
 gio/tests/volumemonitor.c | 178 +++++++++++++++++++++++++++
 glib/tests/Makefile.am    |   3 +
 glib/tests/shell.c        | 229 +++++++++++++++++++++++++++++++++++
 tests/Makefile.am         |   2 -
 tests/shell-test.c        | 297
 ----------------------------------------------
 6 files changed, 414 insertions(+), 299 deletions(-)

commit e5a72ae3c415ae6e8437a0714f48311b534684c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 25 19:12:51 2010 -0400

    Move queue tests to the test framework

 glib/tests/Makefile.am |    3 +
 glib/tests/queue.c     | 1043
 ++++++++++++++++++++++++++++++++++++++++++++++++
 tests/Makefile.am      |    2 -
 tests/queue-test.c     |  962
 --------------------------------------------
 4 files changed, 1046 insertions(+), 964 deletions(-)

commit dbf230991bab03e64b5bc1a2bb5ab618de2f9212
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 30 16:33:29 2010 -0400

    Bug 625628 – GDBusProxy: wrong property name sorting

    https://bugzilla.gnome.org/show_bug.cgi?id=625628

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit aefc6df6bbf318c01eff32e631cc796aabcbf31f
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 30 16:30:34 2010 -0400

    Fix gschema-compile test

    This was broken by commit 1b5b87bfa0f5435dd6e973a4e36076db083dc5c7

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/tests/gschema-compile.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d2d97a214d1d9e96f09955212e669c3c9447ff73
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 30 16:01:03 2010 -0400

    Bug 625584 – Crashes application on unref with signal subscription

    Don't do too much work in the finalizer - in particular, there's no
    need to send RemoveMatch() messages to the bus daemon since we're
    going to sever the connection and the bus will garbage collect
    anyway. In this case it crashed the process.

    Also add a test case that checks that the appropriate GDestroyNotify
    callbacks are called when unreffing a connection with either 1)
    exported objects; 2) signal subscriptions or 3) filter functions
    .. yes, ideally apps would unregister such callbacks before giving up
    their ref but that's not how things work :-)

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c        |  19 ++++---
 gio/tests/gdbus-connection.c | 132
 +++++++++++++++++++++++++++++++++++++++----
 2 files changed, 134 insertions(+), 17 deletions(-)

commit 1b5b87bfa0f5435dd6e973a4e36076db083dc5c7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 30 21:10:53 2010 +0200

    GSettings: Mark some strings for cat translation

    <vuntz> *miaou*

 gio/gschema-compile.c | 105
 +++++++++++++++++++++++++-------------------------
 1 file changed, 52 insertions(+), 53 deletions(-)

commit 14f17c13889215adbc9c56e4ea4f46662fa68ee5
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 30 11:40:00 2010 -0400

    GDBusConnection: Fix up debug output when completing calls

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 173977a7015c45e5dc3c43534cd3deb81159ad1f
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 30 11:26:43 2010 -0400

    GCredentials: use effective uid/gid

    Otherwise e.g. setuid root processes can't connect to the system
    bus. This was discovered when porting PolicyKit's pkexec(1) command to
    a PolicyKit library using GDBus.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/glib/tmpl/glib-unused.sgml | 40
 ++++++++++++++++++++++++++++++
 docs/reference/glib/tmpl/messages.sgml    | 27 +++++---------------
 docs/reference/glib/tmpl/version.sgml     | 41
 -------------------------------
 gio/gcredentials.c                        |  4 +--
 4 files changed, 48 insertions(+), 64 deletions(-)

commit f9845bcbece022e9ec55c18b0a855b718155a1d1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 29 22:04:43 2010 +0200

    *bump*

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1fd1543bdcc6ee897b1ebd566cbcbfd9d76e386c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 29 16:52:34 2010 +0200

    add one more NEWS item

 NEWS | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

commit 8673f0b06c255e36189950b671911c38e91affd5
Author: Eduardo Lima Mitev <elima@igalia.com>
Date:   Mon Jul 26 17:21:14 2010 +0200

    GIO: Add G-I annotations for several methods

    Specifically:
     - g_io_stream_get_input/output_stream()
     - g_socket_client_get_local_address()
     - g_socket_connection_get_socket()
     - g_socket_listener_add_address()
     - g_socket_listener_accept_socket()
     - g_socket_listener_accept()
     - g_io_extension_point_get_extensions()

 gio/giomodule.c         | 7 ++++---
 gio/giostream.c         | 6 ++++--
 gio/gsocketclient.c     | 2 +-
 gio/gsocketconnection.c | 2 +-
 gio/gsocketlistener.c   | 6 +++---
 5 files changed, 13 insertions(+), 10 deletions(-)

commit e4f90c82624a623098c53c7158a46bf702ff5fc9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 29 12:01:46 2010 +0200

    get a start on the NEWS

 NEWS | 67
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

commit 015df7e369cf37929acfebec0a705d5531ac355a
Author: Owen Taylor <otaylor@fishsoup.net>
Date:   Wed Jul 28 15:15:57 2010 -0400

    [gschema-compile] fix segfault

    If files are passed on the command line and we don't set
    override_files
    at all, don't try to read from the array.

 gio/gschema-compile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19ef26c9c5e088817e2a392f79f343021f2259c8
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 28 12:58:04 2010 -0400

    Use correct type for GDBusServer:active property

    It's a boolean, not a string.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusserver.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 133e87ca87cc86e6410bb9e19eacd8ddb11eadfc
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 28 12:48:17 2010 -0400

    GDBusConnection: Pass the GObject to g_simple_async_result_new()

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a6f1bb4e177750ef9c50a3813eb3be867a927fbe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 27 22:56:30 2010 +0200

    Add support for vendor override files

    You can drop a key-file in the schema directory that looks like:

    [org.gtk.Example]
    key='value'

    to override the default value of 'key' in schema 'org.gtk.Example'.

 gio/gschema-compile.c | 154
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 154 insertions(+)

commit 723692dfb91a2de8c5337e9e1b50c2cf3abfb374
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue Jul 27 17:47:22 2010 +0200

    Updated Galician translations

 po/gl.po | 54 +++++++++++++++++++++++++++++++-----------------------
 1 file changed, 31 insertions(+), 23 deletions(-)

commit 12d0cbdac555db479e4c6631bfd15d3c8a5dc2ed
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon Jul 26 20:58:59 2010 +0200

    Updated Spanish translation

 po/es.po | 176
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 99 insertions(+), 77 deletions(-)

commit e8923ff232bb34f27dfda8ba19df1af379da892c
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Jul 24 13:31:31 2010 +0300

    Updated Hebrew translation.

 po/he.po | 44 ++++++++++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 18 deletions(-)

commit 633d9efc62eca490b489e05d571681f8b15d8aca
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Fri Jul 23 13:24:43 2010 +0200

    [gio]: gioenums.h: Remove trailing comma again.

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 86040bb2eb11ad9501cc0c94754e8d8f29ba8f17
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 23 10:51:14 2010 +0200

    Revert "notify: Remove unused g_object_notify_queue_clear()"

    This reverts commit 0201a81f04ae5fd46c6db25859e90dde1fc35d4b and adds
    locks in the right place.

    As this file is a public header (see last commit), we cannot just
    remove
    functions from it.

 gobject/gobjectnotifyqueue.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 2819dd60b7b2feaa0609c1017e20105852ca92e4
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Jul 23 10:49:26 2010 +0200

    notify: Readd g_object_notify_queue_from_object()

    gobjectnotifyqueue.c is a public header, so we cannot remove
    files from
    it. (Yes you read that right, this .c file is a public header. See
    your
    installation directory.)

 gobject/gobjectnotifyqueue.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 4a83ee208fe08533a43a51c8fd2bd83794a1cd27
Author: Tao Wang <dancefire@gmail.com>
Date:   Fri Jul 23 13:18:43 2010 +0800

    Complete Simplified Chinese translation.

 po/zh_CN.po | 24 +++++++-----------------
 1 file changed, 7 insertions(+), 17 deletions(-)

commit fd0a2b27891ec38e0190916af761c3daf4daa78f
Author: Tao Wang <dancefire@gmail.com>
Date:   Fri Jul 23 13:05:37 2010 +0800

    Update Simplified Chinese translation.

 po/zh_CN.po | 359
 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 198 insertions(+), 161 deletions(-)

commit d5bd531d96a48ba2dac84e0ac7bffa4cf5481738
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 22 18:39:50 2010 -0400

    Cleanup the GSettingsBackend API

    This is a substantial ABI break.  Rebuild dconf.

 gio/gdelayedsettingsbackend.c  |  15 ++----
 gio/gkeyfilesettingsbackend.c  |  18 +-------
 gio/gmemorysettingsbackend.c   |   4 +-
 gio/gnullsettingsbackend.c     |  12 +----
 gio/gsettings-tool.c           | 102
 ++++++++++++++++++++++++++++++++++++++++-
 gio/gsettingsbackend.c         |  22 +--------
 gio/gsettingsbackend.h         |  19 +++-----
 gio/gsettingsbackendinternal.h |   2 +-
 gio/tests/gsettings.c          |   5 ++
 9 files changed, 125 insertions(+), 74 deletions(-)

commit aed440815ec5c87f2439d723b60b8255578afdff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 22 17:49:40 2010 -0400

    GSettings: add g_settings_reset()

    Resets a key to its default value.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdelayedsettingsbackend.c       | 37
 ++++++++++++++++++++++++++++++-------
 gio/gio.symbols                     |  1 +
 gio/gmemorysettingsbackend.c        | 20 +++++++++++++++++++-
 gio/gsettings.c                     | 24 +++++++++++++++++++++++-
 gio/gsettings.h                     |  2 ++
 6 files changed, 76 insertions(+), 9 deletions(-)

commit f6d3e224dfa9e8b69403a8c79a27a58b5c9f66b7
Author: Olivier Crête <olivier.crete@collabora.co.uk>
Date:   Thu Jul 22 21:52:54 2010 +0200

    notify: Add tests for threadsafe object notifies

    https://bugzilla.gnome.org/show_bug.cgi?id=166020

 tests/.gitignore             |   2 +
 tests/refcount/Makefile.am   |   2 +
 tests/refcount/properties3.c | 204
 +++++++++++++++++++++++++++++++++++++++++++
 tests/refcount/properties4.c | 169 +++++++++++++++++++++++++++++++++++
 4 files changed, 377 insertions(+)

commit 0483ef000ae323415bb0c7b762dd587f1384b1f3
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 22 21:51:28 2010 +0200

    notify: Make dedup code clearer

    A for loops seems easier to understand to me than gotos.

 gobject/gobjectnotifyqueue.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit 9026b11e380a9b6479c0fcb852a5aba297ed9dd4
Author: Olivier Crête <olivier.crete@collabora.co.uk>
Date:   Thu Jul 22 21:26:32 2010 +0200

    notify: Make GObject property change notifications thread safe

    Adds locking around object property change notification handling. The
    notifications are only emitted after all threads have called
    g_object_thaw_notify().

    https://bugzilla.gnome.org/show_bug.cgi?id=166020

 gobject/gobjectnotifyqueue.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 65797f7e54061a21866261d00a1c5533cd6a4f81
Author: Olivier Crête <olivier.crete@collabora.co.uk>
Date:   Thu Jul 22 21:20:35 2010 +0200

    notify: Remove g_object_notify_queue_from_object()

    The function will not be safe with object locking in place, so
    we remove
    it. The workaround is somewhat ugly, but it works.

    https://bugzilla.gnome.org/show_bug.cgi?id=166020

 gobject/gobject.c            | 14 ++++++++------
 gobject/gobjectnotifyqueue.c |  7 -------
 2 files changed, 8 insertions(+), 13 deletions(-)

commit 83026092eba98c2e6e0a96112555f980382a99e7
Author: Olivier Crête <olivier.crete@collabora.co.uk>
Date:   Thu Jul 22 20:25:00 2010 +0200

    notify: Refactor g_object_notify_queue_thaw()

    This adds better error reporting and simplifies the code for adding
    thread safety.

    https://bugzilla.gnome.org/show_bug.cgi?id=166020

 gobject/gobjectnotifyqueue.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit 0201a81f04ae5fd46c6db25859e90dde1fc35d4b
Author: Olivier Crête <olivier.crete@collabora.co.uk>
Date:   Thu Jul 22 09:02:18 2010 +0200

    notify: Remove unused g_object_notify_queue_clear()

    https://bugzilla.gnome.org/show_bug.cgi?id=166020

 gobject/gobjectnotifyqueue.c | 11 -----------
 1 file changed, 11 deletions(-)

commit a2c5bba31d19dcd7f3726c99280ff794cbf744a9
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 22 08:52:25 2010 +0200

    notify: Emit a g_critical() instead g_return_if_fail()ing

    This does not change the code semantically in any way but avoids a
    return in the middle of the code.

    https://bugzilla.gnome.org/show_bug.cgi?id=166020

 gobject/gobjectnotifyqueue.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 24161d9c4621ef0a674c31146e9fd0d2e9ad8d0f
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 22 20:24:29 2010 +0200

    binding: Cast to avoid compiler warning

 gobject/tests/binding.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit dd1d1b3510536d4156eb79bb7161023c464e721f
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 22 20:23:28 2010 +0200

    tests: Use GPOINTER_TO_SIZE() instead of just casting to guint

    a) gcc doesn't like this ("Cast to pointer of different size)
    b) It compares only half of the pointer

 gio/tests/memory-output-stream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 284ea16b9d94b28b632063333140b99e419d6b0a
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Jul 22 20:23:04 2010 +0200

    inotify: Constify function argument

    gcc complained...

 gio/inotify/inotify-helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dc7348b305c72c757f8ed1d8ba2cae2a19a3c684
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 22 11:49:30 2010 -0400

    Fix very small leak in the GSettings test

 gio/tests/gsettings.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 23a904fc1520b06aefa1e51e690d2e7b2fcc3ead
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 21 20:10:31 2010 -0700

    Bug 624991 - GSettings mapping for G_TYPE_STRV

    Added default mapping for G_TYPE_STRV based on a patch from Garrett
    Regier.

    Add a test case.

 gio/gsettings-mapping.c            | 18 +++++++++++++++++-
 gio/tests/gsettings.c              | 31 +++++++++++++++++++++++++++++++
 gio/tests/org.gtk.test.gschema.xml |  3 +++
 3 files changed, 51 insertions(+), 1 deletion(-)

commit 76aef137c8ba8410bd2b5bc31873db5d60dad961
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu Jul 22 16:23:18 2010 +0200

    Updated Galician translations

 po/gl.po | 132
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 70 insertions(+), 62 deletions(-)

commit 8f80ff02af2fabd22d5aac1d1b853d1ac7865e85
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Jul 21 16:08:19 2010 -0400

    Bug 624968  - div by zero in g_malloc_n family

 glib/gmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5063d78baac684a1c53a6a1620ff94789026ae26
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Wed Jul 21 19:11:53 2010 +0300

    Updated Hebrew translation.

 po/he.po | 124
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 64 insertions(+), 60 deletions(-)

commit 9b0a08449fd966aff7a6c164c9913b01106a37cc
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jul 20 15:02:36 2010 -0400

    GDBusAuthObserver: Fix docs

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauthobserver.c | 53
 ++++++++++---------------------------------------
 1 file changed, 11 insertions(+), 42 deletions(-)

commit 7eba41346e014649d8f9cf8ab675d1f091f7cf38
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jul 20 14:02:14 2010 -0400

    Bug 617483 – Credentials passing

     - Make GCredentials instance and class structures private so it can't
       be subclassed and we don't have to worry about ABI compat
       issues. This also allows us to get rid of the GCredentialsPrivate
       struct.

     - Add a GCredentialsType enumeration that is used whenever exchanging
       pointers with the user. This allows us to support OSes with
       multiple native credential types. In particular, it allows
       supporting OSes where the native credential evolves or even changes
       over time.

     - Add g_socket_get_credentials() method.

     - Add tests for g_socket_get_credentials(). Right now this is in the
       GDBus peer-to-peer test case but we can change that later.

     - Move GTcpConnection into a separate gtk-doc page as was already
       half-done with GUnixConnection. Also finish the GUnixConnection
       move and ensure send_credentials() and receive_credentials()
       methods are in the docs. Also nuke comment about GTcpConnection
       being empty compared to its superclass.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  43 ++++++------
 gio/gcredentials.c                  | 135
 ++++++++++++++++++++++++------------
 gio/gcredentials.h                  |  44 ++----------
 gio/gio.symbols                     |   2 +
 gio/gioenums.h                      |  15 ++++
 gio/gnetworkingprivate.h            |   8 +++
 gio/gsocket.c                       |  72 ++++++++++++++++++-
 gio/gsocket.h                       |   2 +
 gio/gtcpconnection.c                |   7 +-
 gio/gunixconnection.c               |   6 ++
 gio/gunixcredentialsmessage.c       |  18 +++--
 gio/tests/gdbus-peer.c              |  36 ++++++++++
 13 files changed, 273 insertions(+), 116 deletions(-)

commit b3cf5cbd0bfcfe53f82a72d276683aebd15d3828
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jul 20 12:14:30 2010 -0400

    GDBusServer: Avoid handling incoming connections after stop() has
    been called

    Without this fix, we'd sometimes run code after stop() and finalize()
    to handle incoming requests. This was observed in the gdbus-peer test
    case occasionally crashing:

     $ ./gdbus-peer
     /gdbus/peer-to-peer: OK
     /gdbus/delayed-message-processing: OK
     /gdbus/nonce-tcp:
     GLib-GObject-WARNING **: invalid uninstantiatable type `(null)'
     in cast to `GDBusServer'
     aborting...

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusserver.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit 2be167f57c2b59d427aa54e2204bfaa906391b3e
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jul 20 11:38:23 2010 -0400

    GDBus: Add support for D-Bus type 'h' (ie. G_VARIANT_TYPE_HANDLE)

    This allows sending and receiving D-Bus messages with instances of the
    'h' D-Bus type. Unlike libdbus-1's dbus_message_iter_get_basic()
    method, g_variant_get_handle() does not return a duplicated unix file
    descriptor (that must be closed with close(2)) - instead, it returns
    an index that can be used to get/dup the file descriptor from a
    GUnixFDList object that can be obtained from the GDBusMessage object.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c              | 22 ++++++++++++++++++++++
 gio/tests/gdbus-serialization.c | 28 ++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+)

commit 66388120d23a2fcec345874cc1a6259c08a6ef38
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 20 10:45:52 2010 -0400

    Move #include <sys/wait.h> down

    Until after we include the glib stuff, so that we have G_OS_UNIX
    defined.

    For some reason <stdlib.h> pulls in <sys/wait.h> on Fedora so this
    wasn't a problem, but many others have reported the issue.

 gio/gdbusaddress.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 2f5056755763e4628ed0e64954229e0a7dd9dbfb
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Jul 20 08:57:35 2010 +0200

    Updated Spanish translation

 po/es.po | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

commit c3737739aeeeac27e68d50d8c48dfa0ae7d23ee9
Author: noch <norayr@arnet.am>
Date:   Tue Jul 20 10:33:32 2010 +0500

    Corrected and updated the new version of the Armenian translation -
    po file.

 po/hy.po | 3004
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1617 insertions(+), 1387 deletions(-)

commit 493d8cb2926c0d54a45fd1fdb7f383c730321aa8
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jul 19 17:03:07 2010 -0400

    GDBus: Introduce G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL

    This is preferable to the current magical solution whereby the serial
    is only rewritten if non-zero. In particular, it makes it easier to
    send the same message on multiple connections without having to reset
    the serial number.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 45 ++++++++++++++++++++++-----------------------
 gio/gioenums.h        |  6 +++++-
 2 files changed, 27 insertions(+), 24 deletions(-)

commit 9d7b00638fa6d0701ca8f883edf9e218c3a54412
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jul 19 16:10:50 2010 -0400

    GDBus: Forgot to add g_dbus_send_message_flags_get_type() to
    gio.symbols

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gio.symbols | 1 +
 1 file changed, 1 insertion(+)

commit 0b2b4deac549623beb90228a0ad36f8c2c315710
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jul 19 16:07:57 2010 -0400

    GDBus: Add GDBusSendMessageFlags

    This is currently unused but might be useful in the future. For
    example, it might be nice with a way to bypass the current queue of
    outgoing messages - having a flag enumeration allows us to add a
    G_DBUS_SEND_MESSAGE_FLAGS_BYPASS_QUEUE etc. etc.

    This commit breaks ABI and API. Users of the (rarely used) API to send
    messages will have to port to this new API.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt      |  1 +
 gio/gdbusconnection.c                    | 64
 +++++++++++++++++++-------------
 gio/gdbusconnection.h                    |  3 ++
 gio/gdbusmethodinvocation.c              |  4 +-
 gio/gioenums.h                           | 13 +++++++
 gio/tests/gdbus-connection.c             |  6 ++-
 gio/tests/gdbus-example-server.c         |  1 +
 gio/tests/gdbus-example-unix-fd-client.c |  1 +
 gio/tests/gdbus-peer.c                   |  4 +-
 9 files changed, 67 insertions(+), 30 deletions(-)

commit 7190af4394541c1adbe87769f7bd6db030e33605
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jul 19 15:45:27 2010 -0400

    GDBus: Remove constness from introspection data structures

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt | 15 ++++-----
 gio/gdbus-tool.c                    |  4 +--
 gio/gdbusapplication.c              |  2 +-
 gio/gdbusconnection.c               | 16 ++++-----
 gio/gdbusconnection.h               |  2 +-
 gio/gdbusintrospection.c            | 60
 +++++++++++++++++-----------------
 gio/gdbusintrospection.h            | 65
 ++++++++++++++++++-------------------
 gio/tests/gdbus-export.c            | 26 +++++++--------
 gio/tests/gdbus-introspection.c     |  6 ++--
 gio/tests/gdbus-peer.c              |  2 +-
 10 files changed, 98 insertions(+), 100 deletions(-)

commit 4a1c5a1b98aed12308361d7adb6089a9fb171583
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jul 19 15:03:00 2010 -0400

    GDBus: Add GDBusSignalFlags and use it in
    g_dbus_connection_signal_subscribe()

    This is currently unused but will probably be useful in the
    future. For example, we could have a _ARG0_IS_PATH to specify that
    arg0 should be used for arg0path.

    This commit breaks API and ABI. Users of
    g_dbus_connection_signal_subscribe() will need to port to this new
    version.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdbus-tool.c                    |  1 +
 gio/gdbusconnection.c               |  2 ++
 gio/gdbusconnection.h               |  1 +
 gio/gdbusnameowning.c               |  2 ++
 gio/gdbusnamewatching.c             |  1 +
 gio/gdbusproxy.c                    |  3 +++
 gio/gio.symbols                     |  1 +
 gio/gioenums.h                      | 13 +++++++++++++
 gio/tests/gdbus-connection.c        | 21 +++++++++++++--------
 gio/tests/gdbus-threading.c         |  1 +
 gio/tests/testapps.c                |  1 +
 12 files changed, 40 insertions(+), 8 deletions(-)

commit 1a06bd8d3f8ccf040901b4aa4b1197d189b8ab4e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 19 15:03:54 2010 -0400

    Update the GDBus subtree example for the new API

 docs/reference/glib/tmpl/messages.sgml | 27 +++++++++++++++++++++------
 gio/tests/gdbus-example-subtree.c      | 21 ++++++++++++---------
 2 files changed, 33 insertions(+), 15 deletions(-)

commit c7c573afb6eef461bfe70bb848c90b1d58b3d4d9
Author: David Hoyt <dhoyt@llnl.gov>
Date:   Mon Jul 19 13:52:17 2010 -0400

    Bug 624754 – gdbusaddress.c missing sys/wait.h

    https://bugzilla.gnome.org/show_bug.cgi?id=624754

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusaddress.c | 2 ++
 1 file changed, 2 insertions(+)

commit d63f199d921b2444e25bc9f39cc12a84ad9695b5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 18 21:43:18 2010 -0400

    Fix is_valid() API

    Actually dereference the pointer instead of just checking for NULL

 gvdb-reader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit df40747190a0fff4582c84b101f74e5da91f8f72
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 18 20:45:37 2010 -0400

    Add gvdb_table_is_valid() API

    Checks that the on-disk file is still valid.

 gvdb-reader.c | 17 +++++++++++++++++
 gvdb-reader.h |  3 +++
 2 files changed, 20 insertions(+)

commit f81601f735c3b5be0cb21031979071b2dff1ceb2
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Jul 18 20:29:41 2010 +0200

    Updated Spanish translation

 po/es.po | 282
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 154 insertions(+), 128 deletions(-)

commit 8ab26d42e97c5e751f78d2b08d71cddcc5a37031
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun Jul 18 19:58:33 2010 +0200

    Fixed headers in galician translation file

 po/gl.po | 1181
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 600 insertions(+), 581 deletions(-)

commit 5fb9c9f7de9700fe1639deb381bab7e3b2785689
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sat Jul 17 13:11:08 2010 +0300

    Updated Hebrew translation.

 po/he.po | 85
 ++++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 51 insertions(+), 34 deletions(-)

commit f30aef9a105a2cb44bac1bbe3b8bb93387a41d9a
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 16 13:19:48 2010 -0400

    GDBus: Add nonce-tcp: test case

    Also fix a couple of TODO items in gdbusaddress.c

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusaddress.c     |  85 ++++++++++++++-------
 gio/tests/gdbus-peer.c | 203
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 259 insertions(+), 29 deletions(-)

commit 27cee11b6c1558f44cc89cd46576e11413370abf
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Jul 16 17:20:42 2010 +0300

    Updated Hebrew translation.

 po/he.po | 1221
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 633 insertions(+), 588 deletions(-)

commit fe6338f446f52deeb64aa10fab1c72fa64953472
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 15 19:37:26 2010 -0400

    g_warning on inconsistent subtree behaviour

    If the subtree introspection function indicates that an interface
    exists
    but then the dispatch function returns a NULL vtable for that
    interface,
    issue a g_warning pointing programmers in the right direction.

 gio/gdbusconnection.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 732ff1b27cc6f7bbbb1133bf8e7cb3de8475f72a
Author: Julien Cristau <jcristau@debian.org>
Date:   Thu Jul 15 15:26:02 2010 +0100

    gio: don't assume that SOCK_CLOEXEC is supported whenever it's defined

    Just because SOCK_CLOEXEC was defined at build time doesn't mean the
    kernel we're running on supports it.  So if socket() fails with
    EINVAL,
    try again without the flag.

    https://bugzilla.gnome.org/show_bug.cgi?id=624463

 gio/gsocket.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 8a2d157d49c3dceda029bd0e14f8c7367daa2a36
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 15 16:53:43 2010 -0400

    Bug 624484: GDBusSubtreeDispatchFunc clarification

    Pass NULL rather than "/" for the toplevel of a subtree.

    Add clarification to the docs about how trees are flat.

 gio/gdbusconnection.c    |  4 ++--
 gio/gdbusconnection.h    | 10 ++++++++--
 gio/tests/gdbus-export.c | 10 +++++-----
 3 files changed, 15 insertions(+), 9 deletions(-)

commit ca14ab7ac0d93b2ccd0977d905b19094e7317490
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 15 16:47:32 2010 -0400

    Bug 624483: GDBusSubtreeEnumerateFunc clarification

    Clarify a couple of things in the docs:

      1) you must return flat names (no slashes)

      2) g_strfreev() will be called on the result

      3) a benefit of using the DISPATCH_TO_UNENUMERATED flag

 gio/gdbusconnection.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit e6b5546cf573e6594b33b2ce19ad839c1c694909
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 15 16:26:42 2010 -0400

    Bug 624473: GDBusSubtreeIntrospectFunc return type

    Return a NULL terminated C array instead of a GPtrArray

    Also, document that %NULL is a permitted return value and clarify its
    meaning.

    Finally, avoid calling the enumeration function during dispatch
    when the
    G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag was given.

 gio/gdbusconnection.c    | 76
 +++++++++++++++++++++++++++---------------------
 gio/gdbusconnection.h    | 27 ++++++++++++-----
 gio/tests/gdbus-export.c | 25 +++++++---------
 3 files changed, 74 insertions(+), 54 deletions(-)

commit 48b1fe948c4424cbc7e68ecca32b0ddac0f7410b
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jul 15 12:19:24 2010 -0400

    Bug 623810 – Message serialization bug

    https://bugzilla.gnome.org/show_bug.cgi?id=623810

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c              |  2 +-
 gio/tests/gdbus-serialization.c | 40
 ++++++++++++++++++++++++++++------------
 2 files changed, 29 insertions(+), 13 deletions(-)

commit 44cf10adceb673deefebe348350268d9436f3fab
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Thu Jul 15 17:05:00 2010 +0200

    Add annotations for g_variant_new_strv and g_variant_get_strv

 glib/gvariant.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 58f1977151a78bd48e0277cefe6a767595ecb095
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Thu Jul 15 15:32:45 2010 +0200

    Add annotations to g_dbus_proxy_new_sync

 gio/gdbusproxy.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 63938335703ea3608f7b0901d1cdcec4855e8880
Author: Aron Xu <aronxu@gnome.org>
Date:   Thu Jul 15 17:56:14 2010 +0800

    Update Simplified Chinese translation.

 po/zh_CN.po | 1418
 +++++++++++++++++++++++++++++++----------------------------
 1 file changed, 738 insertions(+), 680 deletions(-)

commit 2bd201c8b21a5daa666169701b1c12dd3b151a26
Author: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
Date:   Thu Jul 15 02:10:43 2010 +0300

    po: Updated Romanian translation

 po/ro.po | 1796
 +++++++++++++++++---------------------------------------------
 1 file changed, 490 insertions(+), 1306 deletions(-)

commit d581a7faf1080e67fd6c731cd04beefbc77cf41a
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Wed Jul 14 23:06:18 2010 +0200

    [i18n] Updated German translation

 po/de.po | 1567
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 822 insertions(+), 745 deletions(-)

commit baf383d1b14ebcd217a587fe8c78202fc5e9193b
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 14 14:46:12 2010 -0400

    GDBusConnection: copy object and subtree virtual tables

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 58
 +++++++++++++++++++++++++++++++++++++++++++--------
 gio/gdbusconnection.h | 19 ++++++++---------
 2 files changed, 58 insertions(+), 19 deletions(-)

commit 914b046226c762bae578e17f7ed9a0fdf058045a
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 14 12:37:32 2010 -0400

    GDBusConnection: Fix up g_dbus_connection_close()

    ... so it is async, cancelable and returns an error. Also provide a
    synchronous version.

    This is an API/ABI break but it is expected that only very few
    applications use this API.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gdbusconnection.c               | 151
 ++++++++++++++++++++++++++++++++----
 gio/gdbusconnection.h               |  14 +++-
 gio/gio.symbols                     |   2 +
 gio/tests/gdbus-connection.c        |   8 +-
 5 files changed, 158 insertions(+), 19 deletions(-)

commit 14e37ef7967a2da594faaab24fe2c9c117cf099f
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 14 11:39:22 2010 -0400

    GDBusMessage: Make endianness for D-Bus messages match host byte order

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 497edd8b40edfbf85e029a9300e0d99ac6f08630
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 14 11:14:58 2010 -0400

    Bug 623815 – Don't check sender for GDBusProxy objects where name
    is not set

    Based on a patch from Peng Huang <shawn.p.huang@gmail.com>, thanks!

    https://bugzilla.gnome.org/show_bug.cgi?id=623815

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c       |  4 +--
 gio/tests/gdbus-peer.c | 72
 ++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 69 insertions(+), 7 deletions(-)

commit 8a2e7d371fdf55c23c61be908761431509cd3a7c
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 18 14:19:57 2010 -0400

    Make default-quit not apply if register=FALSE

    Callers who are using g_application_unregistered_try_new are
    likely wanting to continue doing something else if _register()
    fails.  Change the semantics so that passing register=FALSE
    unsets default-quit as well.  This means that a later _register()
    call will send Activate but continue the process.

    https://bugzilla.gnome.org/show_bug.cgi?id=622005

 gio/gapplication.c     | 23 ++++++++++++++++++-----
 gio/gdbusapplication.c |  9 +++++++--
 2 files changed, 25 insertions(+), 7 deletions(-)

commit 7e0121dfe0a9377cd35c9d4b90c477b96d56c43f
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Wed Jul 14 19:28:34 2010 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1717
 +++++++++++++++++++++++++++++++----------------------------
 po/zh_TW.po | 1700
 ++++++++++++++++++++++++++++++----------------------------
 2 files changed, 1803 insertions(+), 1614 deletions(-)

commit 463edcb045b287cd0df8f44322e133ae32fe5e87
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Wed Jul 14 11:56:41 2010 +0300

    docs: xi:include the annotation glossary to kill warnings and make
    them work

 docs/reference/gio/gio-docs.xml          | 3 +++
 docs/reference/glib/glib-docs.sgml       | 2 ++
 docs/reference/gobject/gobject-docs.sgml | 2 ++
 3 files changed, 7 insertions(+)

commit de56aca0b5cf2eaf99ba501dd3d55b750c752433
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Jul 13 05:05:48 2010 +0200

    Clean autotools config a bit

    New requirements:
    autoconf >= 2.62
    automake >= 1.10
    libtool >= 2.2

 Makefile.am  |  4 +---
 autogen.sh   | 10 +++-------
 configure.ac | 14 +++++---------
 3 files changed, 9 insertions(+), 19 deletions(-)

commit 3a8ab85d967c3b0fa1b7d702d640df61020d92a0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 13 11:59:16 2010 -0400

    rename configure.in to configure.ac

 README.win32                 | 2 +-
 config.h.win32.in            | 2 +-
 configure.in => configure.ac | 4 ++--
 glib/gmem.c                  | 2 +-
 glib/gthread.c               | 4 ++--
 m4macros/glib-gettext.m4     | 4 ++--
 6 files changed, 9 insertions(+), 9 deletions(-)

commit 0bb7cc3fceb9223845d2032c9d381f2e15c5285d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 13 09:24:16 2010 -0400

    Remove GUnixVolumeMonitor, GUnixMount from docs

    David says that they're supposed to be private.

 docs/reference/gio/Makefile.am            |  3 +++
 docs/reference/gio/gio-sections.txt       | 15 -----------
 docs/reference/glib/tmpl/glib-unused.sgml | 40
 ------------------------------
 docs/reference/glib/tmpl/version.sgml     | 41
 +++++++++++++++++++++++++++++++
 4 files changed, 44 insertions(+), 55 deletions(-)

commit 5344c22810c01a0cd708562be563f81f15f517f3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 12 18:30:14 2010 -0400

    gio/ docs fixup

 docs/reference/gio/Makefile.am            |  5 +++
 docs/reference/gio/gio-sections.txt       | 32 ++---------------
 docs/reference/glib/tmpl/glib-unused.sgml | 59
 ++++++++++++++++---------------
 gio/fen/fen-kernel.c                      |  6 ++--
 gio/fen/fen-node.c                        |  8 ++---
 gio/fen/libfen_la-fen-dump.loT            |  7 ----
 gio/gappinfo.h                            |  1 -
 gio/gbufferedoutputstream.h               |  1 -
 gio/gconverterinputstream.h               |  1 -
 gio/gconverteroutputstream.h              |  1 -
 gio/gdatainputstream.h                    |  1 -
 gio/gdataoutputstream.h                   |  1 -
 gio/gfileenumerator.h                     |  1 -
 gio/gkeyfilesettingsbackend.c             |  2 +-
 gio/gsettings.c                           |  8 ++---
 gio/gsettings.h                           |  2 +-
 gio/gsettingsschema.c                     |  2 +-
 gio/gunixconnection.c                     |  2 +-
 gio/gvolumemonitor.h                      |  1 -
 19 files changed, 53 insertions(+), 88 deletions(-)

commit adde752ec5a600a71f8c9acf1be032ab5f5de46c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 12 17:46:17 2010 -0400

    More docs fixes

      Remove the g*alias.h from the ignore lists

      Remove other old files from ignore lists

      Clean up gobject docs

 docs/reference/gio/Makefile.am     | 2 --
 docs/reference/glib/Makefile.am    | 6 ------
 docs/reference/gobject/Makefile.am | 2 +-
 gobject/gparamspecs.h              | 2 ++
 gobject/gvaluecollector.h          | 7 ++++++-
 5 files changed, 9 insertions(+), 10 deletions(-)

commit de5afbc7cc262b677e00704e1bf3562f45dbede0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 12 17:32:44 2010 -0400

    More gtk-doc cleanups for glib/

 docs/reference/glib/Makefile.am           |  2 ++
 docs/reference/glib/glib-sections.txt     |  6 ++++++
 docs/reference/glib/tmpl/glib-unused.sgml |  9 ---------
 docs/reference/glib/tmpl/i18n.sgml        | 10 ++++++++++
 4 files changed, 18 insertions(+), 9 deletions(-)

commit 92df91590fd4b1ca4921cc3f89421928b857e75c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 12 17:31:03 2010 -0400

    trivial whitespace fix

 glib/gmem.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7791fce38a1a7d292e94d3bb5a0ffb8d6da9333d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 12 16:37:56 2010 -0400

    Fix some glib docs warnings

    Remove some symbols from glib-sections.txt that gtk-doc has no idea
    about.

    Add proper callback typedefs for GTester (gtk-doc dislikes inline
    function types).

    Fix some other minor issues.

 docs/reference/glib/glib-sections.txt   |  9 +++--
 docs/reference/glib/tmpl/fileutils.sgml |  6 ++++
 docs/reference/glib/tmpl/testing.sgml   | 35 ++++++++++++++++---
 glib/gstdio.c                           |  8 +++++
 glib/gstrfuncs.c                        | 10 +++---
 glib/gtestutils.c                       | 62
 ++++++++++++++++++++++++---------
 glib/gtestutils.h                       | 30 +++++++++-------
 glib/gutf8.c                            |  2 +-
 glib/gvariant.c                         |  2 +-
 9 files changed, 121 insertions(+), 43 deletions(-)

commit dc8cf867c805095b7acd7842b731c6eff32ee18f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 12 07:50:36 2010 -0400

    Don't return FALSE when a pointer is expected

    Pointed out in bug 623956

 glib/gvariant-parser.c        | 8 ++++----
 glib/tests/markup-subparser.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 90285b0643d23059bdf28aff4afd337f91a556a6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 12 15:30:26 2010 -0400

    Bump gtk-doc dependency to 1.15

    Use the multiple source-directory support contained therein.

 configure.in                    | 2 +-
 docs/reference/glib/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 83d67bf2e79e1cb984e398b218cedd0b1e50bd1f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 11 21:08:42 2010 -0400

    move glibconfig.h to glib/

 .gitignore                                         |  2 --
 Makefile.am                                        | 18 +-------------
 configure.in                                       | 14 +++++------
 gio/abicheck.sh                                    |  2 +-
 glib/.gitignore                                    |  4 +++
 glib/Makefile.am                                   | 29
 +++++++++++++++++++---
 glib/abicheck.sh                                   |  2 +-
 .../glibconfig.h.win32.in                          |  0
 gobject/abicheck.sh                                |  2 +-
 9 files changed, 41 insertions(+), 32 deletions(-)

commit 29a6fb68b7d73648992ea55d17cc54fc1261fe29
Author: Colin Walters <walters@verbum.org>
Date:   Fri Jun 25 09:37:06 2010 -0400

    Don't attempt to build dtrace support on OS X

    Apparently the OS X "dtrace" command is different from the Sun one,
    which is what Linux supports.  Since I don't have access to an OS X
    machine to test build patches on, simply disable dtrace on OS X
    for now.

    https://bugzilla.gnome.org/show_bug.cgi?id=622697

 configure.in | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

commit e5834637eb4a336393989dc68d7615abf153335f
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   Mon Jul 12 16:19:45 2010 +0300

    Added Kazakh translation for Kazakh

 po/LINGUAS |    1 +
 po/kk.po   | 2813
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 2814 insertions(+)

commit 82318fbda3441615e11fe5fa25144d27096286fe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 11 12:51:54 2010 -0400

    bump the version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit be247c24c6b532b2acfe52424ffdcc79bdc48bf4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 11 12:51:33 2010 -0400

    This is glib 2.25.11

 NEWS                                            |  1 +
 docs/reference/glib/tmpl/atomic_operations.sgml | 42
 ++++++++++++++-----------
 docs/reference/glib/tmpl/bookmarkfile.sgml      | 16 +++++-----
 docs/reference/glib/tmpl/conversions.sgml       | 22 -------------
 docs/reference/glib/tmpl/numerical.sgml         | 10 ++++++
 5 files changed, 43 insertions(+), 48 deletions(-)

commit 8c36b1ad2bf03141cd1aacbb0fa9d19ba7c72c17
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Jul 11 15:51:04 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 1387
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 732 insertions(+), 655 deletions(-)

commit 358b9d6ac750c3d35b259df2b59353d004a32ace
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 23:53:36 2010 -0400

    Move main loop docs inline

 docs/reference/glib/tmpl/main.sgml | 288 +++++-----------------------
 glib/gmain.c                       |  76 ++++++++
 glib/gmain.h                       | 374
 +++++++++++++++++++++++++++++--------
 glib/gpoll.h                       |  30 ++-
 4 files changed, 448 insertions(+), 320 deletions(-)

commit ab8cb652c83d77471b2e0f56b270d4ef8704dae9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 22:30:04 2010 -0400

    Fix a typo

 docs/reference/glib/tmpl/bookmarkfile.sgml | 102
 ++++-------------------------
 glib/gatomic.c                             |   2 +-
 glib/gbookmarkfile.c                       |  44 +++++++++++++
 glib/gbookmarkfile.h                       |  30 ++++++++-
 glib/tests/Makefile.am                     |   3 +-
 glib/tests/bookmarks.xbel                  |  23 +++++++
 6 files changed, 110 insertions(+), 94 deletions(-)

commit e57291efdc53a2f7732e39730ef91dab266ade83
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 21:51:34 2010 -0400

    Move docs for atomic operations inline

 docs/reference/glib/tmpl/atomic_operations.sgml | 136
 ++++++------------------
 glib/gatomic.c                                  | 133
 ++++++++++++++++++++++-
 glib/gatomic.h                                  |  22 +++-
 3 files changed, 183 insertions(+), 108 deletions(-)

commit e8503fddee2c5426a98d066c5a24afd9ae7ade50
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 21:26:28 2010 -0400

    Move GAsyncQueue docs inline

 docs/reference/glib/tmpl/async_queues.sgml | 55
 ++----------------------------
 glib/gasyncqueue.c                         | 53
 ++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+), 53 deletions(-)

commit db0c58062dd208982521dfc99b0da59a5bd4327b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 10 23:28:30 2010 -0400

    NEWS for the pending release

 NEWS | 152
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 152 insertions(+)

commit d2fe46b476a183168d57581c41b763b9e8f03c7c
Author: Colin Walters <walters@verbum.org>
Date:   Sat Jul 10 20:09:34 2010 -0400

    Annotate all custom GIO GSource using g_source_set_name

    Naming the sources allows easier debugging with e.g. SystemTap
    probes.

    https://bugzilla.gnome.org/show_bug.cgi?id=620536

 gio/gsocket.c                | 1 +
 gio/gunixinputstream.c       | 1 +
 gio/gunixoutputstream.c      | 1 +
 gio/inotify/inotify-kernel.c | 1 +
 glib/giounix.c               | 1 +
 glib/giowin32.c              | 1 +
 6 files changed, 6 insertions(+)

commit 7568bb66f996bdf94da6963399333236f73adb1b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 20:00:49 2010 -0400

    use proper feature test macros for isnan

    Problem pointed out in bug 581354

 glib/tests/strfuncs.c | 1 +
 1 file changed, 1 insertion(+)

commit d9dc570c593a29be62b3d85cef43f92f52dcce8e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 19:46:40 2010 -0400

    Add ACLOCAL_AMFLAGS to Makefile.am

    Patch by Vincent Untz, bug 570036

 Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 3dca4ce434f30a5c72f773c5c0437d4ac92413ab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 19:16:27 2010 -0400

    One more dubious return

 gio/gsocketlistener.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d44ae96cb1566447ce44034b8b9290badacb6fe4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 10 17:54:08 2010 -0400

    GVariant: fix some more leaks in error cases

 glib/gvariant-parser.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 90c49a0654f4aa556f3d2ccb7c91b6e480eef1ae
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 10 17:45:51 2010 -0400

    move the g_free() from the last commit down

    It is needed for the error message...

 glib/gvariant-parser.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 29babb9fc8baf2327b2e0781fbf07bed76a4cbde
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 18:04:22 2010 -0400

    Minor cleanup

 gio/glocalfileenumerator.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit f8e22856c643bfccaf03db6f84738126cff374d0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 17:57:45 2010 -0400

    Add a GAppInfoCreate flag for startup-notification

    Using this flag, it will be possible to launch apps without a
    desktop file, in the same way that gdk_spawn_... lets you do.

    Requested in bug 599223.

 gio/gdesktopappinfo.c | 2 +-
 gio/gioenums.h        | 8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

commit 5f1490e94aa0fcfe72b92377dc7efae4b3300a6c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 17:21:32 2010 -0400

    Fix sparse warnings

    These were listed in bug 623955

 gio/gconverteroutputstream.c | 2 +-
 gio/gdbusauthmechanismsha1.c | 4 ++--
 gio/gdbusconnection.c        | 2 +-
 gio/gfileinfo.c              | 4 ++--
 gio/ginetsocketaddress.c     | 2 +-
 gio/gmount.c                 | 6 +++---
 gio/gschema-compile.c        | 6 +++---
 gio/gunixfdmessage.c         | 2 +-
 gio/gunixresolver.c          | 9 ++++++---
 9 files changed, 20 insertions(+), 17 deletions(-)

commit 41f4aba2d22ceec7f8dd0916aae99fb3eea5699f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 17:12:31 2010 -0400

    Chain up in g_settings_finalize

    Requested in bug 623954

 gio/gsettings.c | 2 ++
 1 file changed, 2 insertions(+)

commit 61027a8b5ce75c68f2a6e84134ea88af1f8a5556
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 10 17:06:41 2010 -0400

    Turn on glibc malloc checking features for make check

 Makefile.decl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 48a04f9303294304db5693acb1e4421cfdd4464a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jul 10 16:56:51 2010 -0400

    GVariant: don't leak during type inferencing

 glib/gvariant-parser.c | 1 +
 1 file changed, 1 insertion(+)

commit b1c4dec264eeff92fc9afd112c6b6fc4fd74c087
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Jul 10 11:03:52 2010 +0200

    Updated Spanish translation

 po/es.po | 1179
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 588 insertions(+), 591 deletions(-)

commit 551461b23a52f4c49633352e538184cd8cb250ad
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 9 08:33:27 2010 -0400

    Fix some leaks in the inotify code

    Also avoid creating some unused objects. Patch by Carlos Garnacho,
    bug 613057

 gio/inotify/inotify-helper.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

commit c24a29e13bcf2c36140c5d8467a9258402c347aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 9 07:24:08 2010 -0400

    Adapt to recent MLS changes

    g_file_query_info returns non-NULL more often now.

 gio/gfile.c             | 7 ++++---
 gio/tests/live-g-file.c | 5 +----
 2 files changed, 5 insertions(+), 7 deletions(-)

commit e302e919e5c8329ae293f0ba5921c6dfce289beb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 19:52:36 2010 -0400

    Remove dead links from the IEEE float documentation

 docs/reference/glib/tmpl/numerical.sgml | 46
 ++++++++++++---------------------
 1 file changed, 16 insertions(+), 30 deletions(-)

commit 0c357a2d149080c4e4fefb29436c03e7879ce437
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 19:37:31 2010 -0400

    Improve the long description of GString

    It is more similar to a Java StringBuffer than to a C string.
    See bug 612439.

 docs/reference/glib/tmpl/strings.sgml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 2504ec988e0288b8616907b43e489c74d49a08f0
Author: Will Thompson <will@willthompson.co.uk>
Date:   Thu Jul 8 19:30:53 2010 -0400

    Document NULL shortcut to g_value_array_insert etc.

    You can pass a NULL GValue * to any of g_value_array_insert,
    _prepend or
    _append to add a new, uninitialized value. This is a very useful
    shortcut, and it should be documented rather than left languishing
    in a
    comment in the implementation.

    Fixes Gnome bug #552363.

 gobject/gvaluearray.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit cc44ef148c578ec87f71c155549a5d352a30bb3a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 19:26:25 2010 -0400

    Improve some GNode docs

    See bug 561248

 glib/gnode.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit ac342a8d0c4e50b5983631808ca6b7dc7508e17d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 19:23:42 2010 -0400

    Expand the g_sprintf docs

    As requested in bug 576833.

 glib/gprintf.c | 31 ++++++++++++++++++-------------
 1 file changed, 18 insertions(+), 13 deletions(-)

commit 7cfa23b17785218463274854753494b5e49584c8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 19:03:18 2010 -0400

    Add a note about l10n to the g_strconcat docs

    As requested in bug 576854

 glib/gstrfuncs.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit e0017f24c58ba756c186026e42d59ed3015e80ce
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 17:38:47 2010 -0400

    Move uri conversion functions to a better place in the docs

    g_filename_from/to_uri are better off in the section called
    "URI functions". Requested in bug 582227.

 docs/reference/glib/glib-sections.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3c6304a332c8da9275569c9820660e859b4ac160
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Thu Jul 8 23:25:01 2010 +0200

    Updated Spanish translation

 po/es.po | 176
 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 109 insertions(+), 67 deletions(-)

commit e0f2d0f28e3074ba839f997a15997a2d878d2f76
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 16:32:08 2010 -0400

    Comment out an unused function

    it is causing warnings, so it needs to die...bug 622600

 glib/pcre/pcre_ucp_searchfuncs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 448ac22e80bcd947d255616a9147dbce5c85e120
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 16:24:44 2010 -0400

    Fix an oversight in the previous commit

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 33f7f6a7485189ef15c953c74dac276e762b3bb9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 16:22:16 2010 -0400

    Use glib infrastructure to parse debug flags

    Proposed in bug 623319

 gio/gdbusprivate.c | 41 +++++++++++++++--------------------------
 1 file changed, 15 insertions(+), 26 deletions(-)

commit 29850d03e8456ff7b05d7bd6fc9eba9895b50ff6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 15:18:05 2010 -0400

    Be a bit more picky when deciding if mounts are internal

    Complained about in bug 623780.

 gio/gunixmounts.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 349aab2bd4cb221b99d98802339bde8d0adc178d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 15:11:24 2010 -0400

    A little more correctness in formatting pids

    Requested in bug 623772

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fcddf9c2a1e0c76843af91d6d530194bcb7d8791
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 14:58:33 2010 -0400

    Escape arguments when putting together a cmdline

    See bug 623770

 gio/gdesktopappinfo.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 607fec50e65eef943bc5dd6254bf0b331b682cca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 14:38:55 2010 -0400

    xinclude the dtd

    Keeping two copies in sync manually gets tiresome.

 gio/gsettings.c | 65
 +--------------------------------------------------------
 1 file changed, 1 insertion(+), 64 deletions(-)

commit c7816005f99c5293b608c70d4b341d410cb5aea4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 14:29:17 2010 -0400

    Update the dtd to match the implementation

    See bug 623720

 gio/gschema.dtd | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

commit 71e7b5800a310ae7424f3eec4ebcdcc1becaa6e7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 14:19:08 2010 -0400

    Handle MLS selinux policy better

    Following the behaviour of ls here, we should return at least the
    file name, if we can't get any other information about a file. To
    do this, handle EACCESS on stat() calls.

    Patch by Tomas Bzatek, see bug 623692

 gio/glocalfileinfo.c | 76
 +++++++++++++++++++++++++++++++++-------------------
 1 file changed, 48 insertions(+), 28 deletions(-)

commit 1e8656fe24e846f3bb0533e96afb1e0b46a37b49
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 14:12:28 2010 -0400

    Check for zlib using pkg-config

    Based on a patch by Felipe Contreras, see bug 623473.

 configure.in | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 5adf506d5bb8b0d13ded7fd8480d17d27e7ae31e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 8 11:33:21 2010 -0400

    Use proper variables

    And also make sure we don't read garbage.

 gio/tests/gsettings.c | 35 ++++++++++++++++++++++++++---------
 1 file changed, 26 insertions(+), 9 deletions(-)

commit a00fa340cb776976b14fd1b9476d1488a75d8377
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 22:00:43 2010 -0400

    base64: remove unnecessary assertions

    Allow base64 encoding/decoding of empty strings.

 glib/gbase64.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit ddb919245c33f23c45d69b9e2aea85458d8d67f2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 7 20:36:28 2010 -0400

    forgotten file

 glib/tests/keyfiletest.ini | 4 ++++
 1 file changed, 4 insertions(+)

commit 5b946e0504952a472cea1ef95df0967e8a4a7b47
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 19:53:22 2010 -0400

    gio/: fully remove gioalias hacks

 gio/.gitignore                         |   2 -
 gio/Makefile.am                        |  16 +---
 gio/fen/fen-dump.c                     |   1 -
 gio/fen/fen-helper.c                   |   1 -
 gio/fen/fen-kernel.c                   |   1 -
 gio/fen/fen-node.c                     |   1 -
 gio/fen/gfendirectorymonitor.c         |   3 -
 gio/fen/gfenfilemonitor.c              |   3 -
 gio/gappinfo.c                         |   5 --
 gio/gapplication.c                     |   4 -
 gio/gasynchelper.c                     |   1 -
 gio/gasyncinitable.c                   |   4 -
 gio/gasyncresult.c                     |   4 -
 gio/gbufferedinputstream.c             |   5 --
 gio/gbufferedoutputstream.c            |   5 --
 gio/gcancellable.c                     |   4 -
 gio/gcharsetconverter.c                |   4 -
 gio/gcontenttype.c                     |   4 -
 gio/gconverter.c                       |   4 -
 gio/gconverterinputstream.c            |   4 -
 gio/gconverteroutputstream.c           |   4 -
 gio/gcredentials.c                     |   4 -
 gio/gdatainputstream.c                 |   5 --
 gio/gdataoutputstream.c                |   6 +-
 gio/gdbusaddress.c                     |   4 -
 gio/gdbusapplication.c                 |   1 -
 gio/gdbusauth.c                        |   4 -
 gio/gdbusauthmechanism.c               |   4 -
 gio/gdbusauthmechanismanon.c           |   4 -
 gio/gdbusauthmechanismexternal.c       |   4 -
 gio/gdbusauthmechanismsha1.c           |   4 -
 gio/gdbusauthobserver.c                |   6 --
 gio/gdbusconnection.c                  |   4 -
 gio/gdbuserror.c                       |   4 -
 gio/gdbusintrospection.c               |   4 -
 gio/gdbusmessage.c                     |   5 --
 gio/gdbusmethodinvocation.c            |   4 -
 gio/gdbusnameowning.c                  |   4 -
 gio/gdbusnamewatching.c                |   4 -
 gio/gdbusprivate.c                     |   4 -
 gio/gdbusproxy.c                       |   4 -
 gio/gdbusserver.c                      |   4 -
 gio/gdbusutils.c                       |   4 -
 gio/gdelayedsettingsbackend.c          |   1 -
 gio/gdesktopappinfo.c                  |   4 -
 gio/gdrive.c                           |   4 -
 gio/gdummyfile.c                       |   1 -
 gio/gemblem.c                          |   4 -
 gio/gemblemedicon.c                    |   4 -
 gio/gfile.c                            |   4 -
 gio/gfileattribute.c                   |   4 -
 gio/gfiledescriptorbased.c             |   5 --
 gio/gfileenumerator.c                  |   4 -
 gio/gfileicon.c                        |   4 -
 gio/gfileinfo.c                        |   4 -
 gio/gfileinputstream.c                 |   5 --
 gio/gfileiostream.c                    |   4 -
 gio/gfilemonitor.c                     |   4 -
 gio/gfilenamecompleter.c               |   4 -
 gio/gfileoutputstream.c                |   4 -
 gio/gfilterinputstream.c               |   4 -
 gio/gfilteroutputstream.c              |   4 -
 gio/gicon.c                            |   5 --
 gio/ginetaddress.c                     |   4 -
 gio/ginetsocketaddress.c               |   4 -
 gio/ginitable.c                        |   4 -
 gio/ginputstream.c                     |   4 -
 gio/gio.symbols                        |   4 +-
 gio/gioenumtypes.c.template            |   6 --
 gio/gioerror.c                         |   4 -
 gio/giomodule.c                        |   4 -
 gio/gioscheduler.c                     |   5 --
 gio/giostream.c                        |   4 -
 gio/gkeyfilesettingsbackend.c          |   4 -
 gio/gloadableicon.c                    |   4 -
 gio/glocaldirectorymonitor.c           |   4 -
 gio/glocalfile.c                       |   1 -
 gio/glocalfileenumerator.c             |   3 -
 gio/glocalfileinfo.c                   |   1 -
 gio/glocalfileinputstream.c            |   1 -
 gio/glocalfileiostream.c               |   1 -
 gio/glocalfilemonitor.c                |   4 -
 gio/glocalfileoutputstream.c           |   1 -
 gio/glocalvfs.c                        |   1 -
 gio/gmemoryinputstream.c               |   4 -
 gio/gmemoryoutputstream.c              |   4 -
 gio/gmemorysettingsbackend.c           |   1 -
 gio/gmount.c                           |   4 -
 gio/gmountoperation.c                  |   4 -
 gio/gnativevolumemonitor.c             |   4 -
 gio/gnetworkaddress.c                  |   4 -
 gio/gnetworkservice.c                  |   4 -
 gio/gnullapplication.c                 |   1 -
 gio/gnullsettingsbackend.c             |   1 -
 gio/goutputstream.c                    |   4 -
 gio/gpermission.c                      |   4 -
 gio/gpollfilemonitor.c                 |   1 -
 gio/gresolver.c                        |   4 -
 gio/gseekable.c                        |   4 -
 gio/gsettings.c                        |   3 -
 gio/gsettingsbackend.c                 |   4 -
 gio/gsimpleasyncresult.c               |   4 -
 gio/gsimplepermission.c                |   4 -
 gio/gsocket.c                          |   4 -
 gio/gsocketaddress.c                   |   4 -
 gio/gsocketaddressenumerator.c         |   4 -
 gio/gsocketclient.c                    |   4 -
 gio/gsocketconnectable.c               |   4 -
 gio/gsocketconnection.c                |   4 -
 gio/gsocketcontrolmessage.c            |   4 -
 gio/gsocketinputstream.c               |   4 -
 gio/gsocketlistener.c                  |   4 -
 gio/gsocketoutputstream.c              |   4 -
 gio/gsocketservice.c                   |   4 -
 gio/gsrvtarget.c                       |   4 -
 gio/gtcpconnection.c                   |   5 --
 gio/gthemedicon.c                      |   4 -
 gio/gthreadedresolver.c                |   4 -
 gio/gthreadedsocketservice.c           |   4 -
 gio/gunionvolumemonitor.c              |   5 --
 gio/gunixconnection.c                  |   4 -
 gio/gunixcredentialsmessage.c          |   5 --
 gio/gunixfdlist.c                      |   4 -
 gio/gunixfdmessage.c                   |   4 -
 gio/gunixinputstream.c                 |   4 -
 gio/gunixmount.c                       |   1 -
 gio/gunixmounts.c                      |   4 -
 gio/gunixoutputstream.c                |   4 -
 gio/gunixresolver.c                    |   4 -
 gio/gunixsocketaddress.c               |   4 -
 gio/gunixvolume.c                      |   1 -
 gio/gunixvolumemonitor.c               |   1 -
 gio/gvfs.c                             |   4 -
 gio/gvolume.c                          |   6 --
 gio/gvolumemonitor.c                   |   5 --
 gio/gwin32appinfo.c                    |   1 -
 gio/gwin32inputstream.c                |   4 -
 gio/gwin32mount.c                      |   1 -
 gio/gwin32outputstream.c               |   4 -
 gio/gwin32resolver.c                   |   4 -
 gio/gwin32volumemonitor.c              |   1 -
 gio/gzlibcompressor.c                  |   4 -
 gio/gzlibdecompressor.c                |   4 -
 gio/inotify/ginotifydirectorymonitor.c |   3 -
 gio/inotify/ginotifyfilemonitor.c      |   3 -
 gio/inotify/inotify-helper.c           |   3 -
 gio/makefile.msc                       |   8 --
 gio/makegioalias.pl                    | 139
 ---------------------------------
 gio/pltcheck.sh                        |  21 -----
 gio/win32/gwinhttpfile.c               |   2 -
 gio/win32/gwinhttpfileinputstream.c    |   2 -
 gio/win32/gwinhttpfileoutputstream.c   |   2 -
 gio/win32/gwinhttpvfs.c                |   2 -
 153 files changed, 3 insertions(+), 709 deletions(-)

commit 0fc50fa5f7424d21ff43a79838fe76ff73ad869b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 19:40:48 2010 -0400

    gobject/: fully remove gobjectalias hacks

 gobject/.gitignore          |   2 -
 gobject/Makefile.am         |  18 ++----
 gobject/gbinding.c          |   4 --
 gobject/gboxed.c            |   4 --
 gobject/gclosure.c          |   4 --
 gobject/genums.c            |   4 --
 gobject/gobject.c           |   6 --
 gobject/gobject.symbols     |   4 +-
 gobject/gparam.c            |   4 --
 gobject/gparamspecs.c       |   4 --
 gobject/gsignal.c           |   4 --
 gobject/gsourceclosure.c    |   4 --
 gobject/gtype.c             |   4 --
 gobject/gtypemodule.c       |   5 --
 gobject/gtypeplugin.c       |   4 --
 gobject/gvalue.c            |   4 --
 gobject/gvaluearray.c       |   4 --
 gobject/gvaluetransform.c   |   1 -
 gobject/gvaluetypes.c       |   4 --
 gobject/makefile.msc.in     |   8 ---
 gobject/makegobjectalias.pl | 139
 --------------------------------------------
 gobject/pltcheck.sh         |  19 ------
 22 files changed, 5 insertions(+), 249 deletions(-)

commit 2e53e50244b85d7e0b5358d617fabc15e8ec8bd7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 19:34:03 2010 -0400

    glib/: fully remove galias hacks

 glib/.gitignore               |   2 -
 glib/Makefile.am              |  18 +-----
 glib/garray.c                 |   4 --
 glib/gasyncqueue.c            |   4 --
 glib/gatomic-gcc.c            |   4 --
 glib/gatomic.c                |   4 --
 glib/gbacktrace.c             |   4 --
 glib/gbase64.c                |   5 --
 glib/gbitlock.c               |   4 --
 glib/gbookmarkfile.c          |   4 --
 glib/gbuffer.c                |   1 -
 glib/gcache.c                 |   4 --
 glib/gchecksum.c              |   4 --
 glib/gcompletion.c            |   4 --
 glib/gconvert.c               |   4 --
 glib/gdataset.c               |   4 --
 glib/gdate.c                  |   5 --
 glib/gdir.c                   |   4 --
 glib/gerror.c                 |   4 --
 glib/gfileutils.c             |   4 --
 glib/ghash.c                  |   4 --
 glib/ghook.c                  |   4 --
 glib/ghostutils.c             |   4 --
 glib/giochannel.c             |   4 --
 glib/giounix.c                |   4 --
 glib/giowin32.c               |   4 --
 glib/gkeyfile.c               |   4 --
 glib/glib.py                  |   5 +-
 glib/glib.symbols             |   4 +-
 glib/glist.c                  |   4 --
 glib/gmain.c                  |   4 --
 glib/gmappedfile.c            |   4 --
 glib/gmarkup.c                |   4 --
 glib/gmem.c                   |   4 --
 glib/gmessages.c              |  16 -----
 glib/gnode.c                  |   4 --
 glib/gnulib/g-gnulib.h        |   1 -
 glib/goption.c                |   5 --
 glib/gpattern.c               |   4 --
 glib/gpoll.c                  |   4 --
 glib/gprimes.c                |   4 --
 glib/gprintf.c                |   4 --
 glib/gqsort.c                 |   4 --
 glib/gqueue.c                 |   4 --
 glib/grand.c                  |   5 --
 glib/gregex.c                 |   4 --
 glib/grel.c                   |   4 --
 glib/gscanner.c               |   4 --
 glib/gsequence.c              |   5 --
 glib/gshell.c                 |   4 --
 glib/gslice.c                 |   4 --
 glib/gslist.c                 |   4 --
 glib/gspawn-win32.c           |   4 --
 glib/gspawn.c                 |   4 --
 glib/gstdio.c                 |   4 --
 glib/gstrfuncs.c              |   5 --
 glib/gstring.c                |   4 --
 glib/gtestutils.c             |   4 --
 glib/gthread.c                |   5 --
 glib/gthreadpool.c            |   4 --
 glib/gtimer.c                 |   4 --
 glib/gtree.c                  |   6 --
 glib/gunibreak.c              |   4 --
 glib/gunicollate.c            |   5 --
 glib/gunidecomp.c             |   4 --
 glib/guniprop.c               |   5 --
 glib/gurifuncs.c              |   4 --
 glib/gutf8.c                  |   5 --
 glib/gutils.c                 |   4 --
 glib/gvariant-core.c          |   4 --
 glib/gvariant-parser.c        |   5 --
 glib/gvariant-serialiser.c    |   4 --
 glib/gvariant.c               |   4 --
 glib/gvarianttype.c           |   4 --
 glib/gvarianttypeinfo.c       |   4 --
 glib/gwin32.c                 |   4 --
 glib/makefile.msc.in          |   8 ---
 glib/makegalias.pl            | 138
 ------------------------------------------
 glib/pcre/pcre.h              |   1 -
 glib/pltcheck.sh              |  27 ---------
 glib/update-pcre/memory.patch |   3 +-
 glib/win_iconv.c              |   1 -
 82 files changed, 6 insertions(+), 508 deletions(-)

commit c243905c95e012eb295ee5487087043ce4a4027b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 16:52:23 2010 -0400

    .gitignore updates

 gio/tests/.gitignore  | 17 +++++++++++------
 glib/tests/.gitignore |  6 ++++++
 2 files changed, 17 insertions(+), 6 deletions(-)

commit abc65b233ccb14366fbd07bbed3ee3cacd5e79ea
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 7 16:35:17 2010 -0400

    GDBus: Hide instance structures for classes we don't want to be
    subclassed

    This also allows us to nuke the priv-> pointers and save a couple of
    indirections.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauthobserver.c     |  21 ++-
 gio/gdbusauthobserver.h     |  20 --
 gio/gdbusconnection.c       | 435
 ++++++++++++++++++++++----------------------
 gio/gdbusconnection.h       |  21 ---
 gio/gdbusmessage.c          | 166 +++++++++--------
 gio/gdbusmessage.h          |  21 ---
 gio/gdbusmethodinvocation.c |  81 +++++----
 gio/gdbusmethodinvocation.h |  21 ---
 gio/gdbusserver.c           | 186 ++++++++++---------
 gio/gdbusserver.h           |  21 ---
 10 files changed, 461 insertions(+), 532 deletions(-)

commit 32ce3e051af4260a65478acf738e82dec6a864bd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 16:32:46 2010 -0400

    fix trivial copy/paste error in bytestring docs

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d9e90c3894739bdfa642e35bdea866c6d0ab7ef2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 10:37:16 2010 -0400

    GVariant: improve bytestring support

     - add G_VARIANT_TYPE_BYTESTRING, _BYTESTRING_ARRAY, _STRING_ARRAY

     - remove g_variant_{new,get}_byte_array functions

     - add g_variant_{new,get,dup}_bytestring{,_array} functions

     - remove undocumented support for deserialising arrays of objectpaths
       or signature strngs using g_variant_get_strv()

     - add and document new format strings '^ay', '^&ay', '^aay' and
     '^a&ay'

     - update GApplication to use the new API

     - update GSettings binding code to use the new API

     - add tests

 docs/reference/glib/glib-sections.txt     |   9 +-
 docs/reference/glib/gvariant-varargs.xml  | 184 +++++++++---
 docs/reference/glib/tmpl/glib-unused.sgml |  40 +--
 gio/gapplication.c                        |  32 +-
 gio/gsettings-mapping.c                   |   8 +-
 gio/tests/gsettings.c                     |   2 +-
 gio/tests/testapp.c                       |   4 +-
 glib/glib.symbols                         |   8 +-
 glib/gvariant-parser.c                    | 179 ++++++++++-
 glib/gvariant.c                           | 477
 ++++++++++++++++++++++--------
 glib/gvariant.h                           |  14 +-
 glib/gvarianttype.h                       |  25 ++
 glib/tests/gvariant.c                     | 129 ++++++--
 13 files changed, 836 insertions(+), 275 deletions(-)

commit 2d2a321a4b5943d408cabe54e3da48360ae7e4ac
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 7 15:57:37 2010 -0400

    GDBus: Hide class structures for classes we don't want to be
    subclassed

    E.g. move these C structures out of public header files and into their
    respective C files. Also nuke padding since this is no longer needed.

    This leaves only GDBusProxy as an extendable type.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |  9 ++-------
 gio/gdbusauth.h                     |  4 ----
 gio/gdbusauthmechanism.h            |  4 ----
 gio/gdbusauthmechanismanon.h        |  4 ----
 gio/gdbusauthmechanismexternal.h    |  4 ----
 gio/gdbusauthmechanismsha1.h        |  4 ----
 gio/gdbusauthobserver.c             | 21 +++++++++++++++++++++
 gio/gdbusauthobserver.h             | 27 ---------------------------
 gio/gdbusconnection.c               | 20 ++++++++++++++++++++
 gio/gdbusconnection.h               | 24 ------------------------
 gio/gdbusmessage.c                  | 14 ++++++++++++++
 gio/gdbusmessage.h                  | 17 -----------------
 gio/gdbusmethodinvocation.c         | 13 +++++++++++++
 gio/gdbusmethodinvocation.h         | 17 -----------------
 gio/gdbusserver.c                   | 19 +++++++++++++++++++
 gio/gdbusserver.h                   | 23 -----------------------
 16 files changed, 89 insertions(+), 135 deletions(-)

commit 62a1ccf526e7b23ac39cdf7251eac5706eef3f57
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 7 15:00:23 2010 -0400

    Bug 618882 – No way to ensure that a message is sent

    Add g_dbus_connection_flush{_finish,sync}().

    https://bugzilla.gnome.org/show_bug.cgi?id=618882

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt       |   3 +
 gio/gdbusconnection.c                     | 157
 +++++++++++++++++++++++++++++-
 gio/gdbusconnection.h                     |  14 +++
 gio/gdbusprivate.c                        |  81 +++++++++++++++
 gio/gdbusprivate.h                        |   5 +
 gio/gio.symbols                           |   3 +
 gio/tests/Makefile.am                     |   4 +
 gio/tests/gdbus-connection-flush-helper.c |  60 ++++++++++++
 gio/tests/gdbus-connection.c              |  82 ++++++++++++++++
 9 files changed, 406 insertions(+), 3 deletions(-)

commit d4f35ae9ed230ccc04b8f50067a0d0dda95b7d5f
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Wed Jul 7 18:25:19 2010 +0200

    Updated Galician translations

 po/gl.po | 386
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 218 insertions(+), 168 deletions(-)

commit acc9bb24033cdb93be6b9c00012f86ac56904cc9
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 7 11:02:08 2010 -0400

    GDBus: Only rewrite serial number if g_dbus_message_get_serial()
    returns 0

    While this a dangerous thing to allow (collissions, reply_serial not
    matching up etc.), the added flexibility makes this a good trade-off -
    for example, with this feature, it's now a lot easier to build message
    routers.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c        | 27 ++++++++++++++++++++-------
 gio/tests/gdbus-connection.c |  3 +++
 2 files changed, 23 insertions(+), 7 deletions(-)

commit 746721293b8963fbefd98bdba7ef0645b6940052
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 10:56:57 2010 -0400

    GSettings: warn if use the 'memory' backend

    but only if it was not explicitly selected.

 gio/gsettingsbackend.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 6ae4d31e75b123bcf4caf867f36cc59570a37a57
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jul 7 10:46:13 2010 -0400

    trivial GSettings docs fix

 docs/reference/glib/tmpl/glib-unused.sgml | 52
 +++++++++++++++++++++++++++++++
 gio/gsettings.c                           |  8 ++---
 2 files changed, 56 insertions(+), 4 deletions(-)

commit a38fed1b43cb688001c6343cc30022013c0ea25b
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 7 09:50:44 2010 -0400

    Bug 623538 – GDBusProxy::g-properties-changed emission for corner
    cases

    Also emit GDBusProxy::g-properties-changed when dropping (when the
    name owner vanishes) or populating (when loading properties) the
    property cache.

    https://bugzilla.gnome.org/show_bug.cgi?id=623538

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 52
 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 48 insertions(+), 4 deletions(-)

commit ea0607438bfb1fb2ae7cd22757ecdb53946a00b0
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jul 7 09:05:42 2010 -0400

    Bug 623537 – GDBusProxy has weird checking on NameOwnerChanged

    Remove misleading (and always true) check on the name that the
    NameOwnerChanged signal is for.

    https://bugzilla.gnome.org/show_bug.cgi?id=623537

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit 99670eaccc05a4d5e9725614550e1da75cda45c0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 7 07:37:42 2010 -0400

    Fix some errors in translated strings

    gettext can't handle macros, so we have to use literal format
    specifiers, unfortunately.

 gio/gdbusaddress.c | 3 ++-
 gio/gdbusmessage.c | 9 ++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

commit bad9a3718e84549de23b56eed980f97a0b9c8b7e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 7 01:00:58 2010 -0400

    Clear the buffer initially

 gio/tests/converter-stream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 46a80b38c394619300c6ff95fffb1b56115e610b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jul 7 00:38:27 2010 -0400

    Don't forget to dist keyfiletest.ini

 glib/tests/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit be247379f003bbb619a71f351e53fba14eec7a15
Author: Danielle Madeley <danielle.madeley@collabora.co.uk>
Date:   Wed Jul 7 12:47:54 2010 +1000

    Include sys/wait.h for WEXITSTATUS()

 gio/gdbusaddress.c | 1 +
 1 file changed, 1 insertion(+)

commit aab6d9ed1c54f215838da7939a97e33d46d94036
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jul 6 16:57:28 2010 -0400

    GDBus: Handle autolaunching on UNIX/Freedesktop OSes

    Also add a 'address' G_DBUS_DEBUG option that will print out useful
    debug information such as

      GDBus-debug:Address: In g_dbus_address_get_for_bus_sync() for bus
      type `session'
      GDBus-debug:Address: env var DBUS_SESSION_BUS_ADDRESS is not set
      GDBus-debug:Address: env var DBUS_SYSTEM_BUS_ADDRESS is not set
      GDBus-debug:Address: env var DBUS_STARTER_BUS_TYPE is not set
      GDBus-debug:Address: Running `dbus-launch
      --autolaunch=05e508961149264c9b750a4c494aa6f7 --binary-syntax
      --close-stderr' to get bus address (possibly autolaunching)
      GDBus-debug:Address: dbus-launch output:
        0000: 75 6e 69 78  3a 61 62 73  74 72 61 63  74 3d 2f 74
        unix:abstract=/t
        0010: 6d 70 2f 64  62 75 73 2d  77 42 41 6f  4b 59 49 52
        mp/dbus-wBAoKYIR
        0020: 7a 75 2c 67  75 69 64 3d  30 34 30 64  31 33 66 33
        zu,guid=040d13f3
        0030: 30 61 30 62  35 32 63 32  30 66 36 32  63 34 31 63
        0a0b52c20f62c41c
        0040: 30 30 30 30  35 30 38 64  00 d2 38 00  00 01 00 40
        0000508d..8....@
        0050: 05 00 00 00  00                                       .....
      GDBus-debug:Address: dbus-launch stderr output:
      14542: Autolaunch enabled (using X11).
      14542: --exit-with-session automatically enabled
      14542: Connected to X11 display ':0.0'
      14542: === Parent dbus-launch continues
      14542: Waiting for babysitter's intermediate parent
      14542: Reading address from bus
      14542: Reading PID from daemon
      14542: Saving x11 address
      14542: Created window 88080385
      14542: session file:
      /root/.dbus/session-bus/05e508961149264c9b750a4c494aa6f7-0
      14542: dbus-launch exiting
      GDBus-debug:Address: Returning address
      `unix:abstract=/tmp/dbus-wBAoKYIRzu,guid=040d13f30a0b52c20f62c41c0000508d'
      for bus type `session'

    and

      GDBus-debug:Address: In g_dbus_address_get_for_bus_sync() for bus
      type `session'
      GDBus-debug:Address: env var DBUS_SESSION_BUS_ADDRESS is not set
      GDBus-debug:Address: env var DBUS_SYSTEM_BUS_ADDRESS is not set
      GDBus-debug:Address: env var DBUS_STARTER_BUS_TYPE is not set
      GDBus-debug:Address: Running `dbus-launch
      --autolaunch=05e508961149264c9b750a4c494aa6f7 --binary-syntax
      --close-stderr' to get bus address (possibly autolaunching)
      GDBus-debug:Address: dbus-launch output:
        0000: 75 6e 69 78  3a 61 62 73  74 72 61 63  74 3d 2f 74
        unix:abstract=/t
        0010: 6d 70 2f 64  62 75 73 2d  77 42 41 6f  4b 59 49 52
        mp/dbus-wBAoKYIR
        0020: 7a 75 2c 67  75 69 64 3d  30 34 30 64  31 33 66 33
        zu,guid=040d13f3
        0030: 30 61 30 62  35 32 63 32  30 66 36 32  63 34 31 63
        0a0b52c20f62c41c
        0040: 30 30 30 30  35 30 38 64  00 d2 38 00  00 01 00 40
        0000508d..8....@
        0050: 05 00 00 00  00                                       .....
      GDBus-debug:Address: dbus-launch stderr output:
      14549: Autolaunch enabled (using X11).
      14549: --exit-with-session automatically enabled
      14549: Connected to X11 display ':0.0'
      14549: dbus-daemon is already running. Returning existing
      parameters.
      14549: dbus-launch exiting
      GDBus-debug:Address: Returning address
      `unix:abstract=/tmp/dbus-wBAoKYIRzu,guid=040d13f30a0b52c20f62c41c0000508d'
      for bus type `session'

    Note that things work exactly like libdbus, e.g. from the
    dbus-launch(1) man page:

      Whenever an autolaunch occurs, the application that had to start a
      new bus will be in its own little world; it can effectively end up
      starting a whole new session if it tries to use a lot of bus
      services. This can be suboptimal or even totally broken, depending
      on the app and what it tries to do.

      [...]

      You can always avoid autolaunch by manually setting
      DBUS_SESSION_BUS_ADDRESS. Autolaunch happens because the default
      address if none is set is "autolaunch:", so if any other address is
      set there will be no autolaunch. You can however include autolaunch
      in an explicit session bus address as a fallback, for example
      DBUS_SESSION_BUS_ADDRESS="something:,autolaunch:" - in that case if
      the first address doesn't work, processes will autolaunch. (The bus
      address variable contains a comma-separated list of addresses to
      try.)

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/overview.xml |   4 +
 gio/gdbusaddress.c              | 255
 +++++++++++++++++++++++++++++++++++++---
 gio/gdbusconnection.c           |  20 +---
 gio/gdbusmessage.c              |  21 +---
 gio/gdbusprivate.c              |  52 ++++++++
 gio/gdbusprivate.h              |   6 +
 6 files changed, 310 insertions(+), 48 deletions(-)

commit ef296440630ca01a8bc0a9dc58722bf1d6dc1ab7
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jul 6 13:56:35 2010 -0400

    GDBus: Properly handle empty address strings

    Changes this error

     DBUS_SESSION_BUS_ADDRESS= \
     gdbus introspect --session \
                      --dest org.freedesktop.DBus \
                      --object-path /org/freedesktop/DBus
     **
     GLib-GIO:ERROR:gdbusaddress.c:913:g_dbus_address_get_stream_sync:
     assertion failed: (last_error != NULL)
     Aborted (core dumped)

    to

     DBUS_SESSION_BUS_ADDRESS= \
     gdbus introspect --session \
                      --dest org.freedesktop.DBus \
                      --object-path /org/freedesktop/DBus
     Error connecting: The given address is empty

    which is much more preferable.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusaddress.c          | 13 ++++++++++++-
 gio/tests/gdbus-addresses.c | 14 ++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

commit f0b6cbb13951549b9e17ee0366fc5be3e4b69f2f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 6 07:43:19 2010 -0400

    Fix problems with the keyfile test

    We must set XDG_DATA_HOME early on, and we must clear error
    before using it.

 glib/tests/keyfile.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit eea9d343ccd059b8d53009d64197ff343338c05f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 6 00:01:40 2010 -0400

    Improve keyfile test coverage

 glib/tests/keyfile.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

commit ee89ed241c5b386bf8d846f4496e46059d0a686b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jul 6 00:01:15 2010 -0400

    Define SRCDIR

 glib/tests/Makefile.am | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit a3bda1acfc5f3e8f4f672cc81f388ffabf1e7b58
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 23:43:47 2010 -0400

    Add some GDir tests

 glib/tests/Makefile.am |  3 +++
 glib/tests/dir.c       | 53
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+)

commit c5fcd21e33282676f9bfbaa71ca5fb7d54e30057
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 23:30:10 2010 -0400

    Improve uri test coverage

 glib/tests/uri.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit b720732059eec5d87d86d784f25c57a2132475a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 23:06:50 2010 -0400

    Move uri tests to the test framework

 glib/tests/Makefile.am               |   3 +
 tests/uri-test.c => glib/tests/uri.c | 268
 ++++++++---------------------------
 tests/Makefile.am                    |   4 +-
 3 files changed, 66 insertions(+), 209 deletions(-)

commit 123ba622d3511509f7cce9459ab48db8a0d28c3d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 22:40:46 2010 -0400

    Add more list tests

 glib/tests/list.c  | 142
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/slist.c | 122 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 264 insertions(+)

commit 953962d783e46c8aa17301ec733fa54483e3fab7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 22:40:26 2010 -0400

    Move tree tests to the test framework

 glib/tests/Makefile.am                 |   3 +
 tests/tree-test.c => glib/tests/tree.c | 106
 +++++++++++++++++++++++----------
 tests/Makefile.am                      |   2 -
 3 files changed, 76 insertions(+), 35 deletions(-)

commit 5123bc69e75418c9192a94d802fca76b18444233
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 21:06:28 2010 -0400

    Move slist tests to the test framework

 glib/tests/Makefile.am |   3 +
 glib/tests/slist.c     | 179 +++++++++++++++++++++++++++++++++++++++++++
 tests/Makefile.am      |   3 -
 tests/slist-test.c     | 204
 -------------------------------------------------
 4 files changed, 182 insertions(+), 207 deletions(-)

commit b61fd45ac3305ec20b156bbeeed5494b9a445c8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 20:51:29 2010 -0400

    Move list tests to the test framework

 glib/tests/Makefile.am |   3 +
 glib/tests/list.c      | 179 +++++++++++++++++++++++++++++++++++++++++
 tests/list-test.c      | 212
 -------------------------------------------------
 3 files changed, 182 insertions(+), 212 deletions(-)

commit c2997efb6688255c885f4bf1f4248bee2c8f6e11
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 19:49:03 2010 -0400

    Add some more checks to the binding tests

 gobject/tests/binding.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

commit 4e97c96654d2c0f637ea20b22f0d70aa12c7cfab
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 19:48:04 2010 -0400

    Remove a redundant branch

    Since the name has been interned already at pspec creation time,
    we can just call g_intern_string().

 gobject/gbinding.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

commit af299df44e067b949a039c56b5081558288f41aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 19:45:55 2010 -0400

    Remove cases of ;;

 gio/gdbusauthobserver.c | 2 +-
 gio/gdbusmessage.c      | 2 +-
 glib/gshell.c           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit fb0242240495772bbb1a8ef2b88cacb60b090242
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 19:33:05 2010 -0400

    Test charset conversion with fallbacks

 gio/tests/converter-stream.c | 51
 ++++++++++++++++++++++++++++++++++++++------
 1 file changed, 44 insertions(+), 7 deletions(-)

commit 05a865344ba1f9a14524d87e2ab2a1cb4fdbc9cb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 15:54:11 2010 -0400

    Fix the get_property implementation for GSettings::schema

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 20dca5935c186654e8e13904d2c5c67a9622ec8e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 15:53:58 2010 -0400

    Add several more settings tests

 gio/tests/gsettings.c              | 234
 ++++++++++++++++++++++++++++++++++++-
 gio/tests/org.gtk.test.gschema.xml |  23 ++++
 2 files changed, 255 insertions(+), 2 deletions(-)

commit 958f15013c29e0f8313a9eb7e2e75efa324c484c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 15:53:21 2010 -0400

    Small documentation addition

 gio/gsettingsbackend.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c6e8d0ada84185f807b8101cada91030bd91e48a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 12:08:29 2010 -0400

    Fix icons test to compile

 gio/tests/icons.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 81a0a268133ba5cb58a4e7893d4eaf039bc21b4c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 12:08:17 2010 -0400

    Test enum mapping

 gio/tests/gsettings.c              | 47
 +++++++++++++++++++++++++++++++++++++-
 gio/tests/org.gtk.test.gschema.xml |  3 +++
 2 files changed, 49 insertions(+), 1 deletion(-)

commit 2764b75d5373d03b46d04fdfa3cc64becf274294
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 11:38:31 2010 -0400

    More stream tests

 gio/tests/buffered-input-stream.c  | 35
 +++++++++++++++++++++++++++++++++++
 gio/tests/buffered-output-stream.c | 35
 +++++++++++++++++++++++++++++++++++
 gio/tests/converter-stream.c       |  2 ++
 3 files changed, 72 insertions(+)

commit 10b2606af5c350c30bbd52977b688d8a2dd106b4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 11:13:36 2010 -0400

    Add more checks

 gio/tests/buffered-input-stream.c | 105
 +++++++++++++++++++++++++++++---------
 1 file changed, 82 insertions(+), 23 deletions(-)

commit aec652677bed2d82201b0234e04e95f164e20770
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 11:12:49 2010 -0400

    Add some buffered output tests

 gio/tests/Makefile.am              |  4 ++
 gio/tests/buffered-output-stream.c | 86
 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+)

commit 4ab9b708c0d8c901a2e4137c9ac03fc2414336af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 08:28:54 2010 -0400

    Add some more tests for the buffered read code

 gio/tests/buffered-input-stream.c | 46
 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

commit 1ba87d1a0e8a6377d3f49731e8412fedfc7a8725
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 07:40:38 2010 -0400

    Trivial cleanups

 gio/gbufferedinputstream.c | 585
 +++++++++++++++++++++++----------------------
 1 file changed, 299 insertions(+), 286 deletions(-)

commit 48881bad99807381afcb55137eced4d7c50ac5a7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jul 5 13:10:28 2010 -0400

    Add --disable-Bsymbolic flag

 configure.in | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

commit dea042b85514f997df0f77006cdcca063486097b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 03:09:36 2010 -0400

    Misc test additions

 gio/tests/Makefile.am              |  7 +++++
 gio/tests/appinfo.c                | 27 ++++++++++++++--
 gio/tests/contenttype.c            |  4 +++
 gio/tests/file.c                   | 64
 ++++++++++++++++++++++++++++++++++++++
 gio/tests/gsettings.c              | 56 +++++++++++++++++++++++++++++++++
 gio/tests/live-g-file.c            |  9 ++++++
 gio/tests/org.gtk.test.gschema.xml |  3 ++
 7 files changed, 168 insertions(+), 2 deletions(-)

commit 211210c1ce15e19e424d12b14ab79f8dfb0379d4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 02:36:48 2010 -0400

    Fix a typo

 gio/gappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c53c701e53afcd15cadc7d727ceea303b915dd44
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 5 00:56:12 2010 -0400

    Cleanups

 gio/gcontenttype.c              | 674
 ++++++++++++++++++++--------------------
 gio/gcontenttype.h              |  36 +--
 gio/tests/appinfo-test2.desktop |  11 +
 3 files changed, 372 insertions(+), 349 deletions(-)

commit f90eb144d404c76180ba7facf32b4c9751aed4b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 4 23:42:07 2010 -0400

    Add some more tests

 gio/tests/contenttype.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 74fbd3296d259b04e4fe17e4ebd358827ae07e1f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 4 23:41:40 2010 -0400

    Add some GAppLaunchContext tests

 gio/tests/appinfo.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

commit c915c68b6be1cdd21ec79b4a1f715d38976cdd86
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 4 23:40:42 2010 -0400

    Add the new tests to the correct variable

 gio/tests/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 14db75381ee7f21f6b62401177cfaa9d6891ddf4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 4 22:27:01 2010 -0400

    Add some contenttype tests

 gio/tests/Makefile.am   |   4 ++
 gio/tests/contenttype.c | 113
 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 117 insertions(+)

commit fb120b5d8717f9798be28cdc7bab768f7ca0309a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 4 20:50:50 2010 -0400

    Add a test for skipping

 gio/tests/buffered-input-stream.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 9788c4c7e6a9eaa8f7d7a999d201767470a75d85
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 4 20:49:29 2010 -0400

    Add some CharsetConverter tests

 gio/tests/converter-stream.c | 56
 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 52 insertions(+), 4 deletions(-)

commit 26e29cb360e81e4530c218a6ddea339759f078bd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 3 13:43:25 2010 -0400

    Move charset conversion tests to the test framework

 glib/tests/Makefile.am                       | 23 +++++++++++++----------
 tests/convert-test.c => glib/tests/convert.c | 12 +++++++-----
 tests/Makefile.am                            |  2 --
 3 files changed, 20 insertions(+), 17 deletions(-)

commit 401fa10445e092e4f1d7e29dd2af128012d32981
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 3 12:49:46 2010 -0400

    Add some more appinfo tests

 gio/tests/appinfo-test-gnome.desktop    |   6 ++
 gio/tests/appinfo-test-notgnome.desktop |   6 ++
 gio/tests/appinfo-test.desktop          |   8 +-
 gio/tests/appinfo.c                     | 129
 ++++++++++++++++++++++++++++++++
 4 files changed, 148 insertions(+), 1 deletion(-)

commit 7a5df4265d444f0a4b0687bed63d6adf3b143953
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Jul 4 13:49:55 2010 +0200

    Updated Spanish translation

 po/es.po | 60
 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 31 insertions(+), 29 deletions(-)

commit 7cc15910bec9b652ef9610a8c9cc9d96c2185936
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Jul 3 13:48:56 2010 +0200

    Updated Spanish translation

 po/es.po | 133
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 74 insertions(+), 59 deletions(-)

commit 9fd133946059c315eeb4a445c1f46dd636b33106
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 3 03:31:24 2010 -0400

    Move GZlibConverter tests

 gio/tests/converter-stream.c | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

commit aaba9276f7cceca9f6493b5a4a7f81e4f9fa75a5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jul 3 03:31:07 2010 -0400

    Add tests for GIcon

 gio/tests/Makefile.am |   4 ++
 gio/tests/icons.c     | 121
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+)

commit 37c4fcb36abedfd7896ef70eaec75bba33a0331f
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 2 17:09:55 2010 -0400

    GDBus: Rename "Introspection XML" section to "D-Bus Introspection
    Data"

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusintrospection.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a16128655fed37a3975fdb8ea0d31ef0fa29e882
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 2 11:35:43 2010 -0400

    Bug 623407 - g_keyfile_settings_backend_new crash

    The keyfile backend forms paths like this:

      prefix + group_name + '/' + keyname

    If the prefix is '/apps/yelp/' and the group name is '/' then
    this means
    that we end up with a key name of (for example):

      '/apps/yelp/' + '/' + '/' + 'font-adjustment'

    = '/apps/yelp///font-adjustment'

    which is obviously not a valid key name.

    This patch rejects group names starting or ending with '/' or
    containing
    '//' and also rejects keys containing '/'.  This should make it
    impossible for invalid keys to be formed.

 gio/gkeyfilesettingsbackend.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit a941660873ad4db42f1799e444d46d95721af840
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 2 11:14:28 2010 -0400

    Bug 623402 - schema compiler reports wrong line

    Don't reuse the GMarkupParseContext in order to avoid inaccurate line
    number reports.  Fix a memory leak, too.

 gio/gschema-compile.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 7a44a2d223f3ad8c6e142b94725ab55cf3f84173
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jul 2 11:11:45 2010 -0400

    Bug 623401 - schema compiler: process enums first

    Process *.enum.xml before any *.gschema.xml files to ensure that all
    enums have been defined.

 gio/gschema-compile.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 1ca6a4687a9b66e0060f16583ac21ef94f24a38e
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 2 09:40:59 2010 -0400

    GDBus: Hold lock when printing debug messages

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauth.c | 4 ++++
 1 file changed, 4 insertions(+)

commit c29ad239284608c2a03043f9dc16f3ca1a28542e
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jul 2 09:34:03 2010 -0400

    GDBus: make G_DBUS_DEBUG=authentication work again

    This was inadvertently removed in this commit

    http://git.gnome.org/browse/glib/commit/?id=1d22b64843c83631bcd0e5255930f3a4e990961e

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/overview.xml | 2 +-
 gio/gdbusauth.c                 | 4 ----
 2 files changed, 1 insertion(+), 5 deletions(-)

commit cd8361f4ddd0e88fb7e3941a0d0fd12fe538c093
Author: Tor Lillqvist <tml@iki.fi>
Date:   Fri Jul 2 15:31:24 2010 +0300

    Update headers being installed in the Visual Studio project

    It sucks to have the lists of public headers duplicated in the
    Makefile.am files and the glib.vsprops file. But it isn't exactly easy
    to work around all the weirdness in autotools, Visual Studio, and bat
    files either to do it another way.

 build/win32/vs9/glib.vsprops | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

commit 5383c7110f793bfa749370cec9d708a6a5018751
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 1 18:58:56 2010 -0400

    Bug 622124 - implement flags for GSettings

    Add a <flags> tag to the schema file format and a flags=''
    attribute to
    go along with.  Add some extra test cases for those.

    Add new g_settings_{get,set}_flags() calls and support binding to
    GParamSpecFlags properties.  Add test cases.

 docs/reference/gio/gio-sections.txt                |   2 +
 gio/gio.symbols                                    |   2 +
 gio/gschema-compile.c                              | 161
 +++++++++++++----
 gio/gsettings-mapping.c                            |  65 ++++++-
 gio/gsettings.c                                    | 194
 ++++++++++++++++++++-
 gio/gsettings.h                                    |   5 +
 gio/strinfo.c                                      |   8 +
 gio/tests/Makefile.am                              |   7 +
 gio/tests/gschema-compile.c                        |  11 +-
 gio/tests/gsettings.c                              |  80 ++++++++-
 gio/tests/org.gtk.test.gschema.xml                 |   9 +
 .../enum-with-repeated-nick.gschema.xml            |  10 ++
 .../enum-with-repeated-value.gschema.xml           |  10 ++
 .../schema-tests/flags-aliased-default.gschema.xml |  19 ++
 .../schema-tests/flags-bad-default.gschema.xml     |  16 ++
 .../flags-more-than-one-bit.gschema.xml            |  10 ++
 .../schema-tests/flags-with-enum-attr.gschema.xml  |  14 ++
 .../schema-tests/flags-with-enum-tag.gschema.xml   |  14 ++
 gio/tests/testenum.h                               |   9 +
 19 files changed, 594 insertions(+), 52 deletions(-)

commit 69fe50c116541afbfeaf9ad78b030f53e9906604
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Thu Jul 1 21:39:37 2010 +0200

    Updated Spanish translation

 po/es.po | 42 +++++++++++++++++++++++++-----------------
 1 file changed, 25 insertions(+), 17 deletions(-)

commit bd8d837f573a784a234740bd49f9103cdf70c268
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jul 1 14:37:16 2010 -0400

    Bug 620913 – More control with G_DBUS_DEBUG

    This commit adds the following G_DBUS_DEBUG flags

     - emission
     - incoming
     - call
     - signal
     - payload

    https://bugzilla.gnome.org/show_bug.cgi?id=620913

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/overview.xml |  20 ++++++
 gio/gdbusconnection.c           | 141
 ++++++++++++++++++++++++++++++++++++++--
 gio/gdbusprivate.c              |  86 ++++++++++++++++++++++--
 gio/gdbusprivate.h              |   7 ++
 4 files changed, 242 insertions(+), 12 deletions(-)

commit 51ed44e7add7ca1d3b764f13df2cf80ebe32c3f9
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jul 1 13:06:56 2010 -0400

    GDBus: Fix bug in child enumeration

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c    |  3 +--
 gio/tests/gdbus-export.c | 28 +++++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 3 deletions(-)

commit 93bf09a9e7a7d35d50802faf4b271ca4267e49cb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jul 1 12:55:04 2010 -0400

    Use "unix:" instead of tcp in test for now...

    Temporarily avoids the issue reported in bug #623306.

 gio/tests/gdbus-peer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 21d7ce97c38bafa1fdbedc19fe9634bc3333e7c6
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jun 30 16:36:47 2010 -0400

    GDBus: plug some memory leaks

    These fixes makes udisks-daemon from udisks' gdbus-port branch, see

     http://cgit.freedesktop.org/udisks/log/?h=gdbus-port

    handle 200 add/remove uevents generated by e.g.

     #!/bin/bash
     DEV=mmcblk0p1
     for n in `seq 200` ; do
         udevadm trigger --sysname-match=$DEV --action=remove
         udevadm trigger --sysname-match=$DEV --action=add
         echo foo $n
     done

    without any substantial leaks.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauth.c    | 14 +++++++++-----
 gio/gdbusmessage.c | 52
 +++++++++++++++++++++++++++++++++++++---------------
 gio/gdbusprivate.c |  1 +
 3 files changed, 47 insertions(+), 20 deletions(-)

commit 40d5da99d6d07bdbb6267f6b5625ac2ca93e85ea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 30 13:27:38 2010 -0400

    GSettings: accept <flags> as an alias for <enum>

    until we have proper support for flags...

 gio/gschema-compile.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit e73b631f6eb8d2f1ff9c65fe2c258dc2b6083c73
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 30 13:12:19 2010 -0400

    gsettings.m4: add support for enums

 m4macros/gsettings.m4 | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

commit 87fa3a6e75132f68edfbd457632332c52c2048ba
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jun 30 12:19:28 2010 -0400

    GDBus: Take a reference to the GDBusInterfaceInfo object

    Things will still work fine if the GDBusInterfaceInfo is allocated
    statically because if so the ref_count will be -1.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c  | 4 +++-
 gio/tests/gdbus-peer.c | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 5ac272297584d2c1f73815e842108b6704f862a9
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jun 30 12:10:00 2010 -0400

    GDBus: Rename `introspection_data' parameter to `interface_info'

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 64
 +++++++++++++++++++++++++--------------------------
 gio/gdbusconnection.h |  2 +-
 2 files changed, 33 insertions(+), 33 deletions(-)

commit 038d03cd08bdb42e6f83f6041ec01732476e900b
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jun 30 11:43:42 2010 -0400

    Bug 623142 – Ensure ::new-connection runs before processing D-Bus
    messages

    Without this guarantee, peer-to-peer connections are not very
    useful. However, with this guarantee it's possible to export objects
    in a handler for the GDBusServer::new-connection signal.

    There are two caveats with this patch

     - it won't work on message bus connections
     - we don't queue up messages to be written

    that can be addresses later if needed.

    https://bugzilla.gnome.org/show_bug.cgi?id=623142

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gdbusconnection.c               |  30 +++++-
 gio/gdbusconnection.h               |   1 +
 gio/gdbusprivate.c                  |  84 +++++++++++++++-
 gio/gdbusprivate.h                  |   4 +
 gio/gdbusserver.c                   |  11 ++-
 gio/gio.symbols                     |   1 +
 gio/gioenums.h                      |   5 +-
 gio/tests/gdbus-peer.c              | 187
 ++++++++++++++++++++++++++++++++++++
 9 files changed, 316 insertions(+), 8 deletions(-)

commit 137ae2413c9d25edd3f886fd25b6353c8170f7ba
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 30 10:02:45 2010 -0400

    g_settings_list_keys() -> _list_items()

    This function returns children as well.

 docs/reference/gio/gio-sections.txt |  2 +-
 gio/gio.symbols                     |  2 +-
 gio/gsettings-tool.c                |  4 ++--
 gio/gsettings.c                     | 12 ++++++++----
 gio/gsettings.h                     |  2 +-
 5 files changed, 13 insertions(+), 9 deletions(-)

commit 3628b0b4992e9d1c915c38f8844eab9ba7a7112f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 29 20:24:39 2010 -0400

    GSettings: add <override>, tests, modify output

    Add <override> tag, more tests, and actually output the results
    of these
    new tags to the gschemas.compiled file.

 gio/gschema-compile.c                              | 149
 +++++++++++++++++++--
 gio/tests/Makefile.am                              |   8 ++
 gio/tests/gschema-compile.c                        |  10 +-
 .../extend-and-shadow-indirect.gschema.xml         |  17 +++
 .../schema-tests/extend-and-shadow.gschema.xml     |  17 +++
 .../schema-tests/override-missing.gschema.xml      |  11 ++
 .../schema-tests/override-range-error.gschema.xml  |  12 ++
 .../schema-tests/override-then-key.gschema.xml     |  15 +++
 gio/tests/schema-tests/override-twice.gschema.xml  |  12 ++
 .../schema-tests/override-type-error.gschema.xml   |  11 ++
 gio/tests/schema-tests/override.gschema.xml        |  34 +++++
 11 files changed, 284 insertions(+), 12 deletions(-)

commit 900a756e8fb70bcd6e725f0696d8094a7208f905
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 29 14:41:04 2010 -0400

    GSettings: new <schema> tags 'extends', 'list-of'

    Add support for extends='' and list-of='' tags to the <schema>
    element.
    The attributes are parsed and some sanity-checking is done but
    currently
    nothing happens as a result.

    Add some tests.

 gio/gschema-compile.c                              | 124
 +++++++++++++++++++--
 gio/tests/Makefile.am                              |  10 +-
 gio/tests/gschema-compile.c                        |  11 +-
 gio/tests/schema-tests/extend-missing.gschema.xml  |   3 +
 gio/tests/schema-tests/extend-nonlist.gschema.xml  |   4 +
 gio/tests/schema-tests/extend-self.gschema.xml     |   3 +
 .../extend-wrong-list-indirect.gschema.xml         |   6 +
 .../schema-tests/extend-wrong-list.gschema.xml     |   5 +
 gio/tests/schema-tests/extending.gschema.xml       |  21 ++++
 .../schema-tests/key-in-list-indirect.gschema.xml  |   8 ++
 gio/tests/schema-tests/key-in-list.gschema.xml     |   6 +
 gio/tests/schema-tests/list-of-missing.gschema.xml |   3 +
 12 files changed, 192 insertions(+), 12 deletions(-)

commit 101bfec676feb2c3d414fff11a31541318d87896
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 29 14:40:44 2010 -0400

    glib-compile-schemas: fix small leak

 gio/gschema-compile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6d4ade4cf0d6ed64ce59f3db4f270be08a4478fd
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jun 29 15:19:56 2010 -0400

    Bug 623143 – Never require non-closed connections

    There's a couple of places in GDBus where it's a programming error
    (e.g. we'll assert or spew via e.g. g_warning()) to use the API on a
    closed connection.  This approach can never work since a
    GDBusConnection can be closed at any point in time outside of
    programmer control.

    Just change the code to return a run-time error (e.g. return
    G_IO_ERROR_CLOSED when sending messages, invoking methods) or silently
    accept the request (e.g.  exporting objects, registering for signals)
    without doing anything.

    Note that a GDBusConnection object is always useless after being
    closed - e.g.  there's no way to "reopen" a connection - the user will
    have to create a new object and use that instead.

    https://bugzilla.gnome.org/show_bug.cgi?id=623143

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c   | 5 -----
 gio/gdbusnameowning.c   | 5 ++---
 gio/gdbusnamewatching.c | 4 ++--
 3 files changed, 4 insertions(+), 10 deletions(-)

commit ab6b6c68c5b060057fd2953435c090b4d53fe93c
Author: Milan Bouchet-Valat <nalimilan@club.fr>
Date:   Mon Jun 21 17:09:07 2010 +0200

    Bug 622294 - More annotations for GVariant

    This adds annotations to all functions in gvariant.c. A few docs
    were also fixed (wrong parameter names, missing mention that NULL
    is allowed).

 glib/gvariant.c | 69
 ++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 39 insertions(+), 30 deletions(-)

commit 0a2c9d67da311d8e276dd3835db56c59d8be2cab
Author: Colin Walters <walters@verbum.org>
Date:   Mon Jun 28 17:16:44 2010 -0400

    [autogen.sh] Support NOCONFIGURE (from gnome-common)

    gnome-common's autogen.sh uses NOCONFIGURE to skip running configure.
    Support that in addition to the current AUTOGEN_SUBDIR_MODE.

 autogen.sh | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit c649615f17dc9d9644d742c48bf34c9000aa41b7
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon Jun 28 20:57:31 2010 +0200

    Updated Spanish translation

 po/es.po | 220
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 120 insertions(+), 100 deletions(-)

commit 8a7d9906983c23c9bafa8b10c1fd089fcd7989f8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 28 14:06:32 2010 -0400

    Bug 622565 - compile-schemas fails when no schemas

    Neutralise and deprecate the --uninstall option in the schema compiler
    and remove it from gsettings.m4.

    Make the new default behaviour a compromise between the old default
    behaviour and the previous --uninstall option:

      - never return a failure code if no schema files are found

      - issue a warning instead

      - remove the gschemas.compiled file if it exists

 gio/gschema-compile.c | 19 +++++++++----------
 m4macros/gsettings.m4 |  2 +-
 2 files changed, 10 insertions(+), 11 deletions(-)

commit ab1111b8bbb7a6057248658013eb23d80f4721cf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 28 13:58:25 2010 -0400

    GSettings: peek instead of ref/unref enum class

    We only ever do the enum mapping for the property binding in the case
    that a GParamSpecEnum exists and in that case the class is already
    referenced by the GParamSpec.  Use peek instead of ref/unref and add a
    clarifying note.

 gio/gsettings-mapping.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 168cfc592283c992d6a6803a91528f87cec2d902
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 28 10:18:45 2010 -0400

    Bug 622127 - GSettings extended key validation

    First shot at attempting to implement this in a reasonable way.  See
    the bug for more information about why this is needed.

 docs/reference/gio/gio-sections.txt |  4 ++
 gio/gio.symbols                     |  1 +
 gio/gsettings.c                     | 83
 ++++++++++++++++++++++++++++++++++++-
 gio/gsettings.h                     | 27 ++++++++++++
 4 files changed, 114 insertions(+), 1 deletion(-)

commit aad7176c622b78dbdef5c8d1e0fa51b9612198ad
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Mon Jun 28 12:28:47 2010 +0300

    Updated Hebrew translation.

 po/he.po | 1280
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 657 insertions(+), 623 deletions(-)

commit eb454a1cb4d8ea16f6b5575c69e58c2877ea350e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 27 19:27:04 2010 -0400

    Fix a alloc/free mismatch

    Pointed out in http://bugzilla.redhat.com/show_bug.cgi?id=608453
    by David Tardon.

 glib/gbuffer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d20969e07b8cc0233536cf929db0107b2c21c53e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 27 16:31:53 2010 -0400

    Filter out child schema entries when listing keys

 gio/gsettings-tool.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 025435329a7159a906a66f6b15facc2d611be4fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 27 16:00:20 2010 -0400

    Implement bash completion for gsettings

 gio/Makefile.am                  |   4 +-
 gio/gsettings-bash-completion.sh |  33 +++
 gio/gsettings-tool.c             | 498
 ++++++++++++++++++++++++++++++++-------
 3 files changed, 455 insertions(+), 80 deletions(-)

commit 795d2bf8cf13d03214af3eb857d235c2917f9945
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 27 10:11:45 2010 -0400

    GSettings: Don't free value before using its type

    Fix a bug where the type from g_variant_get_type() was used after
    freeing the variant.  This works for base types (since they are cached
    and live forever) but not for arrays (where the bug was first seen).

 gio/gsettings-tool.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 87fd38bc4dd095d598ec375dbecb40d1393c3f8b
Author: Kristian Rietveld <kris@gtk.org>
Date:   Sat Jun 26 22:55:47 2010 +0200

    Add PCRE_EXP_DECL to pcre_callout declaration

    Fixes build on Mac OS X.

 glib/pcre/pcre.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 840c5dd0da885fc42e498f165d59a5d0b4b97af2
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Jun 26 10:14:52 2010 +0200

    Updated Spanish translation

 po/es.po | 1297
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 670 insertions(+), 627 deletions(-)

commit 7cdc592ae478b71a66aa1541b81588b5b200e5f2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 25 10:52:32 2010 -0400

    Bug 622128 - retry with default for failed mapping

    Hold the GSettingsKeyInfo as part of the binding structure to
    save work
    on each get/set.  Use our copy of this structure to call the internal
    get/set APIs.  Give more descriptive error messages in the case of
    invalid data on sets and retry using the translated default then
    schema
    default value in case of failure to map on reads.

 gio/gsettings.c | 137
 +++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 85 insertions(+), 52 deletions(-)

commit 499ece9b52ec18e7a0ab5c9cda6b0b82946a8c7e
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 16 22:44:58 2010 -0400

    [gbinding] Move argument reference out of first column

    It makes gobject-introspection complain.

 gobject/gbinding.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 1ad08a6a9fc5bf700de31c928d4fc7031bd8fd19
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jun 24 14:23:37 2010 -0400

    Hack up glib/tests/array-test to not actually malloc 2G

    Fixes the test on machines where that allocation takes very long.

    https://bugzilla.gnome.org/show_bug.cgi?id=610784

 glib/tests/array-test.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

commit 48f3f262639b473c9be168d0491bedd357bcbca7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 13:32:26 2010 -0400

    version.bump()

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cc295f09768d10576deba929ab8b7bc766cd207f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 13:18:44 2010 -0400

    Release glib 2.25.10

 NEWS | 73
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

commit de0464cf891c386b0166066ac797255cd973b6e2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 12:25:48 2010 -0400

    Tweak GSettings key/schema listing APIs

 docs/reference/gio/gio-sections.txt |  4 +-
 gio/gio.symbols                     |  2 +-
 gio/gsettings.c                     | 12 ++---
 gio/gsettings.h                     |  4 +-
 gio/gsettingsschema.c               | 89
 ++++++++++++++++++++++++++-----------
 5 files changed, 75 insertions(+), 36 deletions(-)

commit e3d0d07b043334890deaf30d5b1e5072c9c7e742
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 02:28:01 2010 -0400

    Clarify GSettings documentation wrt errors

    Make it clear about exactly what "@key is valid" means.

 gio/gsettings.c | 73
 +++++++++++++++++++++++++++++----------------------------
 1 file changed, 37 insertions(+), 36 deletions(-)

commit 887d9d83aa232058b8446eafb7f0681db4219a77
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 02:21:58 2010 -0400

    g_keyfile_settings_backend_new doc improvement

 gio/gkeyfilesettingsbackend.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

commit 123699465d2d07c18823f41dfc6a48dd7cefc603
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 02:15:15 2010 -0400

    GSettings: add g_settings_list_keys()

    Second half of bug #622554.

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/gio.symbols                     |  1 +
 gio/gsettings.c                     | 33
 ++++++++++++++++++++++++++++++++-
 gio/gsettings.h                     |  1 +
 4 files changed, 36 insertions(+), 1 deletion(-)

commit 6218d8047a9f073dc9e6eab009d70dc7933c5fd7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 01:49:27 2010 -0400

    Add g_settings_schema_exists

    Solves half of #622554.

 gio/gio.symbols       |  4 ++++
 gio/gsettings.h       |  1 +
 gio/gsettingsschema.c | 25 +++++++++++++++++++++++++
 3 files changed, 30 insertions(+)

commit 726e4dd6e7e12800db90a5159f5cb6fc3509e9e7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 01:49:00 2010 -0400

    KeyfileSettingsBackend: fix symbol visibility leak

 gio/gkeyfilesettingsbackend.c | 1 +
 1 file changed, 1 insertion(+)

commit 65fc931fb9df391a8a7ff8e279820fd2fed04bc0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 22 08:12:04 2010 -0400

    Rework the GSettings keyfile backend

 docs/reference/gio/gio-sections.txt |   1 +
 gio/Makefile.am                     |   1 -
 gio/gkeyfilesettingsbackend.c       | 811
 +++++++++++++++++++++---------------
 gio/gkeyfilesettingsbackend.h       |  71 ----
 gio/gsettingsbackend.h              |   4 +-
 gio/tests/gsettings.c               |   6 +-
 6 files changed, 475 insertions(+), 419 deletions(-)

commit 6d828dae3804af311ffa8387a4e74bc28024351b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 00:55:14 2010 -0400

    GSettingsBackend: some debug code

 gio/gsettingsbackend.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit b638a675a8dae242347a721837c0b6c24e953665
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 00:41:05 2010 -0400

    Ignore more glib test cases

 glib/tests/.gitignore | 4 ++++
 1 file changed, 4 insertions(+)

commit 519edcc2b3fd23fc29b38b581480adf39dd93451
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 00:36:42 2010 -0400

    fix leaks in the GSettings test case

 gio/tests/gsettings.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

commit fb94e65a640d21b2e1a5c6e79eb3d755ba34c0e6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 00:35:10 2010 -0400

    GChecksum: accept NULL pointer with length 0

    Several GChecksum functions were incorrectly aborting when passed
    a NULL
    data pointer, even if the length parameter was equal to zero.

 glib/gchecksum.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f76c4d062966afdcdf5306f4c769a7ab0934e843
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 24 00:38:01 2010 -0400

    GSettings "delayed": don't leak unapplied keys

    GDelayedSettingsBackend was leaking the GTree holding the list of
    unapplied keys on finalize.

 gio/gdelayedsettingsbackend.c | 1 +
 1 file changed, 1 insertion(+)

commit 17bc9bf94f2a11ce553d784e55649b43f3ed0130
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 23 22:32:35 2010 -0400

    Deprecate some rarely-used APIS

    GRelation and GCompletion are almost never used, and not very actively
    maintained. Mark them as deprecated to make this clear. Bug #551271.

 glib/gcompletion.c | 25 ++++++++++++++++++++++++-
 glib/gcompletion.h |  4 ++++
 glib/grel.c        | 35 ++++++++++++++++++++++++++++++++++-
 glib/grel.h        |  4 ++++
 4 files changed, 66 insertions(+), 2 deletions(-)

commit 272836936e76a9bf0a0237e6489ce0508fa85534
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Jun 18 16:14:27 2010 +0200

    Introduce G_PARAM_DEPRECATED and G_ENABLE_DIAGNOSTIC

    See https://bugzilla.gnome.org/show_bug.cgi?id=601686

 gobject/gobject.c | 16 ++++++++++++++++
 gobject/gparam.h  | 11 ++++++++---
 2 files changed, 24 insertions(+), 3 deletions(-)

commit f587cb57f249a8f4b869231ca20f5f19602a20ec
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Mon Jun 21 12:26:42 2010 +0100

    binding: Add SYNC_CREATE to the flags

    When creating a binding between two object properties we might want to
    automatically synchronize the two values at the moment of the binding
    creation, instead of waiting for the next change.

    The G_BINDING_SYNC_CREATE flag does exactly what it says on the tin.

    https://bugzilla.gnome.org/show_bug.cgi?id=622281

 gobject/gbinding.c      |  9 +++++++++
 gobject/gbinding.h      |  6 +++++-
 gobject/tests/binding.c | 36 ++++++++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+), 1 deletion(-)

commit d3af9c0ec59465e4076791881bc89fe51539f3fd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 23 10:12:14 2010 -0400

    neutralise pltcheck.sh

 gio/pltcheck.sh     | 2 ++
 glib/pltcheck.sh    | 2 ++
 gobject/pltcheck.sh | 2 ++
 3 files changed, 6 insertions(+)

commit 13ac216ca386715a915ec8acd8178c528774273a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 23 09:03:51 2010 -0400

    GIO doc cleanups

 docs/reference/gio/Makefile.am      | 18 ++++++++++++++++++
 docs/reference/gio/gio-sections.txt | 28 +++++++++++++++++++++++++++-
 gio/gsettings.c                     |  2 +-
 3 files changed, 46 insertions(+), 2 deletions(-)

commit fadac4bd0f008dae058bcbc56b3073c6c38092a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 23 07:32:24 2010 -0400

    Document g_cclosure_marshal_VOID__VARIANT

 gobject/gclosure.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit 3549e06f81768453b8c389331705615ae3529041
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 23 07:22:49 2010 -0400

    Ignore gatomicarray.h

    Otherwise gtk-doc picks up declarations from that header and is
    disappointed when they are not documented.

 docs/reference/gobject/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 9c6130cdde846cee4e8ad93504a6cb4745a35cea
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 23 07:21:50 2010 -0400

    silence gtk-doc

    Add g_error_get_type to a private section in gobject-sections.txt
    so gtk-doc doesn't complain about it.

 docs/reference/gobject/gobject-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 8eb755e78e56036b93a7b11d3d6fe4237ab708be
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 23 00:20:11 2010 -0400

    Add some more unicode property tests

 glib/tests/utf8-misc.c | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

commit e26b92b94775c8b1b6e94ca29a6d3a4404db449b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 22 23:39:51 2010 -0400

    Move node tests to the test framework

 glib/tests/node.c | 70
 ++++++++++++++++++++++++++++++++++++++-----------------
 tests/.gitignore  |  1 -
 tests/Makefile.am |  2 --
 3 files changed, 49 insertions(+), 24 deletions(-)

commit 464b5ff3570fd43fa52b6ec5571a02bd705f9e9c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 22 22:25:02 2010 -0400

    Some more hash, utils and checksum tests

 glib/tests/checksum.c |  18 ++++++++-
 glib/tests/hash.c     | 102
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/utils.c    |  31 +++++++++++++++
 3 files changed, 149 insertions(+), 2 deletions(-)

commit 01abbc4bd37649bf75642ba98f8f6109065a7333
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 22 22:24:29 2010 -0400

    Move node test to the test framework

 glib/tests/Makefile.am                 |   3 +
 tests/node-test.c => glib/tests/node.c | 159
 +++++++++++++++++++++------------
 2 files changed, 103 insertions(+), 59 deletions(-)

commit 5c1b3a02637c8ed767c94f30df994fed9b3bddfc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 22 19:50:35 2010 -0400

    Move date tests to the test framework

 glib/tests/Makefile.am |   3 +
 glib/tests/date.c      | 287 ++++++++++++++++++++++++++++
 tests/.gitignore       |   1 -
 tests/Makefile.am      |   1 -
 tests/date-test.c      | 499
 -------------------------------------------------
 5 files changed, 290 insertions(+), 501 deletions(-)

commit 7d81e99c4bfea343ce653668b6d2d00e79324688
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 22 17:42:30 2010 -0400

    Add an index for 2.26 api additions

 docs/reference/gobject/gobject-docs.sgml | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit b116838da31dc212c60f13821dfe87187731dc78
Author: Milan Bouchet-Valat <nalimilan@club.fr>
Date:   Wed Jun 23 12:17:29 2010 +0200

    Improve documentation for g_strcmp0()

    Be more explicit about the handling of two NULL pointers.

    https://bugzilla.gnome.org/show_bug.cgi?id=622480

 glib/gtestutils.c | 1 +
 1 file changed, 1 insertion(+)

commit 6920e503e637e70a44f7baf899de4bd171534d39
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jun 22 17:48:35 2010 -0400

    GDBusProxy: Don't warn when calling methods on other interfaces

    If we know the expected interface (e.g. :g-interface-info is set),
    then we always warned when calling a method on a different
    interface. Don't do that, there's no way the expected interface can
    know anything about this method.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d68f8012b2d8b9b86b47ed1f091f29d70016cf73
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 22 15:31:55 2010 -0400

    gio/tests/testapps: Fix source refcounting

    Either child_watch_source or timeout_source will already have been
    destroyed after we finish the loop, and it's not safe to call
    g_source_destroy() on it a second time unless we're still holding a
    ref on it.

 gio/tests/testapps.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a0e1b226a21ca498b301981b0c89e89ad9a31eb1
Author: Dan Winship <danw@gnome.org>
Date:   Fri Apr 23 08:47:18 2010 -0400

    GSocketConnection: don't close the socket if it's still reffed

    When disposing a GSocketConnection, don't explicitly close the
    underlying GSocket. The GSocket will close itself if it gets
    destroyed, and if it doesn't get destroyed, that presumably means the
    app still wants to use it. Eg, this lets you use GSocketClient to
    create a GSocketConnection, and then take the GSocket and destroy the
    GSocketConnection.

    https://bugzilla.gnome.org/show_bug.cgi?id=616855

 gio/gsocketconnection.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit e0ff84e68817d12ebf4cde9433c4e1ed703d1eb4
Author: Dan Winship <danw@gnome.org>
Date:   Fri Apr 23 08:21:41 2010 -0400

    GSocketInput/OutputStream: fix non-blocking on Windows

    The GSocket docs point out that g_socket_send/g_socket_receive may
    return G_IO_ERROR_WOULD_BLOCK even if g_socket_condition_check claimed
    that they wouldn't. Fix the socket streams to check for that.

    https://bugzilla.gnome.org/show_bug.cgi?id=603309

 gio/gsocket.c             |  8 ++++++++
 gio/gsocketinputstream.c  | 46
 ++++++++++++++++++----------------------------
 gio/gsocketoutputstream.c | 46
 ++++++++++++++++++----------------------------
 3 files changed, 44 insertions(+), 56 deletions(-)

commit 2be38f6926d8bf2738c3898e831dcb3928925f90
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue Jun 22 12:12:16 2010 -0400

    GDBus: update padding

    Add lots of padding for public class structures. Notably, we seemed to
    lack any padding whatsoever in the GDBusMessageClass struct (spotted
    by Dan Winship). Also switch to using

     gpointer padding[N];

    instead of

     void (*_g_reserved1) (void);
     ...
     void (*_g_reservedN) (void);

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusauth.h                  |  4 ++++
 gio/gdbusauthmechanism.h         | 18 +-----------------
 gio/gdbusauthmechanismanon.h     | 17 +----------------
 gio/gdbusauthmechanismexternal.h | 17 +----------------
 gio/gdbusauthmechanismsha1.h     | 17 +----------------
 gio/gdbusauthobserver.h          | 17 +----------------
 gio/gdbusconnection.h            | 18 ++----------------
 gio/gdbusmessage.h               |  4 ++++
 gio/gdbusmethodinvocation.h      |  9 +--------
 gio/gdbusproxy.h                 |  9 +--------
 gio/gdbusserver.h                |  9 +--------
 11 files changed, 18 insertions(+), 121 deletions(-)

commit d19380c809525559f55ba5f3304c0e787c2ebfac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 22 08:24:30 2010 -0400

    Improve g_application_new documentation

    Patch by Saleem Abdulrasool, bug 622154.

 gio/gapplication.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 16c2f080497d1ed663237e725192c4f411f92f8f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jun 22 08:09:27 2010 -0400

    Add single include guards to gvariant[type].h

 glib/gvariant.h     | 4 ++++
 glib/gvarianttype.h | 4 ++++
 2 files changed, 8 insertions(+)

commit 05354cefc54a0f42e5d7dee1798d2b56c135c12c
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Jun 22 12:41:01 2010 +0300

    Make the protocol.c test program compile on Windows

    Note that it does not actually work, though. Maybe because
    g_io_channel_set_flags() is not implemented for file descriptor based
    GIOChannels on Windows.

 glib/tests/protocol.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit efb1a054b0858b4475941892f53bbc5186065df9
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Jun 22 12:13:21 2010 +0300

    Fix build with the Microsoft compiler

    Correct a few gccisms and C99isms. Ensure the Windows-specific gio
    source files are listed in the generated gio VS project file.

 gio/Makefile.am                  | 12 +++++++-----
 gio/gcredentials.c               |  2 ++
 gio/gdbusauthmechanismexternal.c |  2 ++
 gio/gdbusauthmechanismsha1.c     |  5 +++++
 gio/gdbusconnection.c            |  2 +-
 gio/gdbuserror.c                 |  2 +-
 gio/gdbusintrospection.c         |  2 +-
 gio/gdbusserver.c                |  3 +++
 gio/gio.symbols                  |  2 ++
 gio/glocalfileinputstream.c      |  6 ++++--
 gio/glocalfileoutputstream.c     |  6 ++++--
 11 files changed, 32 insertions(+), 12 deletions(-)

commit 2e842490826644210bc5d2df2df8092597b3f708
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Jun 22 12:10:34 2010 +0300

    Bypass a few functions not used on Windows when compiling for Windows

 gio/glocalfile.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 045c96b71a7755927e258c2b116c7c0ee8326bd1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 21 23:07:46 2010 -0400

    Add a test for g_strip_prefix

 glib/tests/strfuncs.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit 2f438f18ae8794747dadf5018616d1dcc52a0924
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 21 23:06:17 2010 -0400

    Move hash tests to the test framework

 glib/tests/Makefile.am                 |   3 +
 tests/hash-test.c => glib/tests/hash.c | 220
 +++++++++++++++++++++------------
 tests/.gitignore                       |   1 -
 tests/Makefile.am                      |   2 -
 4 files changed, 146 insertions(+), 80 deletions(-)

commit 7d14b5fbf1fcda2068dc01f9a0a2e4b9796daea6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 21 22:25:28 2010 -0400

    Some more tests

 glib/tests/checksum.c | 72
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

commit 5629366c3d245b78ad148576f2dccabed83baa71
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 21 21:22:09 2010 -0400

    Move checksum tests to the test framework

 glib/tests/Makefile.am                         |   3 +
 tests/checksum-test.c => glib/tests/checksum.c | 103
 +++++++++++++------------
 tests/.gitignore                               |   1 -
 tests/Makefile.am                              |   2 -
 4 files changed, 56 insertions(+), 53 deletions(-)

commit 839078ea63f697f1066a040425e1d2070f3c81a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 21 20:07:26 2010 -0400

    Add some more Unicode tests

 glib/tests/utf8-misc.c | 263
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 263 insertions(+)

commit 45411ccbe3c9d1b08332942d1e7b594330688126
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jun 21 16:08:53 2010 -0400

    Bug 621945 – Filter outgoing messages in GDBusConnection

    This patch breaks some rarely-used public API (only known user is
    dconf).

    This patch is based on work from Peng Huang <shawn.p.huang@gmail.com>.

    See https://bugzilla.gnome.org/show_bug.cgi?id=621945

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c        | 66
 ++++++++++++++++++++++++++++++++++++++----
 gio/gdbusconnection.h        |  3 ++
 gio/gdbusprivate.c           | 69
 ++++++++++++++++++++++++++++++--------------
 gio/gdbusprivate.h           |  5 ++++
 gio/tests/gdbus-connection.c | 16 ++++++++--
 5 files changed, 129 insertions(+), 30 deletions(-)

commit a4cd39e74122c9376954204cb45c6be4926e5ee9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 21 14:01:50 2010 -0400

    gobject docs: ignore some sgml files

 docs/reference/gobject/tmpl/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit a4b42d3a751bcbe22bb41ddfced68eebcce0e386
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 21 13:57:54 2010 -0400

    .gitignore the moved tests

 glib/tests/.gitignore | 8 ++++++++
 1 file changed, 8 insertions(+)

commit c9553af68f543113be41e6ae8dcdd9ee5e2267bc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 21 13:55:28 2010 -0400

    Use -Bsymbolic-functions, drop g*alias PLT hackery

    This is a minimal patch-out of the galias functionality.  We will do a
    release like this so that we can easily back it out if there are
    reported problems.

    A more substantial cleanup (mostly removing #includes from every file)
    will follow if there are no issues.

 configure.in                | 2 +-
 gio/Makefile.am             | 6 +++---
 gio/makegioalias.pl         | 2 ++
 glib/Makefile.am            | 2 +-
 glib/makegalias.pl          | 2 ++
 gmodule/Makefile.am         | 2 +-
 gobject/Makefile.am         | 6 +++---
 gobject/makegobjectalias.pl | 2 ++
 gthread/Makefile.am         | 2 +-
 9 files changed, 16 insertions(+), 10 deletions(-)

commit e549bbf66406fc483cd43ce860ba88e7d83d3c80
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 21 13:25:51 2010 -0400

    distcheck fix

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit d5dc656d35887780008c95c5ed496f628948813c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 21 13:25:44 2010 -0400

    Add check for -Bsymbolic-functions linker flag

 configure.in | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 7556f660b551d0713100af6672287393350d9a19
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 21 11:30:26 2010 -0400

    Remove gsettings-schema-convert tool

    Having this tool in GLib is a bad idea for a number of reasons:

      - experience has shown that the simple file format was a bad idea

      - the tool is currently implemented with a hack that would require a
        dependency inversion to solve (the tool needs to depend on Python
        GVariant bindings)

      - the tool itself is unmaintained

    It will be moved to the GConf git repository so people can continue to
    use it for the purpose of converting GConf schemas.

 docs/reference/gio/Makefile.am                  |    2 -
 docs/reference/gio/gio-docs.xml                 |    1 -
 docs/reference/gio/glib-compile-schemas.xml     |    6 -
 docs/reference/gio/gsettings-schema-convert.xml |  113 ---
 docs/reference/gio/migrating-gconf.xml          |    2 +-
 gio/Makefile.am                                 |    1 -
 gio/gsettings-schema-convert                    | 1076
 -----------------------
 7 files changed, 1 insertion(+), 1200 deletions(-)

commit 95c4ec1056468764dd6c71971ad06370c0f1b99b
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jun 21 17:28:15 2010 +0200

    [docs] Fix typo

 docs/reference/glib/building.sgml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6c02c99df0cb1c3b9bdb20c8fd56eddc7ae8bf2a
Author: Sven Herzberg <herzi@gnome-de.org>
Date:   Tue Apr 20 15:01:17 2010 +0200

    don't treat debug/info/message as fatal messages by default

    * glib/gtestutils.c: don't treat non-fatal messages as errors
    * glib/tests/.gitignore: silence
    * glib/tests/Makefile.am: updated
    * glib/tests/protocol.c: add a test for the message treatment

 glib/gtestutils.c      |   8 +-
 glib/tests/.gitignore  |   1 +
 glib/tests/Makefile.am |  10 +-
 glib/tests/protocol.c  | 334
 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 348 insertions(+), 5 deletions(-)

commit 60a5b197991aae58de4a85c9020a49edc5003457
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 21 00:00:51 2010 -0400

    Add a test for g_unichar_validate

 glib/tests/utf8-misc.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit f13618623b191c539cc151d19f7f5b54e24b3607
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 23:46:01 2010 -0400

    Test inplace decoding

 glib/tests/base64.c | 36 +++++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

commit db5bd7b90b78508b8be448b8cd5de7735b3ca520
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 23:35:31 2010 -0400

    Some more utf8 tests

 glib/tests/Makefile.am |  3 ++
 glib/tests/utf8-misc.c | 99
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+)

commit a2f4564fd9bee001e6b4d60df257ab6b2110f22f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 23:07:39 2010 -0400

    Test glib_check_version

 glib/tests/utils.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit cca48bd5b9de1d4902b12acc86778def3ae00cbe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 22:46:47 2010 -0400

    Add support for coverage reports with lcov

    Patch by Patrick Hulin, bug #501057.

 Makefile.am                       |  2 +-
 Makefile.decl                     | 22 +++++++++++++
 configure.in                      | 69
 +++++++++++++++++++++++++++++++++++++++
 docs/reference/glib/building.sgml | 19 ++++++++++-
 4 files changed, 110 insertions(+), 2 deletions(-)

commit bad7f1e54f03284cfd6235d345270ecada4379b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 22:18:30 2010 -0400

    Some fixes

 glib/tests/collate.c       |  2 ++
 glib/tests/utf8-pointer.c  | 39 ++++++++++++++------------
 glib/tests/utf8-validate.c | 68
 ++++++++++++++++++----------------------------
 3 files changed, 50 insertions(+), 59 deletions(-)

commit 7bea2a7a4fec3dda19d08474c73f56a0f7cf2741
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 21:16:24 2010 -0400

    Move utf8 validation tests to the test framework

 glib/tests/Makefile.am                | 3 +++
 {tests => glib/tests}/utf8-validate.c | 0
 tests/Makefile.am                     | 3 ---
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 5b08ef84e4132db8f3e873f52c4bc929949dff4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 21:04:47 2010 -0400

    Move utf8 pointer tests to test framework

 glib/tests/Makefile.am               |   6 +
 glib/tests/collate.c                 | 215
 +++++++++++++++++++++++++++++++++++
 {tests => glib/tests}/utf8-pointer.c |   0
 tests/Makefile.am                    |   1 -
 4 files changed, 221 insertions(+), 1 deletion(-)

commit 0ed575213b0be6553f08c7e3b35e49faae09f7ad
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 16:24:56 2010 -0400

    Consolide base64 tests in a single file

 glib/tests/base64.c   | 197 +++++++++++++++++++++++++++++++++++++++++
 tests/Makefile.am     |   3 -
 tests/testingbase64.c | 236
 --------------------------------------------------
 3 files changed, 197 insertions(+), 239 deletions(-)

commit 08d6e535be868b04fe83d02cb8a99a8db96d2192
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 12:29:17 2010 -0400

    Move scanner tests to glib/tests

 glib/tests/Makefile.am             | 3 +++
 {tests => glib/tests}/scannerapi.c | 0
 tests/Makefile.am                  | 7 -------
 3 files changed, 3 insertions(+), 7 deletions(-)

commit 87df095de3246142c9407f088b300c3a18846a94
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 20 12:32:00 2010 -0400

    GVariant: fix doc copy/paste error

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ede159ec452aa27d7ea0058833ea39baed14756e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 20 12:30:27 2010 -0400

    Add enum type for GVariantParseError

 docs/reference/glib/glib-sections.txt | 1 +
 glib/gvariant-parser.c                | 7 +++++++
 glib/gvariant.h                       | 5 +++++
 3 files changed, 13 insertions(+)

commit 09aa2e79ab9b39b92c1cc911b95b49872a417382
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 12:23:13 2010 -0400

    Move sequence tests to the test framework

 glib/tests/Makefile.am |    3 +
 glib/tests/sequence.c  | 1286
 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/sequence-test.c  | 1301
 ------------------------------------------------
 3 files changed, 1289 insertions(+), 1301 deletions(-)

commit bf8ce25216c14c8f6f3267b0af107c03390e63bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 11:34:31 2010 -0400

    Move base64 tests of to test framework

 glib/tests/Makefile.am |   3 ++
 glib/tests/base64.c    | 139
 +++++++++++++++++++++++++++++++++++++++++++++++++
 tests/base64-test.c    | 138
 ------------------------------------------------
 3 files changed, 142 insertions(+), 138 deletions(-)

commit 9a85f654c77dab88f625169a0128d890acf50b0b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 11:20:41 2010 -0400

    Add new scripts to docs

 docs/reference/glib/tmpl/unicode.sgml | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit f849dbac05bad8e60b00707823f5c6d935ff36c1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 11:07:49 2010 -0400

    Move regex tests to the g_test framework

 glib/tests/Makefile.am |    3 +
 glib/tests/regex.c     | 1870 ++++++++++++++++++++++++++++++++++++++++++
 tests/Makefile.am      |    4 +-
 tests/regex-test.c     | 2122
 ------------------------------------------------
 4 files changed, 1874 insertions(+), 2125 deletions(-)

commit fc5f3a96be53ceb8b431dffa675e622ec8a48186
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 20 02:32:35 2010 +0200

    Docs fix

 gio/gdatainputstream.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 85621f1a0f4d77cde71e37ed8212e707f4af441d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 01:46:35 2010 -0400

    Update the include pcre to 8.02

 glib/pcre/Makefile.am            |    1 -
 glib/pcre/pcre.h                 |   21 +-
 glib/pcre/pcre_compile.c         | 1329 ++++++++++++++++++++++----------
 glib/pcre/pcre_config.c          |    6 +-
 glib/pcre/pcre_dfa_exec.c        |  514 +++++++++----
 glib/pcre/pcre_exec.c            | 1563
 +++++++++++++++++++++++++++++---------
 glib/pcre/pcre_fullinfo.c        |   15 +-
 glib/pcre/pcre_globals.c         |   23 +-
 glib/pcre/pcre_info.c            |    4 +-
 glib/pcre/pcre_internal.h        |  759 ++++++++++++++++--
 glib/pcre/pcre_newline.c         |    8 +-
 glib/pcre/pcre_study.c           |  448 ++++++++++-
 glib/pcre/pcre_tables.c          |  631 +++++++++------
 glib/pcre/pcre_try_flipped.c     |    6 +-
 glib/pcre/pcre_ucp_searchfuncs.c |   46 +-
 glib/pcre/pcre_xclass.c          |    7 +-
 glib/pcre/ucp.h                  |   53 +-
 glib/pcre/ucpinternal.h          |   92 ---
 18 files changed, 4133 insertions(+), 1393 deletions(-)

commit b0b7aeffc063981c32ff99da0385841ba18f5847
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 01:14:55 2010 -0400

    Add Unicode 5.2 scripts

 glib/gunicode.h | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

commit 5fffa39b6ae8f8faf1036fbf07de02ffe84ef099
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 20 00:09:00 2010 -0400

    Fix a memory leak in g_ptr_array_remove_index_fast

    We need to call the element_free_func even if we remove the
    last element. Bug #618866.

 glib/garray.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit ea6470e31a6884a7243e9cd4df9734f1dc4828b9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 19 16:13:58 2010 -0400

    GSettings: complete support for enum binding

 gio/gsettings-mapping.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit dbe68f7c834c152c111afba41ffffd70a8e6997c
Author: Johan Dahlin <johan@gnome.org>
Date:   Sat Jun 19 15:23:35 2010 -0300

    [configure] Require dbus 1.2.14

    dbus_message_set_serial requires dbus 1.2.14, make the dependency
    explicit instead of failing to compile a test.

 configure.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 2d4e48b73c3efe74c3818616de6fcc332f2e640a
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jun 19 20:04:20 2010 +0200

    Tiny docs fix

 gobject/gvaluetypes.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit db68f8203ab9b81e70dbada99faaf69c727f793c
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Jun 18 01:08:13 2010 +0200

    Add g_value_take_variant

    Turns out we do need g_value_take_variant(), so we can correctly
    implement VARIANT:* marshalers.

    Bug #621947.

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/glib-genmarshal.c                   |  2 +-
 gobject/gobject.symbols                     |  1 +
 gobject/gtype.h                             |  7 +++
 gobject/gvaluetypes.c                       | 39 ++++++++++++++
 gobject/gvaluetypes.h                       |  2 +
 tests/gobject/accumulator.c                 | 81
 +++++++++++++++++++++++++++++
 tests/gobject/testmarshal.list              |  2 +-
 8 files changed, 133 insertions(+), 2 deletions(-)

commit 052ef2614af7a8706035982d8211fff64241e83f
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jun 19 16:42:11 2010 +0200

    Add g_variant_is_floating

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gvariant-core.c                  | 24 ++++++++++++++++++++++++
 glib/gvariant.h                       |  1 +
 glib/tests/gvariant.c                 | 13 +++++++++++++
 5 files changed, 40 insertions(+)

commit 7bb00fd0e8a18b3e20d30053579f002e587dfbbb
Author: Christian Persch <chpe@gnome.org>
Date:   Sat Jun 19 16:41:25 2010 +0200

    Fix a preprocessor warning with --disable-visibility

    Don't redefine DISABLE_VISIBILITY when already building with
    --disable-visibility.

 gthread/tests/1bit-mutex.c | 2 ++
 1 file changed, 2 insertions(+)

commit a558e460a2f493670932faa4c947ffc42ea8bc70
Author: Milan Bouchet-Valat <nalimilan@club.fr>
Date:   Sat Jun 19 19:00:13 2010 +0200

    Fix gsettings tool crash, part 2

    Same as previous commit, but for two other functions it missed.

 gio/gsettings-tool.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 62939f5e45cd102313285ec13f90c3b4763e6ca8
Author: Milan Bouchet-Valat <nalimilan@club.fr>
Date:   Sat Jun 19 18:33:26 2010 +0200

    Fix gsettings tool crash

    When no path is provided for the schema, we have call
    g_settings_new() instead of g_settings_new_with_path()
    passing a NULL path.

    This was crashing the tool on start since an assertion was
    recently added to g_settings_new_with_path() to refuse NULL.

 gio/gsettings-tool.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit a7689537605ade51b19be76baa3fba303527483d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jun 19 11:38:57 2010 -0400

    Fix bug in strinfo

    We can't search for a larger needle inside of a smaller haystack, and
    unsigned integer subtraction tends to result in very large numbers
    rather than small ones.

    Add a check for this case and abort out immediately.

    Also add a test case (lifted directly from the docs) that demonstrates
    the problem.

    Issue discovered and tracked down by Milan Bouchet-Valat

 gio/strinfo.c                                |  3 +++
 gio/tests/gschema-compile.c                  |  3 ++-
 gio/tests/schema-tests/from-docs.gschema.xml | 34
 ++++++++++++++++++++++++++++
 3 files changed, 39 insertions(+), 1 deletion(-)

commit e91541bf8c2e915b330c6dfee46a7709949da3a9
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Jun 19 15:13:41 2010 +0200

    Updated Galician translations

 po/gl.po | 104
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 58 insertions(+), 46 deletions(-)

commit a2888fbbf0f1a61436e036ff81a14f19fe45d5d0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 18 23:14:46 2010 -0400

    Add a note to docs about paragraphs in schemas

 docs/reference/gio/migrating-gconf.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 6217c9b41eb369cac48149639369f51b85763986
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 18 22:59:43 2010 -0400

    Conditional gsettings.m4 support, AC_PATH_PROG

    Add new support for conditional enabling of GSettings (as per
    bug #616718) and use AC_PATH_PROG instead of AC_PATH_TOOL (as per
    bug #621172).

 configure.in          | 2 +-
 m4macros/gsettings.m4 | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

commit 1ed105b19b31bd5265de7d62156732b343c086e3
Author: Jürg Billeter <j@bitron.ch>
Date:   Fri Jun 18 23:48:28 2010 +0200

    GDBus: Sink closures in _with_closures functions

    See https://bugzilla.gnome.org/show_bug.cgi?id=621092#c12

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusnameowning.c   | 25 ++++++++++++++++++++-----
 gio/gdbusnamewatching.c | 20 ++++++++++++++++----
 2 files changed, 36 insertions(+), 9 deletions(-)

commit 8f5bde679e7cf5b519988b0fa36c300ecce3f19f
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 16 14:17:26 2010 -0400

    [GApplication] Add working directory to platform data

    https://bugzilla.gnome.org/show_bug.cgi?id=621838

 gio/gapplication.c     | 51
 ++++++++++++++++++++++++++++++++++++++++++++------
 gio/gdbusapplication.c | 12 ++----------
 gio/tests/testapp.c    | 20 ++++++++++++++++++++
 3 files changed, 67 insertions(+), 16 deletions(-)

commit 6ff13071ae4729b0a0e2ba9404fef5e5dd6c14b2
Author: Tor Lillqvist <tml@iki.fi>
Date:   Fri Jun 18 10:56:25 2010 +0300

    Fix build on non-Unix

 gio/gnullapplication.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4edfc34e5bae34f69d6771e2732f54821a4f7307
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 19:42:46 2010 -0400

    2.25.9

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7b1f45c2e8b5f3ba3595c5cf74fbfc70f03b61c0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 19:08:13 2010 -0400

    Fix a mismerge

 docs/reference/gio/gio-sections.txt | 1 -
 1 file changed, 1 deletion(-)

commit 9b59059d9e85d10406393cef08e432626dcc78da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 19:04:03 2010 -0400

    Fix distcheck

 gio/gio.symbols | 6 ++++++
 1 file changed, 6 insertions(+)

commit bdd8fef4c05b41f534f138b0cf2f252e6ebd379f
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Jun 18 00:38:46 2010 +0200

    Fix VARIANT out args

    Use g_value_set_variant(), not the nonexistent g_value_take_variant().

 gobject/glib-genmarshal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 30df71e382f76626f8abcdd16b800392be183b42
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Jun 18 00:10:17 2010 +0200

    Add VARIANT to glib-genmarshal docs

 docs/reference/gobject/glib-genmarshal.xml | 7 +++++++
 1 file changed, 7 insertions(+)

commit 79d32c2fc18dcd62e9e12ca871676d35697c9d41
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 17 17:58:25 2010 -0400

    GDBusMessage: Fix bug when deserializing a message

    See https://bugzilla.gnome.org/show_bug.cgi?id=621838 for the whole
    story. The problem was that we ended up reading data from arrays of
    arrays when we were just supposed to be aligning the buffers.

    Also add a host of debug infrastructure that was needed to find the
    root cause. For now it can be turned on only via defining
    DEBUG_SERIALIZER. In the future we might want to make it work via
    G_DBUS_DEBUG. In a nutshell, the added debug info looks like this

    Parsing blob (blob_len = 0x0084 bytes)
      0000: 6c 01 00 01  3c 00 00 00  41 00 00 00  37 00 00 00
      l...<...A...7...
      0010: 08 01 67 00  08 61 61 79  61 7b 73 76  7d 00 00 00
      ..g..aaya{sv}...
      0020: 01 01 6f 00  08 00 00 00  2f 66 6f 6f  2f 62 61 72
      ..o...../foo/bar
      0030: 00 00 00 00  00 00 00 00  03 01 73 00  06 00 00 00
      ..........s.....
      0040: 4d 65 6d 62  65 72 00 00  00 00 00 00  34 00 00 00
      Member......4...
      0050: 03 00 00 00  63 77 64 00  01 73 00 00  23 00 00 00
      ....cwd..s..#...
      0060: 2f 68 6f 6d  65 2f 64 61  76 69 64 7a  2f 48 61 63
      /home/davidz/Hac
      0070: 6b 69 6e 67  2f 67 6c 69  62 2f 67 69  6f 2f 74 65
      king/glib/gio/te
      0080: 73 74 73 00                                           sts.

    Parsing headers (blob_len = 0x0084 bytes)
      Reading type a{yv} from offset 0x000c: array spans 0x0037 bytes
        Reading type {yv} from offset 0x0010
          Reading type y from offset 0x0010: 0x08 '
          Reading type v from offset 0x0011
            Reading type g from offset 0x0014: 'aaya{sv}'
        Reading type {yv} from offset 0x001e
          Reading type y from offset 0x0020: 0x01 ''
          Reading type v from offset 0x0021
            Reading type o from offset 0x0024: '/foo/bar'
        Reading type {yv} from offset 0x0031
          Reading type y from offset 0x0038: 0x03 ''
          Reading type v from offset 0x0039
            Reading type s from offset 0x003c: 'Member'
    Parsing body (blob_len = 0x0084 bytes)
      Reading type (aaya{sv}) from offset 0x0047
        Reading type aay from offset 0x0048: array spans 0x0000 bytes
        Reading type a{sv} from offset 0x004c: array spans 0x0034 bytes
          Reading type {sv} from offset 0x0050
            Reading type s from offset 0x0050: 'cwd'
            Reading type v from offset 0x0058
              Reading type s from offset 0x005b:
              '/home/davidz/Hacking/glib/gio/tests'
    OK

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c              | 132
 +++++++++++++++++++++++++++++++++++-----
 gio/gdbusprivate.c              |  10 +--
 gio/gdbusprivate.h              |   2 +
 gio/tests/gdbus-serialization.c |   9 +++
 4 files changed, 134 insertions(+), 19 deletions(-)

commit 86d681ba3eb0df135b9ac592594c397021455425
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 17 23:44:25 2010 +0200

    Distcheck fix

    Add a missing symbol to gobject.symbols.

 gobject/gobject.symbols | 1 +
 1 file changed, 1 insertion(+)

commit 0766981a1e634b850bec602d0bea6bc255377edb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 16:56:09 2010 -0400

    Make g_settings_sync() a proper prototype.

 gio/gsettings-tool.c | 2 +-
 gio/gsettings.h      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 408daaa29445264073da1ac296dba5697ed4883c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 16:36:58 2010 -0400

    Fix the build

 gio/gapplication.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit df81e3f33e710ce64060a87b8ecf0aab1360bd5a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 16:13:29 2010 -0400

    Updates

 NEWS | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit 0c506f200a60124197e8c20507a86516bb950ec4
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 17 16:09:12 2010 -0400

    GDBus: Complain via g_warning() if an invalid message is received

    While we are already propagating the error to the user via the
    GDBusConnection::disconnected signal (because the only safe thing is
    to disconnect the other peer), changes are the user is simply not
    listening to this signal.

    This should never ever happen unless there's a bug in the
    serializaer/deserializer so it's fine to complain via g_warning()
    here.

    Bug 621838, see

     https://bugzilla.gnome.org/show_bug.cgi?id=621838

    is related to this.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusprivate.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 57dff1e06011347cc11492a36dc187cbcf5eece8
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 17 16:02:24 2010 -0400

    GDBusMessage: Properly check error and bail if set

    Otherwise we may set a GError on top of it.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8a105625b0261e2e3f45241e2892475fa7b45b88
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 16:07:52 2010 -0400

    Documentation fixups

 docs/reference/gio/gio-sections.txt | 10 +++++-----
 gio/gapplication.c                  | 10 ++++++----
 gio/gapplication.h                  |  6 +++---
 gio/gunixconnection.c               |  8 ++++----
 4 files changed, 18 insertions(+), 16 deletions(-)

commit 19a752a5f4b39ce43e6e3a26a478c1594b0627ca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 15:51:37 2010 -0400

    fix a typo

 gobject/gvaluetypes.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 10e430bcc09d82cf9b3634242981296e0d47693b
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 17 21:40:47 2010 +0200

    Fix GApplication for the G_TYPE_VARIANT change

 gio/gapplication.c   | 54
 ++++++++++++++++++++++------------------------------
 gio/gio-marshal.list |  5 +++--
 2 files changed, 26 insertions(+), 33 deletions(-)

commit daee48a0af26105175db5768f770ddb8f1a4a7b1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 15:29:45 2010 -0400

    Update api docs to current api

 docs/reference/gio/gio-sections.txt | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

commit 0a7e6255b37efd2005bb86a5843921d4adc3bdf8
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu Jun 17 15:27:18 2010 -0400

    Catch up with G_TYPE_VARIANT changes

    The GType for a GVariant is now a fundamental GType instead of a boxed
    one so use the right marshaller.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c     | 4 ++--
 gio/gio-marshal.list | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 2c5e1d51934a7983acea9e392de5741c47b8be14
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 15:07:08 2010 -0400

    Fix a typo

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0010e86572092ba00eaf01796c863e7584e29611
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 15:06:33 2010 -0400

    GSettings: remove "context" from backend too.

    Note: this is a GSettingsBackend API/ABI change.

 gio/gsettingsbackend.c | 73
 +-------------------------------------------------
 gio/gsettingsbackend.h |  2 --
 2 files changed, 1 insertion(+), 74 deletions(-)

commit 4708b8ecc3f00e49aa98cb5989b5474a3257906c
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Jun 17 18:03:51 2010 +0200

    Add fundamental type and pspec for GVariant

    Make G_TYPE_VARIANT a fundamental type instead of boxed, and add
    g_variant_{set,get,dup}_variant.

    Add GParamSpecVariant.

    Bug #610863.

 NEWS                                        |   4 +
 docs/reference/gobject/gobject-sections.txt |  13 ++-
 gobject/gboxed.c                            |  15 ++-
 gobject/gboxed.h                            |  13 +--
 gobject/glib-genmarshal.c                   |   4 +
 gobject/gmarshal.list                       |   2 +
 gobject/gobject.symbols                     |   6 +-
 gobject/gparamspecs.c                       | 127
 +++++++++++++++++++++++-
 gobject/gparamspecs.h                       |  52 ++++++++++
 gobject/gtype.h                             |  13 ++-
 gobject/gvaluetypes.c                       | 148
 ++++++++++++++++++++++++++++
 gobject/gvaluetypes.h                       |  15 +++
 tests/gobject/gvalue-test.c                 |  38 +++++--
 tests/gobject/paramspec-test.c              |  46 +++++++--
 14 files changed, 461 insertions(+), 35 deletions(-)

commit f2ae6217771b1014efb86eab0f5346d3b297024e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 14:58:46 2010 -0400

    Revert "GVariant: add g_variant_default_value()"

    This reverts commit b205dc77cb14f67818eaac23d0eb3f5d1b867921.

    We decided to go the other route with the GParamSpec.

 docs/reference/glib/glib-sections.txt |  1 -
 glib/glib.symbols                     |  1 -
 glib/gvariant.c                       | 32
 ++------------------------------
 glib/gvariant.h                       |  1 -
 4 files changed, 2 insertions(+), 33 deletions(-)

commit 58e000d30127b70f147f5f615fddea5358992029
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 14:33:50 2010 -0400

    Only run the schema compiler from the test cases

 gio/tests/Makefile.am | 6 ------
 1 file changed, 6 deletions(-)

commit 6c3ae976e61a9c680c7e18ff89d41d0808a066c4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 14:05:40 2010 -0400

    Bug 621266  - GSettings "context" clarification

    Remove the concept of "context" in favour of dealing with
    GSettingsBackend directly.

 gio/gio.symbols                |   9 +-
 gio/gkeyfilesettingsbackend.c  |  39 +--------
 gio/gsettings.c                |  80 ++++++++---------
 gio/gsettings.h                |  11 ++-
 gio/gsettingsbackend.c         | 192
 +++++++++--------------------------------
 gio/gsettingsbackend.h         |  23 +++--
 gio/gsettingsbackendinternal.h |  30 +++----
 gio/tests/Makefile.am          |  11 +--
 gio/tests/gsettings.c          |   9 +-
 9 files changed, 120 insertions(+), 284 deletions(-)

commit b3cc28bc34bd0b341f1786dc478cff259ce5d1da
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Thu Jun 17 18:26:15 2010 +0200

    Bug 621905 – Assume a ref when doing async work

    When asynchronously acquiring the DBus connection, assume a
    reference to
    the proxy object, to avoid destroying it in the middle of the
    operation.

    See https://bugzilla.gnome.org/show_bug.cgi?id=621905

 gio/gdbusproxy.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit d352ec2bf383754f352fc7cbfb7a48918cc0d9ea
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 10:50:47 2010 -0400

    GSettings-related distcheck fixups

 gio/tests/Makefile.am | 92
 +++++++++++++++++++++++++++++++--------------------
 gio/tests/gsettings.c |  6 ++--
 2 files changed, 61 insertions(+), 37 deletions(-)

commit fcbddd746b73bc2c4ab2754f66355bd8b59d9a6b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 09:38:39 2010 -0400

    Add 'if' that was absorbed by $(AM_V_GEN)

    From commit 1b8ee5196eb8ed684b0ee0d2f0d26e6bd82656af

 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e7cd94a481065806eff1f330c2b4fe0cf8c913fb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 08:57:19 2010 -0400

    More GSettings doc fixups

 gio/gsettings.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 92375a8c8e14517fd7b6d2321e73b4acf15f1442
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 08:08:28 2010 -0400

    <alias> takes mandatory target='' arg

 gio/gsettings.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d405ad8a09806361637b0abed76e62bc64b66cbe
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 08:06:52 2010 -0400

    GSettings: Fix comment formatting, whitespace.

 gio/gsettings.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 24f1fa12c148141b8be39083f0ba7106fd97590f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 01:51:23 2010 -0400

    Add new api

 docs/reference/gio/gio-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 61af83c5b6a632448e9330eedebf7f8aa225f2e3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 01:38:14 2010 -0400

    Add some schema examples

 gio/gsettings.c | 82
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 80 insertions(+), 2 deletions(-)

commit fbf93c371a8e9c8f5593ba34917e112b9759a801
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 00:45:43 2010 -0400

    Typo fix

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 345a1ee31c9d8783670ca3ad3c7d6e526b0c039c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 17 00:37:12 2010 -0400

    Update the dtd to match the schema parser

    The aliases element was not mentioned here.

 gio/gsettings.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 3fbac9940263def7a741570ca71e07962fe365c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 16 22:42:16 2010 -0400

    Updates

 NEWS | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

commit fc538894d38780be8fb46735a07e2d36c34eaacb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 17 00:03:44 2010 -0400

    GSettings: enum/choices/aliases/range test cases

    Fix a small bug that one of the tests uncovered.

 gio/gschema-compile.c                              | 10 ++++----
 gio/strinfo.c                                      |  2 +-
 gio/tests/.gitignore                               |  1 +
 gio/tests/gschema-compile.c                        | 27
 +++++++++++++++++++++-
 gio/tests/schema-tests/bad-choice.gschema.xml      | 14 +++++++++++
 gio/tests/schema-tests/bare-alias.gschema.xml      |  7 ++++++
 gio/tests/schema-tests/choice-alias.gschema.xml    | 15 ++++++++++++
 gio/tests/schema-tests/choice-bad.gschema.xml      | 14 +++++++++++
 gio/tests/schema-tests/choice-badtype.gschema.xml  |  7 ++++++
 .../schema-tests/choice-invalid-alias.gschema.xml  | 15 ++++++++++++
 .../schema-tests/choice-shadowed-alias.gschema.xml | 14 +++++++++++
 .../schema-tests/choice-upside-down.gschema.xml    | 14 +++++++++++
 gio/tests/schema-tests/choice.gschema.xml          | 14 +++++++++++
 .../schema-tests/default-in-aliases.gschema.xml    | 15 ++++++++++++
 .../schema-tests/enum-with-aliases.gschema.xml     | 20 ++++++++++++++++
 .../schema-tests/enum-with-bad-default.gschema.xml | 16 +++++++++++++
 .../enum-with-chained-alias.gschema.xml            | 21 +++++++++++++++++
 .../schema-tests/enum-with-choice.gschema.xml      | 17 ++++++++++++++
 .../enum-with-invalid-alias.gschema.xml            | 20 ++++++++++++++++
 .../enum-with-repeated-alias.gschema.xml           | 21 +++++++++++++++++
 .../enum-with-shadow-alias.gschema.xml             | 20 ++++++++++++++++
 gio/tests/schema-tests/enum.gschema.xml            | 16 +++++++++++++
 gio/tests/schema-tests/range-badtype.gschema.xml   |  7 ++++++
 .../schema-tests/range-default-high.gschema.xml    |  8 +++++++
 .../schema-tests/range-default-low.gschema.xml     |  8 +++++++
 .../schema-tests/range-high-default.gschema.xml    |  8 +++++++
 .../schema-tests/range-low-default.gschema.xml     |  8 +++++++
 .../schema-tests/range-parse-error.gschema.xml     |  8 +++++++
 gio/tests/schema-tests/range.gschema.xml           |  8 +++++++
 29 files changed, 368 insertions(+), 7 deletions(-)

commit be8f938b6309afccd85e8f79d5e8c42a1ab11131
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 16 18:49:20 2010 -0400

    move GSettings(Backend) to giotypes.h

 gio/giotypes.h         | 5 ++++-
 gio/gsettings.h        | 3 +--
 gio/gsettingsbackend.h | 2 --
 3 files changed, 5 insertions(+), 5 deletions(-)

commit f0d30e0c0c645b585478dcae58a4e8d4cdd80fd8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 16 18:36:24 2010 -0400

    Bug 621319 - more leaked GVariants in GSettings

    Caught by Felix Riemann.

 gio/gsettings.c | 1 +
 1 file changed, 1 insertion(+)

commit 4275c68c30bc372b4aa5d9f5a5ee7f2817d49d4e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 16 18:22:48 2010 -0400

    GVariant serialiser: fix small type error

 glib/gvariant-serialiser.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 597290d5c81bf889a694e286ea2434655b82a404
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 14 17:29:41 2010 -0400

    GSettings: major refactor.  Add enums, range.

 gio/Makefile.am                    |    2 +-
 gio/gio.symbols                    |    2 +
 gio/gschema-compile.c              | 1326 +++++++++++++++------
 gio/gsettings-mapping.c            |   24 +-
 gio/gsettings.c                    | 2287
 +++++++++++++++++++++---------------
 gio/gsettings.h                    |    6 +-
 gio/gsettingsbackend.c             |   27 +-
 gio/gsettingsschema.c              |   45 +-
 gio/gsettingsschema.h              |    5 +-
 gio/strinfo.c                      |  308 +++++
 gio/tests/enums.xml.template       |   18 +
 gio/tests/gsettings.c              |  148 ++-
 gio/tests/org.gtk.test.gschema.xml |   28 +
 gio/tests/testenum.h               |    7 +
 14 files changed, 2893 insertions(+), 1340 deletions(-)

commit b205dc77cb14f67818eaac23d0eb3f5d1b867921
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 16 15:56:51 2010 -0400

    GVariant: add g_variant_default_value()

    Returns various kinds of false, zero, empty arrays, etc.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gvariant.c                       | 32
 ++++++++++++++++++++++++++++++--
 glib/gvariant.h                       |  1 +
 4 files changed, 33 insertions(+), 2 deletions(-)

commit 6a1cb9f697c0cd69d717b2a1457dd696702f4e48
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Jun 16 18:47:20 2010 +0200

    Typo fix

 gobject/gparam.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b90f11ff970a39ea6d9d7abbe01b07043c70de6b
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Jun 16 17:48:02 2010 +0200

    Typo fix

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 102c5f6a7d13ec099a8c89db0651172fd3230268
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 16 00:18:09 2010 -0400

    Rework GApplication API to use GInitable

    https://bugzilla.gnome.org/show_bug.cgi?id=620952

 gio/gapplication.c      | 407
 ++++++++++++++++++++++++++++++++++++------------
 gio/gapplication.h      |  21 ++-
 gio/gdbusapplication.c  | 119 ++++++--------
 gio/gio.symbols         |   5 +-
 gio/gnullapplication.c  |  13 +-
 gio/tests/application.c |   2 +-
 gio/tests/testapp.c     |   8 +-
 7 files changed, 388 insertions(+), 187 deletions(-)

commit 25ba90ffdd744d4c3c59cc550cdf08f3de11d542
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 16 15:09:33 2010 +0100

    Add gdbus-proxy-well-known-name to the ignore file

 gio/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 33aa4b4c662f18433ed27cd319ab5c97e5a9d9da
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 16 15:08:10 2010 +0100

    binding: Use a hash table

    Since an object instance might have a lot of bindings, using a list
    might become a performance issue when removing them. Using a simple
    hash table guarantees constant time lookup, which is the most common
    operation.

 gobject/gbinding.c | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

commit f72f65643fb1d832e8296b26cff77dedbdac310f
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Wed Jun 16 14:47:06 2010 +0100

    tests: Add a chain binding

    Test the case with a chain like A → B, B → C, and what happens
    when
    switching to a direct A → C link.

    https://bugzilla.gnome.org/show_bug.cgi?id=621782

 gobject/tests/binding.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 48e3b31042c9a86d06740f2c73cbb6ffa140ba54
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 15 22:06:56 2010 -0400

    Properly initialize GError

    Pointed out by Florian Müllner in bug #621702

 gio/gdbusproxy.c | 1 +
 1 file changed, 1 insertion(+)

commit 1b8ee5196eb8ed684b0ee0d2f0d26e6bd82656af
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jun 15 22:01:02 2010 -0400

    Sprinkle some $(AM_V_GEN) around to make the build more silent.

 Makefile.am               |  5 ++---
 gio/Makefile.am           | 14 +++++++-------
 glib/Makefile.am          |  8 ++++----
 gmodule/Makefile.am       |  4 ++--
 gobject/Makefile.am       | 16 ++++++++--------
 gthread/Makefile.am       |  2 +-
 tests/gobject/Makefile.am |  4 ++--
 7 files changed, 26 insertions(+), 27 deletions(-)

commit 062148ae9a4176a28c055a6e3505f4e5c9ff6313
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 15 21:57:57 2010 -0400

    Correct some documentation mistakes in gunixmounts.c

    Pointed out by Ross Burton in bug #618904

 gio/gunixmounts.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit 6d1d9cf1b551845a159a6b822500bb40e33fda74
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Fri Jun 4 16:17:15 2010 +0100

    gobject: Add GBinding

    GBinding is a simple, opaque object that represents a binding
    between a
    property on a GObject instance (source) and property on another
    GObject
    instance (target).

    https://bugzilla.gnome.org/show_bug.cgi?id=348080

 docs/reference/gobject/gobject-docs.sgml    |   1 +
 docs/reference/gobject/gobject-sections.txt |  23 +
 docs/reference/gobject/gobject.types        |   1 +
 glib/glib-object.h                          |   1 +
 gobject/Makefile.am                         |   5 +-
 gobject/gbinding.c                          | 937
 ++++++++++++++++++++++++++++
 gobject/gbinding.h                          | 119 ++++
 gobject/gobject.symbols                     |  15 +
 gobject/tests/.gitignore                    |   1 +
 gobject/tests/Makefile.am                   |   4 +-
 gobject/tests/binding.c                     | 326 ++++++++++
 11 files changed, 1430 insertions(+), 3 deletions(-)

commit f3879a4bdca2ff1cf6c6b016d67a7e5d40c0e86b
Author: Damien Lespiau <damien.lespiau@gmail.com>
Date:   Sat Apr 10 15:50:40 2010 +0100

    Introduce g_object_notify_by_pspec()

    g_object_notify_by_pspec() will emit the "notify" signal on the given
    pspec, short-circuiting the hash table lookup needed by
    g_object_notify(). The suggested and documented way of using
    g_object_notify_by_pspec() is similar to the way of emitting signals
    with their ID.

    Emission tests (with no handler attached to the notify signal) show a
    10-15% speedup over using g_object_notify().

    https://bugzilla.gnome.org/show_bug.cgi?id=615425

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gobject.c                           | 82
 ++++++++++++++++++++++++++---
 gobject/gobject.h                           |  2 +
 gobject/gobject.symbols                     |  1 +
 4 files changed, 79 insertions(+), 7 deletions(-)

commit 08f473ffeff7524e619dc0459c07a981a3b4285c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 15 02:01:16 2010 -0400

    Prevent division by zero if no tests

 glib/gtester-report | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 53f70ac43b0a4d2de109a73b0ea3724aefe95d5d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 15 01:50:15 2010 -0400

    Forgotten file

 glib/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit f9e8b5d9d47859c7bb62430753ce77e981e4ee65
Author: Robert Collins <robertc@robertcollins.net>
Date:   Tue Jun 15 01:49:44 2010 -0400

    Add subunit support to gtester-report

    This patch adds subunit support to gtester-report via a -s
    switch. Subunit
    (https://launchpad.net/subunit) is a language neutral test activity
    protocol.
    This can be used to integrate gtester tests with the Hudson CI
    tool amongst
    other things.

    Bug #611869.

 glib/gtester-report | 141
 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 129 insertions(+), 12 deletions(-)

commit 8de6d03c4417a16cad2d089805f93da4b4160602
Author: Robert Collins <robertc@robertcollins.net>
Date:   Tue Jun 15 01:37:14 2010 -0400

    Use optparse to parse gtester-report commandline options

    See bug #611778.

 glib/gtester-report | 54
 +++++++++++++++++++++++------------------------------
 1 file changed, 23 insertions(+), 31 deletions(-)

commit ddb9a2f26490b45f9cbda51b79ebcafb38b6ca81
Author: Emmanuele Bassi <ebassi@gmail.com>
Date:   Tue Jun 15 01:31:18 2010 -0400

     Add package and version to the test report XML

 Makefile.decl       |  8 ++++++--
 glib/gtester-report | 16 ++++++++++++++--
 2 files changed, 20 insertions(+), 4 deletions(-)

commit 9971686b7e0d3a3f8416534a55e246bbfd901d0a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 15 00:50:36 2010 -0400

    Reword a doc comment

    To take out some awkward wording.

 glib/gmarkup.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit a500de820260915c6b4d4724d6029ee5b8552ae7
Author: Hib Eris <hib@hiberis.nl>
Date:   Tue Jun 15 00:39:46 2010 -0400

    Let GLIB_SETTINGS macro use glib-compile-schemas from PATH when
    cross compiling

    See bug #621172

 m4macros/gsettings.m4 | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit b079d6a54616514e80b552ebe0a42f45e379b0e8
Author: Hib Eris <hib@hiberis.nl>
Date:   Tue Jun 15 00:38:35 2010 -0400

    Use native glib-compile-schemas when cross compiling

 configure.in          | 8 +++++++-
 gio/tests/Makefile.am | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

commit 85210bcf9b7f597aa2ad2a7087709c6091638805
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 8 16:25:33 2010 -0400

    Switch to using variants for timestamps, split out signals

    Like how we're handling activation, use GVariant for timestamps.  To
    avoid polluting the GtkApplication API with GVariants, we rename the
    GApplication signals to "quit-with-data" and "action-with-data".
    GtkApplication will then wrap those as just "quit" and "action".

    https://bugzilla.gnome.org/show_bug.cgi?id=621002

 gio/gapplication.c      | 94
 ++++++++++++++++++++++++++-----------------------
 gio/gapplication.h      | 27 ++++++--------
 gio/gdbusapplication.c  | 47 ++++++++++++++++---------
 gio/gio-marshal.list    |  2 ++
 gio/gio.symbols         |  2 +-
 gio/tests/application.c | 63 ++++++++++++++++++++++++++-------
 gio/tests/testapp.c     |  4 +--
 gio/tests/testapps.c    | 17 ++++++---
 8 files changed, 159 insertions(+), 97 deletions(-)

commit 8c4e1fa0afd97ae211260e4990585629d3c010a1
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 13 15:16:33 2010 +0200

    Add --xml to gdbus-tool to print raw introspected XML

    Bug #621442.

 docs/reference/gio/gdbus.xml |  1 +
 gio/gdbus-tool.c             | 23 ++++++++++++++++-------
 2 files changed, 17 insertions(+), 7 deletions(-)

commit fdb15058a4625e0f2eb56c56d945e032d8a833ca
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 12 18:40:45 2010 -0400

    Avoid a race in application registration

    We need to register the object before taking the name.
    Remove the workarounds for this race from the test suite.

 gio/gdbusapplication.c | 45 ++++++++++++++++++++++++++-------------------
 gio/tests/testapps.c   |  7 +------
 2 files changed, 27 insertions(+), 25 deletions(-)

commit 5e03f273be30d0f5756102d49b20bbabc5743113
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Jun 12 17:47:40 2010 +0200

    Updated Galician translations

 po/gl.po | 1290
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 663 insertions(+), 627 deletions(-)

commit 19012ada573221aeedaa982336f2f7b945860bb3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jun 12 01:55:25 2010 -0400

    Accept no-reply errors

    This can happen if the app quits before the dbus reply can be
    sent out.

 gio/tests/testapps.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 330cdfbdf1959af90506aa24cc276a20b00878b8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 11 23:21:49 2010 -0400

    Make the tests not fall over every other time

 gio/tests/testapps.c | 80
 ++++++++++++++++++++++++++++++++--------------------
 1 file changed, 50 insertions(+), 30 deletions(-)

commit 32f2e9a85beedeea36ac7623f68f6eb878465d44
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Jun 11 15:45:18 2010 -0400

    Bug 621213 – GDBusProxy and well-known names

    Allow constructing a GDBusProxy for well-known names as discussed here
    http://mail.gnome.org/archives/gtk-devel-list/2009-October/msg00075.html
    including test cases.

    Make it possible to create a GDBusProxy for a GBusType instead of a
    GDBusConnection. This requires G_BUS_TYPE_NONE so add that too.

    Nuke g_bus_watch_proxy() since one can now more or less use GDBusProxy
    for this.

    Port gdbus-example-watch-proxy to this new API and include this
    example in the GDBusProxy doc page.

    Also nuke the GType parameter from the GDBusProxy constructors as
    requested here: https://bugzilla.gnome.org/show_bug.cgi?id=621229

    Also update the porting guide and other API docs for this change.

    Also fix a bug in the signal dispatching code so each subscriber only
    get notified once, not N times, for the same signal. Also add a test
    case for this.

    https://bugzilla.gnome.org/show_bug.cgi?id=621213

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gio/gio-docs.xml          |    1 -
 docs/reference/gio/gio-sections.txt      |   17 +-
 docs/reference/gio/migrating-gdbus.xml   |   62 +-
 gio/Makefile.am                          |    2 -
 gio/gdbusconnection.c                    |  152 +++--
 gio/gdbusproxy.c                         | 1071
 ++++++++++++++++++++++++------
 gio/gdbusproxy.h                         |   28 +-
 gio/gdbusproxywatching.c                 |  666 -------------------
 gio/gdbusproxywatching.h                 |  115 ----
 gio/gio.h                                |    1 -
 gio/gio.symbols                          |   16 +-
 gio/gioenums.h                           |   14 +-
 gio/tests/Makefile.am                    |    4 +
 gio/tests/gdbus-connection.c             |   22 +-
 gio/tests/gdbus-example-proxy-subclass.c |   83 ---
 gio/tests/gdbus-example-watch-proxy.c    |  149 +++--
 gio/tests/gdbus-export.c                 |    5 -
 gio/tests/gdbus-introspection.c          |   55 +-
 gio/tests/gdbus-peer.c                   |    1 -
 gio/tests/gdbus-proxy-well-known-name.c  |  283 ++++++++
 gio/tests/gdbus-proxy.c                  |   84 +--
 gio/tests/gdbus-threading.c              |   55 +-
 22 files changed, 1508 insertions(+), 1378 deletions(-)

commit e0f8d30dea3d9509867f29289835ea3d58b32730
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 11 14:52:17 2010 -0400

    gitignore GApplication test-cases

 gio/tests/.gitignore | 5 +++++
 1 file changed, 5 insertions(+)

commit 0fc60514fcf9b0d38292ca3a9c416943f722227a
Author: Felix Riemann <friemann@gnome.org>
Date:   Fri Jun 11 00:10:05 2010 +0200

    Close memory leak in GSettings

    Fixes bug #621252.

 gio/gsettings.c | 1 +
 1 file changed, 1 insertion(+)

commit aeb41b56e123a4946fd76e89b2cf47a46e6411f6
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Jun 11 09:59:56 2010 +0200

    converter streams: make code more readable

    The name buffer_availabile was kinda confusing, so its been renamed
    to buffer_data_size() to match buffer_data().

    Also I added a comment to buffer_ensure_space because its behaviour
    wasn't obvious.

 gio/gconverterinputstream.c  | 26 ++++++++++++++------------
 gio/gconverteroutputstream.c | 26 ++++++++++++++------------
 2 files changed, 28 insertions(+), 24 deletions(-)

commit 6858ab20330ec31322dacbbdfaf66838fdcbfb78
Author: Jürg Billeter <j@bitron.ch>
Date:   Fri May 28 11:00:37 2010 +0200

    Use correct offset for buffer data in GConverterOutputStream

    Otherwise we overwrite already converted data in the case that more
    than one call to g_converter_convert is necessary in write() or
    flush().

    https://bugzilla.gnome.org/show_bug.cgi?id=619945

 gio/gconverteroutputstream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 86592d675ff8f1bf0f647fe926ea6085e7b1f2bc
Author: Jürg Billeter <j@bitron.ch>
Date:   Thu May 27 16:55:53 2010 +0200

    Ensure we always have some target space in GConverterOutputStream

    When the converter fills the whole buffer without reading all input,
    we need to enlarge the buffer. Otherwise we get an assertion failure
    for `outbuf_size > 0' in g_converter_convert.

    https://bugzilla.gnome.org/show_bug.cgi?id=619945

 gio/gconverteroutputstream.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 85ea72c0c5716b6ebd62272e17e8e4e3b9014f65
Author: Christian Dywan <christian@twotoasts.de>
Date:   Fri Jun 11 09:46:47 2010 +0200

    Add a regression test for GConverterOutputStream corruption

    See bug #619945 for background

 gio/tests/converter-stream.c | 54
 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

commit ceee4c21a31e01009960af1be331154f47548291
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 10 22:35:31 2010 -0400

    GSettings test case fixes

     - call g_settings_sync()
     - fix bug #618715 by not forking if a backend is specified via
       environment variable

 gio/tests/gsettings.c | 53
 +++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 39 insertions(+), 14 deletions(-)

commit a8b5353b1480edbb6a28afe39056bf6a64a1e42d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 10 22:30:44 2010 -0400

    Add g_settings_sync() and use it

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gsettings-tool.c                | 19 +------------------
 gio/gsettings.c                     | 28 ++++++++++++++++++++++++++++
 gio/gsettings.h                     |  1 +
 gio/gsettingsbackend.c              | 15 +++++++++++++++
 gio/gsettingsbackendinternal.h      |  2 ++
 7 files changed, 49 insertions(+), 18 deletions(-)

commit afea703422001cbbe8bbd2e13842008a482cd9ae
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 10 15:27:46 2010 -0400

    Implement byteswapping in the reader

 gvdb-reader.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

commit 7c36619d269284597d5df4f366b6389df9bcf617
Author: Colin Walters <walters@verbum.org>
Date:   Thu Jun 10 14:02:15 2010 -0400

    [Gio] Merge in introspection annotations from gobject-introspection
    gio-2.0.c

    This is not an exhaustive set, but covers everything we have so far.

 gio/gappinfo.c            | 10 +++++-----
 gio/gdesktopappinfo.c     |  6 +++---
 gio/gdrive.c              |  2 +-
 gio/gfile.c               | 34 +++++++++++++++++-----------------
 gio/gfileenumerator.c     |  2 +-
 gio/gfileinfo.c           | 14 +++++++-------
 gio/gfilenamecompleter.c  |  2 +-
 gio/gfilterinputstream.c  |  2 +-
 gio/gfilteroutputstream.c |  2 +-
 gio/goutputstream.c       |  6 +++---
 gio/gvolume.c             |  8 ++++----
 gio/gvolumemonitor.c      |  6 +++---
 12 files changed, 47 insertions(+), 47 deletions(-)

commit 3a062d2e33aa1d54dd460a1a2cb297009d94d4d6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 10 13:49:57 2010 -0400

    GSettings: store (default, options) in gvdb

    gvdb just dropped the ability to have a separate "options" field.  We
    now store the options into a GVariant along with the default value.

    For now, we use a small shim in GSettingsSchema in order not to touch
    too much code.  A more complete rewrite will follow.

    This represents a change to the schema file format with another likely
    to follow.  glib-compile-schemas needs to be re-run after installing
    this change.

 gio/gschema-compile.c |  7 +++----
 gio/gsettings.c       | 12 +++++-------
 gio/gsettingsschema.c | 25 ++++++++++++++++---------
 gio/gsettingsschema.h |  3 +++
 4 files changed, 27 insertions(+), 20 deletions(-)

commit 73007021796f33d7ccec4e5f2bb2b2f8660347f2
Merge: 45e604d 9a8cba9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 10 13:35:25 2010 -0400

    Merge remote branch 'gvdb/master'

commit 9a8cba9eb53f105b752aac7bb16c7c83c6617caf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 10 13:34:56 2010 -0400

    drop "options" support

 gvdb-builder.c | 41 -----------------------------------------
 gvdb-builder.h |  3 ---
 gvdb-format.h  |  2 --
 gvdb-reader.c  | 32 ++------------------------------
 gvdb-reader.h  |  3 +--
 5 files changed, 3 insertions(+), 78 deletions(-)

commit 45e604d029980f90a7304b6311fc43cc0cc2ab69
Author: Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>
Date:   Thu Jun 10 18:29:23 2010 +0200

    Add _with_closures alternative functions for those in GDBus that
    accept more than one callback.

    g_bus_own_name_with_closures
    g_bus_own_name_on_connection_with_closures
    g_bus_watch_name_with_closures
    g_bus_watch_name_on_connection_with_closures
    g_bus_watch_proxy_with_closures
    g_bus_watch_proxy_on_connection_with_closures

    https://bugzilla.gnome.org/show_bug.cgi?id=621092

 docs/reference/gio/gio-sections.txt |   6 ++
 gio/gdbusnameowning.c               | 173
 +++++++++++++++++++++++++++++++++++
 gio/gdbusnameowning.h               |  14 +++
 gio/gdbusnamewatching.c             | 149 ++++++++++++++++++++++++++++++
 gio/gdbusnamewatching.h             |  11 +++
 gio/gdbusproxywatching.c            | 177
 ++++++++++++++++++++++++++++++++++++
 gio/gdbusproxywatching.h            |  19 ++++
 gio/gio.symbols                     |   6 ++
 gio/pltcheck.sh                     |   2 +-
 9 files changed, 556 insertions(+), 1 deletion(-)

commit 8cab5e46934554d899274dd96e6a1d5fbbbc9ea6
Author: Colin Walters <walters@verbum.org>
Date:   Wed Jun 9 17:17:14 2010 -0400

    [GApplication] Tweak docs a bit

 gio/gapplication.c | 34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)

commit cc19922183b18683da192cc7371a510cf648ec64
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 8 21:43:16 2010 -0400

    Rewrite apps test to ensure children are killed

    Create a function run_with_application that both ensures the
    app is running exactly while the test is running, which most
    of the tests use.  We start it beforehand, and kill it after.
    This avoids having any interdependence between the tests (and
    there definitely was before, because we didn't wait for
    the process to actually terminate after a kill() call).

    Also, open a pipe between the two, and have the child app
    monitor that pipe.  If it gets closed (e.g. because the parent
    died), the child exits.  This is the most reliable way to
    avoid stale children; before, if we failed an assertion, the
    parent would abort, and not run kill().

    https://bugzilla.gnome.org/show_bug.cgi?id=621034

 gio/tests/testapp.c  |  50 ++---
 gio/tests/testapps.c | 512
 +++++++++++++++++++++++++++------------------------
 2 files changed, 298 insertions(+), 264 deletions(-)

commit 8d3fea9cff848d1b45c0a6371ef448c11d992757
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 10 08:06:32 2010 -0400

    Mention GVariant format string docs from iter docs

    It's not entirely clear what @format_string in iter_next() and
    iter_loop() should be.  Include a link to the GVariant format string
    docs as a hint.

 glib/gvariant.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 507c266c3bdf03d9d75ad11bb346f013172f5ad5
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Jun 10 11:52:25 2010 +0300

    Plug memory leak on Windows

    Intern the string returned from g_win32_getlocale() and then free it.
    Fixes bug #621168.

 glib/gutils.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 6720596544112a40e8133aea86672197edb46eed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 9 23:44:13 2010 -0400

    Fix GApplication tests to run without a session bus

    We reuse code from the GDBus tests here to launch a session bus.

 gio/tests/Makefile.am   |  4 ++--
 gio/tests/application.c | 15 ++++++++++++++-
 gio/tests/testapps.c    | 15 ++++++++++++++-
 3 files changed, 30 insertions(+), 4 deletions(-)

commit db0c55608f0500e8ab47a222a644ea3085b80151
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jun 9 17:57:04 2010 -0400

    GDBusConnection: Do not dispatch calls to unregistered objects
    or subtrees

    There was a slight race where we ended up calling into user code if
    the user managed to unregister an object (or subtree) in the window
    between

     - processing the remote call on the worker thread; and
     - continuing handling it on the user code thread (via an idle
     handler)

    This patch fixes the problem.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 123
 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 117 insertions(+), 6 deletions(-)

commit ed7f59770e01623fa411530c81cbb04f73555a4c
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jun 9 17:08:34 2010 -0400

    GDBusProxy: Fix error handling in synchronous initialization codepath

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 653921e17a00d161a25b21d61ff12b8d03208202
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 9 12:43:13 2010 -0400

    g_variant_builder_add_parsed: fix type error

    Problem caught by Juan A. Suarez Romero

 glib/gvariant-parser.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f265319b59239f7ad74283b79a62e28afe4ff111
Author: Richard Hughes <richard@hughsie.com>
Date:   Wed Jun 9 09:36:47 2010 +0100

    Do not do update-po at distcheck time to avoid touching files checked
    into version control

 po/Makefile.in.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1951c39c44afad8273e2978b4c1420e975882934
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Jun 9 10:56:35 2010 -0400

    Bug 621119 – GDBusProxy and objects with no properties

    Fix proxy construction for objects with no properties in the case
    where G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES isn't set.

    The unfortunate side-effect here is that GDBusProxy can no longer be
    used to test for "object existence", e.g. creating a GDBusProxy for
    any path and interface will not fail. But that's not really a big
    deal, if apps rely on that they are doing something very wrong.

    https://bugzilla.gnome.org/show_bug.cgi?id=621119

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 42 +++++++++++++++++++++++++++++++-----------
 1 file changed, 31 insertions(+), 11 deletions(-)

commit 67193f55c3201e32405c5a15621d49f703b83f8f
Author: Juan A. Suarez Romero <jasuarez@igalia.com>
Date:   Wed Jun 9 10:27:39 2010 +0200

    Fix warning

    Disable functions defined but not used.

 gio/tests/filter-streams.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 992e07c8b2e8f75bcc87c30e1ac2aca1ccf432e3
Author: Juan A. Suarez Romero <jasuarez@igalia.com>
Date:   Wed Jun 9 10:23:39 2010 +0200

    Fix warnings

    Do explicit casts to avoid warnings.

 gio/inotify/inotify-helper.c     | 2 +-
 gio/tests/memory-output-stream.c | 2 +-
 tests/testglib.c                 | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 2b72587bedfe293964529aa9f6d6034e7976209b
Author: blue dark <arkblue086@yahoo.com.cn>
Date:   Wed Jun 9 15:13:14 2010 +0800

    Updated zh_CN translation.

 po/ChangeLog |    4 +
 po/zh_CN.po  | 1682
 +++++++++++++++++++++++++++++-----------------------------
 2 files changed, 859 insertions(+), 827 deletions(-)

commit d8dca11733e483670f47fa5c4d8f4a5cb97f6b5b
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jun 8 19:40:58 2010 +0200

    Fix thinko

    When replacing strcmp() with g_variant_is_of_type(), remove the "== 0"
    part! Found by Colin Walters.

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0ed183b572db48d0091f9c6ee5e3e005a382c66a
Author: Colin Walters <walters@verbum.org>
Date:   Tue Jun 8 11:21:48 2010 -0400

    [GDBusConnection] Use Gio's default async implementation again

    The fix was committed in git.

    https://bugzilla.gnome.org/show_bug.cgi?id=620990

 gio/gdbusconnection.c | 46 +---------------------------------------------
 1 file changed, 1 insertion(+), 45 deletions(-)

commit 06e74ca96928550a31fc05991df01e68300d8a45
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jun 8 13:40:38 2010 +0200

    g_dbus_method_invocation_return_value consumes the floating variant

    Bug #620953.

 gio/gdbusmethodinvocation.c | 1 +
 1 file changed, 1 insertion(+)

commit 2ab9a07ec79b7dd979253340cf7a471048be0c8f
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jun 8 13:36:58 2010 +0200

    Simplify variant builder

    Build the full return value with one builder, and don't unref the
    unowned return value!

    Bug #620954.

 gio/gdbusapplication.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

commit d3b091f63abde2f7de587986a65004ddf2c4ed2a
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jun 8 13:36:00 2010 +0200

    Use g_variant_is_of_type()

    ... instead of strcmp()'ing the type strings.

    Bug #620954.

 gio/gapplication.c     | 2 +-
 gio/gdbusapplication.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit b75e7eb95d4782160a88ea7c4dc714368807408c
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jun 8 13:35:22 2010 +0200

    Plug a mem leak

    Bug #620954.

 gio/gdbusapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 471c4e413c91e0bae040de4e048a9846a1447515
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Jun 8 16:25:38 2010 +0200

    [docs] Fix typos in some g_file_* functions

    Reported by Alexander Saprykin in bug
    https://bugzilla.gnome.org/show_bug.cgi?id=620947

 gio/gfile.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit b482eab3fa14edabb9f237d4a2cf1e6b2ad6e388
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 8 01:10:17 2010 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1a963c659cad268a6689d941bd5a06ab5a12abf1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jun 8 01:09:06 2010 -0400

    2.25.8

 po/af.po          |   74 +--
 po/am.po          |   74 +--
 po/ar.po          |   74 +--
 po/as.po          |   74 +--
 po/ast.po         |   74 +--
 po/az.po          |   74 +--
 po/be.po          |   74 +--
 po/be@latin.po    |   74 +--
 po/bg.po          |   74 +--
 po/bn.po          |   74 +--
 po/bn_IN.po       |   74 +--
 po/bs.po          |   74 +--
 po/ca.po          |   74 +--
 po/ca@valencia.po |   74 +--
 po/cs.po          |   74 +--
 po/cy.po          |   74 +--
 po/da.po          |   74 +--
 po/de.po          |   74 +--
 po/dz.po          |   74 +--
 po/el.po          |   74 +--
 po/en@shaw.po     |   74 +--
 po/en_CA.po       |   74 +--
 po/en_GB.po       |   74 +--
 po/eo.po          |  805 +++++++++++++++++++++++--
 po/es.po          | 1268 +++++++++++++++++++--------------------
 po/et.po          |   74 +--
 po/eu.po          |   74 +--
 po/fa.po          |   74 +--
 po/fi.po          |   74 +--
 po/fr.po          |   74 +--
 po/ga.po          |   74 +--
 po/gl.po          | 1249 +++++++++++++++++++-------------------
 po/gu.po          |   74 +--
 po/he.po          |   76 +--
 po/hi.po          |   74 +--
 po/hr.po          |   74 +--
 po/hu.po          |   74 +--
 po/hy.po          |   74 +--
 po/id.po          | 1252 +++++++++++++++++++-------------------
 po/is.po          |   74 +--
 po/it.po          |   74 +--
 po/ja.po          |   74 +--
 po/ka.po          |   74 +--
 po/kn.po          |   74 +--
 po/ko.po          |   74 +--
 po/ku.po          |   74 +--
 po/lt.po          |   74 +--
 po/lv.po          |   74 +--
 po/mai.po         |   74 +--
 po/mg.po          |   74 +--
 po/mk.po          |   74 +--
 po/ml.po          |   74 +--
 po/mn.po          |   74 +--
 po/mr.po          |   74 +--
 po/ms.po          |   74 +--
 po/nb.po          | 1249 +++++++++++++++++++-------------------
 po/nds.po         |   74 +--
 po/ne.po          |   74 +--
 po/nl.po          |   74 +--
 po/nn.po          |   74 +--
 po/oc.po          |   74 +--
 po/or.po          |   74 +--
 po/pa.po          |   74 +--
 po/pl.po          |   74 +--
 po/ps.po          |   74 +--
 po/pt.po          |   74 +--
 po/pt_BR.po       |   74 +--
 po/ro.po          |   74 +--
 po/ru.po          |   74 +--
 po/rw.po          |   74 +--
 po/si.po          |   74 +--
 po/sk.po          |   74 +--
 po/sl.po          | 1731
 +++++++++++++++++++++++++----------------------------
 po/sq.po          |   74 +--
 po/sr.po          |   74 +--
 po/sr@ije.po      |   74 +--
 po/sr@latin.po    |   74 +--
 po/sv.po          |   74 +--
 po/ta.po          |   74 +--
 po/te.po          |   74 +--
 po/th.po          |   74 +--
 po/tl.po          |   74 +--
 po/tr.po          |   74 +--
 po/tt.po          |   74 +--
 po/uk.po          |   74 +--
 po/vi.po          |   74 +--
 po/wa.po          |   74 +--
 po/xh.po          |   74 +--
 po/yi.po          |   74 +--
 po/zh_CN.po       |   74 +--
 po/zh_HK.po       |   74 +--
 po/zh_TW.po       |   74 +--
 92 files changed, 7255 insertions(+), 6665 deletions(-)

commit 795ddeb421eb01bbadf98e05657b92877cd93d96
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 23:41:06 2010 -0400

    Add missing marshaler

 gio/gio-marshal.list | 1 +
 1 file changed, 1 insertion(+)

commit e300c7e622d3e5a5e3eaa339c875484b0e4534eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 23:28:30 2010 -0400

    Fix a missing parameter in a doc comment

    Pointed out by David Zeuthen.

 gio/gapplication.c | 1 +
 1 file changed, 1 insertion(+)

commit a89b10c1dc587cd6806954dc04c3f3e36ee393a5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 23:27:21 2010 -0400

    Fix a signal signature

    GApplication::action was erroneously declaring the timestamp parameter
    as int instead of uint.

 gio/gapplication.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

commit 063470ea0d1a97f964d3901b7873fddcbadc4c0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 22:34:07 2010 -0400

    Fix a misspelt doc comment

 gio/gapplication.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3b11a7d3f20df2f44b3a97db58bb0ffd02a5f0c0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 22:22:39 2010 -0400

    Add a lost <SECTION>

 docs/reference/gio/gio-sections.txt | 2 ++
 1 file changed, 2 insertions(+)

commit 32b7fbb8907757d8c19c50b48f5917bbad18e43d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 22:21:47 2010 -0400

    Rename GApplication::appid to GApplication::application-id

 gio/gapplication.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit c59cc943188753e0f72a8e554f8142351970aa20
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 21:53:32 2010 -0400

    Fix !srcdir checks

 gio/tests/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit 14c62ff722d74af3baca7cc527f316e4ab095dae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 21:23:37 2010 -0400

    Updates

 NEWS | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

commit fdc99873eeffc36ea2bb0423b586cc3115c76ed2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 18:27:33 2010 -0400

    Document signals

 gio/gapplication.c | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

commit d68100afccc9260309e573bbcb9f0bb387044340
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Jun 7 23:55:34 2010 +0200

    [docs] GApplication is available since Gio 2.26

 gio/gapplication.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit c2a539eff05f1afd43e1c3c0feb9c98ccfdd0a85
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 17:48:09 2010 -0400

    Use g types for consistency

 gio/gapplication.c     | 26 +++++++++++++-------------
 gio/gapplication.h     | 26 +++++++++++++-------------
 gio/gdbusapplication.c |  8 ++++----
 gio/gnullapplication.c |  2 +-
 4 files changed, 31 insertions(+), 31 deletions(-)

commit 6427e93757dbc38cc53ffeb87ed814cdb9df0ed4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 13:25:39 2010 -0400

    Merge the wip/gapplication branch

    This adds a GApplication object to GIO, which is the core of
    an application support class, supporting
    - uniqueness
    - exporting actions (simple scripting)
    - standard actions (quit, activate)

    The implementation for Linux uses D-Bus, takes a name on the
    session bus, and exports a org.gtk.Application interface.

    Implementations for Win32 and OS X are still missing.

 docs/reference/gio/gio-docs.xml     |    4 +
 docs/reference/gio/gio-sections.txt |   32 ++
 docs/reference/gio/gio.types        |    1 +
 gio/Makefile.am                     |    5 +
 gio/gappinfo.c                      |   42 +-
 gio/gapplication.c                  | 1058
 +++++++++++++++++++++++++++++++++++
 gio/gapplication.h                  |  151 +++++
 gio/gdbusapplication.c              |  426 ++++++++++++++
 gio/gdbusconnection.h               |    2 +-
 gio/gdesktopappinfo.c               |   12 +
 gio/gio-marshal.list                |    3 +
 gio/gio.h                           |    1 +
 gio/gio.symbols                     |   21 +
 gio/gnullapplication.c              |   70 +++
 gio/tests/Makefile.am               |   20 +
 gio/tests/appinfo-test.c            |   20 +
 gio/tests/appinfo-test.desktop      |    4 +
 gio/tests/appinfo.c                 |   25 +
 gio/tests/application.c             |  134 +++++
 gio/tests/testapp.c                 |   79 +++
 gio/tests/testapps.c                |  533 ++++++++++++++++++
 21 files changed, 2626 insertions(+), 17 deletions(-)

commit af78f6d418788fa76a2c78298896f9c656d8eb85
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 7 12:58:57 2010 +0200

    Bug 620767 - Typo in GSettings documentation

    Use the correct variable name and work around the escaping of '@'.
    Expand/clarify the section on how translation of <default> is handled.

 docs/reference/gio/migrating-gconf.xml | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

commit 486c46b9459f7b28528d9144296da9e4a32023d3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 7 06:23:24 2010 -0400

    Include the right header

 docs/reference/gio/migrating-gconf.xml | 2 +-
 gio/tests/gsettings.c                  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 71c5e3f899bf15c9dee09b36f146c5e72652d72b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 7 10:18:43 2010 +0200

    Bug 620496 - schema compiler: reject invalid paths

    The GSettings schema compiler was accepting any string as a path.
    It is
    probably quite a common mistake to suspect that '/apps/foo' is a valid
    path name when this will cause all sorts of trouble later.  Check for
    this case and report the error.

 gio/gschema-compile.c                           | 16 ++++++++++++++--
 gio/tests/gschema-compile.c                     |  1 +
 gio/tests/schema-tests/invalid-path.gschema.xml |  3 +++
 3 files changed, 18 insertions(+), 2 deletions(-)

commit a0c044b5c65500080c15e2c5e315bf87487e63b7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 6 16:42:06 2010 -0400

    Make g_assertion_message_error take a const GError*

    This was requested in bug 620265.

 glib/gtestutils.c | 2 +-
 glib/gtestutils.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 87ee5f36413ba421c58bd4e5cbf1d11a681c2abe
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Jun 6 16:32:04 2010 -0400

    Don't do an extra strlen when g_variant_get_string() returns it
    already

 gio/gdbusmessage.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit 2aca3b506a2405927a621bb37447dc96b2aa6174
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 6 16:20:21 2010 -0400

    Add single-include guards to new headers

    As pointed out by Christian Persch in bug 620173, all the new
    gdbus and gsettings headers were missing these.

 gio/gcredentials.h          | 4 ++++
 gio/gdbusaddress.h          | 4 ++++
 gio/gdbusauthobserver.h     | 4 ++++
 gio/gdbusconnection.h       | 4 ++++
 gio/gdbuserror.h            | 4 ++++
 gio/gdbusintrospection.h    | 4 ++++
 gio/gdbusmessage.h          | 4 ++++
 gio/gdbusmethodinvocation.h | 4 ++++
 gio/gdbusnameowning.h       | 4 ++++
 gio/gdbusnamewatching.h     | 4 ++++
 gio/gdbusproxy.h            | 4 ++++
 gio/gdbusproxywatching.h    | 4 ++++
 gio/gdbusserver.h           | 4 ++++
 gio/gdbusutils.h            | 4 ++++
 gio/gsettings.h             | 4 ++++
 15 files changed, 60 insertions(+)

commit 9371ca0cc27573174dfc0419e121f8ac718fe061
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 6 16:15:44 2010 -0400

    Sort gio.h includes alphabetically

 gio/gio.h | 49 +++++++++++++++++++++++++------------------------
 1 file changed, 25 insertions(+), 24 deletions(-)

commit 3944a63fed37e86515178c362b478eafd80199c0
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Jun 6 21:15:42 2010 +0200

    gio: fix the build

 gio/gpermission.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 92fab483875c2d78ae2cb4749ae283cd26afa451
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 6 14:22:48 2010 -0400

    Some cleanups

    Always include config.h, make property strings for translation,
    add since tags.

 gio/gpermission.c       | 49
 +++++++++++++++++++++++++++++++++++++++----------
 gio/gsimplepermission.c |  6 +++++-
 po/POTFILES.in          |  1 +
 3 files changed, 45 insertions(+), 11 deletions(-)

commit 40e10764b343b7cdcf270107d9a5b56e8fa142ec
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Jun 3 15:09:09 2010 +0100

    Add some symbols to glib-sections.txt

    Most of these are private; the few that aren't were already documented
    but not included in the gtkdoc output.

 docs/reference/glib/glib-sections.txt | 12 ++++++++++++
 docs/reference/glib/tmpl/main.sgml    | 27 +++++++++++++++++++++++++++
 2 files changed, 39 insertions(+)

commit f291d3bb3ce1245981363395ac576d74e918cb0a
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Jun 3 15:08:58 2010 +0100

    Document G_GNUC_DEPRECATED_FOR

 docs/reference/glib/glib-sections.txt     |  1 +
 docs/reference/glib/tmpl/macros_misc.sgml | 13 +++++++++++++
 2 files changed, 14 insertions(+)

commit 157116b8dd58429335a16c4d0d2c8ee4ef287302
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Jun 3 14:50:19 2010 +0100

    Add examples for G_STRINGIFY and G_PASTE

 docs/reference/glib/tmpl/macros_misc.sgml | 37
 ++++++++++++++++++++++++++++---
 1 file changed, 34 insertions(+), 3 deletions(-)

commit 28f9f03a3b7dc015ff1b0c6865a952e2ee0f17f3
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Thu Jun 3 14:43:30 2010 +0100

    Hide G_PASTE_ARGS in gtkdocs.

 docs/reference/glib/glib-sections.txt     | 2 +-
 docs/reference/glib/tmpl/macros_misc.sgml | 9 ---------
 2 files changed, 1 insertion(+), 10 deletions(-)

commit a131beda54a15b071b6571b12f2f2ad8cb342c04
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Jun 6 05:25:59 2010 +0200

    [docs] Improve the g_get_system_config_dirs() docs.

    The retrieved list of directories is XDG_CONFIG_DIRS,
    Also mention the retrieved directory on Windows: CSIDL_COMMON_APPDATA

 glib/gutils.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit e08c7b86c43f3eb8c230355be5fa92b504e3fff9
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Jun 6 05:13:06 2010 +0200

    [docs] Improve the g_get_system_data_dirs() docs.

    The retrieved list of directories is XDG_DATA_DIRS

 glib/gutils.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 07777db60d82c8f81feb407ec453f244ba10787c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Jun 6 05:05:15 2010 +0200

    [docs] Improve the g_get_user_cache_dir() docs

    The retrieved directory is XDG_CACHE_HOME on UNIX platforms.
    Also mention the retrieved directory on Windows: CSIDL_INTERNET_CACHE.

 glib/gutils.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit e40b5ae3ef6a637f1469557b8d7be94a9cf59f6e
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Jun 6 04:57:46 2010 +0200

    [docs] Improve the g_get_user_data_dir() docs

    The retrieved directory is XDG_DATA_HOME on UNIX platforms.
    Also mention the retrieved directory on Windows: CSIDL_PERSONAL.

 glib/gutils.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit b2718ee71ad85f2536e5e127239a5a438648de0c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sat Jun 5 18:34:38 2010 +0200

    [docs] Improve the g_get_user_config_dir() docs a bit

    The retrieved directory is XDG_CONFIG_HOME on UNIX platforms.
    Also mention the retrieved directory on Windows: CSIDL_APPDATA.

 glib/gutils.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 61f3f45cb95f022d99689e0fee9b0cb97c5112a3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 4 23:07:40 2010 +0200

    add get_permission API to GSettingsBackend

    implement it in the various in-tree backends

    also, lots of whitespace changes to realign the vtable members

 gio/gdelayedsettingsbackend.c  | 11 +++++++
 gio/gkeyfilesettingsbackend.c  |  9 ++++++
 gio/gmemorysettingsbackend.c   |  9 ++++++
 gio/gnullsettingsbackend.c     | 11 ++++++-
 gio/gsettingsbackend.c         | 25 +++++++++++++++
 gio/gsettingsbackend.h         | 69
 ++++++++++++++++++++++--------------------
 gio/gsettingsbackendinternal.h |  3 ++
 7 files changed, 103 insertions(+), 34 deletions(-)

commit 95c564cabe2837be56f2cf3901a4d6d9d84ab6c9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 4 23:02:44 2010 +0200

    gsettingsbackend.h: pretend to be gio.h

    Since #include <gsettingsbackend.h> is a perfectly valid thing for
    applications to do, and since we want to include gio headers from
    gsettingsbackend.h, we need to effectively disable the #error we would
    get from those headers (because we're not coming via gio.h).

    We don't want to #include <gio/gio.h> here because this would cause
    needless rebuilding of GSettingsBackend, GSettings,
    GDelayedSettingsBackend, etc... every time someone changed anything in
    any public header.

 gio/gsettingsbackend.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 473348817809f7aed492245469092901d28de91d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 4 22:32:01 2010 +0200

    Bug 620582 - a simple GPermission implementation

    add GSimplePermission, a trivial const implementation of GPermission

    can-request and can-release are always false for this implementation
    and
    the value of 'allowed' is decided at construction.

 docs/reference/gio/gio-docs.xml     |  1 +
 docs/reference/gio/gio-sections.txt |  8 ++++
 docs/reference/gio/gio.types        |  1 +
 gio/Makefile.am                     |  2 +
 gio/gio.symbols                     |  7 ++++
 gio/giotypes.h                      |  1 +
 gio/gsimplepermission.c             | 84
 +++++++++++++++++++++++++++++++++++++
 gio/gsimplepermission.h             | 45 ++++++++++++++++++++
 8 files changed, 149 insertions(+)

commit 0957f76878046d848ea42bab09d9b129a60476a5
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Fri Jun 4 20:03:41 2010 +0200

    Updated Slovenian translation

 po/sl.po | 1979
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1039 insertions(+), 940 deletions(-)

commit 7a4860d69ad7b6daf6cce0063cbc52070d21bd7b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 3 22:58:52 2010 +0200

    Bug 620519 - GPermission

    Add an abstract interface representing the permission to perform an
    action.

 docs/reference/gio/gio-docs.xml     |   4 +
 docs/reference/gio/gio-sections.txt |  21 ++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |  16 ++
 gio/giotypes.h                      |   1 +
 gio/gpermission.c                   | 390
 ++++++++++++++++++++++++++++++++++++
 gio/gpermission.h                   | 118 +++++++++++
 9 files changed, 554 insertions(+)

commit 07b5cee2a8273d7fdd20371b5494ecd320c3cd1c
Author: Murray Cumming <murrayc@murrayc.com>
Date:   Fri Jun 4 17:07:05 2010 +0200

    Gio: gioenums.h: Remove trailing commas to avoid C++ warnings.

 gio/gioenums.h | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit af3f4cbe77584acabf289f4c3f9beccd6bfcfd21
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun May 30 14:56:55 2010 +0200

    gdbusaddress: Fix typo

 gio/gdbusaddress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 644584e7e6bcff65e5bd819a4756dc7597526961
Author: Kristjan Schmidt <kristjan.schmidt@googlemail.com>
Date:   Thu Jun 3 18:19:31 2010 +0200

    Updated Esperanto translation

 po/eo.po | 1661
 +++++++++++++++++---------------------------------------------
 1 file changed, 437 insertions(+), 1224 deletions(-)

commit e608b1f067c76db196a63723b50167a00ab39921
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 3 11:40:02 2010 -0400

    Don't spew a g_warning if inotify setup fails

    We use is_supported when we are trying to find a local file monitor
    implementation that works, and having the g_warning in there trips
    the test suite.

 gio/inotify/inotify-helper.c | 1 -
 1 file changed, 1 deletion(-)

commit 9562726f35b3e19d5d50d4e2e01bd8c37c7727ab
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 3 11:24:31 2010 +0200

    Bug 620350 - add g_variant_builder_add_parsed()

    A delicious blend of g_variant_new_parsed() and
    g_variant_builder_add_value().  Now available in a GLib near you.

 docs/reference/glib/glib-sections.txt |  1 +
 glib/glib.symbols                     |  1 +
 glib/gvariant-parser.c                | 44
 +++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |  3 +++
 4 files changed, 49 insertions(+)

commit 44db2b6b7447680fa3f8d3bce6f2bda26a6b498e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 3 09:41:33 2010 +0200

    Bug 620349 – utf8ify GVariant printer

    Take advantage of our knowledge that GVariant strings are always valid
    utf8 when printing and parsing:

      - allow valid printing unicode characters to pass through unescaped

      - escape non-printing characters using \uxxxx or \Uxxxxxxxx format

      - do the same in the parser

      - update existing test cases to use utf8, add a new test case

 glib/gvariant-parser.c | 64
 +++++++++++++++++++++++++++++++++++++++----------
 glib/gvariant.c        | 65
 ++++++++++++++++++++++++++++++++++++++++++++------
 glib/tests/gvariant.c  | 26 +++++++++++++++++---
 3 files changed, 132 insertions(+), 23 deletions(-)

commit 36826661401f1912eef8c710609f4bd6454720ad
Author: Milan Bouchet-Valat <nalimilan@club.fr>
Date:   Wed Jun 2 16:05:13 2010 +0200

    Annotate GVariant and GSettings _strv() functions

    Add GObject introspection annotations so that the length parameter is
    correctly detected for g_variant_new_strv(), g_variant_get_strv() and
    g_variant_dup_strv(). Also specify that it can be a NULL pointer in
    g_variant_get_strv() and g_variant_dup_strv().

    For g_settings_set_strv(), detect that a NULL value is allowed,
    meaning
    empty array.

    Closes bug #620384.

    Signed-off-by: Ryan Lortie <desrt@desrt.ca>

 gio/gsettings.c |  2 +-
 glib/gvariant.c | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

commit 0e691f27ecfe1d7f86214f16c00f91fc55f95e9c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 2 19:34:45 2010 +0200

    improve gitignore (systemtap)

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 20ab1e667308741de01fa9d1afc106dcd8b313d9
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Jun 2 15:41:01 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 1305
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 659 insertions(+), 646 deletions(-)

commit b5c8496b4c06fc7be5672e29a771064d3247d0cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jun 2 04:00:58 2010 +0200

    Support NULL value for g_settings_set_strv()

    Allow easy setting of the empty array that we lost with the last
    patch.

 gio/gsettings.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

commit bf9edb5cd5a75a4bc9946f0ef106c3d541fdb89f
Author: Milan Bouchet-Valat <nalimilan@club.fr>
Date:   Tue Jun 1 23:16:19 2010 +0200

    Remove length parameter for g_settings_[gs]et_strv

    Length of the array is redundant since it's NULL-terminated. This
    is not
    consistent with many GLib and GTK+ functions, and adds complexity with
    no real gain, while these convenience functions should be kept simple.

    Closes bug #620312

 gio/gsettings.c | 12 ++++--------
 gio/gsettings.h |  6 ++----
 2 files changed, 6 insertions(+), 12 deletions(-)

commit dc7b1c5b42175cd3e52b57c427545d6c4d9b1cee
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun May 30 18:23:21 2010 +0200

    Updated Spanish translation

 po/es.po | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

commit 7d04f0a915f290b47382d8f2cc989cb6de91e781
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun May 30 17:43:57 2010 +0200

    Updated Galician translations

 po/gl.po | 83
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 41 insertions(+), 42 deletions(-)

commit 1afaeb9976334ebdcba53ab258aa3922a872bfb9
Author: Andika Triwidada <andika@gmail.com>
Date:   Sun May 30 17:10:51 2010 +0700

    Updated Indonesian translation

 po/id.po | 1590
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 826 insertions(+), 764 deletions(-)

commit be94532e634772115e5fabefb69c803a5c5e4672
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat May 29 12:06:16 2010 +0200

    Updated Spanish translation

 po/es.po | 69
 ++++++++++++++++++++++++++++++----------------------------------
 1 file changed, 32 insertions(+), 37 deletions(-)

commit b208c2d75654ee3cf6cadf0a796976426c7b3df0
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Fri May 28 20:21:02 2010 +0200

    Updated Spanish translation

 po/es.po | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit e7c1aaf9259b64bc40d2851df9b988627e783421
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Fri May 28 19:45:51 2010 +0200

    Updated Spanish translation

 po/es.po | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

commit 5451cd0804f196f30a8cc58eee029c8b4acc54e0
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri May 28 16:57:56 2010 +0300

    Updated Hebrew translation.

 po/he.po | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit ecc5fbb479e529d17885e3b746f78c05758c1bb0
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri May 28 16:54:58 2010 +0300

    Updated Hebrew translation.

 po/he.po | 356
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 200 insertions(+), 156 deletions(-)

commit c874a76a8bf4f3b31e480a9184983cd5e85aeb4c
Author: Lin Ma <lin.ma@sun.com>
Date:   Fri May 28 16:57:10 2010 +0800

    After talk with FEN dev, we dicide simply disable monitor function if
    the current filesystem doesn't suport FEN.

 gio/fen/fen-kernel.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 8e41be13efe06a0bbd89beefc6e7ae7279b56834
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Jan 1 21:39:52 2010 +0100

    Add dtrace and systemtap support for gobject

    This adds static markers and systemtap tapsets for:

    * type creation
    * object lifetimes (creation, ref, unref, dispose, finalize)
    * signal creation and emission

    Signal emissions and finalization marker have a corresponding
    *_end (or *-end in dtrace) version that is when the corresponding
    operation is finished.

    https://bugzilla.gnome.org/show_bug.cgi?id=606044

 configure.in             |   1 +
 gobject/Makefile.am      |  22 ++++++
 gobject/gobject.c        |  28 +++++--
 gobject/gobject.stp.in   | 199
 +++++++++++++++++++++++++++++++++++++++++++++++
 gobject/gobject_probes.d |  13 ++++
 gobject/gobject_trace.h  |  43 ++++++++++
 gobject/gsignal.c        |  11 ++-
 gobject/gtype.c          |   9 ++-
 8 files changed, 316 insertions(+), 10 deletions(-)

commit bef9efd0a99a9a3bd6a2d713423edc37d6a38f21
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Dec 18 21:25:47 2009 +0100

    Initial support for dtrace and systemtap

    This adds static markers for dtrace, which are also usable
    by systemtap. Additionally it adds a tapset for systemtap
    that makes it easier to use the static markers.

    These are enabled by default.

    This initial set of probes is rather limited:

    * allocation and free using g_malloc & co
    * allocation and free using g_slice
    * gquark name tracking (useful for converting quarks to strings
    in probes)

    Notes on naming:

    Its traditional with dtrace to use probe names with dashes as
    delimiter (slice-alloc). Since dashes are not usable in identifiers
    the C code uses double underscores (slice__alloc) which is converted
    to dashes in the UI. We follow this for the shared lowlevel probe
    names.

    Additionally dtrace supports putting a "provider" part in the probe
    names which is essentially a namespacing thing. On systemtap this
    field is currently ignored (but may be implemented in the future), but
    this is not really a problem since in systemtap the probes are
    specified by combining the solib file and the marker name, so there
    can't really be name conflicts.

    For the systemtap tapset highlevel probes we instead use names that
    are systemtapish with single dashes as separators.

    https://bugzilla.gnome.org/show_bug.cgi?id=606044

 configure.in                      | 53 ++++++++++++++++++++++++
 docs/reference/glib/building.sgml | 42 ++++++++++++++++++++
 docs/reference/glib/running.sgml  | 13 ++++++
 glib/Makefile.am                  | 23 +++++++++++
 glib/gdataset.c                   |  6 ++-
 glib/glib.stp.in                  | 84
 +++++++++++++++++++++++++++++++++++++++
 glib/glib_probes.d                |  8 ++++
 glib/glib_trace.h                 | 43 ++++++++++++++++++++
 glib/gmem.c                       | 52 +++++++++++++++++++-----
 glib/gslice.c                     |  5 +++
 10 files changed, 317 insertions(+), 12 deletions(-)

commit c3bc0f4f8fc5125a732f383671ee5bff939423d2
Author: Mikhail Zabaluev <mikhail.zabaluev@gmail.com>
Date:   Thu May 27 14:00:12 2010 -0400

    Optimized the overlong sequence check in g_utf8_get_char_extended()

    Rather make it branch to get the due sequence length for the resulting
    character code, we can as well get the minimum code value in the
    initial
    branching.

 glib/gutf8.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

commit 30a856294613ab1119c0972b35bac5bbf3294692
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 27 13:11:49 2010 -0400

    GSettings schema docs: mention need for EXTRA_DIST

    Mention that you will need to use EXTRA_DIST for your schema file
    if it
    is distributed with your project.

 docs/reference/gio/migrating-gconf.xml | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit f2687f588e3a2b338242d73b6898eb93689b264b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 27 13:07:54 2010 -0400

    Remove duplicate copies of migration docs

    Fixup for commit 133f66538dbf266be3c99b34f1eeee0a5e6068ac which
    duplicated the contents of most of the migration documentation by
    splitting it out into separate files but keeping the original file
    intact (with a rename).

    This removes the duplicated content from the renamed file.

 docs/reference/gio/migrating-posix.xml | 554
 ---------------------------------
 1 file changed, 554 deletions(-)

commit b3593693d918f0ae97094f6712d817180b8eea6a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 27 11:58:54 2010 -0400

    gsettings m4: check for .xml in src/builddir

    This checks for the .gschema.xml file in the srcdir and builddir and
    runs the schema validation on which one it finds.  This handles
    non-srcdir builds in both cases: .gschema.xml is in the tarball and
    .gschema.xml is generated.

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e7927faf1792ad4c3c8a5b599240a7ee94b1a0cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 27 11:32:34 2010 -0400

    GVariant: One more FreeBSD fix

    FreeBSD's malloc() sometimes returns unaligned memory if you are
    requesting small sizes.  This can get GVariant into trouble.  For
    example, consider the type "mmi" containing the value "just nothing".
    According to the type signature, the memory containing this should be
    aligned to a boundary of 4 since it might contain an int.  The
    serialised size of this value is 1 byte, however, and when you ask
    FreeBSD to allocate memory of that size, it knows you can't put an int
    into it so it doesn't bother aligning it.

    This patch modifies the GVariant serialiser to not assert the
    alignment
    constraint in the case that the size of the serialised data is smaller
    than its own alignment requirement.

 glib/gvariant-serialiser.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 271997deb56cc17af5fa7b59b3a67f4ee347be6c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 26 23:34:31 2010 -0400

    More alignment-related fixes.

    Partial-backout 8a21d8d23317ecebe46007f1fd5f7459bf182415.  The
    assertions should have remained relaxed since these functions are used
    with non-posix_memalign()ed data.

 glib/tests/gvariant.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 866e3dda60d7de45ae7f6c962a0bb4167abd8147
Author: Lin Ma <lin.ma@sun.com>
Date:   Thu May 27 10:24:58 2010 +0800

    Remove unused code.

 gio/fen/fen-node.c | 13 -------------
 1 file changed, 13 deletions(-)

commit 91ec834456b419c0270072d52d28b365aa160dfb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 26 17:35:18 2010 -0400

    include "config.h" for HAVE_POSIX_MEMALIGN

 glib/tests/gvariant.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8a21d8d23317ecebe46007f1fd5f7459bf182415
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 26 17:31:52 2010 -0400

    Use aligned memory in GVariant test cases.

    The GVariant serialiser works well with non-8-aligned memory, but the
    comparison serialiser in the test case depends on memory being
    8-aligned.  Use posix_memalign() to get the memory used by this
    serialiser.

 glib/tests/gvariant.c | 47
 ++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 36 insertions(+), 11 deletions(-)

commit 183102104a3762bab4c50fc54cd11979ca085859
Author: Colin Walters <walters@verbum.org>
Date:   Wed May 26 16:21:15 2010 -0400

    [mainloop-test] Fix compilation errors

 tests/mainloop-test.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ba1163a33cdfb7f67cbd311ae2b74ae40831cd05
Author: Colin Walters <walters@verbum.org>
Date:   Wed May 26 15:59:36 2010 -0400

    [tests/gvariant] Handle flavored_free(NULL), since flavored_malloc
    can return NULL

 glib/tests/gvariant.c | 2 ++
 1 file changed, 2 insertions(+)

commit 88a1e6c1021644f9ae42c558b23e3c6a1e4055a6
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Wed May 26 18:12:22 2010 +0200

    Updated Spanish translation

 po/es.po | 389
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 201 insertions(+), 188 deletions(-)

commit 39123880387b19f034ae0bed9492d5a1b4f026ab
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Wed May 26 18:09:46 2010 +0200

    Updated Spanish translation

 po/es.po | 1361
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 696 insertions(+), 665 deletions(-)

commit 798eed43a2ee756b32651559f95ce55f0a448e7b
Author: Lin Ma <lin.ma@sun.com>
Date:   Wed May 26 14:32:37 2010 +0800

    bugster#6955199, on hsfs portfs will fail, and FEN backend will fail
    to run lstat and port_associate on root node.

 gio/fen/fen-node.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

commit 6b53e4826fba3827ac7273a344b46f854ee81d0b
Author: Havoc Pennington <hp@pobox.com>
Date:   Tue Apr 20 17:47:44 2010 -0400

    GSource: add g_source_set_name, g_source_get_name,
    g_source_set_name_by_id

    These allow applications to give meaningful names to their sources.
    Source names can then be used for debugging and profiling, for
    example with systemtap or gdb.

    https://bugzilla.gnome.org/show_bug.cgi?id=606044

 glib/gmain.c          | 5 ++++-
 tests/mainloop-test.c | 6 +++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

commit e5696c282e2c48ac0f822c4e6d33c8507a77e998
Author: Havoc Pennington <hp@pobox.com>
Date:   Tue Apr 20 17:47:44 2010 -0400

    GSource: add g_source_set_name, g_source_get_name,
    g_source_set_name_by_id

    These allow applications to give meaningful names to their sources.
    Source names can then be used for debugging and profiling, for
    example with systemtap or gdb.

    https://bugzilla.gnome.org/show_bug.cgi?id=606044

 glib/glib.symbols |  3 ++
 glib/gmain.c      | 83
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 glib/gmain.h      |  9 +++++-
 3 files changed, 93 insertions(+), 2 deletions(-)

commit eec66b2f9424dd6db25867ee0a32e0341def15b8
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue May 25 11:59:57 2010 -0400

    GDBus: Big-endian fixes

    Tested this on my Powerbook G4 12", 867MHz PowerPC G4 running Fedora
    11ish.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c          | 8 ++++++--
 gio/tests/gdbus-threading.c | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

commit a81c2f2c7ad260bc3033648bb274a3b321df8b49
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 25 11:25:34 2010 -0400

    GVariant: deal with non-8-aligned malloc()

    Closes bug #619585.

 glib/gvariant-serialiser.c | 18 ++++++++++++
 glib/tests/gvariant.c      | 72
 +++++++++++++++++++++++++++++-----------------
 2 files changed, 64 insertions(+), 26 deletions(-)

commit 9e25ec592ba32797230650b2236935deb2022960
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 25 10:43:29 2010 -0400

    Document that vtable is not copied

 gio/gdbusconnection.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 857a40fafb98934c954649e712bc35633438ebcf
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Tue May 25 09:56:33 2010 +0200

    Updated Galician translations

 po/gl.po | 1270
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 646 insertions(+), 624 deletions(-)

commit 32c84552f6dfb05f990e8740a75c8b1fed753ea8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 23:21:01 2010 -0400

    .gitignore manpages (*.1)

 docs/reference/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit dcd13e39be34ec4b396bab4dbaa976d2917cf7b5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 23:03:36 2010 -0400

    post-release version bump.

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2db2d13fdbfe80d89cb4d5fecfa13619909f4ac5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 23:02:18 2010 -0400

    Release 2.25.7.

 NEWS                               |   34 +
 docs/reference/glib/tmpl/i18n.sgml |   11 +
 po/af.po                           |  297 +++++----
 po/am.po                           |  293 ++++----
 po/ar.po                           |  297 +++++----
 po/as.po                           |  297 +++++----
 po/ast.po                          |  297 +++++----
 po/az.po                           |  293 ++++----
 po/be.po                           |  296 +++++----
 po/be@latin.po                     |  300 +++++----
 po/bg.po                           |  297 +++++----
 po/bn.po                           |  297 +++++----
 po/bn_IN.po                        |  297 +++++----
 po/bs.po                           |  293 ++++----
 po/ca.po                           |  297 +++++----
 po/ca@valencia.po                  |  297 +++++----
 po/cs.po                           |  297 +++++----
 po/cy.po                           |  297 +++++----
 po/da.po                           |  297 +++++----
 po/de.po                           |  297 +++++----
 po/dz.po                           |  293 ++++----
 po/el.po                           |  297 +++++----
 po/en@shaw.po                      |  297 +++++----
 po/en_CA.po                        |  297 +++++----
 po/en_GB.po                        |  297 +++++----
 po/eo.po                           |  293 ++++----
 po/es.po                           |  297 +++++----
 po/et.po                           |  672 ++++++++++++++++++-
 po/eu.po                           |  297 +++++----
 po/fa.po                           |  293 ++++----
 po/fi.po                           |  297 +++++----
 po/fr.po                           |  297 +++++----
 po/ga.po                           |  297 +++++----
 po/gl.po                           | 1287
 ++++++++++++++++++------------------
 po/gu.po                           |  297 +++++----
 po/he.po                           |  297 +++++----
 po/hi.po                           |  297 +++++----
 po/hr.po                           |  293 ++++----
 po/hu.po                           |  297 +++++----
 po/hy.po                           |  293 ++++----
 po/id.po                           |  297 +++++----
 po/is.po                           |  293 ++++----
 po/it.po                           |  297 +++++----
 po/ja.po                           |  297 +++++----
 po/ka.po                           |  293 ++++----
 po/kn.po                           |  297 +++++----
 po/ko.po                           |  297 +++++----
 po/ku.po                           |  293 ++++----
 po/lt.po                           |  297 +++++----
 po/lv.po                           |  293 ++++----
 po/mai.po                          |  297 +++++----
 po/mg.po                           |  293 ++++----
 po/mk.po                           |  297 +++++----
 po/ml.po                           |  297 +++++----
 po/mn.po                           |  293 ++++----
 po/mr.po                           |  297 +++++----
 po/ms.po                           |  293 ++++----
 po/nb.po                           | 1274
 ++++++++++++++++++-----------------
 po/nds.po                          |  297 +++++----
 po/ne.po                           |  293 ++++----
 po/nl.po                           |  297 +++++----
 po/nn.po                           |  297 +++++----
 po/oc.po                           |  293 ++++----
 po/or.po                           |  297 +++++----
 po/pa.po                           |  297 +++++----
 po/pl.po                           |  297 +++++----
 po/ps.po                           |  297 +++++----
 po/pt.po                           |  297 +++++----
 po/pt_BR.po                        |  297 +++++----
 po/ro.po                           |  297 +++++----
 po/ru.po                           |  297 +++++----
 po/rw.po                           |  296 +++++----
 po/si.po                           |  293 ++++----
 po/sk.po                           |  297 +++++----
 po/sl.po                           |  297 +++++----
 po/sq.po                           |  311 +++++----
 po/sr.po                           |  297 +++++----
 po/sr@ije.po                       |  293 ++++----
 po/sr@latin.po                     |  297 +++++----
 po/sv.po                           |  297 +++++----
 po/ta.po                           |  297 +++++----
 po/te.po                           |  297 +++++----
 po/th.po                           |  297 +++++----
 po/tl.po                           |  293 ++++----
 po/tr.po                           |  297 +++++----
 po/tt.po                           |  293 ++++----
 po/uk.po                           |  297 +++++----
 po/vi.po                           |  297 +++++----
 po/wa.po                           |  293 ++++----
 po/xh.po                           |  293 ++++----
 po/yi.po                           |  293 ++++----
 po/zh_CN.po                        |  297 +++++----
 po/zh_HK.po                        |  297 +++++----
 po/zh_TW.po                        |  297 +++++----
 94 files changed, 15547 insertions(+), 14083 deletions(-)

commit 47e07f9f78e7fc9e4d7e8fb96420009560662519
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 22:37:43 2010 -0400

    another occurrence of the last fix (@XSLTPROC@)

 docs/reference/gobject/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b295e6a28a590ada8f8d3c3a50fb5250dd339eed
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 22:35:33 2010 -0400

    man pages: fix broken @XSLTPROC@ substitution

 docs/reference/glib/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 84a0605342368c2edad99abd364791bf3b2ebc14
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 22:20:47 2010 -0400

    change GSettingsBackend.list() API

 gio/gsettingsbackend.c |  2 +-
 gio/gsettingsbackend.h | 60
 ++++++++++++++++++++++++++------------------------
 2 files changed, 32 insertions(+), 30 deletions(-)

commit 1b7f64549258c971fcc7c15ebfb532e4bc0b4174
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 24 21:09:55 2010 -0400

    Improve the g_file_make_symbolic_link docs

    Following a proposal by Neil Williams in bug 619527.

 gio/gfile.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

commit 77b9a4646179daae04590ab1f62d575be93e1f89
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 17:03:26 2010 -0400

    GIO: Add g_d{,c}gettext to PLT check exceptions

 gio/pltcheck.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3160bcad6a0cf3c1f1042b85f38492a5674324a3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon May 24 16:46:24 2010 -0400

    GDBusConnection.call(): add 'reply_type' argument

    This allows the caller to specify the reply type that they are
    expecting
    for this call.  If the reply comes back with the wrong type,
    GDBus will
    generate an appropriate error internally.

      - add a GVariantType * argument to g_dbus_connection_call() and
        _call_sync().

      - move the internal API for computing message types from
      introspection
        data to be based on GVariantType instead of strings.  Update users
        of this code.

      - have GDBusProxy pass this calculated GVariantType into
        g_dbus_connection_call().  Remove the checks done in GDBusProxy.

      - Update other users of the code (test cases, gdbus-tool, GSettings
        tool, etc).  In some cases, remove redundant checks; in some other
        cases, we are fixing bugs because no checking was done where it
        should have been.

    Closes bug #619391.

 gio/gdbus-tool.c               |  49 ++-------
 gio/gdbusconnection.c          | 236
 ++++++++++++++++++++++++++++-------------
 gio/gdbusconnection.h          |   2 +
 gio/gdbusmethodinvocation.c    |  28 +++--
 gio/gdbusnameowning.c          |   2 +
 gio/gdbusnamewatching.c        |   2 +
 gio/gdbusprivate.c             |  30 +++---
 gio/gdbusprivate.h             |   3 +-
 gio/gdbusproxy.c               |  78 ++++----------
 gio/gsettings-tool.c           |   2 +-
 gio/tests/gdbus-connection.c   |  11 +-
 gio/tests/gdbus-example-peer.c |   1 +
 gio/tests/gdbus-export.c       |   2 +-
 gio/tests/gdbus-names.c        |   2 +
 gio/tests/gdbus-threading.c    |   6 +-
 15 files changed, 246 insertions(+), 208 deletions(-)

commit 100df5287d51fd005d64f2c06f4fe4276da1c4d8
Author: Richard Hughes <richard@hughsie.com>
Date:   Mon May 24 17:22:38 2010 +0100

    Fix up a typo in the g_variant_builder_add() docs

 glib/gvariant.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit a83a9a43ed2f461fea7a652470a3ef376aebd1f2
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon May 24 11:22:41 2010 +0300

    Most of the gdbus test programs build only on Unix

 gio/tests/Makefile.am | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit d7b077dc84b22c4502e27252d32303d9985f9aeb
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun May 23 16:27:17 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 1381
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 704 insertions(+), 677 deletions(-)

commit b1bf5a5bb9725b1468ae82b636e35288fd3cf3ad
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun May 23 16:27:08 2010 +0200

    Add two missing files

 po/POTFILES.in | 2 ++
 1 file changed, 2 insertions(+)

commit 3caef4eef0c6ae946333633c1e27f4548a1ce42b
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun May 23 00:22:48 2010 +0200

    Updated Galician translations

 po/gl.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 925a6f29114769d575ecdfbaaf5c236517edb98f
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun May 23 00:20:26 2010 +0200

    Updated Galician translations

 po/gl.po | 64
 +++++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 41 insertions(+), 23 deletions(-)

commit c17bb8f44514027c36825c1ca16ce67ae291c3ad
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu May 20 21:52:11 2010 +0200

    Updated Galician translations

 po/gl.po | 290
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 148 insertions(+), 142 deletions(-)

commit 8db946fdfb71167dd8b740b4ba20213303a0f2bf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 21 22:28:42 2010 -0400

    Clean up man page handling

    Remove all formatted man pages from git, and use the same
    Makefile fragment in all doc dirs.

 docs/reference/glib/Makefile.am          |  30 ++-
 docs/reference/glib/glib-gettextize.1    |  71 -------
 docs/reference/glib/gtester-report.1     |  44 -----
 docs/reference/glib/gtester.1            | 101 ----------
 docs/reference/gobject/Makefile.am       |  35 +++-
 docs/reference/gobject/glib-genmarshal.1 | 307
 -------------------------------
 docs/reference/gobject/glib-mkenums.1    | 246 -------------------------
 docs/reference/gobject/gobject-query.1   |  83 ---------
 gobject/Makefile.am                      |   2 -
 gobject/glib-genmarshal.1                | 212 ---------------------
 gobject/glib-mkenums.1                   | 169 -----------------
 11 files changed, 48 insertions(+), 1252 deletions(-)

commit d818bebf4949617fdf5ffc7833c8f87ccca5c1a1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri May 21 20:08:49 2010 -0400

    add .SECONDARY: rule to preserve generated schemas

    If the .gschema.xml file was generated as the result of an implicit
    make
    rule then make would 'rm' it after creating the validity stamp.  This
    would cause 'make install' to fail.

 m4macros/gsettings.m4 | 2 ++
 1 file changed, 2 insertions(+)

commit bf24dff88eb3c794ae846cb7b8397510407ad9f5
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 21 12:09:27 2010 -0400

    Return an error for calls into unknown interfaces or unknown objects

    Ryan pointed out on IRC that we didn't do anything here. Looking at
    the code, it's painfully obvious that we should be returning an error
    here since a comment already says that we've exhausted all possible
    options.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c    | 10 +++++++++-
 gio/tests/gdbus-export.c | 12 ++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

commit c7f0f2c4377c5fd242c52d30a09df74e6d6e9828
Author: Christian Persch <chpe@gnome.org>
Date:   Fri May 14 14:00:24 2010 +0200

    Use stack-allocated GVariantBuilders

    This saves a few allocations.
    Also simplify the code a bit in gdbusconnection.

    Bug #618616.

 gio/gdbusconnection.c | 19 ++++++-------------
 gio/gdbusmessage.c    | 30 +++++++++++++++---------------
 2 files changed, 21 insertions(+), 28 deletions(-)

commit 41b3f6885d26908627c8a132f63aab4ba1d83582
Author: Christian Persch <chpe@gnome.org>
Date:   Thu May 20 00:54:51 2010 +0200

    Add g_dc[p]gettext, and use it in gsettings

    Avoid using LC_MESSAGES, and just call g_d[c]gettext directly.

    Bug #617004.

 docs/reference/glib/glib-sections.txt |  1 +
 gio/gsettings.c                       |  7 ++-----
 glib/glib.symbols                     |  1 +
 glib/gstrfuncs.c                      | 27 +++++++++++++++++++++++++++
 glib/gstrfuncs.h                      |  4 +++-
 po/Makefile.in.in                     |  2 ++
 6 files changed, 36 insertions(+), 6 deletions(-)

commit e8f723245a4b1667949dc9715bc5bc2f263317a4
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu May 20 19:30:39 2010 +0200

    Updated Galician translations

 po/gl.po | 1274
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 644 insertions(+), 630 deletions(-)

commit 366b3ffcde4f19cabf8685efdc1ccd20dcade0ca
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 20 10:51:00 2010 -0400

    Bug 619142 – Build fixes

     - Fix various #include issues

     - Change #error to #warning for the EXTERNAL authentication
     mechanism.
       It is not clear if this should work on Win32 at all.

     - Call close() before unlink() for the SHA1 keyring

     - Change #error to #warning so we don't forget to do
       permission checking of the .dbus-keyrings directory

     - Use Win32 SID for the SHA1 auth mech

     - Apparently we can't use word 'interface' as an identifier

     - Implement a _g_dbus_win32_get_user_sid() function. For now it's
       private. Don't know if it should be public somewhere. Maybe in
       a future GCredentials support for Win32? I don't know.

     - GFileDescriptorBased is not available on Win32. So avoid using
       it in GLocalFile stuff. Now, Win32 still uses GLocalFile + friends
       (which works with file descriptors) so expose a private function
       to get the fd for an OutputStream so things still work.

     - Fixup gio.symbols

     - Fixup tests/gdbus-peer.c so it builds

    With this, at least things compile and the gdbus-peer.exe test case
    passes. Which is a great start. I've tested this by cross-compiling on
    a x86_64 Fedora 13 host using mingw32 and running the code on a 32-bit
    Windows 7 box.

    https://bugzilla.gnome.org/show_bug.cgi?id=619142

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusaddress.c               |  6 ++++
 gio/gdbusauth.c                  |  8 +++--
 gio/gdbusauthmechanismexternal.c |  4 +--
 gio/gdbusauthmechanismsha1.c     | 27 +++++++-------
 gio/gdbusconnection.c            |  2 ++
 gio/gdbusmessage.c               | 20 +++++------
 gio/gdbusmessage.h               |  4 +--
 gio/gdbusprivate.c               | 76
 ++++++++++++++++++++++++++++++++++++++++
 gio/gdbusprivate.h               |  4 +++
 gio/gdbusserver.c                |  7 ++++
 gio/gio.symbols                  | 12 +++++--
 gio/glocalfileinputstream.c      | 20 +++++++++--
 gio/glocalfileiostream.c         |  8 +++--
 gio/glocalfileoutputstream.c     | 30 +++++++++++++---
 gio/glocalfileoutputstream.h     |  6 ++++
 gio/tests/Makefile.am            |  2 +-
 gio/tests/gdbus-peer.c           | 18 ++++++++++
 17 files changed, 208 insertions(+), 46 deletions(-)

commit 152448cb299cd1b22da585dcd7e86ee6e27e1169
Author: Ivar Smolin <okul@linux.ee>
Date:   Thu May 20 14:56:46 2010 +0300

    Estonian translation updated

 po/et.po | 704
 ++++-----------------------------------------------------------
 1 file changed, 41 insertions(+), 663 deletions(-)

commit 3b8d0a4ac2df7d055168dff2ca360489adbea563
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu May 20 01:55:58 2010 +0200

    Add G_TYPE_CLASS_GET_PRIVATE macro to docs

 docs/reference/gobject/gobject-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 2dfc7b0294542954539940955bef1b93a95513e0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 19 17:38:17 2010 -0400

    Version bump.

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d4648965e4dee14955ade5eb94221ad5da5f45b8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 19 17:32:42 2010 -0400

    Release 2.25.6

 NEWS              |   27 +
 po/af.po          |  633 ++++++++++++++++++++-
 po/am.po          |  631 ++++++++++++++++++++-
 po/ar.po          |  635 ++++++++++++++++++++-
 po/as.po          |  637 ++++++++++++++++++++-
 po/ast.po         |  637 ++++++++++++++++++++-
 po/az.po          |  632 ++++++++++++++++++++-
 po/be.po          |  652 +++++++++++++++++++++-
 po/be@latin.po    |  655 +++++++++++++++++++++-
 po/bg.po          |  637 ++++++++++++++++++++-
 po/bn.po          |  637 ++++++++++++++++++++-
 po/bn_IN.po       |  637 ++++++++++++++++++++-
 po/bs.po          |  632 ++++++++++++++++++++-
 po/ca.po          |  637 ++++++++++++++++++++-
 po/ca@valencia.po |  637 ++++++++++++++++++++-
 po/cs.po          |  637 ++++++++++++++++++++-
 po/cy.po          |  634 ++++++++++++++++++++-
 po/da.po          |  639 ++++++++++++++++++++-
 po/de.po          |  637 ++++++++++++++++++++-
 po/dz.po          |  632 ++++++++++++++++++++-
 po/el.po          |  648 ++++++++++++++++++++-
 po/en@shaw.po     |  645 ++++++++++++++++++++-
 po/en_CA.po       |  635 ++++++++++++++++++++-
 po/en_GB.po       |  637 ++++++++++++++++++++-
 po/eo.po          |  631 ++++++++++++++++++++-
 po/es.po          | 1290 +++++++++++++++++++++---------------------
 po/et.po          |  637 ++++++++++++++++++++-
 po/eu.po          |  637 ++++++++++++++++++++-
 po/fa.po          |  632 ++++++++++++++++++++-
 po/fi.po          |  637 ++++++++++++++++++++-
 po/fr.po          |  637 ++++++++++++++++++++-
 po/ga.po          |  633 ++++++++++++++++++++-
 po/gl.po          | 1249 +++++++++++++++++++++--------------------
 po/gu.po          |  637 ++++++++++++++++++++-
 po/he.po          |  637 ++++++++++++++++++++-
 po/hi.po          |  637 ++++++++++++++++++++-
 po/hr.po          |  632 ++++++++++++++++++++-
 po/hu.po          |  637 ++++++++++++++++++++-
 po/hy.po          |  632 ++++++++++++++++++++-
 po/id.po          | 1608
 ++++++++++++++++++++++++++++++++++++-----------------
 po/is.po          |  632 ++++++++++++++++++++-
 po/it.po          |  641 ++++++++++++++++++++-
 po/ja.po          |  637 ++++++++++++++++++++-
 po/ka.po          |  633 ++++++++++++++++++++-
 po/kn.po          |  637 ++++++++++++++++++++-
 po/ko.po          |  637 ++++++++++++++++++++-
 po/ku.po          |  631 ++++++++++++++++++++-
 po/lt.po          |  637 ++++++++++++++++++++-
 po/lv.po          |  631 ++++++++++++++++++++-
 po/mai.po         |  634 ++++++++++++++++++++-
 po/mg.po          |  632 ++++++++++++++++++++-
 po/mk.po          |  635 ++++++++++++++++++++-
 po/ml.po          |  637 ++++++++++++++++++++-
 po/mn.po          |  632 ++++++++++++++++++++-
 po/mr.po          |  637 ++++++++++++++++++++-
 po/ms.po          |  632 ++++++++++++++++++++-
 po/nb.po          |  637 ++++++++++++++++++++-
 po/nds.po         |  632 ++++++++++++++++++++-
 po/ne.po          |  632 ++++++++++++++++++++-
 po/nl.po          |  646 ++++++++++++++++++++-
 po/nn.po          |  635 ++++++++++++++++++++-
 po/oc.po          |  631 ++++++++++++++++++++-
 po/or.po          |  637 ++++++++++++++++++++-
 po/pa.po          |  637 ++++++++++++++++++++-
 po/pl.po          |  637 ++++++++++++++++++++-
 po/ps.po          |  634 ++++++++++++++++++++-
 po/pt.po          |  637 ++++++++++++++++++++-
 po/pt_BR.po       |  637 ++++++++++++++++++++-
 po/ro.po          |  637 ++++++++++++++++++++-
 po/ru.po          |  637 ++++++++++++++++++++-
 po/rw.po          |  644 ++++++++++++++++++++-
 po/si.po          |  633 ++++++++++++++++++++-
 po/sk.po          |  632 ++++++++++++++++++++-
 po/sl.po          |  637 ++++++++++++++++++++-
 po/sq.po          |  669 ++++++++++++++++++++--
 po/sr.po          |  637 ++++++++++++++++++++-
 po/sr@ije.po      |  632 ++++++++++++++++++++-
 po/sr@latin.po    |  637 ++++++++++++++++++++-
 po/sv.po          |  637 ++++++++++++++++++++-
 po/ta.po          |  637 ++++++++++++++++++++-
 po/te.po          |  637 ++++++++++++++++++++-
 po/th.po          |  637 ++++++++++++++++++++-
 po/tl.po          |  632 ++++++++++++++++++++-
 po/tr.po          |  637 ++++++++++++++++++++-
 po/tt.po          |  631 ++++++++++++++++++++-
 po/uk.po          |  637 ++++++++++++++++++++-
 po/vi.po          |  637 ++++++++++++++++++++-
 po/wa.po          |  632 ++++++++++++++++++++-
 po/xh.po          |  632 ++++++++++++++++++++-
 po/yi.po          |  631 ++++++++++++++++++++-
 po/zh_CN.po       |  637 ++++++++++++++++++++-
 po/zh_HK.po       |  637 ++++++++++++++++++++-
 po/zh_TW.po       |  637 ++++++++++++++++++++-
 93 files changed, 56499 insertions(+), 4314 deletions(-)

commit caae8ac57a2d24a5de21d1ac6d6122897a418e72
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed May 19 16:02:05 2010 -0400

    Add --uninstall option to glib-compile-schemas

    If --uninstall is given then don't give an error if the schema
    directory
    is empty.  Instead, erase the gschemas.compiled file, if it exists.
    This is the right thing to do in the 'make uninstall' rule, where the
    schema directory could very well be left empty as a result.

    Modify gsettings.m4 to use this option.

 gio/gschema-compile.c | 15 +++++++++++++--
 m4macros/gsettings.m4 |  2 +-
 2 files changed, 14 insertions(+), 3 deletions(-)

commit b59a5551ecd448187d752d93a06c2298db121ace
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 18 18:28:39 2010 -0400

    Bug 619038 - increase gsettings.m4 power

    handle schema checking, installation, uninstallation, cleaning

 docs/reference/gio/migrating-gconf.xml | 21 +++++-----
 m4macros/gsettings.m4                  | 71
 ++++++++++++++++++++++++----------
 2 files changed, 61 insertions(+), 31 deletions(-)

commit 3e3779b7d0edbdfbea38655e353d0723a1b918d5
Author: Tor Lillqvist <tml@iki.fi>
Date:   Wed May 19 10:47:02 2010 +0300

    Make config.h.win32.in match what configure produces

    No semantic changes.

 config.h.win32.in | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

commit 8eb377b6f6661022a1917b8cd465ed3e52fecf88
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 18 18:24:04 2010 -0400

    glib-compile-schemas rename missed in docs

    change a mention of gschema_compile in the docs

 docs/reference/gio/migrating-gconf.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 257c519ba2ed91f7dfc94d5a07a0cc6c7a3644f1
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue May 18 23:45:54 2010 +0200

    Fix trivial typo in GCredentials code

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=618839

 gio/gcredentials.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 719e2dcb3b35dbab9cfaa7d0f711b0949b57ad35
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 18 17:25:43 2010 -0400

    Bug 619031 - method-calls-in-thread test failing

    The test was assuming that g_timeout_add() waited for at least the
    amount of
    time given to it before running the function.  This is not the case
    -- the
    function can be run as much as 1ms early.  Make the lower time
    bound asserted
    in the test more permissive to account for this.

 gio/tests/gdbus-threading.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 6067f9f794954b8545776e14d059a7bb15d99e99
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 18 16:43:36 2010 -0400

    Bug 618839  - Typo at translation message

    Fix trivial typo in GCredentials code

 gio/gcredentials.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 12a8c0f50d72829af4cc436a455396bf5190b40e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 18 16:13:58 2010 -0400

    Add sync method to GSettingsBackend, and pad

 gio/gsettingsbackend.h | 3 +++
 1 file changed, 3 insertions(+)

commit 7fcf353325a41b75701688364a497d5790ea83a0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 18 13:43:42 2010 -0400

    whitespace fix

 gio/gsettingsbackend.h | 56
 +++++++++++++++++++++++++-------------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

commit 587bdf3f0acfdc46e708214c5201336d81e3307c
Author: Robert Ancell <robert.ancell@gmail.com>
Date:   Tue May 18 12:01:25 2010 +1000

    Add missing gunixfdlist.h include in gdbus-example-server.c

 gio/tests/gdbus-example-server.c | 1 +
 1 file changed, 1 insertion(+)

commit a977f032358325c8ad558f675530569add68daaf
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 17 19:51:49 2010 -0400

    GDBus: Fix obvious crasher when looking up annotations

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusintrospection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 74cafe871c42c21e7485ee7d80257ef987819979
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Mon May 17 23:59:42 2010 +0200

    Updated Galician translations

 po/gl.po | 629
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 607 insertions(+), 22 deletions(-)

commit a621e0ed10eb8a7c5b89ee1d96ae877908e4d74b
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 17 11:08:53 2010 -0400

    gdbus(1): Don't fetch props if introspection data indicates none
    are available

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-tool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 98e4f7f6fbd1b8ac889327559a50e4369d064a74
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 17 11:07:53 2010 -0400

    GDBus: Fix introspection of objects registered at /

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 799e0242ae31dd66b102342927583f1f34806c54
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 16 16:56:36 2010 -0400

    improve thread safety in GDelayedSettingsBackend

      - hold a lock while accessing the tree of delayed values
      - use weak reference counts with the owner object to avoid doing
        g_object_notify on a dead object
      - dispatch the "has-unapplied" notify to the proper main context

 gio/gdelayedsettingsbackend.c  | 128
 +++++++++++++++++++++++++++++++++++------
 gio/gdelayedsettingsbackend.h  |   5 +-
 gio/gsettings.c                |   4 +-
 gio/gsettingsbackend.c         |   6 +-
 gio/gsettingsbackendinternal.h |   2 +
 5 files changed, 121 insertions(+), 24 deletions(-)

commit 61219e264083184eada5c5ef2795b7c531470704
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 16 14:17:34 2010 -0400

    GSettingsBackend: make signal dispatch threadsafe

    This commit fixes up a few race conditions in the GSettingsBackend,
    mostly with
    respect to change notifications occuring at the same time as the
    last reference
    count on a GSettings is dropped.  With GDBus feeding us our incoming
    signals in
    a separate thread, this is something that could easily happen.

 gio/gdelayedsettingsbackend.c  |  40 ++--
 gio/gsettings.c                |  43 ++---
 gio/gsettingsbackend.c         | 410
 +++++++++++++++++++++++++----------------
 gio/gsettingsbackendinternal.h |  26 +--
 4 files changed, 301 insertions(+), 218 deletions(-)

commit 4967b6d2ab5a0a83609a825ea113bc75f61bfdb1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 16 18:14:46 2010 +0200

    gitignore additions for gdbus, new test cases

 gio/.gitignore        |  1 +
 gio/tests/.gitignore  | 23 ++++++++++++++++++++++-
 glib/tests/.gitignore |  1 +
 3 files changed, 24 insertions(+), 1 deletion(-)

commit 984258c662d3f571fcd0ea415923aec7a3746826
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 16 13:02:23 2010 +0200

    GSettings: support emitting signals in threads

    The thread-default context that was in effect at the time that the
    GSettings was created will be used for emitting signals on that
    GSettings.

 gio/gdelayedsettingsbackend.c  |   2 +-
 gio/gsettings.c                |  18 ++++++
 gio/gsettingsbackend.c         | 139
 ++++++++++++++++++++++++++++++++++++++++-
 gio/gsettingsbackendinternal.h |   2 +
 4 files changed, 159 insertions(+), 2 deletions(-)

commit 849684e540bb714bc60c2bce3a086e5ffb8933c0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 16 13:03:34 2010 +0200

    GSettings tool: work-around GDBus issue

    There is currently no way (near as I can tell) to ensure that
    a message
    has been sent when using GDBus.  If we exit() before we are sure, then
    it is very possible that the message isn't sent at all.
    This behaviour
    was observed when using the GSettings commandline tool with dconf.

    A quick and dirty workaround for now.

 gio/gsettings-tool.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

commit 8e060adb2cecb7a801d54e3cbdb0c6eb12f56c12
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 16 10:19:46 2010 +0200

    intern a key name instead of using strdup()

 gio/gsettings.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit e5440f865d79795061cf5e64d8ed7300222c4a79
Author: Lin Ma <lin.ma@sun.com>
Date:   Mon May 17 14:42:52 2010 +0800

    Reworked Solaris file event notification for GIO. See
    https://defect.opensolaris.org/bz/show_bug.cgi?id=10194

    Updated copyright.

 gio/fen/Makefile.am            |   6 -
 gio/fen/fen-data.c             | 718
 --------------------------------------
 gio/fen/fen-data.h             |  89 -----
 gio/fen/fen-dump.c             |  43 +--
 gio/fen/fen-dump.h             |   4 +-
 gio/fen/fen-helper.c           | 326 +++++------------
 gio/fen/fen-helper.h           |  13 +-
 gio/fen/fen-kernel.c           | 775
 +++++++++++++++++++++--------------------
 gio/fen/fen-kernel.h           |  35 +-
 gio/fen/fen-missing.c          | 121 -------
 gio/fen/fen-missing.h          |  38 --
 gio/fen/fen-node.c             | 762
 ++++++++++++++++++++++++----------------
 gio/fen/fen-node.h             |  97 ++++--
 gio/fen/fen-sub.c              |  42 ---
 gio/fen/fen-sub.h              |  39 ---
 gio/fen/gfendirectorymonitor.c |  95 +++--
 gio/fen/gfendirectorymonitor.h |   3 +
 gio/fen/gfenfilemonitor.c      |  32 +-
 gio/fen/gfenfilemonitor.h      |   3 +
 19 files changed, 1114 insertions(+), 2127 deletions(-)

commit 794a4a8dbda6b63b15705d689c9785fc07ff7a40
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon May 17 07:41:48 2010 +0200

    Updated Spanish translation

 po/es.po | 1648
 +++++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 1142 insertions(+), 506 deletions(-)

commit 2ec41fad532c046b04b55e0a2b7883b344727c64
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 16 13:07:25 2010 -0400

    Add GDBus files to POTFILES.in

 po/POTFILES.in | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit d899c57a819685f2a9e66927f040cbdfea8ae572
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sun May 16 16:31:25 2010 +0200

    Updated Galician translations

 po/gl.po | 1022
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 518 insertions(+), 504 deletions(-)

commit b298c9430e197ca7f31ecfa0089f51e410bced36
Author: Andika Triwidada <andika@gmail.com>
Date:   Sun May 16 16:30:38 2010 +0700

    Updated Indonesian translation

 po/id.po | 1966
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 945 insertions(+), 1021 deletions(-)

commit 5d379f1c37ee8b5eb7020ebf7165290f5258045e
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Sat May 15 10:17:35 2010 +0200

    Fix gio tests linking with binutils gold linker

 gio/tests/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit e6c08a458c6b6b6eb12b39593bc356dd2d215aec
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Sat May 15 10:13:28 2010 +0200

    Fix build of gdbus tool with binutils gold linker

 gio/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 4b0fd52e52968723ee2a415f0d2fae965aa96867
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 15 18:23:23 2010 -0400

    Expand information about schema translation

    I have added some hints on how to use intltool for translation
    of summary and description elements, taken from comments in bug
    #618523.

 docs/reference/gio/migrating-gconf.xml | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 2ad4b2d716220f0ef45bbeb56fb90a7438afa21a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 15 18:15:30 2010 -0400

    Fix build on !linux

    Don't define __USE_GNU, thats a glibc-internal macro, and
    don't use SOL_SOCKET when not including sys/socket.h.
    Maybe this file should be called glinuxcredentialsmessage.c...

    Bug #618730

 gio/gunixcredentialsmessage.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 63d74caabe6f7b85ad13cad922fff239911fb5a0
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 15 11:56:21 2010 +0200

    Use the new option name

    It's --schema-file now, not --schema-files.
    Bug #616864.

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 50f422b5fd10fd4b709d2c5babce7fdc4987ff36
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 22:30:19 2010 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5810cce252cc3d42377a0dca9a6d8c0a68eaf031
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 22:28:46 2010 -0400

    2.25.5

 po/af.po          |    2 +-
 po/am.po          |    2 +-
 po/ar.po          |    2 +-
 po/as.po          |    2 +-
 po/ast.po         |    2 +-
 po/az.po          |    2 +-
 po/be.po          |    2 +-
 po/be@latin.po    |    2 +-
 po/bg.po          |    2 +-
 po/bn.po          |    2 +-
 po/bn_IN.po       |    2 +-
 po/bs.po          |    2 +-
 po/ca.po          |    2 +-
 po/ca@valencia.po |    2 +-
 po/cs.po          |    2 +-
 po/cy.po          |    2 +-
 po/da.po          |    2 +-
 po/de.po          |    2 +-
 po/dz.po          |    2 +-
 po/el.po          |    2 +-
 po/en@shaw.po     |    2 +-
 po/en_CA.po       |    2 +-
 po/en_GB.po       |    2 +-
 po/eo.po          |    2 +-
 po/es.po          | 1009
 ++++++++++++++++++++++++++---------------------------
 po/et.po          |    2 +-
 po/eu.po          |    2 +-
 po/fa.po          |    2 +-
 po/fi.po          |    2 +-
 po/fr.po          |    2 +-
 po/ga.po          |    2 +-
 po/gl.po          |    2 +-
 po/gu.po          |    2 +-
 po/he.po          |    2 +-
 po/hi.po          |    2 +-
 po/hr.po          |    2 +-
 po/hu.po          |    2 +-
 po/hy.po          |    2 +-
 po/id.po          |    2 +-
 po/is.po          |    2 +-
 po/it.po          |    2 +-
 po/ja.po          |    2 +-
 po/ka.po          |    2 +-
 po/kn.po          |    2 +-
 po/ko.po          |    2 +-
 po/ku.po          |    2 +-
 po/lt.po          |    2 +-
 po/lv.po          |    2 +-
 po/mai.po         |    2 +-
 po/mg.po          |    2 +-
 po/mk.po          |    2 +-
 po/ml.po          |    2 +-
 po/mn.po          |    2 +-
 po/mr.po          |    2 +-
 po/ms.po          |    2 +-
 po/nb.po          |    2 +-
 po/nds.po         |    2 +-
 po/ne.po          |    2 +-
 po/nl.po          |    2 +-
 po/nn.po          |    2 +-
 po/oc.po          |    2 +-
 po/or.po          |    2 +-
 po/pa.po          |    2 +-
 po/pl.po          |    2 +-
 po/ps.po          |    2 +-
 po/pt.po          |    2 +-
 po/pt_BR.po       |    2 +-
 po/ro.po          |    2 +-
 po/ru.po          |    2 +-
 po/rw.po          |    2 +-
 po/si.po          |    2 +-
 po/sk.po          |    2 +-
 po/sl.po          |    2 +-
 po/sq.po          |    2 +-
 po/sr.po          |    2 +-
 po/sr@ije.po      |    2 +-
 po/sr@latin.po    |    2 +-
 po/sv.po          |    2 +-
 po/ta.po          |    2 +-
 po/te.po          |    2 +-
 po/th.po          |    2 +-
 po/tl.po          |    2 +-
 po/tr.po          |    2 +-
 po/tt.po          |    2 +-
 po/uk.po          |    2 +-
 po/vi.po          |    2 +-
 po/wa.po          |    2 +-
 po/xh.po          |    2 +-
 po/yi.po          |    2 +-
 po/zh_CN.po       |    2 +-
 po/zh_HK.po       |    2 +-
 po/zh_TW.po       |    2 +-
 92 files changed, 589 insertions(+), 602 deletions(-)

commit 34020f9dd4f497066ff79c0ab7cc534e21abc66b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 22:03:03 2010 -0400

    Updates

 NEWS | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 2ed13de1533a1fafaac97be0fdc4154eb84ac35c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 21:58:08 2010 -0400

    Fix issues with GSETTINGS_CHECK_RULE

    Rename the --schema-files option to --schema-file, since it only
    accepts one file at a time. Change the GSETTINGS_CHECK_RULE to
    use it that way, too. And also make it work better with !srcdir
    builds.

    Bugs #616731 and #616864

 gio/gschema-compile.c       | 2 +-
 gio/tests/gschema-compile.c | 2 +-
 m4macros/gsettings.m4       | 5 ++---
 3 files changed, 4 insertions(+), 5 deletions(-)

commit 763c1dab1f2c92526330425d77211b704668a3a3
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 14 21:08:01 2010 -0400

    GDBus: Use specific variant type in GetAll()

    Without this fix, we segfault if the exported object returned an error
    on all get_property() calls (in reality, this never happens).

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4baf104f0a369348185a2e2c9fdebc1423ec7f8e
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 14 20:52:15 2010 -0400

    GDBus: Fix a double free

    Fix an unintentional double free introduced in commit
    4ad4c306c3b80620185cf975b402e17a6174aea9.

    This bug manifested itself when trying to complete this

     $ gdbus introspect --system --dest <tab>

 gio/gdbus-tool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 661e5ea69f2d370af6e4e9c73242cf158414dd5d
Author: Christian Persch <chpe@gnome.org>
Date:   Fri May 14 20:07:15 2010 +0200

    Plug mem leaks in gdbus tests & examples

    Use "&s" instead of "s", and free the variant iters after use.

    Bug #618663.

 gio/tests/gdbus-example-peer.c           |  4 ++--
 gio/tests/gdbus-example-proxy-subclass.c | 12 +++---------
 gio/tests/gdbus-example-server.c         |  2 +-
 gio/tests/gdbus-example-subtree.c        |  6 +++---
 gio/tests/gdbus-example-watch-proxy.c    | 12 ++++--------
 gio/tests/gdbus-export.c                 |  8 +++-----
 gio/tests/gdbus-introspection.c          |  2 +-
 gio/tests/gdbus-peer.c                   |  8 ++++----
 gio/tests/gdbus-proxy.c                  |  2 +-
 9 files changed, 22 insertions(+), 34 deletions(-)

commit 60c53fef4788d4773704cb1affd2fb0f4d1d8830
Author: Christian Persch <chpe@gnome.org>
Date:   Fri May 14 18:21:01 2010 +0200

    Plug a mem leak in gdbusauth

    From valgrind running gdbus-peer test:

    ==20513== 32 bytes in 1 blocks are definitely lost in loss record
    1 of 15
    ==20513==    at 0x4024E4C: realloc (vg_replace_malloc.c:429)
    ==20513==    by 0x4079BB1: g_realloc (gmem.c:174)
    ==20513==    by 0x4099472: g_string_maybe_expand (gstring.c:396)
    ==20513==    by 0x409A42A: g_string_insert_c (gstring.c:1050)
    ==20513==    by 0x42169AC: g_string_append_c_inline (gstring.h:153)
    ==20513==    by 0x421682C: _my_g_input_stream_read_line_safe
    (gdbusauth.c:336)
    ==20513==    by 0x421843E: _g_dbus_auth_run_server (gdbusauth.c:1265)
    ==20513==    by 0x4222B94: initable_init (gdbusconnection.c:1783)
    ==20513==    by 0x41CF8D5: g_initable_init (ginitable.c:106)
    ==20513==    by 0x41CFA8D: g_initable_new_valist (ginitable.c:219)
    ==20513==    by 0x41CF920: g_initable_new (ginitable.c:139)
    ==20513==    by 0x4223479: g_dbus_connection_new_sync
    (gdbusconnection.c:2046)

    Bug #618650.

 gio/gdbusauth.c | 1 +
 1 file changed, 1 insertion(+)

commit 5bc9d43288d4991b9c3ef1fc38d231113b633ec7
Author: Christian Persch <chpe@gnome.org>
Date:   Fri May 14 14:27:08 2010 +0200

    Plug mem leak in g_dbus_address_get_stream_sync

    ==6279== 21,615 (4,708 direct, 16,907 indirect) bytes in 169
    blocks are
    definitely lost in loss record 12 of 13
    ==6279==    at 0x4024D2E: malloc (vg_replace_malloc.c:207)
    ==6279==    by 0x4079A90: g_malloc (gmem.c:135)
    ==6279==    by 0x4079DC8: g_malloc_n (gmem.c:252)
    ==6279==    by 0x4097E66: g_strsplit (gstrfuncs.c:2434)
    ==6279==    by 0x42169A2: g_dbus_address_get_stream_sync
    (gdbusaddress.c:875)

    Bug #618622.

 gio/gdbusaddress.c | 2 ++
 1 file changed, 2 insertions(+)

commit dc39825aa3b1556e57460df1cca0b764a5741a66
Author: Christian Persch <chpe@gnome.org>
Date:   Fri May 14 14:22:45 2010 +0200

    Plug a mem leak in get_uninitialized_connection

    Free the bus address after creating the singleton.

    ==26308== 39,736 (10,517 direct, 29,219 indirect) bytes in 388 blocks
    are definitely lost in loss record 14 of 15
    ==26308==    at 0x4024D2E: malloc (vg_replace_malloc.c:207)
    ==26308==    by 0x4079A90: g_malloc (gmem.c:135)
    ==26308==    by 0x4079DC8: g_malloc_n (gmem.c:252)
    ==26308==    by 0x4095607: g_strdup (gstrfuncs.c:102)
    ==26308==    by 0x4216B9A: g_dbus_address_get_for_bus_sync
    (gdbusaddress.c:961)
    ==26308==    by 0x422A7AE: get_uninitialized_connection
    (gdbusconnection.c:5241)

    Bug #618622.

 gio/gdbusconnection.c | 1 +
 1 file changed, 1 insertion(+)

commit 5b2c7f10bd5a42d2956b53b13f3aabb947f901dd
Author: Christian Persch <chpe@gnome.org>
Date:   Fri May 14 14:15:42 2010 +0200

    Plug mem leaks in parse_value_from_blob

    The result of read_string() was leaked.

    Bug #618615.

 gio/gdbusmessage.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 0a7c0ac74bd55d06265e9441c5728119adc254ab
Author: Christian Persch <chpe@gnome.org>
Date:   Fri May 14 18:08:29 2010 -0400

    Plug a mem leak

    This code leaked the return value of g_variant_get_child_value();
    use g_variant_get() instead and free the iter when done.

 gio/gdbusproxy.c | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

commit ddc94bd0a65a17471e50d0c659d9c59a1804c3f1
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 14 12:55:25 2010 -0400

    GDBus: Remove cached value if a property is invalidated

    Also add a test case to catch this.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c              |  6 ++++++
 gio/tests/gdbus-proxy.c       | 36 ++++++++++++++++++++++++++++++++++++
 gio/tests/gdbus-testserver.py | 16 ++++++++++++++++
 3 files changed, 58 insertions(+)

commit bb6530eb34a16cbf34ce130c21071a25666a704b
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 14 12:49:51 2010 -0400

    GDBus: Fix serialization of empty arrays

    It turns out that we didn't observe padding (neither when reading nor
    writing) for empty arrays which (apparently) is needed according to
    the D-Bus spec and reference implementation. A simple test case to
    provoke this behavior is as follows (notice the lack of 4 bytes worth
    of padding at position 0x0064):

     Error calling dbus_message_demarshal() on this blob:
     org.freedesktop.DBus.Error.InvalidArgs: Message is corrupted
     (Alignment padding not null)
     0000: 6c 01 00 01  2e 00 00 00  41 00 00 00  37 00 00 00
     l.......A...7...
     0010: 08 01 67 00  08 73 61 7b  73 76 7d 61  73 00 00 00
     ..g..sa{sv}as...
     0020: 01 01 6f 00  08 00 00 00  2f 66 6f 6f  2f 62 61 72
     ..o...../foo/bar
     0030: 00 00 00 00  00 00 00 00  03 01 73 00  06 00 00 00
     ..........s.....
     0040: 4d 65 6d 62  65 72 00 00  11 00 00 00  30 31 32 33
     Member......0123
     0050: 34 35 36 37  38 39 30 31  32 33 34 35  36 00 00 00
     4567890123456...
     0060: 00 00 00 00  0e 00 00 00  09 00 00 00  53 6f 6d 65
     ............Some
     0070: 74 68 69 6e  67 00                                    thing.

     The blob was generated from the following GVariant value:
     ('01234567890123456', @a{sv} {}, ['Something'])

     If the blob was encoded using DBusMessageIter, the payload would
     have been:

     0000: 6c 01 00 01  32 00 00 00  41 00 00 00  36 00 00 00
     l...2...A...6...
     0010: 01 01 6f 00  08 00 00 00  2f 66 6f 6f  2f 62 61 72
     ..o...../foo/bar
     0020: 00 00 00 00  00 00 00 00  03 01 73 00  06 00 00 00
     ..........s.....
     0030: 4d 65 6d 62  65 72 00 00  08 01 67 00  08 73 61 7b
     Member....g..sa{
     0040: 73 76 7d 61  73 00 00 00  11 00 00 00  30 31 32 33
     sv}as.......0123
     0050: 34 35 36 37  38 39 30 31  32 33 34 35  36 00 00 00
     4567890123456...
     0060: 00 00 00 00  00 00 00 00  0e 00 00 00  09 00 00 00
     ................
     0070: 53 6f 6d 65  74 68 69 6e  67 00
     Something.
     ** ERROR:gdbus-serialization.c:547:check_serialization: code should
     not be reached
     Aborted

    and this is now in the libdbus-1-using serialization test case.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusmessage.c              | 680
 +++++++++++++++++++++++++---------------
 gio/tests/gdbus-serialization.c |  12 +
 2 files changed, 439 insertions(+), 253 deletions(-)

commit 285a124608b28ca62db7350632a48bd9257038c0
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Fri May 14 17:55:37 2010 +0200

    Updated Spanish translation

 po/es.po | 1026
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 521 insertions(+), 505 deletions(-)

commit 02af71c7ff9689a75069b0a7bc84349dac0b13b4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 11:49:15 2010 -0400

    bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cff9d83f75b90301909f2c7d46a16e5f618e3e0b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 11:25:11 2010 -0400

    2.25.4

 po/af.po          |  184 +++++----
 po/am.po          |  184 +++++----
 po/ar.po          |  184 +++++----
 po/as.po          |  184 +++++----
 po/ast.po         |  184 +++++----
 po/az.po          |  184 +++++----
 po/be.po          |  186 +++++----
 po/be@latin.po    |  186 +++++----
 po/bg.po          |  184 +++++----
 po/bn.po          |  184 +++++----
 po/bn_IN.po       |  184 +++++----
 po/bs.po          |  184 +++++----
 po/ca.po          |  184 +++++----
 po/ca@valencia.po |  184 +++++----
 po/cs.po          |  184 +++++----
 po/cy.po          |  184 +++++----
 po/da.po          |  184 +++++----
 po/de.po          |  184 +++++----
 po/dz.po          |  184 +++++----
 po/el.po          |  184 +++++----
 po/en@shaw.po     | 1121
 +++++++++++++++++++++++++++--------------------------
 po/en_CA.po       |  184 +++++----
 po/en_GB.po       |  184 +++++----
 po/eo.po          |  184 +++++----
 po/es.po          | 1027 ++++++++++++++++++++++++------------------------
 po/et.po          |  184 +++++----
 po/eu.po          |  184 +++++----
 po/fa.po          |  184 +++++----
 po/fi.po          |  184 +++++----
 po/fr.po          |  184 +++++----
 po/ga.po          |  184 +++++----
 po/gl.po          | 1024 ++++++++++++++++++++++++------------------------
 po/gu.po          |  184 +++++----
 po/he.po          |  184 +++++----
 po/hi.po          |  184 +++++----
 po/hr.po          |  184 +++++----
 po/hu.po          |  184 +++++----
 po/hy.po          |  184 +++++----
 po/id.po          |  184 +++++----
 po/is.po          |  184 +++++----
 po/it.po          |  184 +++++----
 po/ja.po          |  184 +++++----
 po/ka.po          |  184 +++++----
 po/kn.po          |  184 +++++----
 po/ko.po          |  184 +++++----
 po/ku.po          |  184 +++++----
 po/lt.po          |  184 +++++----
 po/lv.po          |  184 +++++----
 po/mai.po         |  184 +++++----
 po/mg.po          |  184 +++++----
 po/mk.po          |  184 +++++----
 po/ml.po          |  184 +++++----
 po/mn.po          |  184 +++++----
 po/mr.po          |  184 +++++----
 po/ms.po          |  184 +++++----
 po/nb.po          | 1024 ++++++++++++++++++++++++------------------------
 po/nds.po         |  184 +++++----
 po/ne.po          |  184 +++++----
 po/nl.po          |  185 +++++----
 po/nn.po          |  184 +++++----
 po/oc.po          |  184 +++++----
 po/or.po          |  184 +++++----
 po/pa.po          |  184 +++++----
 po/pl.po          |  184 +++++----
 po/ps.po          |  184 +++++----
 po/pt.po          |  184 +++++----
 po/pt_BR.po       |  184 +++++----
 po/ro.po          |  184 +++++----
 po/ru.po          |  184 +++++----
 po/rw.po          |  186 +++++----
 po/si.po          |  184 +++++----
 po/sk.po          |  184 +++++----
 po/sl.po          |  184 +++++----
 po/sq.po          |  192 +++++----
 po/sr.po          |  184 +++++----
 po/sr@ije.po      |  184 +++++----
 po/sr@latin.po    |  184 +++++----
 po/sv.po          |  184 +++++----
 po/ta.po          |  184 +++++----
 po/te.po          |  184 +++++----
 po/th.po          |  184 +++++----
 po/tl.po          |  184 +++++----
 po/tr.po          |  184 +++++----
 po/tt.po          |  184 +++++----
 po/uk.po          |  184 +++++----
 po/vi.po          |  184 +++++----
 po/wa.po          |  184 +++++----
 po/xh.po          |  184 +++++----
 po/yi.po          |  184 +++++----
 po/zh_CN.po       |  184 +++++----
 po/zh_HK.po       |  184 +++++----
 po/zh_TW.po       |  184 +++++----
 92 files changed, 11669 insertions(+), 8734 deletions(-)

commit c57c61c930896f278de61de170e57affc243e427
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri May 14 17:06:24 2010 +0200

    fix glaring inaccuracy in GVariant docs

 glib/gvariant.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

commit ee9b16242c2f1e5e29170a8885fd146d44f83197
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 10:49:03 2010 -0400

    another !srcdir build fix

 gio/tests/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 159f533abf9e653fa31dba5b3c12f024165c29db
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 10:25:31 2010 -0400

    More !srcdir build fixes

 gio/tests/gdbus-introspection.c | 2 +-
 gio/tests/gdbus-threading.c     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d8d1a02c556ed9fc4c436888c965bc8dee62ad81
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri May 14 15:30:33 2010 +0200

    include gunixcredentialsmessage from unixsocket

    fixes a build issue

 gio/gunixconnection.c | 1 +
 1 file changed, 1 insertion(+)

commit 1d22b64843c83631bcd0e5255930f3a4e990961e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 08:38:07 2010 -0400

    Cleanups

    Sort #includes a bit better, and don't include platform-specific
    headers in gio.h.

 gio/gcredentials.c               |  9 +++++----
 gio/gdbus-tool.c                 |  4 ++--
 gio/gdbusauth.c                  | 11 ++++++-----
 gio/gdbusauthmechanismexternal.c |  9 ++++-----
 gio/gdbusauthmechanismsha1.c     | 18 ++++++++----------
 gio/gdbusconnection.c            | 10 ++++++----
 gio/gdbusmessage.c               | 11 ++++++-----
 gio/gdbusprivate.c               |  8 ++------
 gio/gdbusproxywatching.c         |  1 -
 gio/gdbusserver.c                |  4 +++-
 gio/gio.h                        |  1 -
 11 files changed, 42 insertions(+), 44 deletions(-)

commit 054079899128cfc4a9e50a3750d927724604eedb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 01:36:25 2010 -0400

    Fix !srcdir build

    Thankfully we already had a SRCDIR define.

 gio/tests/gdbus-proxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c6f01b329c0d6488d15223c0d8bf286d8ff444a5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 00:59:42 2010 -0400

    Fix a typo

 docs/reference/gio/gio-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 45cad58b4611aa6678f50a4545cb3b14b24b9c39
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 00:51:51 2010 -0400

    Updates

 NEWS | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit 4e7764fb2d843fbc89847036a3d8fcb47edf9c4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 14 00:21:39 2010 -0400

    Documentation cleanups

 docs/reference/gio/Makefile.am      |  7 +++++
 docs/reference/gio/gio-sections.txt | 61
 ++++++++++++++++++++++++++++---------
 gio/giotypes.h                      |  1 -
 gio/gunixcredentialsmessage.c       |  1 +
 4 files changed, 54 insertions(+), 16 deletions(-)

commit 6223341cacc7dfa34a8d60ec1b4828382dee6d07
Merge: a7c4c7d 6e8637e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 23:08:34 2010 -0400

    Merge branch 'gdbus-merge'

    Conflicts:
            docs/reference/gio/gio-docs.xml
            docs/reference/gio/gio-sections.txt
            gio/tests/Makefile.am

commit a7c4c7de58a48c179e4dc3336814f63c33ad07ff
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 12:48:22 2010 -0400

    Remove a reference to Pango

 docs/reference/gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6e8637e4783ae4e573f6784f005920930d9fca87
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 22:15:47 2010 -0400

    The default timeout is 25s

 gio/gdbusconnection.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit bdc29f82d39619747ac564918e041181b26449ee
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 21:53:51 2010 -0400

    Document more floating variant details.

 gio/gdbusconnection.c | 2 ++
 1 file changed, 2 insertions(+)

commit e72f7f52de9e482eb9d5dd1c47eb0d1bea5f4631
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 21:45:18 2010 -0400

    Add some more details to the long description

 gio/gdbusproxy.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 8f89b63930181696a3f4a9c441ffd97230577d64
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 20:29:04 2010 -0400

    Clean up platform-specific includes

    The problem was pointed out in bug 618029. To solve it, we moved
    the GUnixFDList typedef to giotypes.h.

 gio/gdbusmessage.c                       | 2 ++
 gio/gdbusmessage.h                       | 6 ------
 gio/giotypes.h                           | 1 +
 gio/gunixfdlist.h                        | 3 +--
 gio/gunixfdmessage.c                     | 1 +
 gio/gunixfdmessage.h                     | 2 +-
 gio/tests/gdbus-example-unix-fd-client.c | 1 +
 gio/tests/gdbus-peer.c                   | 1 +
 8 files changed, 8 insertions(+), 9 deletions(-)

commit 62c0454b34191b56d439521e537915b0514f8dbb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri May 14 01:54:30 2010 +0200

    documentation for glib-mkenums @valuenum@

 docs/reference/gobject/glib-mkenums.1   | 24 ++++++++++++++++++++++--
 docs/reference/gobject/glib-mkenums.xml | 12 ++++++++++++
 2 files changed, 34 insertions(+), 2 deletions(-)

commit e1fb92551f7be3dbaad9d9a5c80dc30ed7b83048
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue May 11 19:48:19 2010 +0200

    check for working gettext() before running tests

 gio/tests/gsettings.c | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

commit 1165007023bf34c5624574703acd2d183b1d14f5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri May 14 00:53:42 2010 +0200

    Add configure check for memmem()

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dd3551e7c3ae5e6e8b21dd77ce09d72b799e7b1d
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 18:19:16 2010 -0400

    GDBus: update gdbus(1) man page

 docs/reference/gio/gdbus.xml | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 68078ed648eec314507ff997e89b053a1d9a6891
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 18:04:48 2010 -0400

    GDBus: Nuke G_BUS_TYPE_NONE

 gio/gdbusnameowning.c    |  1 -
 gio/gdbusnamewatching.c  |  1 -
 gio/gdbusproxywatching.c |  3 +--
 gio/gioenums.h           | 12 +++++-------
 gio/tests/gdbus-peer.c   |  1 -
 5 files changed, 6 insertions(+), 12 deletions(-)

commit 1fd55b8bbfe58adb749d4eee68ca5a71e56e6f82
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 17:44:42 2010 -0400

    GDBus: Remove g_dbus_is_activated()

    It's generally hard to get this right so don't attempt to do so.

 docs/reference/gio/gio-sections.txt |  1 -
 gio/gdbusutils.c                    | 20 --------------------
 gio/gdbusutils.h                    |  2 --
 gio/gio.symbols                     |  1 -
 4 files changed, 24 deletions(-)

commit 51446baa52e8cebea57124eb99a32e77a13b1551
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 17:20:39 2010 -0400

    GDBus: subscribe to PropertiesChanged() before calling GetAll()

    Otherwise there's a slight chance of a race.

 gio/gdbusproxy.c | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

commit 0e2c708bb298c98c136d507427e7b731b5cbd962
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 17:10:15 2010 -0400

    GDBus: Don't take a GError for
    g_dbus_proxy_get_cached_property_names()

    We stopped doing this for get_cached_property() so no reason to do it
    here.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c                      | 29 +++++++++--------------------
 gio/gdbusproxy.h                      |  3 +--
 gio/tests/gdbus-example-watch-proxy.c |  2 +-
 3 files changed, 11 insertions(+), 23 deletions(-)

commit 3ca28ef718d402bd65cd9f291c67b299f1ef74cf
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 16:57:29 2010 -0400

    GDBus: Update docs for GDBusProxy::g-properties-changed signal

    Also update the example. See

    https://bugzilla.gnome.org/show_bug.cgi?id=618559

    for more details.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c                      | 10 +++++-----
 gio/tests/gdbus-example-watch-proxy.c |  7 +++++--
 2 files changed, 10 insertions(+), 7 deletions(-)

commit e3f5d3c00595ca017d83015fa2b9832d1c87828f
Author: Christian Persch <chpe@gnome.org>
Date:   Thu May 13 19:01:04 2010 +0200

    Make GVariant handling in PropertiesChanged more efficient

    There's no need to re-build the a{sv} array, just get it right out of
    the parameters. Also avoid some string copies.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusproxy.c | 82
 +++++++++++---------------------------------------------
 1 file changed, 16 insertions(+), 66 deletions(-)

commit 4ad4c306c3b80620185cf975b402e17a6174aea9
Author: Christian Persch <chpe@gnome.org>
Date:   Thu May 13 19:20:26 2010 +0200

    Plug some mem leaks

    g_variant_get (v, "s", &str) returns a string copy; use "&s" instead.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbus-tool.c        | 20 ++++++++++----------
 gio/gdbusconnection.c   | 22 ++++++++++------------
 gio/gdbusmessage.c      |  2 +-
 gio/gdbusnameowning.c   |  4 ++--
 gio/gdbusnamewatching.c |  4 ++--
 gio/gdbusproxy.c        |  4 ++--
 6 files changed, 27 insertions(+), 29 deletions(-)

commit 60e7ae26af2fc31d59e36f8798d383fa9d87db92
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 16:32:11 2010 -0400

    GDBus: Add GDBusAuthObserver param in
    g_dbus_connection_new_for_address()

    This is to match g_dbus_connection_new(). This extension allows us to
    extend GDBusAuthObserver to also be used in client-side authentication
    in the future (right now it's only used on the server-side).

 gio/gdbus-tool.c               |  1 +
 gio/gdbusconnection.c          | 18 ++++++++++++++----
 gio/gdbusconnection.h          |  2 ++
 gio/tests/gdbus-example-peer.c |  1 +
 gio/tests/gdbus-peer.c         |  4 ++++
 gio/tests/gdbus-tests.c        |  1 +
 6 files changed, 23 insertions(+), 4 deletions(-)

commit cb753dfd496ae70b069c1698da8211c454953f08
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 16:20:31 2010 -0400

    GDBus: Rename ::deny-authentication-peer to
    ::authorize-authenticated-peer

 docs/reference/gio/gio-sections.txt |  2 +-
 gio/gdbusauth.c                     |  8 ++--
 gio/gdbusauthobserver.c             | 74
 ++++++++++++++++++++++---------------
 gio/gdbusauthobserver.h             | 18 ++++-----
 gio/gdbusconnection.c               |  2 -
 gio/gio.symbols                     |  2 +-
 gio/tests/gdbus-peer.c              | 20 +++++-----
 7 files changed, 70 insertions(+), 56 deletions(-)

commit 9e90b381f58c4a06f49e622a07ee0b56fb52b3f1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 14:25:29 2010 -0400

    Remove the credentials argument from g_unix_connect_send_credentials()

    Instead, make it always send the current credentials.

 gio/gdbusauth.c       |  3 +--
 gio/gunixconnection.c | 16 +++++++---------
 gio/gunixconnection.h |  1 -
 3 files changed, 8 insertions(+), 12 deletions(-)

commit 33952347ff9bc2875e7e1a2709566b38fc391bda
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 14:01:41 2010 -0400

    GDBus: Make message serialization routines take capabilities param

    This is needed to e.g. allow encoding maybe types (once we add
    G_DBUS_CAPABILITY_FLAGS_MAYBE_TYPES) if, and only if, that capability
    has been negotiated with the peer (via authentication).

 gio/gdbusconnection.c           |  1 +
 gio/gdbusmessage.c              | 26 +++++++++++++++++---------
 gio/gdbusmessage.h              |  2 ++
 gio/gdbusprivate.c              |  1 +
 gio/tests/gdbus-serialization.c |  6 +++++-
 5 files changed, 26 insertions(+), 10 deletions(-)

commit 107b4d4bae7dba4281bfaa0bef827f7b2376946a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 13:09:58 2010 -0400

    remove the redundant interface_name parameter

 gio/gdbusconnection.c            | 12 +++++-------
 gio/gdbusconnection.h            |  1 -
 gio/tests/gdbus-example-export.c |  1 -
 gio/tests/gdbus-example-peer.c   |  1 -
 gio/tests/gdbus-example-server.c |  1 -
 gio/tests/gdbus-export.c         | 12 ------------
 gio/tests/gdbus-peer.c           |  2 --
 7 files changed, 5 insertions(+), 25 deletions(-)

commit 82158afdadd10e6ffd1540f695931f64957b59f6
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 13 11:56:15 2010 -0400

    GDBus: Catch up with new PropertiesChanged signal

    After a long discussion, this has finally been standardized in the
    D-Bus spec. See

     http://lists.freedesktop.org/archives/dbus/2010-May/012667.html
     http://lists.freedesktop.org/archives/dbus/2010-May/012712.html

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gdbusconnection.c                    |  1 +
 gio/gdbusproxy.c                         | 74
 ++++++++++++++++++++++++++------
 gio/gdbusproxy.h                         | 13 +++---
 gio/gio-marshal.list                     |  1 +
 gio/tests/gdbus-example-export.c         |  7 ++-
 gio/tests/gdbus-example-proxy-subclass.c | 34 ++++++++-------
 gio/tests/gdbus-example-server.c         | 12 ++++--
 gio/tests/gdbus-example-watch-proxy.c    | 57 ++++++++++++++----------
 gio/tests/gdbus-testserver.py            |  1 +
 9 files changed, 137 insertions(+), 63 deletions(-)

commit 2d75583fb2a8fdb71b9ee880dc0cf4605ab7bc6c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 01:04:29 2010 -0400

    Fill out the export section of the migration guide

 docs/reference/gio/migrating-gdbus.xml | 66
 ++++++++++++++++++++++++++++++++++
 gio/tests/gdbus-example-export.c       |  6 ++--
 2 files changed, 70 insertions(+), 2 deletions(-)

commit 195cdcfabf962989f2bcc8c225a287517d7eacd9
Author: Thomas Thurman <tthurman@gnome.org>
Date:   Thu May 13 00:51:30 2010 -0400

    Update Shavian transliteration

 po/en@shaw.po | 128
 +++++++++++++++++++++-------------------------------------
 1 file changed, 47 insertions(+), 81 deletions(-)

commit 9a065edf6f51be2ad189cfb02ddd2c806b656303
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 13 00:39:26 2010 -0400

    Add an example of exporting a GObject

    This is more manual work than dbus-glib.

 gio/gdbusconnection.c            |   2 +
 gio/tests/Makefile.am            |   4 +
 gio/tests/gdbus-example-export.c | 331
 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 337 insertions(+)

commit ea1e0496b0329147b932d5a1486f5a81b4121651
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed May 12 23:12:14 2010 -0400

    GDBus: add 'monitor' verb to gdbus(1)

    This uncovered a bug in name watching if the name wasn't activatable.

    Also provoked the need for on_connection variants of g_bus_watch_name
    (added g_bus_watch_proxy's variant as well).

 docs/reference/gio/gdbus.xml        |  43 ++++++
 docs/reference/gio/gio-sections.txt |   2 +
 gio/gdbus-tool.c                    | 253
 +++++++++++++++++++++++++++++++++++-
 gio/gdbusnamewatching.c             |  69 +++++++++-
 gio/gdbusnamewatching.h             |  23 ++--
 gio/gdbusproxywatching.c            |  86 ++++++++++++
 gio/gdbusproxywatching.h            |  35 +++--
 gio/gio.symbols                     |   2 +
 8 files changed, 489 insertions(+), 24 deletions(-)

commit 9695c23d4c29e79afbe14e3584b6c42e98e8f0d9
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed May 12 22:09:18 2010 -0400

    GDBus: Make gdbus(1) print annotations when introspecting data

    Also make the gdbus-example-server include some example
    annotations. The output looks like this:

    $ gdbus introspect --session --dest org.gtk.GDBus.TestServer
    --object-path /org/gtk/GDBus/TestObject
    node /org/gtk/GDBus/TestObject {
      interface org.freedesktop.DBus.Properties {
        methods:
          Get(in  s interface_name,
              in  s property_name,
              out v value);
          GetAll(in  s interface_name,
                 out a{sv} properties);
          Set(in  s interface_name,
              in  s property_name,
              in  v value);
        signals:
          PropertiesChanged(s interface_name,
                            a{sv} changed_properties);
      };
      interface org.freedesktop.DBus.Introspectable {
        methods:
          Introspect(out s xml_data);
      };
      interface org.freedesktop.DBus.Peer {
        methods:
          Ping();
          GetMachineId(out s machine_uuid);
      };
      @org.gtk.GDBus.Annotation("OnInterface")
      @org.gtk.GDBus.Annotation("AlsoOnInterface")
      interface org.gtk.GDBus.TestInterface {
        methods:
          @org.gtk.GDBus.Annotation("OnMethod")
          HelloWorld(in  s greeting,
                     out s response);
          EmitSignal(@org.gtk.GDBus.Annotation.("OnArg")
                     in  d speed_in_mph);
          GimmeStdout();
        signals:
          @org.gtk.GDBus.Annotation("Onsignal")
          VelocityChanged(d speed_in_mph,
                          @org.gtk.GDBus.Annotation.("OnArg_NonFirst")
                          s speed_as_string);
        properties:
          @org.gtk.GDBus.Annotation("OnProperty")
            @org.gtk.GDBus.Annotation("OnAnnotation_YesThisIsCrazy")
          readonly s FluxCapicitorName = 'DeLorean';
          readwrite s Title = 'Back To C!';
          readonly s ReadingAlwaysThrowsError;
          readwrite s WritingAlwaysThrowsError = "There's no home
          like home";
          writeonly s OnlyWritable;
          readonly s Foo = 'Tick';
          readonly s Bar = 'Tock';
      };
    };

 gio/gdbus-tool.c                 | 43
 ++++++++++++++++++++++++++++++++++++++++
 gio/tests/gdbus-example-server.c | 18 ++++++++++++++---
 2 files changed, 58 insertions(+), 3 deletions(-)

commit cce08f197313bad1516924b3eb7305e7e6818971
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 12 21:51:06 2010 -0400

    Add a note about implemented standard interfaces

 gio/gdbusconnection.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit f909cb5b2713c8cd5f587c7a70e468d29bdcd429
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed May 12 20:43:40 2010 -0400

    GDBusProxy: Remove error in get_cached_property() and add
    set_cached_property()

    This makes it possible to use the cached properties mechanism even if
    constructing the proxy with the DO_NOT_LOAD_PROPERTIES flag.

    This is useful for cases where you obtain the and track object
    properties out-of-band. For example, in udisks, the plan is to have
    something like this

     Manager.GetObjects    (out ao paths, out aa{sa{sv}} all_properties);
     Manager.ObjectAdded   (o path, a{sa{sv}} all_properties);
     Manager.ObjectChanged (o path, a{sa{sv}} all_properties);
     Manager.ObjectRemoved (o path, a{sa{sv}} all_properties);

    E.g. the first GetObjects() call will return *all* data about *all*
    exported objects. Further, this way a client will only need to listen
    these three signals (three AddMatch) on the Manager object and it will
    never need to do GetAll() etc (e.g. can use DO_NOT_LOAD_PROPERTIES).

    (Of course this only works if the client is interested in all
    objects... while this is true for udisks it is generally not true for
    other D-Bus services).

    Also use expected_interface to check for programming errors.

 docs/reference/gio/gio-sections.txt      |   3 +-
 gio/gdbusproxy.c                         | 162
 ++++++++++++++++++++++++-------
 gio/gdbusproxy.h                         |   4 +-
 gio/gio.symbols                          |   1 +
 gio/tests/gdbus-example-proxy-subclass.c |   6 +-
 gio/tests/gdbus-example-watch-proxy.c    |   2 +-
 gio/tests/gdbus-peer.c                   |   3 +-
 gio/tests/gdbus-proxy.c                  |  44 +++++++--
 8 files changed, 174 insertions(+), 51 deletions(-)

commit 72731fb6ad99da076605ca7d8b1bee232b38e734
Author: Thomas Thurman <tthurman@gnome.org>
Date:   Wed May 12 18:41:27 2010 -0400

    Updated Shavian transliteration

 po/en@shaw.po | 1176
 +++++++++++++++++++++++++++++----------------------------
 1 file changed, 602 insertions(+), 574 deletions(-)

commit b690e637d46057f6914a6b6f20b2688cd03f0ac5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 12 17:56:56 2010 -0400

    Add some more verbiage

 docs/reference/gio/migrating-gdbus.xml | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit d40767fc62972f9cc85ebfb23e113068cc316f3a
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed May 12 15:49:48 2010 -0400

    GDBus: Add an example of a GDBusProxy subclass

 docs/reference/gio/migrating-gdbus.xml   |  55 ++++
 gio/gdbusconnection.c                    |   2 -
 gio/tests/Makefile.am                    |   4 +
 gio/tests/gdbus-example-proxy-subclass.c | 443
 +++++++++++++++++++++++++++++++
 4 files changed, 502 insertions(+), 2 deletions(-)

commit 7c0196f0267aa77c80fb85320ef9583c7fc64ad7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 12 13:01:40 2010 -0400

    Update an example to the latest auth observer api

 gio/gdbusauthobserver.c | 17 ++++++++++-------
 gio/gdbusconnection.c   |  2 +-
 2 files changed, 11 insertions(+), 8 deletions(-)

commit 371a3373bbf190054076896ed32d28d546f23930
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 12 13:01:02 2010 -0400

    Correct env var names

    and add a note about priority

 docs/reference/gio/overview.xml | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit af3afc804064ec17e89a6cdef4cc3e63015c8a77
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 12 12:13:57 2010 -0400

    placeholder for more migration docs

 docs/reference/gio/migrating-gdbus.xml | 5 +++++
 1 file changed, 5 insertions(+)

commit 246db9bfdb5919a77ce5ae0d2f426f163f7702c1
Author: Jesse van den Kieboom <jesse.vandenkieboom@epfl.ch>
Date:   Fri May 7 11:55:40 2010 +0200

    Added test cases for g_output_stream_close_async

    https://bugzilla.gnome.org/show_bug.cgi?id=617937

 gio/tests/Makefile.am                 |   6 +-
 gio/tests/async-close-output-stream.c | 278
 ++++++++++++++++++++++++++++++++++
 2 files changed, 283 insertions(+), 1 deletion(-)

commit adc5162b742c702f37f385dcffba3802f0e55095
Author: Jesse van den Kieboom <jesse@icecrew.nl>
Date:   Mon May 10 23:49:41 2010 +0200

    Flush when closing output stream async

    https://bugzilla.gnome.org/show_bug.cgi?id=617937

 gio/goutputstream.c | 117
 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 110 insertions(+), 7 deletions(-)

commit e2b9d077659df82f9603352e6ce4ff1ceb4b1b8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 23:26:51 2010 -0400

    Update TODO list

 gio/gdbusconnection.c | 4 ----
 1 file changed, 4 deletions(-)

commit a63d3bb868b0ee17404cf85520e48d441abbcdf3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 23:18:48 2010 -0400

    mention inline use of floating variants

 gio/gdbusconnection.c | 37 ++++++++++++++++++++++++++++++++++++-
 gio/gdbusproxy.c      | 42 ++++++++++++++++++++++++++++++++++++------
 2 files changed, 72 insertions(+), 7 deletions(-)

commit ab2ff1a307f6bf7825e02b0d09e25b8ea7570c07
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 22:51:14 2010 -0400

    Remove properties from GDBusMethodInvocation class

 gio/gdbusconnection.c       |   3 -
 gio/gdbusmethodinvocation.c | 330
 +++-----------------------------------------
 2 files changed, 18 insertions(+), 315 deletions(-)

commit c4cf88c22f731878cbc740e4721e07215385201b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 22:50:40 2010 -0400

    Document remove_filter

 gio/gdbusconnection.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit d7095dd4700b38c202a43b7c21f93db20a9ede44
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 22:35:59 2010 -0400

    Document DBUS address env vars

 docs/reference/gio/overview.xml | 28 ++++++++++++++++++++++++++++
 gio/gdbusintrospection.c        |  2 +-
 2 files changed, 29 insertions(+), 1 deletion(-)

commit 84a6475b6e52fd481bf0e7191a6ea16168d35a3f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 22:03:40 2010 -0400

    Trivial: tweak section heading

 docs/reference/gio/migrating-gdbus.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9c128ca83536b6c6c823bb83606b09193d814738
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 22:00:54 2010 -0400

    Trivial formatting fix

 docs/reference/gio/migrating-gdbus.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fdfd3d5e7536313dde1fc02b45ca04a6e4704b50
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 22:00:06 2010 -0400

    Fill out the proxy section of the migration guide

 docs/reference/gio/migrating-gdbus.xml | 53
 ++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

commit 26f65d83c5078e48e414a1cbe593bf349d96a033
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 21:59:42 2010 -0400

    Don't refer to nonexisting API.

 gio/gdbusconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1af277f16779f072bc0c326aa8024747ad8c13e9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 21:32:29 2010 -0400

    Fix a typo

 docs/reference/gio/migrating-gdbus.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9b05e0bc3e88f9e54710aabb2ad29908739e6345
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 21:30:53 2010 -0400

    Complete the name owning section of the migration guide

 docs/reference/gio/migrating-gdbus.xml | 136
 ++++++++++++++++++---------------
 1 file changed, 76 insertions(+), 60 deletions(-)

commit e4b1e48fca9d1d2ca7e0ec54ebc9ea421aebff71
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 20:57:44 2010 -0400

    Match up parameter names

    and similar cleanups to make gtk-doc happy.

 docs/reference/gio/gio-sections.txt |   1 -
 gio/gdbusconnection.c               |  17 +++---
 gio/gdbusconnection.h               |   4 +-
 gio/gdbusintrospection.c            | 102
 +++++++++++++++++++++---------------
 gio/gunixcredentialsmessage.c       |   2 +-
 5 files changed, 71 insertions(+), 55 deletions(-)

commit 1d43e4140b9c890eca50f3845bff3d800d66b6f9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 20:03:44 2010 -0400

    Line up prototypes

 gio/gdbusproxy.c | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

commit 8d66ede1abbc4b84bcf13c4420719cb06fbe3b96
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 17:15:11 2010 -0400

    More gdbus migration stuff

 docs/reference/gio/migrating-gdbus.xml | 89
 ++++++++++++++++++++++++++++++++--
 1 file changed, 86 insertions(+), 3 deletions(-)

commit 54a57bb894d3c098bf972ecec71823b2822128b6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 15:50:19 2010 -0400

    Strip copyright headers from examples

    These are included wholesale in the docs, and the copyright
    headers make them even more overwhelming. Plus, we don't have
    copyright headers on examples anywhere else.

 gio/tests/gdbus-example-own-name.c       | 13 -------------
 gio/tests/gdbus-example-peer.c           | 13 -------------
 gio/tests/gdbus-example-server.c         | 13 -------------
 gio/tests/gdbus-example-subtree.c        | 13 -------------
 gio/tests/gdbus-example-unix-fd-client.c | 13 -------------
 gio/tests/gdbus-example-watch-name.c     | 13 -------------
 gio/tests/gdbus-example-watch-proxy.c    | 13 -------------
 7 files changed, 91 deletions(-)

commit 9a2422b216263dd7bc4f27a98bc89d5ea6dfe791
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue May 11 15:42:15 2010 -0400

    Trivial: rename a file

 docs/reference/gio/Makefile.am                                      |
 4 ++--
 docs/reference/gio/gio-docs.xml                                     |
 2 +-
 docs/reference/gio/{migrating-dbus-glib.xml => migrating-gdbus.xml} | 0
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 0e98557753ad5f5f9b74fd135dcdbe18055dc11a
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue May 11 19:54:06 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 92
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 46 insertions(+), 46 deletions(-)

commit 8c523c069b79a746c2dcdfe7e253513ff489cd39
Author: David Zeuthen <davidz@redhat.com>
Date:   Tue May 11 12:04:37 2010 -0400

    GDBus: Update TODO list

 gio/gdbusconnection.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 6d5ac8163b962803fedcf57b9ccad8a2c1205c82
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Mon May 10 09:48:49 2010 +0200

    gio: Fix gsettings build with binutils gold linker

 gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 936ff022f21a43f39552799dc1b3988379563959
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Mon May 10 09:51:49 2010 +0200

    Don't include __bss_start, _edata and _end symbols in the abichecks

    They are added by the binutils gold linker.

 gio/abicheck.sh     | 2 +-
 glib/abicheck.sh    | 2 +-
 gobject/abicheck.sh | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 2d208c9d364369d68a54cfd0682e17f2ce771db5
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 10 16:20:59 2010 -0400

    GDBus: In gdbus(1), try Get() if GetAll() fails

    This fixes a problem with services that doesn't implement GetAll() for
    one reason or another.

    $ gdbus introspect --session --dest
    org.freedesktop.ReserveDevice1.Audio0 --object-path
    /org/freedesktop/ReserveDevice1/Audio0
    node /org/freedesktop/ReserveDevice1/Audio0 {
      interface org.freedesktop.ReserveDevice1 {
        methods:
          RequestRelease(in  i priority,
                         out b result);
        properties:
          readonly i Priority = 0;
          readonly s ApplicationName = 'PulseAudio Sound Server';
          readonly s ApplicationDeviceName = 'Internal Audio Analog
          Stereo';
      };
      interface org.freedesktop.DBus.Properties {
        methods:
          Get(in  s interface,
              in  s property,
              out v value);
      };
      interface org.freedesktop.DBus.Introspectable {
        methods:
          Introspect(out s data);
      };
    };

 gio/gdbus-tool.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 6e23b0b7850c170405aa25d9441a9cd8cc05a38b
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 10 14:43:08 2010 -0400

    GDBus: Add TODO item about a need to validate data / messages

 gio/gdbusconnection.c | 5 +++++
 1 file changed, 5 insertions(+)

commit adf50912ddb29c8c6b36702df1162e6211765dea
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 10 14:07:13 2010 -0400

    GDBus Add TODO items about finding and launching bus instances

 gio/gdbusconnection.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 5800a1f91162ec5a0e96fae12857be2ebe404d3a
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon May 10 19:38:57 2010 +0200

    Updated Spanish translation

 po/es.po | 91
 ++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 49 insertions(+), 42 deletions(-)

commit 7e8b07ae3be5ce63ba17183a410ac8512a29cb13
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 10 13:31:54 2010 -0400

    GDBus: Use GVariant instead of GHashTable for
    GDBusProxy::g-properties-changed

 gio/gdbusconnection.c                 | 13 -------------
 gio/gdbusproxy.c                      | 24 +++++++++++-------------
 gio/gdbusproxy.h                      |  2 +-
 gio/tests/gdbus-example-watch-proxy.c | 21 +++++++++++++++------
 4 files changed, 27 insertions(+), 33 deletions(-)

commit 869b4c68332f36377bbdfd186e37f6194ae5ed5a
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon May 10 11:47:08 2010 -0400

    GDBus: Use call() instead of invoke_method()

    Lots of people been suggesting this. We still use MethodInvocation /
    method_invocation for handling incoming method calls so use call()
    instead of invoke_method() helps to separate the client and server
    facilities. Which is a good thing(tm).

 docs/reference/gio/gio-sections.txt        |  14 +-
 docs/reference/gio/migrating-dbus-glib.xml |   6 +-
 gio/gdbus-tool.c                           | 160 +++++++++---------
 gio/gdbusauthmechanismexternal.c           |   2 +-
 gio/gdbusconnection.c                      | 104 ++++++------
 gio/gdbusconnection.h                      |  10 +-
 gio/gdbuserror.c                           |  13 +-
 gio/gdbusnameowning.c                      |  52 +++---
 gio/gdbusnamewatching.c                    |  56 +++----
 gio/gdbusproxy.c                           | 142 ++++++++--------
 gio/gdbusproxy.h                           |  10 +-
 gio/gio.symbols                            |  14 +-
 gio/gioenums.h                             |  14 +-
 gio/tests/gdbus-connection.c               | 160 +++++++++---------
 gio/tests/gdbus-example-peer.c             |  20 +--
 gio/tests/gdbus-export.c                   | 252
 ++++++++++++++---------------
 gio/tests/gdbus-introspection.c            |  14 +-
 gio/tests/gdbus-names.c                    |  40 ++---
 gio/tests/gdbus-peer.c                     |  44 ++---
 gio/tests/gdbus-proxy.c                    | 146 ++++++++---------
 gio/tests/gdbus-threading.c                | 114 ++++++-------
 21 files changed, 694 insertions(+), 693 deletions(-)

commit 728c4e38e72055080c148f9cebca85a08d16a445
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 10 08:07:28 2010 -0400

    More copyright year updates

 gio/tests/gdbus-addresses.c     | 2 +-
 gio/tests/gdbus-connection.c    | 2 +-
 gio/tests/gdbus-error.c         | 2 +-
 gio/tests/gdbus-exit-on-close.c | 2 +-
 gio/tests/gdbus-export.c        | 2 +-
 gio/tests/gdbus-introspection.c | 2 +-
 gio/tests/gdbus-names.c         | 2 +-
 gio/tests/gdbus-peer.c          | 2 +-
 gio/tests/gdbus-proxy.c         | 2 +-
 gio/tests/gdbus-serialization.c | 2 +-
 gio/tests/gdbus-sessionbus.c    | 2 +-
 gio/tests/gdbus-tests.c         | 2 +-
 gio/tests/gdbus-threading.c     | 2 +-
 13 files changed, 13 insertions(+), 13 deletions(-)

commit 5d1135618e6ec5c6a6c41bed602cec643f9d8b8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon May 10 08:07:07 2010 -0400

    Trivia

 gio/gdbusaddress.c    | 34 +++++++++++++++++-----------------
 gio/gdbusconnection.c | 34 +++++++++++++++++++++-------------
 2 files changed, 38 insertions(+), 30 deletions(-)

commit 25a8aa5d88d3d4b8ebcf8be42a2adc233dbb104c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 9 22:13:18 2010 -0400

    Cosmetic fixes

    Use P_() for properties, fix up indentation, etc.

 gio/gdbusauth.c               |   4 +-
 gio/gdbusauthmechanism.c      |  71 +++---
 gio/gdbusconnection.c         | 514
 +++++++++++++++++++-----------------------
 gio/gdbusmethodinvocation.c   |  69 +++---
 gio/gdbusproxy.c              | 145 ++++++------
 gio/gdbusserver.c             |  81 +++----
 gio/gunixcredentialsmessage.c |   7 +-
 7 files changed, 407 insertions(+), 484 deletions(-)

commit 0cf467c2ca92ece9625dbc54ad3065ad5298f735
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 9 13:14:55 2010 -0400

    Update copyright years to include 2010

 gio/gcredentials.c               | 2 +-
 gio/gcredentials.h               | 2 +-
 gio/gdbus-tool.c                 | 2 +-
 gio/gdbusaddress.c               | 2 +-
 gio/gdbusaddress.h               | 2 +-
 gio/gdbusauth.c                  | 2 +-
 gio/gdbusauth.h                  | 2 +-
 gio/gdbusauthmechanism.c         | 2 +-
 gio/gdbusauthmechanism.h         | 2 +-
 gio/gdbusauthmechanismanon.c     | 2 +-
 gio/gdbusauthmechanismanon.h     | 2 +-
 gio/gdbusauthmechanismexternal.c | 2 +-
 gio/gdbusauthmechanismexternal.h | 2 +-
 gio/gdbusauthmechanismsha1.c     | 2 +-
 gio/gdbusauthmechanismsha1.h     | 2 +-
 gio/gdbusauthobserver.c          | 2 +-
 gio/gdbusauthobserver.h          | 2 +-
 gio/gdbusconnection.c            | 2 +-
 gio/gdbusconnection.h            | 2 +-
 gio/gdbuserror.c                 | 2 +-
 gio/gdbuserror.h                 | 2 +-
 gio/gdbusintrospection.c         | 2 +-
 gio/gdbusintrospection.h         | 2 +-
 gio/gdbusmessage.c               | 2 +-
 gio/gdbusmessage.h               | 2 +-
 gio/gdbusmethodinvocation.c      | 2 +-
 gio/gdbusmethodinvocation.h      | 2 +-
 gio/gdbusnameowning.c            | 2 +-
 gio/gdbusnameowning.h            | 2 +-
 gio/gdbusnamewatching.c          | 2 +-
 gio/gdbusnamewatching.h          | 2 +-
 gio/gdbusprivate.c               | 2 +-
 gio/gdbusprivate.h               | 2 +-
 gio/gdbusproxy.c                 | 2 +-
 gio/gdbusproxy.h                 | 2 +-
 gio/gdbusproxywatching.c         | 2 +-
 gio/gdbusproxywatching.h         | 2 +-
 gio/gdbusserver.c                | 2 +-
 gio/gdbusserver.h                | 2 +-
 gio/gdbusutils.c                 | 2 +-
 gio/gdbusutils.h                 | 2 +-
 41 files changed, 41 insertions(+), 41 deletions(-)

commit e82eea6fdae1a24b58bbd9a440c6c37bd2980afd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 9 13:09:54 2010 -0400

    Microoptimize string reallocations

 gio/gdbusconnection.c | 86
 ++++++++++++++++++++++++++++-----------------------
 1 file changed, 48 insertions(+), 38 deletions(-)

commit b87dd96a8a418f4f5915e4a1cb59737a009efdd8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 9 12:41:02 2010 -0400

    Move some platform sources around

    gunixcredentialsmessage.h ought to live with other UNIX headers,
    and the credentials are moved from dbus-specific to just GIO sources.
    Also move gfiledescriptorbased.c to the UNIX sources.

 gio/Makefile.am | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit b96c3b6d60a87f31a46ff5499c133571f0470940
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 9 12:24:56 2010 -0400

    Mention multithreading as a reason for not using libdbus

 docs/reference/gio/migrating-dbus-glib.xml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 03b5db44779c54947c3801609a42b2d2801b5a97
Author: Robert Bragg <robert@linux.intel.com>
Date:   Thu May 6 15:46:00 2010 +0100

    gtester-report: cope with binaries with no test cases

    It's possible that a given binary may conditionally decided not to run
    any test cases (e.g. since they are all slow but -m=quick is currently
    in use) In this case the xml may contain <testbinary> nodes with no
    <testcase> children. This was resulting in a divide by zero when
    calculating the green → red color interpolation.

    https://bugzilla.gnome.org/show_bug.cgi?id=617914

 glib/gtester-report | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

commit c148cafdd16f8bfed46cf5b0af05af3cbdc550c7
Author: David Zeuthen <davidz@redhat.com>
Date:   Sun May 9 10:02:56 2010 -0400

    GDBus: Rework GCredentials type

    These changes are is related to

     https://bugzilla.gnome.org/show_bug.cgi?id=617483

    and IRC discussions with danw.

 docs/reference/gio/gio-sections.txt |  15 +-
 gio/gcredentials.c                  | 435
 +++++++++++++-----------------------
 gio/gcredentials.h                  |  44 ++--
 gio/gdbusauth.c                     |   2 +-
 gio/gdbusauthmechanismexternal.c    |  19 +-
 gio/gio.symbols                     |  15 +-
 gio/gunixcredentialsmessage.c       |  13 +-
 7 files changed, 193 insertions(+), 350 deletions(-)

commit bb7106c5dfce5597bcc4a0682200fb50f5201c29
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 9 02:27:09 2010 -0400

    Add some conceptual changes

 docs/reference/gio/migrating-dbus-glib.xml | 95
 ++++++++++++++++++++----------
 gio/gdbusaddress.c                         |  2 +-
 gio/gdbusintrospection.c                   |  2 +-
 3 files changed, 66 insertions(+), 33 deletions(-)

commit 8315eb77d57de73b950d152edbc7a104d378642c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 9 01:44:11 2010 -0400

    Some documentation tweaks

    Add links to the D-Bus docs in some places, and various
    other additions.

 docs/reference/gio/overview.xml |  6 +++---
 gio/gdbusaddress.c              |  4 +++-
 gio/gdbusconnection.c           | 14 +++++++-------
 gio/gdbusintrospection.c        |  6 +++++-
 gio/gdbusmethodinvocation.c     |  4 ++++
 gio/gdbusnameowning.c           | 18 ++++++++++--------
 gio/gdbusproxywatching.c        |  2 +-
 7 files changed, 33 insertions(+), 21 deletions(-)

commit 7ca2e000546733446f737ec8fe425dd17218eada
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 8 23:28:17 2010 -0400

    Doc improvements

    Make sure all unix-specific apis are marked as such.

 docs/reference/gio/gio-docs.xml     | 19 ++++++++++---------
 docs/reference/gio/gio-sections.txt | 22 ++++++++++++++--------
 gio/gdesktopappinfo.c               | 16 ++++++++--------
 gio/gfiledescriptorbased.c          |  6 +++++-
 gio/gunixconnection.c               | 11 ++++++++---
 gio/gunixfdlist.c                   |  7 ++++++-
 gio/gunixfdmessage.c                | 13 +++++++++----
 gio/gunixinputstream.c              |  4 ++--
 gio/gunixmounts.c                   |  8 ++++----
 gio/gunixoutputstream.c             |  6 +++---
 gio/gunixsocketaddress.c            | 14 +++++++++-----
 11 files changed, 78 insertions(+), 48 deletions(-)

commit 6bea235c8b3bb79b508491985dd38c2074ee6843
Author: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date:   Sat May 8 21:30:27 2010 -0400

    Support 64bit integers in GKeyFile

 docs/reference/glib/glib-sections.txt |   4 +
 glib/gkeyfile.c                       | 152
 ++++++++++++++++++++++++++++++++++
 glib/gkeyfile.h                       |  16 ++++
 glib/glib.symbols                     |   4 +
 glib/tests/keyfile.c                  |  46 ++++++++++
 5 files changed, 222 insertions(+)

commit 08b5f866971eb2f44e572390f8e9f322fa8a2840
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 8 21:18:48 2010 -0400

    Make GSETTINGS_CHECK_RULE work in !srcdir builds

    This problem was reported in bug 617823.

 m4macros/gsettings.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c13c36e3b9db500e30055e616ffa52672281fc49
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 8 20:58:10 2010 -0400

    Add test for g_get_language_names

 glib/tests/Makefile.am |  3 ++
 glib/tests/utils.c     | 84
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+)

commit e8bc8c6cbf86ee07a56f3eaa9fdb44b97ad12c6d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 8 20:10:57 2010 -0400

    Document length parameter of g_settings_get/set_strv

    This parameter was not mentioned in the doc comment, as pointed
    out in bug 617767.

 gio/gsettings.c | 2 ++
 1 file changed, 2 insertions(+)

commit 9164fd02c9043baee99199a3ba33c98e2309dc00
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 8 20:10:57 2010 -0400

    Document length parameter of g_settings_get/set_strv

    This parameter was not mentioned in the doc comment, as pointed
    out in bug 617767.

 gio/gsettings.c | 2 ++
 1 file changed, 2 insertions(+)

commit af263a3a10ff9f3ae41d30e8cb9753b8b9f1ad43
Author: Dan Winship <danw@gnome.org>
Date:   Fri May 7 19:08:13 2010 -0400

    remove broken useless initialization in socket-client/socket-server

    https://bugzilla.gnome.org/show_bug.cgi?id=618051

 gio/tests/socket-client.c | 2 +-
 gio/tests/socket-server.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f1855c2f77fb76347c332b21865e5513f89b15b9
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 7 15:02:37 2010 -0400

    GDBus: add TODO item about maybe having to rework
    ::g-properties-changed

 gio/gdbusconnection.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 85c85ae63a95f4004020db56da6242b26ce073c0
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 7 14:57:20 2010 -0400

    GDBus: add TODO item about the need to rewrite private GDBusAuth*
    classes

 gio/gdbusconnection.c | 3 +++
 1 file changed, 3 insertions(+)

commit 5bd876bef0235ec5c745ac948e906bf51adf2fef
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 7 14:56:01 2010 -0400

    Add TODO item about wanting G_DBUS_NONCE_TCP_TMPDIR

 gio/gdbusconnection.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 5134a1d151f14cfadfa72c23d0660f3928bda821
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri May 7 14:36:07 2010 -0400

    GDBus: Document environment variables in "Running GIO applications"

 docs/reference/gio/overview.xml | 45
 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

commit 1ddda12d646f67fcb558399dce20ecff2405bf20
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 6 20:54:04 2010 -0400

    A quick cheat sheet

 docs/reference/gio/migrating-dbus-glib.xml | 30
 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

commit f309334bc629b9b148d9ce2887489930d4eedd3f
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 6 19:39:16 2010 -0400

    GDBus: add a man page for gdbus(1)

 docs/reference/gio/Makefile.am  |   7 +-
 docs/reference/gio/gdbus.xml    | 221
 ++++++++++++++++++++++++++++++++++++++++
 docs/reference/gio/gio-docs.xml |   1 +
 3 files changed, 227 insertions(+), 2 deletions(-)

commit f14e30818c7d355f0c3d61bab2f2a702dc747952
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 6 18:15:00 2010 -0400

    Mention D-Bus functionality in the overview

 docs/reference/gio/overview.xml | 39
 +++++++++++++++++++++++++++------------
 1 file changed, 27 insertions(+), 12 deletions(-)

commit 133f66538dbf266be3c99b34f1eeee0a5e6068ac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 6 17:52:54 2010 -0400

    Add a migration chapter for dbus bits

    Also split migration.xml into separate files per chapter, it was
    getting unwieldy.

 docs/reference/gio/Makefile.am                     |  10 +-
 docs/reference/gio/gio-docs.xml                    |   8 +-
 docs/reference/gio/migrating-dbus-glib.xml         |   7 +
 docs/reference/gio/migrating-gconf.xml             | 418
 +++++++++++++++++++++
 docs/reference/gio/migrating-gnome-vfs.xml         | 133 +++++++
 .../gio/{migrating.xml => migrating-posix.xml}     |   0
 6 files changed, 573 insertions(+), 3 deletions(-)

commit 44fd23b649ebe2f8f6d31e78400d3230b2c38366
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 6 17:41:31 2010 -0400

    GDBus: Add more symbols to pltcheck.sh's SKIP variable

    In particular, add these symbols

     g_memdup
     g_print
     g_random_int
     g_propagate_prefixed_e
     g_thread_create_full
     g_int_hash
     g_file_open_tmp
     g_thread_self
     g_usleep

 gio/pltcheck.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 46ce134d516f4a246996328c980efe16195ab429
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 6 17:31:51 2010 -0400

    GDBus: Add new symbols to gio.symbols

 docs/reference/gio/gio-sections.txt      |   6 +-
 docs/reference/gio/gio.types             |   2 +-
 gio/gcredentials.c                       |   4 +
 gio/gdbusaddress.c                       |   4 +
 gio/gdbusauth.c                          |   4 +
 gio/gdbusauthmechanism.c                 |   4 +
 gio/gdbusauthmechanismanon.c             |   4 +
 gio/gdbusauthmechanismexternal.c         |   4 +
 gio/gdbusauthmechanismsha1.c             |   4 +
 gio/gdbusauthobserver.c                  |   4 +
 gio/gdbusconnection.c                    |  10 +-
 gio/gdbuserror.c                         |   4 +
 gio/gdbusintrospection.c                 |   5 +
 gio/gdbusmessage.c                       |  20 ++-
 gio/gdbusmessage.h                       |   8 +-
 gio/gdbusmethodinvocation.c              |   4 +
 gio/gdbusnameowning.c                    |   4 +
 gio/gdbusnamewatching.c                  |   4 +
 gio/gdbusprivate.c                       |   4 +
 gio/gdbusproxy.c                         |   4 +
 gio/gdbusproxywatching.c                 |   4 +
 gio/gdbusserver.c                        |   4 +
 gio/gdbusutils.c                         |   4 +
 gio/gio.symbols                          | 299
 +++++++++++++++++++++++++++++++
 gio/gunixcredentialsmessage.c            |   4 +
 gio/tests/gdbus-example-unix-fd-client.c |   2 +-
 gio/tests/gdbus-peer.c                   |   2 +-
 gio/tests/gdbus-serialization.c          |   2 +-
 28 files changed, 405 insertions(+), 23 deletions(-)

commit fb1b4599a0effe728f42da8748b469a62f91ed8d
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 6 16:34:23 2010 -0400

    GDBus: Fix up i18n

 gio/gcredentials.c               |  3 ++-
 gio/gdbus-tool.c                 |  4 +++-
 gio/gdbusaddress.c               |  5 +++--
 gio/gdbusauth.c                  |  4 ++--
 gio/gdbusauthmechanism.c         |  4 ++--
 gio/gdbusauthmechanismanon.c     |  4 ++--
 gio/gdbusauthmechanismexternal.c |  4 +++-
 gio/gdbusauthmechanismsha1.c     |  4 +++-
 gio/gdbusauthobserver.c          |  4 ++--
 gio/gdbusconnection.c            | 27 +++++++++++++++------------
 gio/gdbuserror.c                 |  5 +++--
 gio/gdbusintrospection.c         |  5 +++--
 gio/gdbusmessage.c               |  3 ++-
 gio/gdbusmethodinvocation.c      |  3 ++-
 gio/gdbusnameowning.c            |  4 ++--
 gio/gdbusnamewatching.c          |  5 +++--
 gio/gdbusprivate.c               | 16 ++++++++++++++--
 gio/gdbusproxy.c                 |  5 ++++-
 gio/gdbusproxywatching.c         |  4 ++--
 gio/gdbusserver.c                | 16 ++++++++++------
 gio/gdbusutils.c                 |  4 ++--
 gio/gunixcredentialsmessage.c    |  4 ++--
 22 files changed, 86 insertions(+), 51 deletions(-)

commit 0fd6498cd89888023fb2161bfdde9339a4346986
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 6 16:02:08 2010 -0400

    Add "Since: 2.26" to all new GDBus API

 docs/reference/gio/gio-docs.xml |  2 +-
 gio/gcredentials.c              | 32 ++++++++++++++
 gio/gcredentials.h              |  4 ++
 gio/gdbusaddress.c              | 12 ++++++
 gio/gdbusauthobserver.c         |  6 +++
 gio/gdbusauthobserver.h         |  4 ++
 gio/gdbusconnection.c           | 94
 ++++++++++++++++++++++++++++++++++++++---
 gio/gdbusconnection.h           | 24 +++++++++++
 gio/gdbuserror.c                | 20 +++++++++
 gio/gdbuserror.h                |  4 ++
 gio/gdbusintrospection.c        | 52 +++++++++++++++++++++--
 gio/gdbusintrospection.h        | 28 ++++++++++++
 gio/gdbusmessage.c              | 88
 ++++++++++++++++++++++++++++++++++++++
 gio/gdbusmessage.h              |  4 ++
 gio/gdbusmethodinvocation.c     | 50 ++++++++++++++++++++++
 gio/gdbusmethodinvocation.h     |  4 ++
 gio/gdbusnameowning.c           | 10 ++++-
 gio/gdbusnameowning.h           |  6 +++
 gio/gdbusnamewatching.c         |  8 +++-
 gio/gdbusnamewatching.h         |  4 ++
 gio/gdbusprivate.c              |  2 +-
 gio/gdbusproxy.c                | 70 ++++++++++++++++++++++++++----
 gio/gdbusproxy.h                |  4 ++
 gio/gdbusproxywatching.c        |  6 ++-
 gio/gdbusproxywatching.h        |  4 ++
 gio/gdbusserver.c               | 28 ++++++++++++
 gio/gdbusserver.h               |  4 ++
 gio/gdbusutils.c                | 15 ++++++-
 gio/gioenums.h                  | 30 ++++++++++++-
 gio/gunixcredentialsmessage.c   |  4 ++
 gio/gunixcredentialsmessage.h   | 15 +++++++
 31 files changed, 611 insertions(+), 27 deletions(-)

commit c490c14f4e3fbbe8c74b26e6cacac31b0e744c92
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 6 15:31:45 2010 -0400

    Set up gtk-doc for GDBus

    Also move send_credentials() and receive_credentials() to
    GUnixConnection. This code might change, discussion is still ongoing
    in

     https://bugzilla.gnome.org/show_bug.cgi?id=617483.

 docs/reference/gio/gio-docs.xml     |  21 ++
 docs/reference/gio/gio-sections.txt | 390
 ++++++++++++++++++++++++++++++++++++
 docs/reference/gio/gio.types        |  11 +
 gio/gcredentials.c                  |   4 +-
 gio/gdbusaddress.c                  |   2 +-
 gio/gdbusauth.c                     | 189 -----------------
 gio/gdbusauthobserver.c             |   2 +-
 gio/gdbusconnection.c               |   8 +-
 gio/gdbuserror.c                    |   2 +-
 gio/gdbusintrospection.c            |   2 +-
 gio/gdbusmessage.c                  |   2 +-
 gio/gdbusmethodinvocation.c         |   2 +-
 gio/gdbusnameowning.c               |   4 +-
 gio/gdbusnamewatching.c             |   4 +-
 gio/gdbusproxy.c                    |   2 +-
 gio/gdbusproxywatching.c            |   4 +-
 gio/gdbusserver.c                   |   4 +-
 gio/gdbusutils.c                    |   2 +-
 gio/gunixconnection.c               | 258 ++++++++++++++++++++++++
 gio/gunixconnection.h               |  10 +
 20 files changed, 712 insertions(+), 211 deletions(-)

commit 47805f4e0cadf35bd6882d7e54374fead25637d2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 6 14:19:58 2010 -0500

    Bug 617947 - glib-mkenums: add @valuenum@ support

    Add a @valuenum@ substitution that outputs the integer value of a
    particular enum value.  The value is determined by using (sandboxed)
    perl to evaluate C expression.  If evaluation fails then glib-mkenums
    dies loudly.  Evaluation is only enabled if '@valuenum@' appears
    in the
    template file, so existing users will not be affected.

 gobject/glib-mkenums.in | 36 ++++++++++++++++++++++++++++++------
 1 file changed, 30 insertions(+), 6 deletions(-)

commit 7aa71527e592d3c46d08a784cf061c79e61d11d8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 6 12:36:10 2010 -0500

    glib-mkenums: Fix support for comment templates

    Currently, specifying a comment template in the template file
    results in
    the given template being appended to the default (C-style) one rather
    than replacing it.

    This causes it to be replaced outright.

    Bug 617940.

 gobject/glib-mkenums.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit d0a14469d09d5fe23de219ba293fd4a266b02ced
Author: David Zeuthen <davidz@redhat.com>
Date:   Thu May 6 14:13:59 2010 -0400

    Initial GDBus code-drop from GDBus-standalone repo

    Things compile and the test-suite passes. Still need to hook up
    gio.symbols and docs. There are still a bunch of TODOs left in the
    sources that needs to be addressed.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 configure.in                             |   10 +
 gio/Makefile.am                          |   58 +-
 gio/gcredentials.c                       |  427 +++
 gio/gcredentials.h                       |  104 +
 gio/gdbus-bash-completion.sh             |   33 +
 gio/gdbus-tool.c                         | 1491 +++++++++
 gio/gdbusaddress.c                       | 1004 ++++++
 gio/gdbusaddress.h                       |   54 +
 gio/gdbusauth.c                          | 1538 +++++++++
 gio/gdbusauth.h                          |   86 +
 gio/gdbusauthmechanism.c                 |  342 ++
 gio/gdbusauthmechanism.h                 |  174 +
 gio/gdbusauthmechanismanon.c             |  327 ++
 gio/gdbusauthmechanismanon.h             |   82 +
 gio/gdbusauthmechanismexternal.c         |  416 +++
 gio/gdbusauthmechanismexternal.h         |   82 +
 gio/gdbusauthmechanismsha1.c             | 1216 +++++++
 gio/gdbusauthmechanismsha1.h             |   82 +
 gio/gdbusauthobserver.c                  |  218 ++
 gio/gdbusauthobserver.h                  |  100 +
 gio/gdbusconnection.c                    | 5280
 ++++++++++++++++++++++++++++++
 gio/gdbusconnection.h                    |  467 +++
 gio/gdbuserror.c                         |  847 +++++
 gio/gdbuserror.h                         |   92 +
 gio/gdbusintrospection.c                 | 2009 ++++++++++++
 gio/gdbusintrospection.h                 |  255 ++
 gio/gdbusmessage.c                       | 2421 ++++++++++++++
 gio/gdbusmessage.h                       |  172 +
 gio/gdbusmethodinvocation.c              |  795 +++++
 gio/gdbusmethodinvocation.h              |  119 +
 gio/gdbusnameowning.c                    |  713 ++++
 gio/gdbusnameowning.h                    |   88 +
 gio/gdbusnamewatching.c                  |  620 ++++
 gio/gdbusnamewatching.h                  |   68 +
 gio/gdbusprivate.c                       | 1040 ++++++
 gio/gdbusprivate.h                       |   83 +
 gio/gdbusproxy.c                         | 1542 +++++++++
 gio/gdbusproxy.h                         |  146 +
 gio/gdbusproxywatching.c                 |  397 +++
 gio/gdbusproxywatching.h                 |   77 +
 gio/gdbusserver.c                        | 1043 ++++++
 gio/gdbusserver.h                        |   97 +
 gio/gdbusutils.c                         |  364 ++
 gio/gdbusutils.h                         |   42 +
 gio/gio-marshal.list                     |    2 +
 gio/gio.h                                |   16 +
 gio/gioenums.h                           |  372 ++-
 gio/giotypes.h                           |   19 +
 gio/gunixcredentialsmessage.c            |  341 ++
 gio/gunixcredentialsmessage.h            |   68 +
 gio/tests/Makefile.am                    |   98 +-
 gio/tests/gdbus-addresses.c              |   77 +
 gio/tests/gdbus-connection.c             |  653 ++++
 gio/tests/gdbus-error.c                  |  198 ++
 gio/tests/gdbus-example-own-name.c       |   99 +
 gio/tests/gdbus-example-peer.c           |  318 ++
 gio/tests/gdbus-example-server.c         |  388 +++
 gio/tests/gdbus-example-subtree.c        |  410 +++
 gio/tests/gdbus-example-unix-fd-client.c |  145 +
 gio/tests/gdbus-example-watch-name.c     |  101 +
 gio/tests/gdbus-example-watch-proxy.c    |  205 ++
 gio/tests/gdbus-exit-on-close.c          |   82 +
 gio/tests/gdbus-export.c                 | 1410 ++++++++
 gio/tests/gdbus-introspection.c          |  169 +
 gio/tests/gdbus-names.c                  |  749 +++++
 gio/tests/gdbus-peer.c                   |  746 +++++
 gio/tests/gdbus-proxy.c                  |  455 +++
 gio/tests/gdbus-serialization.c          |  650 ++++
 gio/tests/gdbus-sessionbus.c             |  342 ++
 gio/tests/gdbus-sessionbus.h             |   38 +
 gio/tests/gdbus-tests.c                  |  218 ++
 gio/tests/gdbus-tests.h                  |  146 +
 gio/tests/gdbus-testserver.py            |  270 ++
 gio/tests/gdbus-threading.c              |  532 +++
 74 files changed, 35927 insertions(+), 11 deletions(-)

commit 5b4189fc42afa697b7f13c38d9d6b441d731ed11
Author: Vincent Untz <vuntz@gnome.org>
Date:   Thu May 6 12:45:37 2010 +0200

    Fix binding between writability of key and sensitivity of a widget

    We were not setting the key correctly, result in usage of invalid
    keys.

    Bug 617788.

 gio/gsettings.c | 3 +++
 1 file changed, 3 insertions(+)

commit 81e98c399e11d7621c91ff2911ef4f92c7a382e5
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu May 6 06:28:54 2010 +0200

    Clean Glib header #include issues: gthread

 glib/gthread.c | 7 ++++++-
 glib/gthread.h | 1 -
 2 files changed, 6 insertions(+), 2 deletions(-)

commit c7940d81802194abe1d4497d3daa2f9c59addb5e
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed May 5 18:32:03 2010 +0200

    Clean Glib header #include issues: gmem

 glib/gmem.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 21302a741cbb3d6373a368df148f6267a0705366
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed May 5 18:24:33 2010 +0200

    Clean Glib header #include issues: gtestutils

 glib/gtestutils.c | 13 +++++++++++--
 glib/gtestutils.h |  1 -
 2 files changed, 11 insertions(+), 3 deletions(-)

commit d1642386c96b4a2a4479cd7c2b5cd8ddadae99e4
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed May 5 18:12:04 2010 +0200

    Clean Glib header #include issues: gasyncqueue

 glib/gasyncqueue.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 434a4e1d250157b13d7036592f097c18fb8376b1
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed May 5 17:32:12 2010 +0200

    Do not include "glib.h" in gio files

 gio/gcharsetconverter.c | 4 ++--
 gio/gsocket.c           | 4 ++--
 gio/gzlibcompressor.c   | 6 +++---
 gio/gzlibdecompressor.c | 6 +++---
 4 files changed, 10 insertions(+), 10 deletions(-)

commit cbbc99d972a7c8ef4a37b29c19f46cfc11628e97
Author: Tor Lillqvist <tml@iki.fi>
Date:   Wed May 5 09:43:30 2010 +0300

    Minor updates to README.win32.

 README.win32 | 57
 ++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 32 insertions(+), 25 deletions(-)

commit b3c9c17956a2e2640c1846879d930fd706eaf966
Author: Xan Lopez <xan@gnome.org>
Date:   Tue May 4 18:09:01 2010 +0200

    Fix typo in limits documentation

 docs/reference/glib/tmpl/limits.sgml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f39a49b03610a1cd54b9feb18528f5c74539d5c9
Author: Torsten Schönfeld <kaffeetisch@gmx.de>
Date:   Mon Apr 26 23:38:41 2010 +0200

    gio: Add a boxed type for GFileAttributeMatcher

    https://bugzilla.gnome.org/show_bug.cgi?id=616892

 docs/reference/gio/gio.types |  1 +
 gio/gfileinfo.c              | 18 ++++++++++++++++++
 gio/gfileinfo.h              |  1 +
 gio/gio.symbols              |  1 +
 4 files changed, 21 insertions(+)

commit 4487b326d781d4359fd76ce51ce4002c9db5d6d5
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon May 3 19:56:46 2010 +0300

    Fix list of sources in the gio Visual Studio project

    List the additional sources needed in gio/Makefile.am, not in
    gio.vcprojin. Fix broken usage of sort. Filter out Unix-only source
    files.

 build/win32/vs9/gio.vcprojin |  9 ---------
 gio/Makefile.am              | 14 ++++++++++++--
 2 files changed, 12 insertions(+), 11 deletions(-)

commit 0f795345d68be2af96cc030972786f2989ffd8c0
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon May 3 19:24:35 2010 +0300

    Fix misspelled identifier in the Win32 code

 gio/gsocket.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 622916b731354c2dcd4178abf3ada08ca51dd38c
Author: Dan Winship <danw@gnome.org>
Date:   Sun Apr 25 22:54:12 2010 -0400

    g_cancellable_release_fd: allow NULL cancellable

    Almost all GCancellable methods silently do nothing if passed NULL for
    the cancellable. Make g_cancellable_release_fd() do that as well.

 gio/gcancellable.c | 3 +++
 1 file changed, 3 insertions(+)

commit 644dfbd704d103df3a7ac13f31cfb87aa03f377d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun May 2 14:14:30 2010 -0500

    GSettings: fix mixed use of a pointer

      - used in some places as a move-along-as-we-go pointer
      - used in other places as a pointer to the fixed base of an array

    Switch all users to the first style to avoid a crasher.

 gio/gsettingsbackend.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 5821b7f099feaa58e9e476187d22a0a917cb099e
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sat May 1 14:25:22 2010 +0200

    Updated Norwegian bokmål translation

 po/nb.po | 1024
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 517 insertions(+), 507 deletions(-)

commit 4c10cad66175c9a4a79b764c2f807482811c5dcc
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Apr 28 12:36:30 2010 +0200

    Add API to get the compile and match flags from a GRegex

    Bug #616967.

 docs/reference/glib/glib-sections.txt |  2 ++
 docs/reference/glib/tmpl/gregex.sgml  | 18 ++++++++++++++++++
 glib/glib.symbols                     |  2 ++
 glib/gregex.c                         | 36
 +++++++++++++++++++++++++++++++++++
 glib/gregex.h                         |  3 +++
 5 files changed, 61 insertions(+)

commit 3d5ce40624561dc2f4779c5f9fc7f8b7d745aecd
Author: Shaun McCance <shaunm@gnome.org>
Date:   Thu Apr 29 19:27:56 2010 -0500

    [gvariant-varargs.xml] Fix some outdated documentation

 docs/reference/glib/gvariant-varargs.xml | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit 8dddf6499e9e8a052a5673fe8771aeaac08cccae
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 25 22:00:28 2010 -0500

    GSettingsBackend API/ABI change

      - add list() virtual method
      - add 'default_value' flag to read() call

 gio/gdelayedsettingsbackend.c  |  8 ++--
 gio/gio.symbols                |  1 +
 gio/gkeyfilesettingsbackend.c  |  6 ++-
 gio/gmemorysettingsbackend.c   |  7 +++-
 gio/gnullsettingsbackend.c     |  3 +-
 gio/gsettings.c                |  2 +-
 gio/gsettingsbackend.c         | 91
 ++++++++++++++++++++++++++++++------------
 gio/gsettingsbackend.h         | 10 ++++-
 gio/gsettingsbackendinternal.h |  3 +-
 9 files changed, 96 insertions(+), 35 deletions(-)

commit 5215d4b6d316c9357b832c84aae4c4d756224b5d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 28 12:39:02 2010 -0500

    Add API for dconf's sake.

 gvdb-builder.c |   6 +--
 gvdb-reader.c  | 155
 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 gvdb-reader.h  |  16 ++++++
 3 files changed, 150 insertions(+), 27 deletions(-)

commit 9ba690b386ebb8dc35665ff07b43c9a5874fda4b
Author: Dan Winship <danw@gnome.org>
Date:   Tue Apr 27 09:25:45 2010 -0400

    .gitignore updates for gsettings stuff

 docs/reference/gio/.gitignore | 1 +
 gio/.gitignore                | 2 ++
 gio/tests/.gitignore          | 5 +++++
 3 files changed, 8 insertions(+)

commit 9e40529e040e715ca65df735013969e20b05a150
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Apr 27 21:05:13 2010 +0200

    Updated Spanish translation

 po/es.po | 76
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 38 insertions(+), 38 deletions(-)

commit 9ca75da1210bb88dc64b768db219f19de2b57573
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Apr 27 20:59:07 2010 +0200

    Updated Spanish translation

 po/es.po | 1041
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 530 insertions(+), 511 deletions(-)

commit 5046dfc85d7df95d7f8c87e3b41d9152bc50549a
Author: Dan Winship <danw@gnome.org>
Date:   Mon Apr 12 10:21:20 2010 -0400

    GSocket: fix garbled error messages on windows

    socket_strerror() was assuming all "strerror" messages are shorter
    than 128 bytes, which is certainly true on Linux, but apparently not
    on Windows.

    https://bugzilla.gnome.org/show_bug.cgi?id=615494

 gio/gsocket.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

commit 270a954b54521ce0eca6d408b8e8c081c70c3455
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Apr 27 09:23:07 2010 +0200

    Allocate quarks in chunks to avoid overhead and fragmentation

    See bug 616720 for some measurements.

 glib/gdataset.c | 36 ++++++++++++++++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

commit 3ceddd74bb4304e4e9b2e8955b80212108703632
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 26 16:37:02 2010 -0400

    Bug 616877 – Several issues with g_socket_receive_message

    The messages array was not reallocated correctly because it was using
    malloc instead of realloc. Also, if the user requested messages but
    none were received we would segfault. Rewrite the code to fix this
    and, for better readability, use GPtrArray instead of rolling our own.

    Also make the docs mention that the user need to free the returned
    GSocketControlMessage objects using g_object_unref().

    Clarify that *messages may be set to %NULL if there are no messages
    (this will save pointless allocs of arrays).

    Finally, the Win32 version didn't set messages to the expected value.

    https://bugzilla.gnome.org/show_bug.cgi?id=616877

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gsocket.c | 63
 ++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 36 insertions(+), 27 deletions(-)

commit cd062e841fecd51845b4a66473c7636706021dff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 25 20:08:59 2010 -0500

    docs and glib.symbols update

 docs/reference/glib/glib-sections.txt | 2 ++
 glib/glib.symbols                     | 2 ++
 2 files changed, 4 insertions(+)

commit 6f7fb3744bbb4d1ee04d4e526d2ff7225c56c426
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Apr 25 20:07:26 2010 -0500

    Add testcases for <range> and <choices>

    Bug #616102.

 gio/tests/Makefile.am                              | 48
 ++++++++++++++--------
 gio/tests/gschema-compile.c                        | 40
 ++++++++++--------
 .../array-default-not-in-choices.gschema.xml       | 11 +++++
 .../schema-tests/choice-missing-value.gschema.xml  | 10 +++++
 .../schema-tests/choices-wrong-type.gschema.xml    |  8 ++++
 .../default-not-in-choices.gschema.xml             | 11 +++++
 .../schema-tests/default-out-of-range.gschema.xml  |  8 ++++
 .../schema-tests/range-missing-max.gschema.xml     |  8 ++++
 .../schema-tests/range-missing-min.gschema.xml     |  8 ++++
 .../schema-tests/range-wrong-type.gschema.xml      |  8 ++++
 10 files changed, 127 insertions(+), 33 deletions(-)

commit 22ce6ed82d9d1de823fab071d6dc288abedc1735
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 25 19:59:59 2010 -0500

    Add range restriction to gschema-compiler

    Patch from Christian Persch, with minor modifications.

    Bug #616102

 gio/gschema-compile.c | 174
 +++++++++++++++++++++++++++++++++++++++++++++-----
 gio/gschema.dtd       |   6 +-
 gio/gsettings.c       |   6 +-
 3 files changed, 163 insertions(+), 23 deletions(-)

commit 5e6e7cbadf2ee48c0e439a416e5fb74e8e5d8dee
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 25 19:10:44 2010 -0500

    GVariant: add bind map for strings to byte arrays

 gio/gsettings-mapping.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit a52b6f7df2f91d4aae7f240038ab193a70052db5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 25 19:09:35 2010 -0500

    Add g_variant_{new,get}_byte_array()

    Now that strings are strictly utf8 this provides a convenient API for
    storing non-utf8 string data.

 glib/gvariant.c | 79
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gvariant.h |  4 +++
 2 files changed, 83 insertions(+)

commit 4c189ba6b0ff81e13725029a00f2c4c7ab6a3b00
Author: Shaun McCance <shaunm@gnome.org>
Date:   Fri Apr 23 21:08:27 2010 -0500

    Make glib_compile_schemas point to a binary that exists

 gio-2.0.pc.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9eeab5868f0d8633f63e40f61263cd731ad99d0e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Apr 25 13:36:36 2010 -0500

    GVariant: strings are now utf8

     - modify serialiser validation function to enforce utf8 encoding
     - add documentation to g_variant_new_string(),
     g_variant_get_string(),
       g_variant_dup_string()
     - add 2 new test cases to check that it works

 glib/gvariant-serialiser.c | 10 +++-------
 glib/gvariant.c            | 12 +++++++++---
 glib/tests/gvariant.c      | 33 +++++++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 10 deletions(-)

commit da306296cf1eb2ce7346e253c3ca46f784a04f8f
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Apr 25 17:26:41 2010 +0300

    Can't use stderr as a field name

 gio/tests/gschema-compile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 93d300742d6047f121c614df412717e09bc8def0
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Apr 24 03:46:59 2010 +0200

    Updated Galician translation

 po/gl.po | 1002
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 506 insertions(+), 496 deletions(-)

commit c50754c7c9286ba145a52885d65bb6ad50c8a2ef
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 23 20:50:27 2010 -0400

    bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit afe3aef7b02e94e1d2b926e131beea2de5f5c96d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 23 20:49:02 2010 -0400

    2.25.3

 po/af.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/am.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ar.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/as.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ast.po         | 52
 ++++++++++++++++++++++++++++------------------------
 po/az.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/be.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/be@latin.po    | 52
 ++++++++++++++++++++++++++++------------------------
 po/bg.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/bn.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/bn_IN.po       | 52
 ++++++++++++++++++++++++++++------------------------
 po/bs.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ca.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ca@valencia.po | 52
 ++++++++++++++++++++++++++++------------------------
 po/cs.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/cy.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/da.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/de.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/dz.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/el.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/en@shaw.po     | 52
 ++++++++++++++++++++++++++++------------------------
 po/en_CA.po       | 52
 ++++++++++++++++++++++++++++------------------------
 po/en_GB.po       | 52
 ++++++++++++++++++++++++++++------------------------
 po/eo.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/es.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/et.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/eu.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/fa.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/fi.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/fr.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ga.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/gl.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/gu.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/he.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/hi.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/hr.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/hu.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/hy.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/id.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/is.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/it.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ja.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ka.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/kn.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ko.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ku.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/lt.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/lv.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/mai.po         | 52
 ++++++++++++++++++++++++++++------------------------
 po/mg.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/mk.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ml.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/mn.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/mr.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ms.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/nb.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/nds.po         | 52
 ++++++++++++++++++++++++++++------------------------
 po/ne.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/nl.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/nn.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/oc.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/or.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/pa.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/pl.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ps.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/pt.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/pt_BR.po       | 52
 ++++++++++++++++++++++++++++------------------------
 po/ro.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ru.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/rw.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/si.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/sk.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/sl.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/sq.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/sr.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/sr@ije.po      | 52
 ++++++++++++++++++++++++++++------------------------
 po/sr@latin.po    | 52
 ++++++++++++++++++++++++++++------------------------
 po/sv.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/ta.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/te.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/th.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/tl.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/tr.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/tt.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/uk.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/vi.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/wa.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/xh.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/yi.po          | 52
 ++++++++++++++++++++++++++++------------------------
 po/zh_CN.po       | 52
 ++++++++++++++++++++++++++++------------------------
 po/zh_HK.po       | 52
 ++++++++++++++++++++++++++++------------------------
 po/zh_TW.po       | 52
 ++++++++++++++++++++++++++++------------------------
 92 files changed, 2576 insertions(+), 2208 deletions(-)

commit daa405c191c5efa8ad364414470b8fbdb0673401
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 23 19:57:14 2010 -0400

    Rename in more places

 gio/tests/Makefile.am | 2 +-
 gio/tests/gsettings.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 72b80c5bdd6105ea06a55a4dba1c3350a459bb01
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 23 19:18:41 2010 -0400

    Updates

 NEWS | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit ec664445a9cf1769e440a25ffb4e17e9e644f6d0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 23 17:27:26 2010 -0400

    Rename gschema-compile to glib-compile-schemas

    And clean up the autofoo a bit: use an uppercase variable,
    check for pkg-config, check for presence of glib-compile-schemas.

 docs/reference/gio/Makefile.am                              |  4 ++--
 docs/reference/gio/gio-docs.xml                             |  2 +-
 .../gio/{gschema-compile.xml => glib-compile-schemas.xml}   | 10
 +++++-----
 docs/reference/gio/gsettings-schema-convert.xml             |  2 +-
 docs/reference/gio/migrating.xml                            |  6 +++---
 gio-2.0.pc.in                                               |  2 +-
 gio/Makefile.am                                             |  6 +++---
 gio/gsettings.c                                             |  5 +++--
 gio/tests/gschema-compile.c                                 |  2 +-
 m4macros/gsettings.m4                                       | 13
 +++++++++----
 10 files changed, 29 insertions(+), 23 deletions(-)

commit e6e7015bbd253b01b51186a931cdd58dfb4390f2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 23 14:52:26 2010 -0400

    Fix up man page handling

    Turns out the formatted man pages did not end up in the tarballs. Doh.

 docs/reference/gio/Makefile.am | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

commit 172c229c8f7965d2b40da56ec7147a250dfdee83
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 23 13:54:02 2010 -0400

    add missing #endif from last patch

 gio/gnetworkingprivate.h | 1 +
 1 file changed, 1 insertion(+)

commit 1504a77655ec5291b8bccb321bc7e349dd2d53d3
Author: Dan Winship <danw@gnome.org>
Date:   Thu Feb 25 11:40:31 2010 -0500

    GSocket: define CMSG_LEN and CMSG_SPACE if the system doesn't

    https://bugzilla.gnome.org/show_bug.cgi?id=589989

 gio/gnetworkingprivate.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 29f3e3f7663606872361079b6475b441df1f4a63
Author: Dan Winship <danw@gnome.org>
Date:   Thu Dec 31 10:29:23 2009 -0500

    GSocket: add support for timeouts

    Also add options for testing timeouts to socket test programs

    https://bugzilla.gnome.org/show_bug.cgi?id=587898

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gsocket.c                       | 184
 +++++++++++++++++++++++++++++++++---
 gio/gsocket.h                       |   3 +
 gio/tests/socket-client.c           |   6 ++
 gio/tests/socket-server.c           |  15 +++
 6 files changed, 200 insertions(+), 12 deletions(-)

commit 2c4a79c810a3fde1e30989b0c35677bf6e1337fc
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jul 9 09:55:00 2009 -0400

    GSocket: Merge the unix and windows socket sources together

    And remove the bits that were added to gasynchelper.c to support the
    previous unix socket source.

    part of https://bugzilla.gnome.org/show_bug.cgi?id=587898

 gio/gasynchelper.c |  38 ++++----------
 gio/gasynchelper.h |  27 ++--------
 gio/gsocket.c      | 144
 ++++++++++++++++++++++++-----------------------------
 3 files changed, 77 insertions(+), 132 deletions(-)

commit 5b329c506a8de5d21c3cd251be05a8d6b1f7fdba
Author: Dan Winship <danw@gnome.org>
Date:   Fri Apr 23 12:21:38 2010 -0400

    gio/tests/socket-client, socket-server: fix for win32

    The addition of unix socket support broke these on win32

 gio/tests/socket-client.c | 2 ++
 gio/tests/socket-common.c | 6 +++++-
 gio/tests/socket-server.c | 2 ++
 3 files changed, 9 insertions(+), 1 deletion(-)

commit 3baff96b37060d5f771337e797343e507a79baf1
Author: David Zeuthen <davidz@redhat.com>
Date:   Fri Apr 23 12:14:37 2010 -0400

    Make sure G_TYPE_ERROR shows up in the docs

    This is related to bug 614541.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 docs/reference/gobject/gobject-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit f68dc4d97d7aeaa8588a4ea0d36f057cd5aaf42e
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Apr 23 15:39:44 2010 +0200

    [gsettings] Change AM_GSETTINGS macro to GLIB_GSETTINGS

    So we don't use Automake's macro namespace

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=616648

 docs/reference/gio/migrating.xml | 4 ++--
 m4macros/gsettings.m4            | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 38e2273207783e4396aabd47bdab5f28155ad6ae
Author: Emmanuele Bassi <ebassi@linux.intel.com>
Date:   Tue Apr 6 16:17:18 2010 +0100

    Add G_GNUC_DEPRECATED_FOR macro

    It would be good, error reporting-wise, to be able to signal which
    function should be used instead of a deprecated one. GCC 4.5 added an
    optional "message" payload to the deprecated attribute, so that:

      void f1 (void) __attribute__((deprecated("Use f2 instead")));

    Will expand to:

      warning: f1 is deprecated: Use f2 instead

    Instead of just printing:

      warning: f1 is deprecated

    Since we already have a G_GNUC_DEPRECATED macro we should provide a
    G_GNUC_DEPRECATED_FOR macro defined as:

      G_GNUC_DEPRECATED_FOR(bar)

    Which would expand the deprecation message to "Use bar instead"
    automatically. The deprecation message should probably be similar
    to what we use in gtk-doc to match up with the documentation.

    https://bugzilla.gnome.org/show_bug.cgi?id=614965

 glib/gmacros.h | 7 +++++++
 1 file changed, 7 insertions(+)

commit 8f82b994c9963ad23a32f302dc2166f5ca4c2564
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 22:24:38 2010 -0400

    bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7c5849abc06a04c0dbaf2902b8104dcec90fa9b6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 22:23:09 2010 -0400

    2.25.2

 po/af.po          |  117 +++++-
 po/am.po          |  117 +++++-
 po/ar.po          |  117 +++++-
 po/as.po          |  117 +++++-
 po/ast.po         |  117 +++++-
 po/az.po          |  117 +++++-
 po/be.po          |  117 +++++-
 po/be@latin.po    |  117 +++++-
 po/bg.po          |  117 +++++-
 po/bn.po          |  117 +++++-
 po/bn_IN.po       |  117 +++++-
 po/bs.po          |  117 +++++-
 po/ca.po          |  117 +++++-
 po/ca@valencia.po |  990 ++++++++++++++++++++++++------------------------
 po/cs.po          |  117 +++++-
 po/cy.po          |  117 +++++-
 po/da.po          |  117 +++++-
 po/de.po          |  117 +++++-
 po/dz.po          |  117 +++++-
 po/el.po          |  117 +++++-
 po/en@shaw.po     |  117 +++++-
 po/en_CA.po       |  117 +++++-
 po/en_GB.po       |  117 +++++-
 po/eo.po          |  117 +++++-
 po/es.po          | 1078
 ++++++++++++++++++++++++++++-------------------------
 po/et.po          |  117 +++++-
 po/eu.po          |  117 +++++-
 po/fa.po          |  117 +++++-
 po/fi.po          |  117 +++++-
 po/fr.po          |  117 +++++-
 po/ga.po          |  117 +++++-
 po/gl.po          |  990 ++++++++++++++++++++++++------------------------
 po/gu.po          |  117 +++++-
 po/he.po          |  117 +++++-
 po/hi.po          |  117 +++++-
 po/hr.po          |  117 +++++-
 po/hu.po          |  117 +++++-
 po/hy.po          |  117 +++++-
 po/id.po          |  117 +++++-
 po/is.po          |  117 +++++-
 po/it.po          |  118 +++++-
 po/ja.po          |  117 +++++-
 po/ka.po          |  117 +++++-
 po/kn.po          | 1011
 +++++++++++++++++++++++++------------------------
 po/ko.po          |  117 +++++-
 po/ku.po          |  117 +++++-
 po/lt.po          |  117 +++++-
 po/lv.po          |  117 +++++-
 po/mai.po         |  117 +++++-
 po/mg.po          |  117 +++++-
 po/mk.po          |  117 +++++-
 po/ml.po          |  117 +++++-
 po/mn.po          |  117 +++++-
 po/mr.po          |  117 +++++-
 po/ms.po          |  117 +++++-
 po/nb.po          |  117 +++++-
 po/nds.po         |  117 +++++-
 po/ne.po          |  117 +++++-
 po/nl.po          |  118 +++++-
 po/nn.po          |  117 +++++-
 po/oc.po          |  117 +++++-
 po/or.po          |  117 +++++-
 po/pa.po          |  117 +++++-
 po/pl.po          |  117 +++++-
 po/ps.po          |  117 +++++-
 po/pt.po          |  117 +++++-
 po/pt_BR.po       |  117 +++++-
 po/ro.po          |  117 +++++-
 po/ru.po          |  117 +++++-
 po/rw.po          |  117 +++++-
 po/si.po          |  117 +++++-
 po/sk.po          |  117 +++++-
 po/sl.po          |  117 +++++-
 po/sq.po          |  117 +++++-
 po/sr.po          |  117 +++++-
 po/sr@ije.po      |  117 +++++-
 po/sr@latin.po    |  117 +++++-
 po/sv.po          |  117 +++++-
 po/ta.po          |  117 +++++-
 po/te.po          |  117 +++++-
 po/th.po          |  117 +++++-
 po/tl.po          |  117 +++++-
 po/tr.po          |  117 +++++-
 po/tt.po          |  117 +++++-
 po/uk.po          |  117 +++++-
 po/vi.po          |  117 +++++-
 po/wa.po          |  117 +++++-
 po/xh.po          |  117 +++++-
 po/yi.po          |  117 +++++-
 po/zh_CN.po       |  117 +++++-
 po/zh_HK.po       |  117 +++++-
 po/zh_TW.po       |  117 +++++-
 92 files changed, 12078 insertions(+), 2289 deletions(-)

commit 25725345fbb184ecbdc62c7ac418cd01f0fc8b0f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 22:01:19 2010 -0400

    Fix up distcheck

 docs/reference/gio/Makefile.am | 2 +-
 docs/reference/gio/gio.types   | 1 +
 gio/gio.symbols                | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

commit b2ee97d00db227c042158951467495baf68529e4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 20:48:24 2010 -0400

    Fix up g_variant_compare addition

 docs/reference/glib/glib-sections.txt | 1 +
 glib/glib.symbols                     | 1 +
 glib/gvariant.c                       | 2 ++
 glib/gvariant.h                       | 3 ++-
 4 files changed, 6 insertions(+), 1 deletion(-)

commit 8f7122433f69180533b15584ae5abf0e50007207
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 20:15:29 2010 -0400

    More updates

 NEWS | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

commit b440cc154669b492b5301e221d85bf6b8586a994
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 20:10:56 2010 -0400

    Add a boxed type for GError

    Patch by Sebastian Dröge, bug 614541

 gobject/gboxed.c        | 13 +++++++++++++
 gobject/gboxed.h        |  9 +++++++++
 gobject/gobject.symbols |  1 +
 3 files changed, 23 insertions(+)

commit 4a62a00c4c52634062caaaa1de9c48246f393967
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 20:02:49 2010 -0400

    Document --dry-run option of gschema-compile

 docs/reference/gio/gschema-compile.xml | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 00a7c2e635a4fa95257779c271f0eaa5992e2b37
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Apr 22 19:48:13 2010 -0400

    Bug 615379 - g_new macros crash if sizeof(struct_type) == 0

 glib/gmem.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7b43d2d299ef58f5d174b1b5bf4704488981259b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 19:31:39 2010 -0400

    Fix !srcdir build

    Bug 616216

 gthread/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 708d540a6f364b254f001b863be837ca9a0e1797
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 01:29:53 2010 -0400

    Updates

 NEWS | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 626e90403e8b77ebd77e75e7239defbfe06eb941
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Fri Apr 23 00:45:49 2010 +0200

    Updated Catalan (Valencian) translation

 po/ca@valencia.po | 1363
 +++++++++++++++++++++++++++++------------------------
 1 file changed, 748 insertions(+), 615 deletions(-)

commit daa1a73c752e66d53de6016a9baa2be14d59af61
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 22 15:44:54 2010 -0400

    Add a missing 'static' on internal functions

 gvdb-builder.c | 2 +-
 gvdb-reader.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 19d8cc33759e38a7cfcf7ddaa2e80e7c4ddc2d3c
Author: Dan Winship <danw@gnome.org>
Date:   Tue Apr 20 17:23:49 2010 -0400

    GUnixSocketAddress: handle abstract sockets with non-0-padded names

    There are apparently two incompatible ways of naming abstract sockets:
    pad the sockaddr with 0s and use the entire thing as the name, or else
    don't, and just pass a shorter length value to the relevant functions.
    We previously only supported the former method. Add support for the
    latter.

    Also correctly handle "anonymous" unix sockaddrs (eg, the client side
    of a connection, or a socketpair() socket), and add unix domain socket
    support to the socket-client and socket-server test programs to make
    sure this all works.

    https://bugzilla.gnome.org/show_bug.cgi?id=615960

 docs/reference/gio/gio-sections.txt |   3 +
 gio/gio.symbols                     |  10 +-
 gio/gioenums.h                      |  34 ++++++
 gio/gsocketaddress.c                |  41 +++++--
 gio/gunixsocketaddress.c            | 209
 +++++++++++++++++++++++++++++-------
 gio/gunixsocketaddress.h            |  10 +-
 gio/tests/Makefile.am               |   1 +
 gio/tests/socket-client.c           |  54 ++++++----
 gio/tests/socket-common.c           |  56 ++++++++++
 gio/tests/socket-server.c           |  68 ++++++++----
 gio/tests/unix-fd.c                 |  61 ++++++++---
 11 files changed, 438 insertions(+), 109 deletions(-)

commit 5e892de8afaf564838910f11bdc383ab441417ca
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Thu Apr 22 16:29:06 2010 +0200

    Updated Galician translations

 po/gl.po | 1079
 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 611 insertions(+), 468 deletions(-)

commit 3e9a296b29c613b8f09c735ad2dabd9048e9025b
Author: Shankar Prasad <sprasad@git.gnome.org>
Date:   Thu Apr 22 16:09:58 2010 +0530

    Updated Kannada translations

 po/kn.po | 1122
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 614 insertions(+), 508 deletions(-)

commit f3e04973e7977841dc946089967c397490f4fd57
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 22 01:15:54 2010 -0400

    Rename gsettings-tool to gsettings

    And make it verb-based.

 docs/reference/gio/Makefile.am         |  10 +-
 docs/reference/gio/gio-docs.xml        |   8 +-
 docs/reference/gio/gschema-compile.xml |   7 +-
 docs/reference/gio/gsettings-tool.xml  |  93 --------
 docs/reference/gio/gsettings.xml       | 137 +++++++++++
 gio/Makefile.am                        |   6 +-
 gio/gsettings-tool.c                   | 410
 +++++++++++++++++++++++++--------
 7 files changed, 464 insertions(+), 207 deletions(-)

commit bf0f8ad8ee800b9a1f76a57684b45f79e2e6e5d8
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Apr 22 03:20:17 2010 +0200

    [gsettings] Add g_return_*_if_fail() guards in GSettingsBackend

 gio/gsettingsbackend.c | 3 +++
 1 file changed, 3 insertions(+)

commit 0fa791b29d4b3aa2154f322dda5a7c0d2caa1ede
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Apr 22 03:07:49 2010 +0200

    [gsettings] Add g_return_*_if_fail() guards

    Reported by Christian Persch here:
    https://bugzilla.gnome.org/show_bug.cgi?id=616405

 gio/gsettings.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 78ed401a5146ac1d2f83f19b6a6fcfe789d847cb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 21:03:53 2010 -0400

    Add a test for g_settings_get_child

 gio/tests/gsettings.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 88ff21ee92237858b65560d20f255506f2125a55
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 18:08:05 2010 -0400

    Be more careful about memory management

    This was leading to crashes, e.g. bug 616432.

 gio/gschema-compile.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 89b718f7d396c165a023e46c5111549a2a1e2d1c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 17:44:47 2010 -0400

    Pedantic terminology fix

    Elements are not function calls and attributes are not arguments...

 gio/gschema-compile.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 0d9a40b8943ec3b9926efad93a28687708cc2038
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 21 16:44:26 2010 -0400

    Fix typo in GMutex error message

 gthread/gthread-impl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 585a37f37455e1b91029db6c40b3a0e2932e0604
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 14:47:32 2010 -0400

    Handle NULL string properties in bindings

    Admittely, we just handle them by failing the conversion...

 gio/gsettings-mapping.c | 4 +++-
 gio/gsettings.c         | 6 +++---
 gio/tests/gsettings.c   | 1 -
 3 files changed, 6 insertions(+), 5 deletions(-)

commit 3814868b7a1950286f875b193dd10aa20b482fe6
Author: Dan Winship <danw@gnome.org>
Date:   Wed Apr 21 13:37:59 2010 -0400

    gio.symbols: add two missing G_GNUC_CONSTs

 gio/gio.symbols | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 887dd88ac2615d8837e06ce9b18cddeeb04f4494
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Wed Apr 21 18:46:19 2010 +0200

    Updated Spanish translation

 po/es.po | 1044
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 569 insertions(+), 475 deletions(-)

commit 03a0f05058a1156edaab463da03f58b0f4988625
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 12:37:38 2010 -0400

    Add a note about requiring a new enough GConf

 docs/reference/gio/migrating.xml | 5 +++++
 1 file changed, 5 insertions(+)

commit ccf9361490fa3684b22e52655e3236b2cd28a517
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 12:31:33 2010 -0400

    Handle non-readable/-writable properties when binding

    And document readability/writability requirements for binding flags.

 gio/gsettings.c | 31 ++++++++++++++++++++++++++++++-
 gio/gsettings.h |  6 ++++--
 2 files changed, 34 insertions(+), 3 deletions(-)

commit 8a988e8e88f0b3463c7dd6fc5145174035d4e815
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 12:31:10 2010 -0400

    Test binding non-readable/writable properties

 gio/tests/gsettings.c | 88
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 87 insertions(+), 1 deletion(-)

commit 3bfd739154b09c42b29bfcc38b03ff9b98ed4c4f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 11:50:21 2010 -0400

    Rename gsettingsschemaupdatecache to the more sane gschema_compile

    To follow existing glib pc variables for binaries.

 docs/reference/gio/migrating.xml | 7 ++++---
 gio-2.0.pc.in                    | 2 +-
 m4macros/gsettings.m4            | 4 ++--
 3 files changed, 7 insertions(+), 6 deletions(-)

commit 662f97fefbdb26eff4283757912350c3c15adf49
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Apr 21 16:49:00 2010 +0100

    Update GSettings porting guide for new m4 macro

 docs/reference/gio/migrating.xml | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 0d322e77a55c3b457361ede40c391a6a0b825c78
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Apr 21 12:25:23 2010 +0100

    Add GSettings m4 macros helper

    https://bugzilla.gnome.org/show_bug.cgi?id=616312

 m4macros/Makefile.am  |  2 +-
 m4macros/gsettings.m4 | 43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)

commit 12b801cab4d639f3ac86f1009e6bfb3f589729c5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 10:58:05 2010 -0400

    Nuke the gsettingsschemadir pc variable

    Not really useful, just use $(prefix)/glib-2.0/schemas. We are getting
    m4 sugar to coat this over, anyway.

 docs/reference/gio/migrating.xml | 21 ++++++++++++++-------
 gio-2.0.pc.in                    |  1 -
 2 files changed, 14 insertions(+), 8 deletions(-)

commit e63a1a3d6e6ce4aa8dd7fb65ccaac0b989de12d9
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Apr 21 15:02:50 2010 +0100

    Fix gschema-compile tests for --schema-files changes

 gio/tests/gschema-compile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1c2aea7854e468651807994ad168564c626ae58b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 09:50:17 2010 -0400

    Add tests for --allow-any-name

 gio/tests/gschema-compile.c                 | 40
 +++++++++++++++++++----------
 gio/tests/schema-tests/bad-key.gschema.xml  |  2 +-
 gio/tests/schema-tests/bad-key2.gschema.xml |  2 +-
 gio/tests/schema-tests/bad-key3.gschema.xml |  2 +-
 gio/tests/schema-tests/bad-key4.gschema.xml |  2 +-
 5 files changed, 30 insertions(+), 18 deletions(-)

commit 0b61a87c29f27f988538f92d676a04adfd65b0fd
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Apr 21 12:14:40 2010 +0100

    Allow passing multiple schemas to gschema-compile

    To make test suites easier to implement

    https://bugzilla.gnome.org/show_bug.cgi?id=616312

 gio/gschema-compile.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 9176175fc878bde7143d22f5671b58836985bf44
Author: Bastien Nocera <hadess@hadess.net>
Date:   Wed Apr 21 11:15:30 2010 +0100

    Add mention of GConfBridge in conversion docs

    https://bugzilla.gnome.org/show_bug.cgi?id=616384

 docs/reference/gio/migrating.xml | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 97084317883ea13f5e9ddc3b496cf1f756d85e4f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 09:34:57 2010 -0400

    Remove leftover test data

 gio/tests/schema-tests/bad-type/test.gschema.xml        | 7 -------
 gio/tests/schema-tests/incomplete-list/test.gschema.xml | 7 -------
 gio/tests/schema-tests/missing-quotes/test.gschema.xml  | 7 -------
 gio/tests/schema-tests/no-default/test.gschema.xml      | 6 ------
 gio/tests/schema-tests/overflow/test.gschema.xml        | 7 -------
 gio/tests/schema-tests/wrong-category/test.gschema.xml  | 7 -------
 6 files changed, 41 deletions(-)

commit 64cc81f769ef6ac97b8b9ff4d2693066ffcac63f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 09:33:57 2010 -0400

    Add an --allow-any-name option

    This will make it easier for people to keep their GConf key names
    in the transition period.

    Conflicts:

            gio/gschema-compile.c

 gio/gschema-compile.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit c83a9762453ea996c5619b8a681d3d1fd2cf473f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Apr 21 00:43:55 2010 -0400

    Add some more schema compiler tests

 gio/tests/Makefile.am                        |   7 +-
 gio/tests/gschema-compile.c                  | 143
 +++++++--------------------
 gio/tests/schema-tests/bad-key.gschema.xml   |   7 ++
 gio/tests/schema-tests/bad-key2.gschema.xml  |   7 ++
 gio/tests/schema-tests/bad-key3.gschema.xml  |   7 ++
 gio/tests/schema-tests/bad-key4.gschema.xml  |   7 ++
 gio/tests/schema-tests/empty-key.gschema.xml |   7 ++
 7 files changed, 75 insertions(+), 110 deletions(-)

commit 564714bc95a11fdb06206e91f46a713b67be30ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 23:40:22 2010 -0400

    Fix type mapping for float in gsettings-schema-convert

    Bug 616331.

 gio/gsettings-schema-convert | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit afff087785e1206c4a112367aaf3445dd5cf0c08
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 23:28:49 2010 -0400

    Simplify gschema-compile test suite

    Add --one-schema-file option to gschema-compile to allow easier test
    setup. Simplify the test setup.

    Bug #616276.

 gio/gschema-compile.c                              | 52
 ++++++++++++++--------
 gio/tests/Makefile.am                              | 20 ++++-----
 gio/tests/schema-tests/bad-type.gschema.xml        |  7 +++
 gio/tests/schema-tests/incomplete-list.gschema.xml |  7 +++
 gio/tests/schema-tests/missing-quotes.gschema.xml  |  7 +++
 gio/tests/schema-tests/no-default.gschema.xml      |  6 +++
 gio/tests/schema-tests/overflow.gschema.xml        |  7 +++
 gio/tests/schema-tests/wrong-category.gschema.xml  |  7 +++
 8 files changed, 85 insertions(+), 28 deletions(-)

commit 463203ee0aa75e727df3b756fcf589fefc8a99cc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 22:49:32 2010 -0400

    Add gettext-domain when required, and allow to specify it on the
    cmdline

    Bug 616309

 docs/reference/gio/gsettings-schema-convert.xml |  8 ++++++++
 gio/gsettings-schema-convert                    | 16 +++++++++++++---
 2 files changed, 21 insertions(+), 3 deletions(-)

commit bedf4c3259756caec97d5aa4cd32d501de2be82e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 22:41:12 2010 -0400

    Add documentation and translation for gsettings-tool

 docs/reference/gio/Makefile.am        |  3 ++
 docs/reference/gio/gio-docs.xml       |  1 +
 docs/reference/gio/gsettings-tool.xml | 93
 +++++++++++++++++++++++++++++++++++
 gio/gschema-compile.c                 | 27 ++++++----
 gio/gsettings-tool.c                  | 33 +++++++------
 po/POTFILES.in                        |  4 ++
 6 files changed, 135 insertions(+), 26 deletions(-)

commit 1dbe06c30a766171d4f018539a92cee237cb63c7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 20:54:53 2010 -0400

    Add a minimal commandline utility to poke GSettings

 gio/Makefile.am      |   8 ++-
 gio/gsettings-tool.c | 169
 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 176 insertions(+), 1 deletion(-)

commit 3569de342e415c887537d811a0df373cfdb85bc6
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Apr 20 05:38:02 2010 +0200

    [gio] Use G_DEFINE_INTERFACE macro

    Use this macro in gasyncinitable, gconverter, ginitable and
    gsocketconnectable

    https://bugzilla.gnome.org/show_bug.cgi?id=616245

 gio/gasyncinitable.c     | 35 +++--------------------------------
 gio/gconverter.c         | 35 +++--------------------------------
 gio/ginitable.c          | 33 +++++----------------------------
 gio/gsocketconnectable.c | 32 +++++---------------------------
 4 files changed, 16 insertions(+), 119 deletions(-)

commit 3585e64be81a6846b23ca0c0c2969a83080a460d
Author: Tor Lillqvist <tml@iki.fi>
Date:   Wed Apr 21 03:22:59 2010 +0300

    Tweak the generation of the file list in gio.vcproj

    Visual Studio doesn't like slash as directory separator, so use
    backslash. While at it, sort the list of files put in the project file
    just for clarity.

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8b6d2c1fc15c91ec174a6b346257a228d3db08e2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 20 20:14:50 2010 -0400

    remove empty initialisers {  } for MSVC's sake

 gio/gsettings.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a4e38786750d538b334b8a7a7cc9f5a3ff48bc33
Merge: 31a5342 291a5c9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 20 20:13:56 2010 -0400

    Merge remote branch 'gvdb/master'

commit 291a5c9ed98cf5456c8d6af0c3113610646de7b3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 20 20:12:41 2010 -0400

    __value -> value to avoid stomping the C compiler

 gvdb-format.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 31a534278405b77fe8ea4aaa85ba5ae80c92d80e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 19:51:28 2010 -0400

    Refer to the right directory

 docs/reference/gio/migrating.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9488d18a87bdba2b4180280d8109ab5381acf9c8
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Apr 20 19:39:03 2010 -0400

    Fix gsettings mapping for uint64

    Bug #616295.

 gio/gsettings-mapping.c | 4 ++--
 gio/tests/gsettings.c   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 1b61680abbf8ba10a24aff52397364c844f368bb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 19:23:52 2010 -0400

    Flesh out the porting guide some more

 docs/reference/gio/migrating.xml | 154
 +++++++++++++++++++++++++++++++--------
 gio/gsettings.c                  |  17 +++--
 2 files changed, 135 insertions(+), 36 deletions(-)

commit 3277b77769def1aabfa850858197d02b0afca364
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Apr 20 15:13:07 2010 -0400

    Document g_settings_bind_writable

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gsettings.c                     | 36
 +++++++++++++++++++++++++++++++++++-
 2 files changed, 36 insertions(+), 1 deletion(-)

commit 9717833e8200929f908fa682262fcfda8f964653
Author: Richard Hughes <richard@hughsie.com>
Date:   Tue Apr 20 22:25:23 2010 +0100

    Don't crash gsettings-schema-convert for GConf schemas that contain
    empty elements

    This can be observed in gnome-power-manager with one of the entries
    that
    contains <long></long>

 gio/gsettings-schema-convert | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit f82839b8fe6e112b9cc02637e7544e800524c179
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 20 17:27:17 2010 -0400

    gschema-compile: output to srcdir by default

    If the target directory is not explicitly set then output to the
    source
    directory.  Closes bug #616311 reported by Bastien Nocera.

 gio/gschema-compile.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit f5990c1aefe364cfdd8c6d4bcdcc5dce60ced003
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Apr 20 12:30:12 2010 -0400

    GSettings: bind to writablity of a key

 gio/gio.symbols |   1 +
 gio/gsettings.c | 103
 +++++++++++++++++++++++++++++++++++++++-----------------
 gio/gsettings.h |   5 +++
 3 files changed, 78 insertions(+), 31 deletions(-)

commit 890a842b2692292d207e1c473718c57ee1e51c32
Author: Richard Hughes <richard@hughsie.com>
Date:   Tue Apr 20 16:14:11 2010 +0100

    Fix up the gtk-doc comment for the GSettings::changed signal

 gio/gsettings.c | 1 +
 1 file changed, 1 insertion(+)

commit 5445ae78c21a71b3d8eea393bfe70d2ab1c24766
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 14:16:06 2010 -0400

    Add g_variant_compare() for like basic types

 glib/gvariant.c | 105
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 104 insertions(+), 1 deletion(-)

commit 3c54cc074dc783ab4944e1cc15d690b467a09684
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 11:05:04 2010 -0400

    gschema-compile: return quickly on parse error

    Suggested by Christian Persch in #616102

 gio/gschema-compile.c | 3 +++
 1 file changed, 3 insertions(+)

commit bed462046afd33356b0b0554d0ee8ed31d4a2de0
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Apr 20 01:04:31 2010 +0200

    [docs] Fix G_VALUE_COLLECT_INIT documentation

    Add the documentation to the corresponding section

    This macro was introduced in
    commit 546fc0ca331c8d1b3393fe218a697b6a1a1c1072

 docs/reference/gobject/gobject-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 4c276d05aa010d54e921ca1de7bdafe262dd278e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 19:01:46 2010 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f8fa527bfd73833ec1fcdaa13c6b8b5701fb65ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 19:00:28 2010 -0400

    2.25.1

 po/af.po          | 2 +-
 po/am.po          | 2 +-
 po/ar.po          | 2 +-
 po/as.po          | 2 +-
 po/ast.po         | 2 +-
 po/az.po          | 2 +-
 po/be.po          | 2 +-
 po/be@latin.po    | 2 +-
 po/bg.po          | 2 +-
 po/bn.po          | 2 +-
 po/bn_IN.po       | 2 +-
 po/bs.po          | 2 +-
 po/ca.po          | 2 +-
 po/ca@valencia.po | 2 +-
 po/cs.po          | 2 +-
 po/cy.po          | 2 +-
 po/da.po          | 2 +-
 po/de.po          | 2 +-
 po/dz.po          | 2 +-
 po/el.po          | 2 +-
 po/en@shaw.po     | 2 +-
 po/en_CA.po       | 2 +-
 po/en_GB.po       | 2 +-
 po/eo.po          | 2 +-
 po/es.po          | 2 +-
 po/et.po          | 2 +-
 po/eu.po          | 2 +-
 po/fa.po          | 2 +-
 po/fi.po          | 2 +-
 po/fr.po          | 2 +-
 po/ga.po          | 2 +-
 po/gl.po          | 2 +-
 po/gu.po          | 2 +-
 po/he.po          | 2 +-
 po/hi.po          | 2 +-
 po/hr.po          | 2 +-
 po/hu.po          | 2 +-
 po/hy.po          | 2 +-
 po/id.po          | 2 +-
 po/is.po          | 2 +-
 po/it.po          | 2 +-
 po/ja.po          | 2 +-
 po/ka.po          | 2 +-
 po/kn.po          | 2 +-
 po/ko.po          | 2 +-
 po/ku.po          | 2 +-
 po/lt.po          | 2 +-
 po/lv.po          | 2 +-
 po/mai.po         | 2 +-
 po/mg.po          | 2 +-
 po/mk.po          | 2 +-
 po/ml.po          | 2 +-
 po/mn.po          | 2 +-
 po/mr.po          | 2 +-
 po/ms.po          | 2 +-
 po/nb.po          | 2 +-
 po/nds.po         | 2 +-
 po/ne.po          | 2 +-
 po/nl.po          | 2 +-
 po/nn.po          | 2 +-
 po/oc.po          | 2 +-
 po/or.po          | 2 +-
 po/pa.po          | 2 +-
 po/pl.po          | 2 +-
 po/ps.po          | 2 +-
 po/pt.po          | 2 +-
 po/pt_BR.po       | 2 +-
 po/ro.po          | 2 +-
 po/ru.po          | 2 +-
 po/rw.po          | 2 +-
 po/si.po          | 2 +-
 po/sk.po          | 2 +-
 po/sl.po          | 2 +-
 po/sq.po          | 2 +-
 po/sr.po          | 2 +-
 po/sr@ije.po      | 2 +-
 po/sr@latin.po    | 2 +-
 po/sv.po          | 2 +-
 po/ta.po          | 2 +-
 po/te.po          | 2 +-
 po/th.po          | 2 +-
 po/tl.po          | 2 +-
 po/tr.po          | 2 +-
 po/tt.po          | 2 +-
 po/uk.po          | 2 +-
 po/vi.po          | 2 +-
 po/wa.po          | 2 +-
 po/xh.po          | 2 +-
 po/yi.po          | 2 +-
 po/zh_CN.po       | 2 +-
 po/zh_HK.po       | 2 +-
 po/zh_TW.po       | 2 +-
 92 files changed, 92 insertions(+), 92 deletions(-)

commit 3b9de5f10a15086dd4c95e6260a20b8f5e917281
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 18:26:41 2010 -0400

    Don't forget to install and distribute gsettings-schema-convert

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7d330078e77c51ede181ceda10260fb79a7e2425
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 18:26:41 2010 -0400

    Don't forget to install and distribute gsettings-schema-convert

 gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit ca4f0a3d6d99ee1eb4f21aa753b2cc29ac5e2d36
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 17:33:03 2010 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cd9b8b563f3dc094b72ebc0c7f55e35f4782aab1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 17:30:42 2010 -0400

    2.25.0

 docs/reference/glib/glib-gettextize.1           |  80 +-
 docs/reference/glib/gtester-report.1            |  10 +-
 docs/reference/glib/gtester.1                   |  12 +-
 docs/reference/glib/tmpl/async_queues.sgml      |   4 +
 docs/reference/glib/tmpl/atomic_operations.sgml |  33 +-
 docs/reference/glib/tmpl/bookmarkfile.sgml      |   4 +
 docs/reference/glib/tmpl/byte_order.sgml        |   3 +
 docs/reference/glib/tmpl/conversions.sgml       |   3 +
 docs/reference/glib/tmpl/date.sgml              |   4 +
 docs/reference/glib/tmpl/error_reporting.sgml   |   3 +
 docs/reference/glib/tmpl/fileutils.sgml         |   3 +
 docs/reference/glib/tmpl/gregex.sgml            |   3 +
 docs/reference/glib/tmpl/hooks.sgml             |   3 +
 docs/reference/glib/tmpl/i18n.sgml              |   4 +
 docs/reference/glib/tmpl/keyfile.sgml           |   4 +
 docs/reference/glib/tmpl/limits.sgml            |   3 +
 docs/reference/glib/tmpl/macros.sgml            |   3 +
 docs/reference/glib/tmpl/macros_misc.sgml       |   3 +
 docs/reference/glib/tmpl/main.sgml              |  10 +
 docs/reference/glib/tmpl/markup.sgml            |   3 +
 docs/reference/glib/tmpl/memory.sgml            |   5 +
 docs/reference/glib/tmpl/memory_slices.sgml     |   3 +
 docs/reference/glib/tmpl/messages.sgml          |   3 +
 docs/reference/glib/tmpl/misc_utils.sgml        |  19 +
 docs/reference/glib/tmpl/modules.sgml           |   5 +
 docs/reference/glib/tmpl/numerical.sgml         |   3 +
 docs/reference/glib/tmpl/queue.sgml             |   4 +
 docs/reference/glib/tmpl/scanner.sgml           |   3 +
 docs/reference/glib/tmpl/spawn.sgml             |   3 +
 docs/reference/glib/tmpl/string_utils.sgml      |   3 +
 docs/reference/glib/tmpl/strings.sgml           |   3 +
 docs/reference/glib/tmpl/testing.sgml           |  22 +-
 docs/reference/glib/tmpl/trash_stack.sgml       |   3 +
 docs/reference/glib/tmpl/type_conversion.sgml   |   3 +
 docs/reference/glib/tmpl/types.sgml             |   3 +
 docs/reference/glib/tmpl/unicode.sgml           |   3 +
 docs/reference/glib/tmpl/version.sgml           |   3 +
 docs/reference/glib/tmpl/warnings.sgml          |   3 +
 docs/reference/glib/tmpl/windows.sgml           |   5 +
 docs/reference/gobject/glib-genmarshal.1        |  10 +-
 docs/reference/gobject/glib-mkenums.1           |  13 +-
 docs/reference/gobject/gobject-query.1          |  10 +-
 gio/tests/Makefile.am                           |   8 +-
 gio/tests/gschema-compile.c                     |  78 +-
 gio/tests/gsettings.c                           |   6 +-
 po/af.po                                        | 108 +--
 po/am.po                                        | 108 +--
 po/ar.po                                        | 108 +--
 po/as.po                                        | 108 +--
 po/ast.po                                       | 108 +--
 po/az.po                                        | 108 +--
 po/be.po                                        | 108 +--
 po/be@latin.po                                  | 108 +--
 po/bg.po                                        | 108 +--
 po/bn.po                                        | 978
 ++++++++++++------------
 po/bn_IN.po                                     | 108 +--
 po/bs.po                                        | 108 +--
 po/ca.po                                        | 952
 ++++++++++++-----------
 po/ca@valencia.po                               | 108 +--
 po/cs.po                                        | 108 +--
 po/cy.po                                        | 108 +--
 po/da.po                                        | 942
 +++++++++++------------
 po/de.po                                        | 108 +--
 po/dz.po                                        | 108 +--
 po/el.po                                        | 108 +--
 po/en@shaw.po                                   | 108 +--
 po/en_CA.po                                     | 108 +--
 po/en_GB.po                                     | 108 +--
 po/eo.po                                        | 108 +--
 po/es.po                                        | 108 +--
 po/et.po                                        | 108 +--
 po/eu.po                                        | 108 +--
 po/fa.po                                        | 108 +--
 po/fi.po                                        | 108 +--
 po/fr.po                                        | 108 +--
 po/ga.po                                        | 108 +--
 po/gl.po                                        | 108 +--
 po/gu.po                                        | 974
 +++++++++++------------
 po/he.po                                        | 108 +--
 po/hi.po                                        | 108 +--
 po/hr.po                                        | 108 +--
 po/hu.po                                        | 108 +--
 po/hy.po                                        | 108 +--
 po/id.po                                        | 108 +--
 po/is.po                                        | 108 +--
 po/it.po                                        | 108 +--
 po/ja.po                                        | 108 +--
 po/ka.po                                        | 108 +--
 po/kn.po                                        | 108 +--
 po/ko.po                                        | 108 +--
 po/ku.po                                        | 108 +--
 po/lt.po                                        | 108 +--
 po/lv.po                                        | 108 +--
 po/mai.po                                       | 108 +--
 po/mg.po                                        | 108 +--
 po/mk.po                                        | 108 +--
 po/ml.po                                        | 108 +--
 po/mn.po                                        | 108 +--
 po/mr.po                                        | 974
 +++++++++++------------
 po/ms.po                                        | 108 +--
 po/nb.po                                        | 108 +--
 po/nds.po                                       | 108 +--
 po/ne.po                                        | 108 +--
 po/nl.po                                        | 108 +--
 po/nn.po                                        | 108 +--
 po/oc.po                                        | 108 +--
 po/or.po                                        | 108 +--
 po/pa.po                                        | 108 +--
 po/pl.po                                        | 108 +--
 po/ps.po                                        | 108 +--
 po/pt.po                                        | 108 +--
 po/pt_BR.po                                     | 108 +--
 po/ro.po                                        | 108 +--
 po/ru.po                                        | 108 +--
 po/rw.po                                        | 108 +--
 po/si.po                                        | 108 +--
 po/sk.po                                        | 108 +--
 po/sl.po                                        | 108 +--
 po/sq.po                                        | 108 +--
 po/sr.po                                        | 108 +--
 po/sr@ije.po                                    | 108 +--
 po/sr@latin.po                                  | 108 +--
 po/sv.po                                        | 108 +--
 po/ta.po                                        | 108 +--
 po/te.po                                        | 108 +--
 po/th.po                                        | 108 +--
 po/tl.po                                        | 108 +--
 po/tr.po                                        | 108 +--
 po/tt.po                                        | 108 +--
 po/uk.po                                        | 108 +--
 po/vi.po                                        | 108 +--
 po/wa.po                                        | 108 +--
 po/xh.po                                        | 108 +--
 po/yi.po                                        | 108 +--
 po/zh_CN.po                                     | 108 +--
 po/zh_HK.po                                     | 957
 ++++++++++++-----------
 po/zh_TW.po                                     | 942
 +++++++++++------------
 137 files changed, 8245 insertions(+), 8073 deletions(-)

commit 80ac5df96b2a5b6c1436e597487526a77b8130fb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 15:07:52 2010 -0400

    Reset interface age to 0

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 27d2dbacd4d4833c9846a2872cb04f7bced3a3c3
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Apr 19 14:18:59 2010 -0400

    Use g_set_error_literal where appropriate

 gio/gschema-compile.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 40869e9544c27bc2d7f3b53aa1f1dda1edf47a8d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 14:04:42 2010 -0400

    Install a dtd in /usr/share/glib-2.0/schemas/gschema.dtd

 gio/Makefile.am |  4 ++++
 gio/gschema.dtd | 40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

commit 2d38da0746d15e20e832d8573af106a1e83267eb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 13:25:52 2010 -0400

    Remove misnamed files

 gio/tests/schema-tests/no-default/no-default.gschema.xml | 6 ------
 1 file changed, 6 deletions(-)

commit 0e48b0638dd54fda1d567c294db0feeb52b324af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 13:14:30 2010 -0400

    Some tests for gschema-compile

    Mostly making sure that we produce reasonable error messages for
    typical mistakes.

 gio/tests/Makefile.am                              | 26 ++++---
 gio/tests/gschema-compile.c                        | 81
 +++++++++++++++++++++-
 gio/tests/schema-tests/bad-type/test.gschema.xml   |  7 ++
 .../schema-tests/incomplete-list/test.gschema.xml  |  7 ++
 .../schema-tests/missing-quotes/test.gschema.xml   |  7 ++
 gio/tests/schema-tests/no-default/test.gschema.xml |  6 ++
 gio/tests/schema-tests/overflow/test.gschema.xml   |  7 ++
 .../schema-tests/wrong-category/test.gschema.xml   |  7 ++
 8 files changed, 139 insertions(+), 9 deletions(-)

commit a64625a134ac2d028e7288a640dc7b01e36edcf5
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Apr 19 17:58:37 2010 +0200

    Little fix in gio/test/Makefile.am

    This was introduced in
    commit 4a605693fce718a81f809245be2ebad9978031ac

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 32477d4fbff400a235f501967492349ae44a475d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 11:40:23 2010 -0400

    Another shadowed variable fix

    See bug 616154.

 gio/gsettings.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 4a605693fce718a81f809245be2ebad9978031ac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 11:31:21 2010 -0400

    Don't segfault when <default> is missing

    Also add a framework for schema compiler tests.

    Fixes bug 616086.

 gio/gschema-compile.c                              | 10 ++++++-
 gio/tests/Makefile.am                              | 20 +++++++++++--
 gio/tests/gschema-compile.c                        | 35
 ++++++++++++++++++++++
 .../schema-tests/no-default/no-default.gschema.xml |  6 ++++
 4 files changed, 67 insertions(+), 4 deletions(-)

commit ccbafd0f14cca899c07cd6a630096125988be8a9
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Apr 19 10:42:42 2010 -0400

    Bug 615111 – GAsyncInitable's default implementation is broken

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 gio/gasyncinitable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 40fdc929f86243a936609a4008e9fb013c9f4f7d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 10:28:44 2010 -0400

    Don't write out zero-byte sections in builder

    This and the previous issue caught by Christian Persch in bug #616156

 gio/gvdb/gvdb-builder.c | 3 +++
 1 file changed, 3 insertions(+)

commit 646dc7de87a90a833fb86f88c01c0131cabebb22
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 10:18:44 2010 -0400

    Whitespace fixups

 gio/gvdb/gvdb-builder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 33104067d485fdc7596df7da57d43ba123d64927
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 10:17:31 2010 -0400

    Fix logic error for missing options in reader

 gio/gvdb/gvdb-reader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3f354af402b466b194b313d280adaab07123d9e8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 10:34:42 2010 -0400

    Handle int64 and double types correctly

 gio/gsettings-mapping.c | 146
 ++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 122 insertions(+), 24 deletions(-)

commit a072c1fc293ab7b5e81fd5e5ea29b15941af17fe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 10:34:22 2010 -0400

    Fix up some typos in the new tests

 gio/tests/gsettings.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 2d9811ebdaee294ac9a1826db5be891b2b90d67f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 10:28:44 2010 -0400

    Don't write out zero-byte sections in builder

    This and the previous issue caught by Christian Persch in bug #616156

 gvdb-builder.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6713b3dbaaabf9bbf196e6bc45d200b092239b59
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 10:18:44 2010 -0400

    Whitespace fixups

 gvdb-builder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dc2b43b3e7bebe5c1fb9dedcb8630c4d45a99266
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Apr 19 10:17:31 2010 -0400

    Fix logic error for missing options in reader

 gvdb-reader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 230038f684282372f2e9843a7c92273c916ffd49
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Apr 19 10:00:03 2010 -0400

    Add testcase for g_settings_bind with [u]int64 properties

    And use different values for the doubles test.

    All of these fail currently since g_settings_bind default mapping
    truncate to glong (eek!).

    Bug #616119

 gio/tests/gsettings.c              | 50
 +++++++++++++++++++++++++++++++++++---
 gio/tests/org.gtk.test.gschema.xml |  6 +++++
 2 files changed, 52 insertions(+), 4 deletions(-)

commit fac8b91eafb7658ced725265d5df20a5b784698b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 09:49:22 2010 -0400

    Add gsettings-related variables

 gio-2.0.pc.in | 2 ++
 1 file changed, 2 insertions(+)

commit dd98785e85b3f8f030b1fc6ebe1610ddf0bf971f
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Apr 19 09:46:32 2010 -0400

    Rename shadowed variables

    Bug #616154.

 gio/gsettings.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 69bd033e11f63d50f551754dc9e98906d28e3561
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 09:30:22 2010 -0400

    Call setlocale initially

    That seems to be required to make bindtextdomain work in the
    l10n tests. See bug 616152.

 gio/tests/gsettings.c | 2 ++
 1 file changed, 2 insertions(+)

commit 4523b2b9cdb2fecdcfe197a73e645282d2d9b8ae
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Apr 19 16:13:13 2010 +0300

    Bypass l10n tests for now on Windows

 gio/tests/gsettings.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

commit 1064097504c180ad5ed8fd8ce80500da0aca9266
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 08:54:01 2010 -0400

    Add a bit about autofoo for schemas

    Always a good idea to have copiable snipplets in a porting guide...

 docs/reference/gio/migrating.xml | 37
 ++++++++++++++++++++++++++++++-------
 1 file changed, 30 insertions(+), 7 deletions(-)

commit a96360ad68405304f60636f6048aa2bdf268066d
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Apr 19 15:48:30 2010 +0300

    Avoid non-portable <glob.h> API

    And thus we can build gschema-compile on all platforms, and run it in
    tests.

 gio/Makefile.am       |  6 +-----
 gio/gschema-compile.c | 34 +++++++++++++++++-----------------
 gio/tests/Makefile.am |  6 +-----
 3 files changed, 19 insertions(+), 27 deletions(-)

commit c279b5b999c4a8fea934184eb36d2a994dc07868
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Apr 19 08:04:57 2010 -0400

    Add a schema convertion script

 gio/gsettings-schema-convert | 1064
 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1064 insertions(+)

commit df8800e59a88c011ed84e7a05c6ddeb2a9b38921
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Apr 19 12:25:22 2010 +0300

    Portability improvements

    Gschema-compile uses glob which is available on Unix only. Thus can't
    run the gschema-compile test except on Unix either.

    To avoid an Automake error, comment out the SOURCES and LDADD of
    unix-streams which for some reason has been commented out from
    TEST_PROGS.

    Can't use a Makefile.am target called foo_PROGRAMS for random files
    that aren't actually programs, as Automake assumes EXEEXT should be
    appended to the file names.

 gio/Makefile.am       |  7 ++++++-
 gio/tests/Makefile.am | 18 +++++++++++-------
 2 files changed, 17 insertions(+), 8 deletions(-)

commit 9af8b8321146cddbe5bee09e972507f023e58ce0
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Apr 19 11:32:05 2010 +0300

    Add GWin32InputStream and GWin32OutputStream classes

    Correspond to GUnixInputStream and GUnixOutputStream. No true async
    support though. But that is how the Win32 API is, for files not
    explicitly opened for so-called overlapped IO.

    The API to create these streams takes Win32 HANDLEs. Not file
    descriptors, because file descriptors are specific to the C library
    used. The user code and GLib might be using different C libraries.

    Also add a test program for the new classes, and a gio-windows-2.0.pc
    file.

 Makefile.am                  |   5 +
 build/win32/vs9/glib.vsprops |   4 +
 configure.in                 |   1 +
 gio-windows-2.0.pc.in        |  11 ++
 gio/Makefile.am              |  11 +-
 gio/gio.symbols              |  27 ++++
 gio/gioerror.c               |  27 ++++
 gio/gioerror.h               |   4 +
 gio/gwin32inputstream.c      | 359
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gwin32inputstream.h      |  79 ++++++++++
 gio/gwin32outputstream.c     | 359
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gwin32outputstream.h     |  78 ++++++++++
 gio/tests/Makefile.am        |   8 +
 gio/tests/win32-streams.c    | 292 +++++++++++++++++++++++++++++++++++
 glib-zip.in                  |   1 +
 15 files changed, 1265 insertions(+), 1 deletion(-)

commit 48cd4cbba5e580a30aef7b0073e647bcc7118c67
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 18 23:53:31 2010 -0400

     Silence a warning

    g_string_insert_len (s, pos, NULL, 0) is a harmless nop, don't
    spew warnings in this case.

 glib/gstring.c | 41 ++++++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 19 deletions(-)

commit 32de7d6905d9e26b1de8e030cb275381fde00f03
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 18 15:57:11 2010 -0400

    Fix up docs for backend setup functions

 docs/reference/gio/gio-sections.txt | 4 ++++
 gio/gkeyfilesettingsbackend.c       | 2 ++
 gio/gsettingsbackend.c              | 2 ++
 3 files changed, 8 insertions(+)

commit fd8cdb83e1b5a4b71aa84ca26a000e2fbd7a3d37
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 18 15:55:14 2010 -0400

    Refer to gio-querymodules in the extension point docs

 gio/giomodule.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit b7afff0033a43c10012491ab44d2abd4b06bd039
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 18 15:54:54 2010 -0400

    Add a man page for gio-querymodules

 docs/reference/gio/Makefile.am          |  3 +++
 docs/reference/gio/gio-docs.xml         |  5 +++++
 docs/reference/gio/gio-querymodules.xml | 33
 +++++++++++++++++++++++++++++++++
 3 files changed, 41 insertions(+)

commit e0850b56e2eb13280aa692cb3275640470f59d0d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 18 15:37:55 2010 -0400

    Correct filename extension in help output.

 gio/gschema-compile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eaae8f6578b4d08146e5599f5b3022485bec629f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 18 15:35:22 2010 -0400

    Whitespace fix

 docs/reference/gio/gschema-compile.xml | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit a6bd74a08d6f9e3fe930ddcb9e93bf19ae4e240a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Apr 18 14:58:50 2010 -0400

    Update the gschema-compile docs

    Correct the schema file extension, mention the usual locations
    for schemas and add a reference to gsettings-schema-convert.

 docs/reference/gio/gschema-compile.xml | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit 9023ac09345d9569d11bc55d66adcfaa92d8811a
Author: David King <davidk@openismus.com>
Date:   Fri Jul 17 23:06:03 2009 +0200

    [docs] Remove unused sgml template from GObject documentation

    https://bugzilla.gnome.org/show_bug.cgi?id=589351

    Signed-off-by: Javier Jardón <jjardon@gnome.org>

 docs/reference/gobject/tmpl/gobject-unused.sgml | 87
 -------------------------
 1 file changed, 87 deletions(-)

commit 626d8ac9e1f806363160634502ff008a71d7f507
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 21:31:30 2010 -0400

    More distcheck fixes

 gio/tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 187883dc586c4b5545d4e58e8c8af176da690ef6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 21:19:45 2010 -0400

    add a keyfile test

 gio/tests/Makefile.am |  2 +-
 gio/tests/gsettings.c | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

commit f07613997c345224df702076e793dabaada58ec3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 20:54:53 2010 -0400

    More distcheck fix attempts

 gio/tests/Makefile.am | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 87e68c75bc874c94f6152e069f904673243f4fb0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 20:13:59 2010 -0400

    Distcheck fixes

 docs/reference/gio/Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 3db0f554e41496b07c82db96457b8df98947aa0e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 16:57:28 2010 -0400

    Some build fixes

 docs/reference/gio/Makefile.am | 3 ++-
 gio/tests/Makefile.am          | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 137cee425f4b5b29ac47ce433e02f6f2734eca47
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 16:48:10 2010 -0400

    Correct the sense of an assertion

 gio/tests/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d2b837df5d230f6658bafe3bd980f87c590f2b78
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 16:13:22 2010 -0400

    Document the tests

    Add a short note for each test that explains what it tries to test.

 gio/tests/gsettings.c | 73
 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 72 insertions(+), 1 deletion(-)

commit 118ae129bc24597d937f30998e643ba83db908f4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 17 11:58:52 2010 -0400

    GDelayedSettingsBackend: another mandatory fixup

      - emit the "has-unapplied" property notify if dropping the last key
        from the changeset due to a mandatory key

 gio/gdelayedsettingsbackend.c | 37 ++++++++++++++++++++++++++-----------
 1 file changed, 26 insertions(+), 11 deletions(-)

commit e06e441ac23f3752f252e86e1d930678de53c778
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 17 11:39:04 2010 -0400

    GSettings delayed: fix handling of mandatory keys

      - if a key becomes mandatory, drop it from the changeset

      - if we still get failing writes (ie: because of a race) then
      drop the
        entire changeset and signal that it happened

 gio/gdelayedsettingsbackend.c | 61
 +++++++++++++++++++++++++++++++++++++------
 1 file changed, 53 insertions(+), 8 deletions(-)

commit eaaa4d14aa8166b72b4dd7b703b1cca143d725cc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 17 10:26:10 2010 -0400

    add backend setup APIs

 gio/gio.symbols               |   5 ++
 gio/gkeyfilesettingsbackend.c | 116
 +++++++++++++++++++++++-------------------
 gio/gsettingsbackend.c        |  46 +++++++++++++++--
 gio/gsettingsbackend.h        |   5 ++
 4 files changed, 114 insertions(+), 58 deletions(-)

commit 21f064486c0bf7e338acebcc90b3f21aa57ee7b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 01:55:55 2010 -0400

    Updates

 NEWS | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit c8a7bb6ccd6e56623e549676f826c7a714093cf6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 01:43:58 2010 -0400

    Merge GSettings tests

 gio/tests/Makefile.am              |  19 +-
 gio/tests/de.po                    |  17 +
 gio/tests/gsettings.c              | 917
 +++++++++++++++++++++++++++++++++++++
 gio/tests/org.gtk.test.gschema     |  39 ++
 gio/tests/org.gtk.test.gschema.xml |  89 ++++
 5 files changed, 1079 insertions(+), 2 deletions(-)

commit 265ca3db9d3fa74ec0035ab70db2b907fade6d26
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 17 01:27:00 2010 -0400

    let binding functions return a floating GVariant

 gio/gsettings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c8e264b6d0e258241420800978745ca6dcd95137
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 17 01:02:57 2010 -0400

    add GMemorySettingsBackend

 gio/Makefile.am              |   2 +
 gio/giomodule.c              |   2 +
 gio/gmemorysettingsbackend.c | 147
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gmemorysettingsbackend.h |  30 +++++++++
 4 files changed, 181 insertions(+)

commit 77ab3c28b9ea692476695243b91931cb3c01b24e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 17 01:02:05 2010 -0400

    add pltcheck.sh exception for GChecksum

 gio/pltcheck.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 79bc511d95650231fad8b4a3184ab55dbcc327ff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 17 00:03:48 2010 -0400

    XML schemas are now *.gschema.xml

 gio/gschema-compile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0d7fbae04c616fcce2dec57787b1f0266763735e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 00:36:14 2010 -0400

    Remove garbage

 docs/reference/gio/#gio-unused.txt# | 100
 ------------------------------------
 1 file changed, 100 deletions(-)

commit bd273f9e09b42969eacbf3fc62a5dee187d96346
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 00:31:41 2010 -0400

    Merge the GSettings docs

 docs/reference/gio/Makefile.am                  |  28 ++-
 docs/reference/gio/gio-docs.xml                 |  76 ++++---
 docs/reference/gio/gio-sections.txt             |  82 +++++++
 docs/reference/gio/gio.types                    |   2 +
 docs/reference/gio/gschema-compile.xml          |  61 +++++
 docs/reference/gio/gsettings-schema-convert.xml | 105 +++++++++
 docs/reference/gio/migrating.xml                | 287
 +++++++++++++++++++++++-
 docs/reference/gio/overview.xml                 | 128 +++++++----
 8 files changed, 691 insertions(+), 78 deletions(-)

commit 16637a16873124cd2837502c662c89834786cea5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 17 00:16:01 2010 -0400

    Document G_SETTINGS_BIND_GET_NO_CHANGES

 gio/gsettings.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit a2716ad02085b7d5d19732c187a8b89debf4fc8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 16 23:57:26 2010 -0400

    Merge the keyfile settings backend.

 gio/Makefile.am               |   2 +
 gio/gkeyfilesettingsbackend.c | 553
 ++++++++++++++++++++++++++++++++++++++++++
 gio/gkeyfilesettingsbackend.h |  71 ++++++
 3 files changed, 626 insertions(+)

commit a187634b29b87c25ea0525d01ee2deffea0fb719
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 23:17:01 2010 -0400

    merge GSettings

 gio/Makefile.am         |   30 +-
 gio/gio-marshal.list    |    2 +
 gio/gio.h               |    1 +
 gio/gio.symbols         |   34 +
 gio/gsettings-mapping.c |  367 ++++++++++
 gio/gsettings-mapping.h |   39 ++
 gio/gsettings.c         | 1715
 +++++++++++++++++++++++++++++++++++++++++++++++
 gio/gsettings.h         |  203 ++++++
 gio/pltcheck.sh         |    2 +-
 9 files changed, 2379 insertions(+), 14 deletions(-)

commit 43a72ce1bea72a581faf34a505004cac941690c3
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 23:20:48 2010 -0400

    GSettingsSchema: add call to get list of keys

 gio/gsettingsschema.c | 32 ++++++++++++++++++++++++++++++++
 gio/gsettingsschema.h |  3 +++
 2 files changed, 35 insertions(+)

commit 61a5692fa15156ea33f8353e62c0357c46c22f77
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 16 20:43:53 2010 -0400

    Man page tweaks

    Add enough info to keep the docbook stylesheets from embedding
    FIXMEs in the formatted output.

 docs/reference/gobject/glib-genmarshal.xml | 3 ++-
 docs/reference/gobject/glib-mkenums.xml    | 9 +++++++--
 docs/reference/gobject/gobject-query.xml   | 3 ++-
 3 files changed, 11 insertions(+), 4 deletions(-)

commit 51d40405de0df498e003ffd24399e11cf63f0ef9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 16 20:40:02 2010 -0400

    Man page tweaks

 docs/reference/glib/glib-gettextize.xml | 5 +++--
 docs/reference/glib/gtester-report.xml  | 6 +++++-
 docs/reference/glib/gtester.xml         | 6 +++++-
 3 files changed, 13 insertions(+), 4 deletions(-)

commit a922596e549eb26fac6119457bc019c851f69148
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 16 19:30:58 2010 -0400

    Some doc tweaks

 gio/gsettingsbackend.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 4c90d4cd45768be45c1dcea74703bfda00849ef4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 16 19:13:51 2010 -0400

    Add indices for 2.26 api additions

 docs/reference/gio/gio-docs.xml    | 4 ++++
 docs/reference/glib/glib-docs.sgml | 4 ++++
 2 files changed, 8 insertions(+)

commit ac5c1e2db6203cf3fa78233886529711c6282ea2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 14:30:12 2010 -0400

    set version to 2.25.0

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d4a4a4ccdb30456ba2486f8b2196cfbcb30bd312
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 12:02:44 2010 -0400

    GSettings: import delayed backend to master

 gio/Makefile.am               |   2 +
 gio/gdelayedsettingsbackend.c | 317
 ++++++++++++++++++++++++++++++++++++++++++
 gio/gdelayedsettingsbackend.h |  73 ++++++++++
 3 files changed, 392 insertions(+)

commit 04c1eadfff5b382f4f54877d62b4703b6f1620f4
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 12:02:29 2010 -0400

    GSettings: more PLT/visibility fixups

 gio/gnullsettingsbackend.c     | 3 +++
 gio/gsettingsbackendinternal.h | 5 -----
 gio/gsettingsschema.h          | 6 ++++++
 gio/pltcheck.sh                | 2 +-
 4 files changed, 10 insertions(+), 6 deletions(-)

commit 149224664f639efaf5cc2a928ed9ffb525ec8591
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 11:58:04 2010 -0400

    gio.symbols: remove pointless whitespace

 gio/gio.symbols | 2 --
 1 file changed, 2 deletions(-)

commit 2474ebf15eccb9fd8513a7dc40789d3a7f0bbb9c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 12:01:40 2010 -0400

    GSettingsBackend: fix type in g_return_val_if_fail

 gio/gsettingsbackend.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 69801f8dc84c0c9403df6802eccc5d03328cd3ae
Merge: 897bd9f caad55d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 11:05:22 2010 -0400

    Merge remote branch 'gvdb/master'

commit caad55d7266c2658f823ea734c4381f19b4c5827
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Apr 16 11:04:15 2010 -0400

    Fix uninitialised header in the builder.

 gvdb-builder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 897bd9f3843aabcf9c0d4367c341b04d964bcf0c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 23:35:49 2010 -0400

    GSettings: merge the schema compiler

 gio/.gitignore        |   1 +
 gio/Makefile.am       |   9 +-
 gio/gschema-compile.c | 544
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 553 insertions(+), 1 deletion(-)

commit 2bc81577350ad479c6e261b998269bcbde489b5d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 22:30:11 2010 -0400

    merge GSettingsSchema

 gio/Makefile.am       |   7 +-
 gio/gsettingsschema.c | 205
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gsettingsschema.h |  67 +++++++++++++++++
 3 files changed, 278 insertions(+), 1 deletion(-)

commit 45a1c41e8cfdeb4edeb7a671b95e599a49c6c281
Merge: defd75f 3c10369
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 22:14:18 2010 -0400

    Merge remote branch 'gvdb/master'

commit 3c10369bf6df1bad9d25a83b48d6256e5c8ce8f6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 22:09:42 2010 -0400

    Recommend git-merge(1) over git-submodule(1).

 gvdb.doap | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3938c735470a3164f1cf21d9e30652d46323b9a9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 21:32:54 2010 -0400

    Add a brief description to the .doap

 gvdb.doap | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 0fec2048f0b0296fad7a2c7e5db5011d2ecdd323
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 21:26:34 2010 -0400

    Initial commit

 gvdb-builder.c | 540
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gvdb-builder.h |  60 +++++++
 gvdb-format.h  |  89 ++++++++++
 gvdb-reader.c  | 510
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 gvdb-reader.h  |  54 ++++++
 gvdb.doap      |  19 ++
 6 files changed, 1272 insertions(+)

commit defd75fbc53511e27d178373ba6caa226c1ab3cf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 18:30:06 2010 -0400

    GSettingsBackend: fix NULL vs "" context issues

 gio/gsettingsbackend.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 3e36ee34269273df6a8d56fee7e7ee10eb913379
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 18:22:14 2010 -0400

    add 'null' GSettings backend

 gio/Makefile.am            |   2 +
 gio/gnullsettingsbackend.c | 107
 +++++++++++++++++++++++++++++++++++++++++++++
 gio/gnullsettingsbackend.h |  30 +++++++++++++
 3 files changed, 139 insertions(+)

commit c2675af4d7d54676745d2c36821ce085cce12111
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 18:21:49 2010 -0400

    GSettings: Modify backend API

 gio/gsettingsbackend.c         | 54
 ++++++++++++++++++++++++++----------------
 gio/gsettingsbackend.h         | 11 +++++----
 gio/gsettingsbackendinternal.h | 14 +++++++----
 3 files changed, 50 insertions(+), 29 deletions(-)

commit 18ba085d0ad28e7edbe575addacbaa2bb13d9f1c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 14:59:41 2010 -0400

    merge GSettingsBackend

 docs/reference/gio/Makefile.am |   1 +
 gio/Makefile.am                |   9 +
 gio/gio.symbols                |  14 +
 gio/gsettingsbackend.c         | 877
 +++++++++++++++++++++++++++++++++++++++++
 gio/gsettingsbackend.h         | 122 ++++++
 gio/gsettingsbackendinternal.h | 100 +++++
 gio/pltcheck.sh                |   2 +-
 7 files changed, 1124 insertions(+), 1 deletion(-)

commit 8d6492ed153fa30b9edaa839a2d93f2651e7aa46
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 14:44:59 2010 -0400

    Remove accidental checkins

 docs/reference/gio/aa | 74
 -------------------------------------------------
 docs/reference/gio/b  | 77
 ---------------------------------------------------
 docs/reference/gio/bb | 77
 ---------------------------------------------------
 3 files changed, 228 deletions(-)

commit bf2719c815d719d1899b4bdb1b81ff6798471094
Author: Lars Ellenberg <lars.ellenberg@linbit.com>
Date:   Thu Apr 15 19:03:05 2010 +0200

    Cast to volatile to avoid warnings from -Wcast-qual

    https://bugzilla.gnome.org/show_bug.cgi?id=457641

 glib/gatomic.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 056326c1e96db2c2101fa320062e0c9146f0d73f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 10:11:30 2010 -0400

    g_string_append_len() accept NULL with length == 0

 glib/gstring.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 066df8d867f78ac40368c0d37f20fae400fc03b3
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Thu Apr 15 16:43:36 2010 +0530

    Updated gujarati translations

 po/gu.po | 1059
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 513 insertions(+), 546 deletions(-)

commit ddc6136e1f8f64c97744c4b725cad8cbac5ef8a3
Author: Sandeep Shedmake <sshedmak@redhat.com>
Date:   Thu Apr 15 15:47:39 2010 +0530

    Updated Marathi Translations

 po/mr.po | 1061
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 514 insertions(+), 547 deletions(-)

commit d17f4bee175cd9149d5f2b1ed1ae6d262d6a1394
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 14 23:35:56 2010 -0400

    GVariant: fix for g_variant_iter_loop()

 glib/gvariant.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

commit 3349bab02259bc66dbc128ce088ec6415d3e30f0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Apr 10 22:01:02 2010 -0400

    Add g_return_if_fail()s to g_variant_new_from_data()

    also, document that @type must be definite

 glib/gvariant.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit a3dc7f8006e24a14a314ffbffa564d3d76f9cc95
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Tue Apr 6 14:53:20 2010 +0700

    Updated Thai translation.

 po/th.po | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 34b9e9bdd24c8a19c235af58a7c90707fc179f87
Author: Jordi Serratosa <jordis.lists@gmail.com>
Date:   Fri Apr 2 14:03:16 2010 +0200

    Fixes to Catalan translation

 po/ca.po | 958
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 482 insertions(+), 476 deletions(-)

commit 93ea4ab6106327e2f417df1d9b00a5ec597e4a48
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Mar 31 10:50:08 2010 -0400

    Improve docs

 glib/gstring.c   | 2 +-
 glib/gurifuncs.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f8470ed55ad3bf29cdc8c151b76c4f14b6be928a
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Mar 30 20:46:46 2010 +0300

    Fix build breakage on Unix

 glib/gstdio.h | 50 +++++++++++++++++++++++++-------------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

commit 1229281d95802c4c190284c7d331f67194a2553e
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Mar 21 20:04:18 2010 +0200

    Define a public documented type for the struct stat used by g_stat()

    Define GStatBuf as the type used by g_stat() and g_lstat(). Replaces
    the non-public struct tag _g_stat_struct. Mostly relevant for Windows
    where there are several variants of stat-style structs. On POSIX, is
    just another name for struct stat.

    Actually, also on many POSIX systems there are in fact several
    variants of struct stat and corresponding stat() and lstat()
    functions, but as g_stat and g_lstat are normally on POSIX just macros
    that expand to stat and lstat, this should not cause a problem. It's
    only when it's the actual g_stat() or g_lstat() implementation inside
    GLib that gets called that one needs to be sure the passed struct is
    the same as what GLib expects.)

 gio/giomodule.c      |  6 +-----
 gio/glocalfile.c     | 23 +++++++++--------------
 gio/glocalfileinfo.c |  7 +------
 glib/gstdio.c        | 32 ++++++++++++++++++--------------
 glib/gstdio.h        | 38 +++++++++++++-------------------------
 5 files changed, 42 insertions(+), 64 deletions(-)

commit e7763678b56e3be073cc55d707a6e92fc2055ee0
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Mar 26 20:37:09 2010 +0100

    Fix race in g_cancellable_cancel()

    We need to check priv->cancelled after taking the lock. Previously we
    only checked it just before taking the lock, which left a small chance
    for a race.

 gio/gcancellable.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 5527a2ac2ce2b5bea10867fb2e39d2f1914cfbe6
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Mar 26 20:36:10 2010 +0100

    Remove unneccessary variable from g_cancellable_cancel()

    The variable makes a complicated function even more complicated.

 gio/gcancellable.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

commit c3f1025c33ab295eedcf41beeea276171ae2dc27
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Mar 29 18:20:03 2010 +0200

    Remove g_type_class_get_private() public documentation

    This is a internal function needed for the documented
    G_TYPE_CLASS_GET_PRIVATE() macro

    This was introduced by error in
    commit 81e2aa941bbfd02bf1b6235da12834d282ceda0c

 docs/reference/gobject/tmpl/gobject-unused.sgml | 9 ---------
 1 file changed, 9 deletions(-)

commit 0f51e995658a50dbecb74b006f05a1ea69f43558
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Mar 28 17:43:33 2010 +0200

    Fix g_type_class_add_private() documentation

    This fixes commit 81e2aa941bbfd02bf1b6235da12834d282ceda0c

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=614185

 gobject/gtype.c | 48 ++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 44 insertions(+), 4 deletions(-)

commit 461a4097d1a0a10106254a8fe917fc4e78ccff92
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sun Mar 28 00:13:28 2010 +0100

    Updated Danish translation

 po/da.po | 951
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 479 insertions(+), 472 deletions(-)

commit 2e27703a815e221052dd4db3e9e848e2401c3b8b
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Mar 27 20:50:57 2010 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 966
 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 951
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 962 insertions(+), 955 deletions(-)

commit 0e3c6ef848259051e4c8c8996a71c0d2d8c9b9f0
Author: Jamil Ahmed <itsjamil@gmail.com>
Date:   Sat Mar 27 17:44:03 2010 +0600

    Updated Bengali translation

 po/bn.po | 1181
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 594 insertions(+), 587 deletions(-)

commit 22dc3dd6487e2c794376a5c6850c3a3e7c2beea9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 15:09:13 2010 -0400

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ca631653acc1e1db0c3ebb05759d05f8bdc35ba6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 15:08:00 2010 -0400

    2.24.0

 po/af.po          |   24 +-
 po/am.po          |   24 +-
 po/ar.po          |   24 +-
 po/as.po          |   24 +-
 po/ast.po         |   24 +-
 po/az.po          |   24 +-
 po/be.po          |   24 +-
 po/be@latin.po    |   24 +-
 po/bg.po          |   24 +-
 po/bn.po          |   24 +-
 po/bn_IN.po       |   24 +-
 po/bs.po          |   24 +-
 po/ca.po          |   24 +-
 po/ca@valencia.po |   24 +-
 po/cs.po          |   24 +-
 po/cy.po          |   24 +-
 po/da.po          |   24 +-
 po/de.po          |   24 +-
 po/dz.po          |   24 +-
 po/el.po          |   24 +-
 po/en@shaw.po     |   24 +-
 po/en_CA.po       |   24 +-
 po/en_GB.po       |   24 +-
 po/eo.po          |   24 +-
 po/es.po          |   24 +-
 po/et.po          |   24 +-
 po/eu.po          |   82 ++--
 po/fa.po          |   24 +-
 po/fi.po          |   24 +-
 po/fr.po          |   24 +-
 po/ga.po          |   24 +-
 po/gl.po          |   24 +-
 po/gu.po          |   24 +-
 po/he.po          |   24 +-
 po/hi.po          |   24 +-
 po/hr.po          |   24 +-
 po/hu.po          |   24 +-
 po/hy.po          |   24 +-
 po/id.po          |   24 +-
 po/is.po          |   24 +-
 po/it.po          |   24 +-
 po/ja.po          |   24 +-
 po/ka.po          |   24 +-
 po/kn.po          |   24 +-
 po/ko.po          |   24 +-
 po/ku.po          |   24 +-
 po/lt.po          |   24 +-
 po/lv.po          |   24 +-
 po/mai.po         |   24 +-
 po/mg.po          |   24 +-
 po/mk.po          |   24 +-
 po/ml.po          |   24 +-
 po/mn.po          |   24 +-
 po/mr.po          |   24 +-
 po/ms.po          |   24 +-
 po/nb.po          |   24 +-
 po/nds.po         |   24 +-
 po/ne.po          |   24 +-
 po/nl.po          |   24 +-
 po/nn.po          |   24 +-
 po/oc.po          |   24 +-
 po/or.po          |   24 +-
 po/pa.po          |   24 +-
 po/pl.po          |   24 +-
 po/ps.po          |   24 +-
 po/pt.po          |   24 +-
 po/pt_BR.po       |   24 +-
 po/ro.po          |   24 +-
 po/ru.po          |   24 +-
 po/rw.po          |   24 +-
 po/si.po          |   24 +-
 po/sk.po          |   24 +-
 po/sl.po          |   24 +-
 po/sq.po          |   24 +-
 po/sr.po          |   24 +-
 po/sr@ije.po      |   24 +-
 po/sr@latin.po    |   24 +-
 po/sv.po          |   24 +-
 po/ta.po          |   24 +-
 po/te.po          |   24 +-
 po/th.po          |   24 +-
 po/tl.po          |   24 +-
 po/tr.po          |   24 +-
 po/tt.po          |   24 +-
 po/uk.po          |  946 +++++++++++++++++++-------------------
 po/vi.po          | 1311
 +++++++++++++++++++++++++----------------------------
 po/wa.po          |   24 +-
 po/xh.po          |   24 +-
 po/yi.po          |   24 +-
 po/zh_CN.po       |   24 +-
 po/zh_HK.po       |   24 +-
 po/zh_TW.po       |   24 +-
 92 files changed, 2209 insertions(+), 2266 deletions(-)

commit 5ba8043f1217b338e220f0c6b427e58e28c241e8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 11:15:49 2010 -0400

    Third try to get this right...

 docs/reference/gio/gio-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f6532620bc2439641b31a5df1d15489121fe918d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 11:05:28 2010 -0400

    And another one...

 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7c8a1081651d4d17823ac8c6a35d3a60c85c81ac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 11:05:02 2010 -0400

    Fix a typo

 gio/giomodule.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 55e44a67e6bc4bf09d4de85ad64627a02595d07f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 10:39:56 2010 -0400

    Bump version to 2.24.0

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 8ee5ded1e9098adb54005851c09e38cf24bb6a32
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 10:39:33 2010 -0400

    Updates

 NEWS | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 6cce575a25abc8157873d070bb317d66a225485a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 10:24:06 2010 -0400

    Fix a typo

 docs/reference/gio/gio-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 78b764f325c12a518e5bcc06771347da06d5ea68
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 10:19:57 2010 -0400

    More doc fixups

 gio/giomodule.h | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 81e2aa941bbfd02bf1b6235da12834d282ceda0c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 10:11:46 2010 -0400

    Some more doc cleanups

 docs/reference/gio/gio-sections.txt             |  2 ++
 docs/reference/gobject/gobject-sections.txt     |  2 +-
 docs/reference/gobject/tmpl/gobject-unused.sgml |  9 ++++++
 gobject/gtype.c                                 | 37
 ++++---------------------
 4 files changed, 17 insertions(+), 33 deletions(-)

commit c4ea7d58f78ca946fe84718386f9f888b5f93520
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 09:30:25 2010 -0400

    Small doc addition

 gio/gconverter.h | 1 +
 1 file changed, 1 insertion(+)

commit 431840a44e1ec799c974c7ea626c3164ec9dc2bb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 09:22:58 2010 -0400

    Add g_io_module_query to docs

 docs/reference/gio/gio-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit 6e77ee097100dc3fd695a6dad8811253cea23436
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 09:01:48 2010 -0400

    Correct the error handling in splice_stream_with_progress

    We need to get out of both loops, so a simple 'break' doesn't cut it.
    Bugs 613748 and 613923

 gio/gfile.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 409a3a61ece7bbdacbf2469eb7b86c3aa3c44653
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 26 08:01:51 2010 -0500

    GVariant: Stop lexing format strings at :

    Lets us parse this successfully: {%s: %s}.

 glib/gvariant-parser.c | 7 ++++---
 glib/tests/gvariant.c  | 1 +
 2 files changed, 5 insertions(+), 3 deletions(-)

commit df67a0662b0c20ab58f992fc114a48039e7fb9e0
Author: Maxim V. Dziumanenko <dziumanenko@gmail.com>
Date:   Fri Mar 26 11:42:19 2010 +0200

    Updated Ukrainian translation

 po/uk.po | 992
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 490 insertions(+), 502 deletions(-)

commit fd448dd7ceeb4be93f2cfea54a78e0564a3718f0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 23 10:01:53 2010 -0500

    Add doc note about read_until() inconsistency.

    See bug 584284 for more information.

 gio/gdatainputstream.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit a6c57591c0928fee3d3f026289972024bd2b00ec
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 23 09:17:15 2010 -0500

    Support &s as key of dict entry in format string

    Partial fix for bug 613618.

 glib/gvariant.c       | 26 ++++++++++++++++++--------
 glib/tests/gvariant.c |  7 +++++++
 2 files changed, 25 insertions(+), 8 deletions(-)

commit 816990a0118f33ae280846ac040803ce58979162
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 23 09:06:52 2010 -0500

    GVariant: Removing mentions of &a from docs

    This isn't supported anymore (for the time being...)

    Partial fix for bug 613618.

 docs/reference/glib/gvariant-varargs.xml | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

commit 35059f2c0415fbd521632d29ecb91e8c93545e0e
Author: Christian Dywan <christian@twotoasts.de>
Date:   Tue Mar 23 11:59:43 2010 +0100

    Correct typo of libray/ library in GObject tutorial

    Fixes bug #613667

 docs/reference/gobject/tut_gtype.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ace9a25fb39781a01a78c8e9aa1c58a51224e8b8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 22 11:59:08 2010 -0500

    Bug 613601 - buglet in dup_close_on_exec_fd()

    Fix copy/paste error and 'or' FD_CLOEXEC into the existing flags
    instead
    of just setting it outright.

 gio/gunixfdlist.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 440713e393cf99e29f716f5f634d4bc4ce0e281c
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Mar 22 15:53:47 2010 +0200

    Filter out gatomic-gcc.c from the VS project sources

    Instead, explicitly include gatomic.c.

 build/win32/vs9/glib.vcprojin | 1 +
 glib/Makefile.am              | 6 ++++--
 2 files changed, 5 insertions(+), 2 deletions(-)

commit 365fd70f263b99646cef7a5335282fd3f1efb520
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Mar 22 15:33:38 2010 +0200

    Make config.h.win32 match what the configure script produces

 config.h.win32.in | 76
 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 73 insertions(+), 3 deletions(-)

commit 580ecb32d9af4a7c8a00076a23d82d9729131361
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Mon Mar 22 12:34:25 2010 +0100

    Updated Basque language

 po/eu.po | 92
 ++++++++++++++++++++++++++--------------------------------------
 1 file changed, 37 insertions(+), 55 deletions(-)

commit e2434fd2d659f976febc3abe08abe82149447d46
Author: Clytie <pearl@clytie-siddalls-macbook-pro.local>
Date:   Mon Mar 22 21:33:36 2010 +1030

    Updated Vietnamese translation

 po/vi.po | 1454
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 715 insertions(+), 739 deletions(-)

commit db83dd27c571e34e2974a4cff560fdfb255c2bf2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 20:12:18 2010 -0500

    Drop {  } for favour of { 0, }.

 glib/gvariant-parser.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 468bbbfce1736259ae75bd27847b5b25332ada5c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 20:07:45 2010 -0500

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0afc140712a7c6b7cf2179626370b33ca930dea2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 20:06:39 2010 -0500

    2.23.6

 NEWS                                      |   41 +
 docs/reference/glib/tmpl/glib-unused.sgml |   67 ++
 docs/reference/glib/tmpl/macros_misc.sgml |    5 +-
 docs/reference/glib/tmpl/version.sgml     |   68 --
 po/af.po                                  |  951 ++++++++++++-----------
 po/am.po                                  |   80 +-
 po/ar.po                                  |   80 +-
 po/as.po                                  |   80 +-
 po/ast.po                                 |   80 +-
 po/az.po                                  |   80 +-
 po/be.po                                  |   80 +-
 po/be@latin.po                            |   80 +-
 po/bg.po                                  |   80 +-
 po/bn.po                                  |   80 +-
 po/bn_IN.po                               |   80 +-
 po/bs.po                                  |   80 +-
 po/ca.po                                  |   80 +-
 po/ca@valencia.po                         |   80 +-
 po/cs.po                                  |  942 ++++++++++++-----------
 po/cy.po                                  |   80 +-
 po/da.po                                  |   80 +-
 po/de.po                                  |   80 +-
 po/dz.po                                  |   80 +-
 po/el.po                                  |  942 ++++++++++++-----------
 po/en@shaw.po                             |   80 +-
 po/en_CA.po                               |   80 +-
 po/en_GB.po                               |   80 +-
 po/eo.po                                  |   80 +-
 po/es.po                                  |   80 +-
 po/et.po                                  |   80 +-
 po/eu.po                                  |   80 +-
 po/fa.po                                  |   80 +-
 po/fi.po                                  |  952 ++++++++++++-----------
 po/fr.po                                  |   80 +-
 po/ga.po                                  |   80 +-
 po/gl.po                                  |  951 ++++++++++++-----------
 po/gu.po                                  |   80 +-
 po/he.po                                  |   80 +-
 po/hi.po                                  |   80 +-
 po/hr.po                                  |   80 +-
 po/hu.po                                  |   80 +-
 po/hy.po                                  |   80 +-
 po/id.po                                  |   80 +-
 po/is.po                                  |   80 +-
 po/it.po                                  |   80 +-
 po/ja.po                                  |   80 +-
 po/ka.po                                  |   80 +-
 po/kn.po                                  |   80 +-
 po/ko.po                                  |   80 +-
 po/ku.po                                  |   80 +-
 po/lt.po                                  |   80 +-
 po/lv.po                                  |   80 +-
 po/mai.po                                 |   80 +-
 po/mg.po                                  |   80 +-
 po/mk.po                                  |   80 +-
 po/ml.po                                  |   80 +-
 po/mn.po                                  |   80 +-
 po/mr.po                                  |   80 +-
 po/ms.po                                  |   80 +-
 po/nb.po                                  |   80 +-
 po/nds.po                                 | 1187
 +++++++++++++----------------
 po/ne.po                                  |   80 +-
 po/nl.po                                  |   80 +-
 po/nn.po                                  |   80 +-
 po/oc.po                                  |   80 +-
 po/or.po                                  |   80 +-
 po/pa.po                                  |  970 +++++++++++------------
 po/pl.po                                  |   80 +-
 po/ps.po                                  |   80 +-
 po/pt.po                                  |   80 +-
 po/pt_BR.po                               |   80 +-
 po/ro.po                                  |  948 +++++++++++------------
 po/ru.po                                  |   80 +-
 po/rw.po                                  |   80 +-
 po/si.po                                  |   80 +-
 po/sk.po                                  |   80 +-
 po/sl.po                                  |   80 +-
 po/sq.po                                  |   80 +-
 po/sr.po                                  |  950 ++++++++++++-----------
 po/sr@ije.po                              |   80 +-
 po/sr@latin.po                            |  961 ++++++++++++-----------
 po/sv.po                                  |   80 +-
 po/ta.po                                  |   80 +-
 po/te.po                                  |   80 +-
 po/th.po                                  |   80 +-
 po/tl.po                                  |   80 +-
 po/tr.po                                  |   80 +-
 po/tt.po                                  |   80 +-
 po/uk.po                                  |   80 +-
 po/vi.po                                  |   80 +-
 po/wa.po                                  |   80 +-
 po/xh.po                                  |   80 +-
 po/yi.po                                  |   80 +-
 po/zh_CN.po                               |   80 +-
 po/zh_HK.po                               |   80 +-
 po/zh_TW.po                               |   80 +-
 96 files changed, 8192 insertions(+), 8303 deletions(-)

commit 5620f96305ee276ac758de989589a93de89ed40a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 14:17:21 2010 -0500

    silence some false-alarm uninitialised warnings

 glib/gvariant-parser.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit 6f330383974bb235d7050ebef61426541823c33a
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 14:04:07 2010 -0500

    gtk-doc fixups

 docs/reference/glib/glib-sections.txt       | 2 +-
 docs/reference/gobject/gobject-sections.txt | 2 ++
 glib/ghash.c                                | 4 ++--
 glib/gvariant-parser.c                      | 7 +++++++
 4 files changed, 12 insertions(+), 3 deletions(-)

commit c5a1c95b1f991db6700a204e5d41c8cc650c7d42
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 13:46:09 2010 -0500

    GVariant docs fixes

 glib/gvariant-parser.c | 16 +++++++++++++++-
 glib/gvariant.h        |  6 +++---
 2 files changed, 18 insertions(+), 4 deletions(-)

commit 5c419c300b43b4e3ac462761dda4360ed1c5de9b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 13:07:36 2010 -0500

    gitignore for win32 build stuff

 .gitignore                 | 1 +
 build/win32/vs9/.gitignore | 3 +++
 2 files changed, 4 insertions(+)

commit bf4dbdbf0e1a3ac4349980942b9e91056ce7e448
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 12:31:46 2010 -0500

    merge GVariant parser

 docs/reference/glib/glib-sections.txt |    7 +
 glib/Makefile.am                      |    1 +
 glib/glib.symbols                     |    7 +
 glib/gvariant-parser.c                | 2185
 +++++++++++++++++++++++++++++++++
 glib/gvariant.c                       |   28 +-
 glib/gvariant.h                       |   13 +
 glib/tests/gvariant.c                 |  249 +++-
 7 files changed, 2473 insertions(+), 17 deletions(-)

commit 2a209cb2516999c4d2f08368c720f7506acde9a5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 21 12:54:36 2010 -0500

    make check / makedistcheck fixes

 configure.in            | 1 -
 gobject/gobject.symbols | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

commit 3369548130bdd02534f2a6c6e7baa1f29375a41d
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Mar 21 16:54:11 2010 +0200

    Add new headers to be installed the VS "install" project

    Yeah, we should generate the list of headers to install from the
    corresponding Makefile.am files, like the lists of source files to
    compile.

 build/win32/vs9/glib.vsprops | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 226cc663e40606e9749a368e9d2b2e61d9a9d532
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Mar 21 16:11:49 2010 +0200

    Avoid much of duplication in lists of source files

    Don't keep the lists of source files for libglib, libgobject and
    libgio in the VS project files in addition to the canonical location,
    the corresponding Makefile.am files.

    Instead, generate the corresponding .vcproj files at make dist time
    using the C preprocessor, from template files called .vcprojin. We
    still list explicitly in the .vcprojin files some of the
    Windows-specific source files, and the sources files of gnulib and
    pcre.

 build/win32/vs9/Makefile.am                        |   3 +
 build/win32/vs9/README.txt                         |   3 +-
 build/win32/vs9/gio.vcproj                         | 608
 ---------------------
 build/win32/vs9/gio.vcprojin                       | 234 ++++++++
 build/win32/vs9/{glib.vcproj => glib.vcprojin}     | 330 +----------
 .../win32/vs9/{gobject.vcproj => gobject.vcprojin} |  65 +--
 gio/Makefile.am                                    |  11 +-
 glib/Makefile.am                                   |  11 +-
 gobject/Makefile.am                                |  11 +-
 9 files changed, 299 insertions(+), 977 deletions(-)

commit 504b8b8f0125dcba530d4f34c4beaaa129cc5d85
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Mar 21 14:50:45 2010 +0200

    Avoid struct stat issues with MSVC

 gio/giomodule.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 28b025de962a798fa7a9fb9adbfdfcc4852fddec
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Mar 21 13:33:44 2010 +0200

    Drop empty Tool elements from the project files for clarity

    Makes the files appear a bit simpler when edited manually.

 build/win32/vs9/gio.vcproj                         | 12 ------------
 build/win32/vs9/glib-genmarshal.vcproj             | 12 ------------
 build/win32/vs9/glib.vcproj                        | 12 ------------
 build/win32/vs9/gmodule.vcproj                     | 12 ------------
 build/win32/vs9/gobject.vcproj                     | 12 ------------
 build/win32/vs9/gspawn-win32-helper-console.vcproj | 12 ------------
 build/win32/vs9/gspawn-win32-helper.vcproj         | 12 ------------
 build/win32/vs9/gthread.vcproj                     | 12 ------------
 build/win32/vs9/testglib.vcproj                    | 12 ------------
 9 files changed, 108 deletions(-)

commit 2ab76c5b3610faa20dfae2550688ab0d6620b29b
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sun Mar 21 11:22:06 2010 +0200

    Make the GVariant code compile with a non-gcc compiler

    In particular, tested with Microsoft Visual C 2008.

 glib/gvariant-core.c       |  2 +-
 glib/gvariant-serialiser.c | 28 ++++++++++++++--------------
 glib/gvariant.c            |  8 ++++++--
 glib/gvarianttypeinfo.c    | 22 ++++++++++++----------
 4 files changed, 33 insertions(+), 27 deletions(-)

commit dc51eff2a9ca234fbb09c7b94c4643ea3750d80d
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sat Mar 20 13:32:37 2010 +0200

    Update with new source files and dependencies

 build/win32/vs9/gio.vcproj     | 36 ++++++++++++++++++++++++++++++++----
 build/win32/vs9/glib.sln       |  1 +
 build/win32/vs9/glib.vcproj    | 21 +++++++++++++++++++++
 build/win32/vs9/gobject.vcproj |  4 ++++
 4 files changed, 58 insertions(+), 4 deletions(-)

commit 782de94c587cc3eed53653443439b62aaee19200
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sat Mar 20 13:31:55 2010 +0200

    Drop the unmaintained vs8 project files from dist

 build/win32/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit 77cc740243e9f55603d833f129e999f8824a18f1
Author: Tommi Vainikainen <thv@iki.fi>
Date:   Sat Mar 20 00:01:00 2010 +0200

    Updated Finnish translation

 po/fi.po | 1052
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 512 insertions(+), 540 deletions(-)

commit 34d0db361ea514c026c54f14853120d601e1d0b5
Author: A S Alam <aalam@users.sf.net>
Date:   Fri Mar 19 08:18:41 2010 +0530

    update Punjabi Translation

 po/pa.po | 1041
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 512 insertions(+), 529 deletions(-)

commit bedaa8027537378c8b7fec68acb422eac44f240e
Author: Nikos Bakaoukas <nikolaos.x1@gmail.com>
Date:   Fri Mar 19 00:10:07 2010 +0200

    Updated Greek translation for glib

 po/el.po | 1117
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 559 insertions(+), 558 deletions(-)

commit 6243b1eb5f8f55abc8c05a18d7dfbdd7968fab50
Author: Dumitru Mișu Moldovan <dumol@gnome.ro>
Date:   Thu Mar 18 22:47:55 2010 +0200

    Updated Romanian translation

 po/ro.po | 964
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 482 insertions(+), 482 deletions(-)

commit 3628f7815d13d8b495cd27ce49f3c15372f23cfb
Author: Nils-Christoph Fiedler <fiedler@medienkompanie.de>
Date:   Thu Mar 18 13:54:17 2010 +0100

    Updated LowGerman translation

 po/nds.po | 98
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 49 insertions(+), 49 deletions(-)

commit 41383b303c0bb54da68bbf5500b5e2d9e552ab69
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Mar 17 15:11:00 2010 +0100

    Bug 612502 - Add support for class private data

    This adds the two new functions g_type_add_class_private()
    and g_type_class_get_private() and a convenience macro
    for the getter G_TYPE_CLASS_GET_PRIVATE().

 gobject/gtype.c | 118
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 gobject/gtype.h |  21 ++++++++++
 2 files changed, 137 insertions(+), 2 deletions(-)

commit 2295ba857f09fa58c6e61ec4147536021055bbf6
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Mar 16 16:34:50 2010 +0100

    The fallback parameter to g_convert_with_fallback() should be const

    This patch makes it so.

 glib/gconvert.c | 2 +-
 glib/gconvert.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 751feb916ab2f0cd74839233101fc0b9d2fb994c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 15 17:45:02 2010 -0400

    Bug 612502 - build fails on glib/tests/gvariant.c

    Fix two problems caught by Tim Rice.

      - non-constant expression used as array size
      - arithmetic on void *

 glib/tests/gvariant.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 1953b4087f2852e43c0a4dd46bfbd6228135cf70
Author: Christian Persch <chpe@gnome.org>
Date:   Sun Feb 7 13:39:10 2010 +0100

    Use static assert over runtime assert if possible

    We can test the these at compile time. Bug #609231.

 glib/gmappedfile.c | 19 ++++++++++---------
 glib/gvariant.c    | 13 ++++++++-----
 2 files changed, 18 insertions(+), 14 deletions(-)

commit 24aeaebc48a5636c2f5391de646225d1e471f7ba
Author: Nils-Christoph Fiedler <fiedler@medienkompanie.de>
Date:   Mon Mar 15 14:18:48 2010 +0100

    Added LowGerman translation

 po/nds.po | 2135
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 2135 insertions(+)

commit 2b1b1563a0119de94d2ec0d05f1db493872852dc
Author: Nils-Christoph Fiedler <fiedler@medienkompanie.de>
Date:   Mon Mar 15 14:18:43 2010 +0100

    Added LowGerman translation

 po/LINGUAS | 1 +
 1 file changed, 1 insertion(+)

commit 7e4d88b290589a2a91d90b084751002c246564d6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 14 22:27:06 2010 -0400

    gvariant test: Remove unused variable

 glib/tests/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f16c70c16ec90be209fdaa120d2810f4128f2f0
Author: Petr Kovar <pknbe@volny.cz>
Date:   Mon Mar 15 02:30:27 2010 +0100

    Update Czech translation

 po/cs.po | 948
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 478 insertions(+), 470 deletions(-)

commit 9dea0253a3ded0e32daa33f11850797109018326
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 14 15:55:48 2010 -0400

    GVariant: add loading, byteswapping, normalisation

 docs/reference/glib/glib-sections.txt |   4 +
 glib/glib.symbols                     |   5 +
 glib/gvariant-core.c                  |  61 +++++++++-
 glib/gvariant.c                       | 207
 ++++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |  10 ++
 glib/tests/gvariant.c                 |  72 ++++++++++++
 6 files changed, 355 insertions(+), 4 deletions(-)

commit 1ac590b7f728d4a029a354be9aad24863badba02
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 14 13:04:43 2010 -0400

    GBuffer: very small cosmetic fix to header file

 glib/gbuffer.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 056feef60b79e867190697f2d26e3ac7edf903a5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 13 19:55:56 2010 -0500

    GVariantIter: expand the size of the dummy struct

    Will allow for some nice tricks in the future.

 glib/gvariant.c | 4 ++--
 glib/gvariant.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit f552689058c27ccebaf4271c4a5afc4197b74a8f
Author: Colin Walters <walters@verbum.org>
Date:   Sat Mar 13 18:11:31 2010 -0500

    [GDesktopAppInfo] New function g_desktop_app_info_get_filename

    This allows access to the full file path, where possible.

    https://bugzilla.gnome.org/show_bug.cgi?id=612832

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gdesktopappinfo.c               | 17 +++++++++++++++++
 gio/gdesktopappinfo.h               |  2 ++
 gio/gio.symbols                     |  1 +
 4 files changed, 21 insertions(+)

commit 1be8ad35144d34de99b6153cbbfa8f9add46888b
Author: Thomas Kristensen <thomas.k.kristensen@tandberg.com>
Date:   Sun Mar 14 11:47:17 2010 +0200

    Close the socket event in finalizer instead of in close method

    There might be a GSource attached to a GMainContext, about to be
    removed by a
    pending cancellation. Deleting the handle too early will trigger a
    g_warning in
    the "select()" call in GMainContext. Attached patch fixes this
    by deferring
    destruction of WSAEVENT object until GSocket's finalize().

    Patch from bug #612702.

    Signed-off-by: Tor Lillqvist <tml@iki.fi>

 gio/gsocket.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

commit 6c5d2798f600a0536306e1c67b2e26e2c6eff006
Author: Fran Diéguez <frandieguez@ubuntu.com>
Date:   Sat Mar 13 21:00:44 2010 +0100

    Update Galician translation

 po/gl.po | 974
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 480 insertions(+), 494 deletions(-)

commit 31cf766e647b46cd28cc6d2405c729d06063680d
Author: Friedel Wolff <friedel@translate.org.za>
Date:   Sat Mar 13 20:48:05 2010 +0100

    Add Afrikaans translation

 po/LINGUAS |    1 +
 po/af.po   | 2015
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 2016 insertions(+)

commit 62a133f55dcd5626e9583aabc2d95926936a8475
Author: Javier Jardón <jjardon@gnome.org>
Date:   Fri Mar 12 20:37:04 2010 +0100

    Improve the documentation about single include exceptions

    Also, reenable the compiling Glib application section
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=612736

 docs/reference/glib/compiling.sgml | 9 +++++++++
 docs/reference/glib/glib-docs.sgml | 1 +
 2 files changed, 10 insertions(+)

commit 5b19345246aa179788b09b7a82702e79f9d815d8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 12 15:38:47 2010 -0500

    Bug 610858 - gvariant test fails sometimes

    NaN floating point values get mangled when passing across the function
    call ABI on x86 so avoid using them to get rid of spurious failures.

    Reported by Christian Persch and reliably reproduced by Emilio Pozuelo
    Monfort.

 glib/tests/gvariant.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit a57522deae75264bade35eae8826cda2771530c6
Author: Tor Lillqvist <tml@iki.fi>
Date:   Fri Mar 12 10:42:43 2010 +0200

    The SO_KEEPALIVE value seems to actually be a char on Windows

    Do still use a BOOL variable, but initialize it to FALSE before the
    getsockopt(), and drop the assertion on Windows. Should fix bug

 gio/gsocket.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 1caaa4f591ead74f0a146d73155f9cfb65899bed
Author: Javier Jardón <jjardon@gnome.org>
Date:   Wed Mar 10 05:06:50 2010 +0100

    [docs] Don't reference deprecated functions

    Use g_io_add_watch(), g_io_add_watch_full() and
    g_source_remove() instead the deprecated gtk_input_add_full(),
    gtk_input_remove(), gdk_input_add(), gdk_input_add_full() and
    gdk_input_remove()

 glib/giochannel.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 95d42761a9fff5813db46a41bc2ec6c86a2eb947
Author: Miloš Popović <mpopovic@src.gnome.org>
Date:   Tue Mar 9 20:29:43 2010 +0100

    Updated Serbian translations

 po/sr.po       | 1017
 +++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 1028
 ++++++++++++++++++++++++++++----------------------------
 2 files changed, 1013 insertions(+), 1032 deletions(-)

commit a85b9c4badf22777b1b099befcd9e033afa45dbf
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Mar 9 13:34:00 2010 -0500

    'default: g_assert_not_reached();' to silence GCC

    Closes bug #612327 reported by Claudio Saavedra.

 glib/gvariant-serialiser.c | 3 +++
 1 file changed, 3 insertions(+)

commit 89fa967ba1c72081a1698d35e6c10c99190b612d
Author: Dagobert Michelsen <dam@opencsw.org>
Date:   Tue Mar 9 15:02:57 2010 +0100

    Use G_STRFUNC instead of explicit gcc-only __PRETTY_FUNC__

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c69e6fd837cb92d0c7050d8ea2d0f98b6f70fbe8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Mar 8 14:28:23 2010 -0500

    Cosmetic

 glib/gmem.h | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit f6166be24d6c43ccbaf80439aefe8eff83e7843d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 8 11:53:36 2010 -0500

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c58ce0e60c1a243df6326c26cf7d255d3af4ab2d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 8 11:48:14 2010 -0500

    2.23.5

 NEWS              |   50 ++
 po/am.po          |   93 ++--
 po/ar.po          |   98 ++--
 po/as.po          |   98 ++--
 po/ast.po         |   98 ++--
 po/az.po          |   98 ++--
 po/be.po          |  102 ++--
 po/be@latin.po    |  102 ++--
 po/bg.po          |  942 ++++++++++++++++++-------------------
 po/bn.po          |   98 ++--
 po/bn_IN.po       |   98 ++--
 po/bs.po          |   98 ++--
 po/ca.po          |  952 +++++++++++++++++++------------------
 po/ca@valencia.po |   98 ++--
 po/cs.po          |   97 ++--
 po/cy.po          |   98 ++--
 po/da.po          |  953 +++++++++++++++++++------------------
 po/de.po          |  955 +++++++++++++++++++------------------
 po/dz.po          |   98 ++--
 po/el.po          |   98 ++--
 po/en@shaw.po     |   98 ++--
 po/en_CA.po       |   98 ++--
 po/en_GB.po       |  942 ++++++++++++++++++-------------------
 po/eo.po          |   97 ++--
 po/es.po          |  951 +++++++++++++++++++------------------
 po/et.po          |  477 ++++++++++++++++++-
 po/eu.po          | 1005 ++++++++++++++++++++-------------------
 po/fa.po          |   98 ++--
 po/fi.po          |   98 ++--
 po/fr.po          |  950 +++++++++++++++++++------------------
 po/ga.po          |   94 ++--
 po/gl.po          |   97 ++--
 po/gu.po          |   98 ++--
 po/he.po          |   98 ++--
 po/hi.po          |   98 ++--
 po/hr.po          |   98 ++--
 po/hu.po          | 1021 ++++++++++++++++++++--------------------
 po/hy.po          |   94 ++--
 po/id.po          |   98 ++--
 po/is.po          |   98 ++--
 po/it.po          |  955 +++++++++++++++++++------------------
 po/ja.po          |   98 ++--
 po/ka.po          |   98 ++--
 po/kn.po          |   98 ++--
 po/ko.po          |   97 ++--
 po/ku.po          |   93 ++--
 po/lt.po          |  942 ++++++++++++++++++-------------------
 po/lv.po          |   97 ++--
 po/mai.po         |   98 ++--
 po/mg.po          |   98 ++--
 po/mk.po          |   98 ++--
 po/ml.po          |   98 ++--
 po/mn.po          |   98 ++--
 po/mr.po          |   98 ++--
 po/ms.po          |   98 ++--
 po/nb.po          |  942 ++++++++++++++++++-------------------
 po/ne.po          |   98 ++--
 po/nl.po          |   98 ++--
 po/nn.po          |   98 ++--
 po/oc.po          |   93 ++--
 po/or.po          |   98 ++--
 po/pa.po          |   98 ++--
 po/pl.po          |  942 ++++++++++++++++++-------------------
 po/ps.po          |   94 ++--
 po/pt.po          |  952 +++++++++++++++++++------------------
 po/pt_BR.po       |  942 ++++++++++++++++++-------------------
 po/ro.po          |   97 ++--
 po/ru.po          |  942 ++++++++++++++++++-------------------
 po/rw.po          |   98 ++--
 po/si.po          |   98 ++--
 po/sk.po          |   98 ++--
 po/sl.po          | 1324
 +++++++++++++++++++++++++--------------------------
 po/sq.po          |   98 ++--
 po/sr.po          |   98 ++--
 po/sr@ije.po      |   98 ++--
 po/sr@latin.po    |   98 ++--
 po/sv.po          | 1353
 ++++++++++++++++++++++++++---------------------------
 po/ta.po          |   98 ++--
 po/te.po          |   98 ++--
 po/th.po          |   97 ++--
 po/tl.po          |   98 ++--
 po/tr.po          |   98 ++--
 po/tt.po          |   93 ++--
 po/uk.po          |   98 ++--
 po/vi.po          |   98 ++--
 po/wa.po          |   98 ++--
 po/xh.po          |   98 ++--
 po/yi.po          |   97 ++--
 po/zh_CN.po       |   98 ++--
 po/zh_HK.po       |  968 +++++++++++++++++++-------------------
 po/zh_TW.po       |  953 +++++++++++++++++++------------------
 91 files changed, 13883 insertions(+), 13260 deletions(-)

commit f9d8d70396978ae201ce79708f7cd69cf6f93399
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 8 11:29:27 2010 -0500

    gtk-doc: ignore gvariant-internal.h

 docs/reference/glib/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 929a2e1ae10083d647a77dd36c17071e7fac1593
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 8 11:25:37 2010 -0500

    Add gvariant-varargs.xml to the distribution

 docs/reference/glib/Makefile.am | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 6393ca443af7f588275aa6ee8b051bb1d41394e8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 8 10:54:23 2010 -0500

    distcheck: add gvariant-internal.h to SOURCES

 glib/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 75f761bcaa66c82d132c9e3d8cdfcb8ee0971eb6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Mar 8 10:30:59 2010 -0500

    GVariant variable arguments, tests, cleanups

    Merge GVariant variable arguments support and put it under tests.

    Also, remove the hack of the test case directly '#include'ing .c files
    from glib/.  Instead, create a non-installed gvariant-internal.h that
    the tests can include and make the symbols in it visible on the symbol
    table of the shared library.  These symbols (as they are present in no
    installed header files) are not part of the API of GLib.

    Increase test coverage in a few other areas.

 docs/reference/glib/glib-docs.sgml       |    1 +
 docs/reference/glib/glib-sections.txt    |   11 +
 docs/reference/glib/gvariant-varargs.xml |  987 +++++++++++++++++++++
 glib/glib.symbols                        |   48 +-
 glib/gvariant-internal.h                 |   49 ++
 glib/gvariant-serialiser.c               |    4 +
 glib/gvariant-serialiser.h               |    9 -
 glib/gvariant.c                          | 1397
 ++++++++++++++++++++++++++----
 glib/gvariant.h                          |   18 +
 glib/gvarianttypeinfo.c                  |   11 +-
 glib/gvarianttypeinfo.h                  |   10 +-
 glib/tests/gvariant.c                    |  773 ++++++++++++++++-
 12 files changed, 3110 insertions(+), 208 deletions(-)

commit 8cd5c94f42fb362e1620368e805d50e3804e7bc2
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Mar 8 12:03:40 2010 +0100

    Add pregenerated ids for TRASH_ORIG_PATH and TRASH_DELETION_DATE

    This fixes the build for me

 gio/gfileinfo-priv.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit fe4839dbb8358b65d19370114dc9d43cc71e6773
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Mar 8 10:51:11 2010 +0100

    Updated Polish translation

 po/pl.po | 951
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 479 insertions(+), 472 deletions(-)

commit 826abbefcee6c7f64ed8c21d9a2671f9cd0be089
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 8 00:36:00 2010 -0500

    Add defines for trash::orig-path and trash::deletion-date

    See bug 612107.

 gio/gfileinfo.c | 30 ++++++++++++++++--------------
 gio/gfileinfo.h | 24 ++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 14 deletions(-)

commit 96d105906ef267b687ee6fbe085a791f3b17afc6
Author: Priit Laes <plaes@plaes.org>
Date:   Mon Mar 8 00:16:23 2010 -0500

    Fix run-assert-msg-test to work with libtool-2.2.x.

 tests/run-assert-msg-test.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 0a51b58e0776f2d5a82a5346ab81fb50ee75f9f4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 8 00:12:33 2010 -0500

    Minor doc clarification

    Mention g_realloc() as a possible function to use with
    g_memory_output_stream_new(). Bug 612041.

 gio/gmemoryoutputstream.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 42f042d5fb381151a999e38740720e9244caa6da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Mar 8 00:04:11 2010 -0500

    Minor doc clarification

    Spell out that g_utf8_strlen() behaves like strlen() wrt. to
    termination. Bug 612040.

 glib/gutf8.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

commit 485077e9ce78ad2b55bdb471b57dc9fe21259922
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Mon Mar 8 02:31:12 2010 +0000

    Updated Portuguese translation

 po/pt.po | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

commit 9dd6c60fbfc742eb08a5b5b27986395ed439fbc1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Mar 7 17:42:25 2010 -0500

    Plug a memleak in g_io_modules_scan_all_in_directory

    ...and at the same time, fix a malloc<>g_free mismatch.
    Patch by Caolan McNamara, bug 611897

 gio/giomodule.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5f424088f5bdf041d5653f5f2aa310150155f58c
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Mar 7 11:49:58 2010 +0100

    Updated Spanish translation

 po/es.po | 963
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 484 insertions(+), 479 deletions(-)

commit a9d57e990b878d2b602b247dba676cd257426e23
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 7 03:02:08 2010 -0500

    .gitignore mem-overflow test

 glib/tests/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit dfcee5865b7c677db722640dec5e34a8e89b4d07
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Mar 7 02:15:37 2010 -0500

    gtk-doc: ignore GBuffer

 docs/reference/glib/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit a1b9743e1816c5269029e8ae2e21e8950c411f5c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Mar 6 23:21:27 2010 -0500

    Bug 608196 - Overflow-safe g_new family

    Remove the macros for the g_malloc_n family -- calls directly to those
    functions now always go directly to those functions.

    Reimplement the macros for g_new and friends.

    Remove the branch that checked for calling g_new() with a constant
    n_structs == 1.  With the struct size always known this case will
    now be
    caught under the case that does the inline multiplication and the
    multiplication by 1 will be optimised away.

 glib/gmem.c |  8 ------
 glib/gmem.h | 83
 ++++++++++++++++++++++++++-----------------------------------
 2 files changed, 35 insertions(+), 56 deletions(-)

commit 01ef92178b9978b7491bbb3397de9ee08e38af20
Author: Alexander Shopov <ash@contact.bg>
Date:   Sat Mar 6 20:22:49 2010 +0200

    Updated Bulgarian translation

 po/bg.po | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

commit 7fa6d67bdb3b4d467931d88e7c5ba38481df8bab
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sat Mar 6 13:34:27 2010 +0100

    Updated Catalan translation

 po/ca.po | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

commit 3d98c449b1638a4dc242279737c36fa3e37cb8ce
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Sat Mar 6 14:15:25 2010 +0200

    gsignal: improve g_signal_new docs.

    Using 0 for class_offset is only a means to be able to add signal
    when running
    out of slots in the lass structure.

 gobject/gsignal.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit fa32ee56109e295f3dae95c8bbdf98a99f1bc66e
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Sat Mar 6 13:36:38 2010 +0200

    docs: exchange "Subversion" with "source code repository"

    Fixes the outdated reference.

 docs/reference/gobject/tut_gsignal.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ada60fd83fdd4fa694d8d872ea7cbe14b09cbfcc
Author: Luca Ferretti <lferrett@gnome.org>
Date:   Sat Mar 6 01:05:40 2010 +0100

    Updated Italian translation

 po/it.po | 1036
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 518 insertions(+), 518 deletions(-)

commit bed0e3f14020bce9ea4eabfe846abb2b4cdfc83e
Author: Daniel Nylander <po@danielnylander.se>
Date:   Sat Mar 6 00:28:38 2010 +0100

    Updated Swedish translation

 po/sv.po | 1391
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 707 insertions(+), 684 deletions(-)

commit 54e830100de02d49d11842e9464511f160c8fbbc
Author: Fridrich Strba <fridrich.strba@bluewin.ch>
Date:   Fri Mar 5 23:15:45 2010 +0100

    Adding new defines first appeared in 2.22 into glibconfig.h.win32.in

 glibconfig.h.win32.in | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 0772298b9bc43af10ddb53f63e2c6faca6371a82
Author: Claude Paroz <claude@2xlibre.net>
Date:   Fri Mar 5 22:32:07 2010 +0100

    Updated French translation

 po/fr.po | 964
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 483 insertions(+), 481 deletions(-)

commit 6949099124ddd6bed660c146a42800402b5807ea
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Fri Mar 5 22:03:27 2010 +0100

    Updated Hungarian translation

 po/hu.po | 87
 ++++++++++++++++++++++++----------------------------------------
 1 file changed, 33 insertions(+), 54 deletions(-)

commit 0edd7cb8a10388e22cd6b3a37295a6ffddf7e693
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 5 15:52:38 2010 -0500

    undef the proper macros to avoid warning message

 glib/tests/mem-overflow.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a3420d8713d6b5425b80f30e5cb61e88bb9d46e2
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Mar 5 15:48:08 2010 -0500

    Add makegalias.pl dep on galias.h and co

 glib/Makefile.am | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4882be674326f85aaef479ba2aa6b63565f818b3
Author: Leonid Kanter <leon@asplinux.ru>
Date:   Fri Mar 5 15:49:12 2010 +0200

    update Russian translation

 po/ru.po | 81
 ++++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 51 insertions(+), 30 deletions(-)

commit 24768ebd8f3a792a091f5583ab301424f84d77d3
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Fri Mar 5 14:32:01 2010 +0100

    Updated Slovenian translation

 po/sl.po | 1338
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 697 insertions(+), 641 deletions(-)

commit 7026365db22a12b7606bf1e2defac803b359cf68
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 5 06:10:01 2010 -0500

    g_variant_get_strv: support objects and signatures

 glib/gvariant.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 118d59ba15324b49ab9f8b61332364148102d3fd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Mar 5 06:09:38 2010 -0500

    GVariant: fix some refcounting issues

 glib/gvariant.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 3297185f3962bd73714c376c101c891897b999b4
Author: Ivar Smolin <okul@linux.ee>
Date:   Fri Mar 5 13:08:05 2010 +0200

    Estonian translation updated

 po/et.po | 489
 ++-------------------------------------------------------------
 1 file changed, 10 insertions(+), 479 deletions(-)

commit 6c58d5f8aeb420bd95caaf6ec62be60b47c819b7
Author: Gintautas Miliauskas <gintautas@miliauskas.lt>
Date:   Fri Mar 5 11:16:33 2010 +0200

    Updated Lithuanian translation.

 po/lt.po | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

commit e0fff9a057dffc795146d5baa9a9e186587344b5
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Thu Mar 4 23:54:07 2010 +0000

    Updated British English translation

 po/en_GB.po | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

commit e583d05374fc26de0e52ea20722254cdb081b23c
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Mar 4 22:57:03 2010 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1b1af2fa240f96fda5361784d1d80a94fae5752c
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Thu Mar 4 22:56:37 2010 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit fe3c945a3fe15b6d4b1177c20f88ac7441d5dca9
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Thu Mar 4 22:02:43 2010 +0100

    Updated German translation

 po/de.po | 128
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 70 insertions(+), 58 deletions(-)

commit 983fd35c7c38ab54b2e39e25102990184377fbb3
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Thu Mar 4 21:31:54 2010 +0100

    Updated Basque language

 po/eu.po | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 976cce06fc863496a595240ceb6af07b90d41313
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Thu Mar 4 17:13:56 2010 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 958
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 484 insertions(+), 474 deletions(-)

commit 7504095de09756efec4bc39225986c5db10d6ace
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Thu Mar 4 17:03:13 2010 -0300

    Mark a string for translation

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 766183c079192d8fb71044770456c8c9662bd5db
Author: Claudio Saavedra <csaavedra@igalia.com>
Date:   Thu Mar 4 19:18:12 2010 +0200

    Remove GUtf8InputStream leftover in docs

    Fixes build.

 docs/reference/gio/gio.types | 1 -
 1 file changed, 1 deletion(-)

commit f3425cc38dae31b815db1038dcaac29848840409
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Mar 4 10:38:31 2010 -0500

    Fix galias build breakage with g_malloc_n macros

 glib/gmem.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

commit c423c3a9c951a64b2c3d3eea67e15fce752a2bd0
Author: Christian Dywan <christian@twotoasts.de>
Date:   Thu Mar 4 11:02:31 2010 +0100

    Add licence headers to gnativevolumemonitor.c/h

    Fixes bug #609531

 gio/gnativevolumemonitor.c | 22 ++++++++++++++++++++++
 gio/gnativevolumemonitor.h | 22 ++++++++++++++++++++++
 2 files changed, 44 insertions(+)

commit 343cbf25c7104f782b9d0070cb623c7605dab646
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Feb 2 23:48:42 2010 -0500

    Bug 608196 - Overflow-safe g_new family

    New public API:

    g_malloc_n
    g_malloc0_n
    g_realloc_n
    g_try_malloc_n
    g_try_malloc0_n
    g_try_realloc_n

 docs/reference/glib/glib-sections.txt |   6 ++
 docs/reference/glib/tmpl/memory.sgml  |  82 +++++++++++++++++++++++++-
 glib/glib.symbols                     |   6 ++
 glib/gmem.c                           |  95
 +++++++++++++++++++++++++++++-
 glib/gmem.h                           |  92 ++++++++++++++++++++++++-----
 glib/tests/Makefile.am                |   3 +
 glib/tests/mem-overflow.c             | 108
 ++++++++++++++++++++++++++++++++++
 glib/tests/printf.c                   |   2 +-
 glib/tests/rand.c                     |   2 +-
 9 files changed, 375 insertions(+), 21 deletions(-)

commit 373f3d8b52ca8b08de0af6062eb284c2a7a856d9
Author: Felix Riemann <friemann@gnome.org>
Date:   Wed Feb 24 12:54:17 2010 +0100

    Fix API docs for GZlibCompressor and GZlibDecompressor

    Corrects the general descriptions and makes the signals and
    implemented
    interfaces appear.

 docs/reference/gio/gio-sections.txt | 4 ++--
 gio/gzlibcompressor.c               | 4 ++--
 gio/gzlibdecompressor.c             | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

commit 560f5187432fc890725c5bb5c74a0997affb888c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Mar 3 11:36:52 2010 -0500

    GVariantBuilder: loosen assertion check

    Don't check that a GVariantBuilder is fully-valid for use when
    performing refcounting operations, as these operations may be occuring
    after the builder has already been cleared.

 glib/gvariant.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 9a886135c80233a5a40071189df7693151201954
Author: Dan Winship <danw@gnome.org>
Date:   Wed Mar 3 08:35:32 2010 -0500

    GResolver: fix Windows 2000 workaround

    Move the <wspiapi.h> include from gwin32resolver.c to
    gnetworkingprivate.h, since gthreadedresolver.c needs it too.

    https://bugzilla.gnome.org/show_bug.cgi?id=611696

 gio/gnetworkingprivate.h | 8 ++++++++
 gio/gwin32resolver.c     | 8 --------
 2 files changed, 8 insertions(+), 8 deletions(-)

commit 67ba99f7abfba0d24719950b55e88024acfc91ae
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Mar 3 13:49:10 2010 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 955
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 479 insertions(+), 476 deletions(-)

commit fe6e278a870c7b2a3e76ba9ef17a9b99a4c0c474
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Mar 3 03:37:37 2010 -0500

    GVariantBuilder: allow for stack allocation

 docs/reference/glib/glib-sections.txt |   2 +
 glib/glib.symbols                     |   6 +-
 glib/gvariant.c                       | 553
 ++++++++++++++++++++--------------
 glib/gvariant.h                       |  13 +-
 glib/tests/gvariant.c                 |  13 +-
 5 files changed, 352 insertions(+), 235 deletions(-)

commit bb0808638c5b4bac11355bc94434d35e76b53364
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Tue Mar 2 17:18:52 2010 +0100

    Updated Hungarian translation

 po/hu.po | 1030
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 507 insertions(+), 523 deletions(-)

commit 2927c5e0c628dfe97f2649661db703a30dbebd8b
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Tue Mar 2 12:39:33 2010 +0100

    Updated Basque language

 po/eu.po | 1035
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 504 insertions(+), 531 deletions(-)

commit 277b9717da6261d089772684669bc55c5a0e911b
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Mon Mar 1 10:24:43 2010 +0100

    Remove utf8inputstream leftovers in a few other places

 docs/reference/gio/gio-docs.xml     |  1 -
 docs/reference/gio/gio-sections.txt | 18 ------------------
 gio/giotypes.h                      |  1 -
 po/POTFILES.in                      |  1 -
 4 files changed, 21 deletions(-)

commit 2bfddf162e686c750beb2af2e4cb2e8d8d523440
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Mar 1 09:56:02 2010 +0100

    Remove GUtf8InputStream for now

    It turns out that the way this worked did not work out for the current
    main usecase (gedit) due to issues with how this is best integrated
    with GtkTextView. So, in order to not have to support an unused
    non-ideal
    API forever we remove this before its been in a stable release.

    The basic feature seems to have some utility though, so we hope for it
    to eventually return in a better form.

 gio/Makefile.am               |   2 -
 gio/gio.h                     |   1 -
 gio/gio.symbols               |   7 -
 gio/gutf8inputstream.c        | 327
 ------------------------------------------
 gio/gutf8inputstream.h        |  80 -----------
 gio/tests/Makefile.am         |   4 -
 gio/tests/utf8-input-stream.c | 252 --------------------------------
 7 files changed, 673 deletions(-)

commit c47e1949e215126c70503843ebb7759449160212
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sun Feb 28 18:55:54 2010 +0100

    Updated Catalan translation

 po/ca.po | 1009
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 506 insertions(+), 503 deletions(-)

commit 92d4cfbd1584847ea689146c57f3c79282813ae3
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Feb 27 20:40:04 2010 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 965
 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 950
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 962 insertions(+), 953 deletions(-)

commit a3c7406cce2af55aea4ffdf1ceb8b828f5ef3219
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 25 18:09:23 2010 -0500

    GVariantTypeInfo: fix thread safety bug

    Issue caught by Michael Meeks.  This patch based on his.

    GVariantTypeInfo was dropping the reference count on the TypeInfo
    structure before removing it from the hash table.  This means that
    another thread could come along and grab the value from the hash table
    in the meantime.

    Solve this by holding the lock on the table before dropping the
    reference.

    Also: move the hash table initialisation inside of the lock to remove
    the standard double-initialisation race plus a more insidious issue
    caused by the fact that we free the hash table once it becomes empty.

 glib/gvarianttypeinfo.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 43b6c2b8f5a9000373b448eca7edea2e3dad4248
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Thu Feb 25 02:03:17 2010 +0000

    Updated Portuguese translation

 po/pt.po | 1030
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 514 insertions(+), 516 deletions(-)

commit 24decf7658368ebcae012d82224627668485137a
Author: Bruce Cowan <bcowan@fastmail.co.uk>
Date:   Wed Feb 24 15:28:15 2010 +0000

    Updated British English translation

 po/en_GB.po | 1014
 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 508 insertions(+), 506 deletions(-)

commit cf07bb353433234268b599d11afc0b0245fdddae
Author: Leonid Kanter <leon@asplinux.ru>
Date:   Wed Feb 24 10:49:16 2010 +0200

    Update Russian translation by Yuri Kozlov <yuray@komyakino.ru>

 po/ru.po | 1188
 ++++++++++++++++++++++++++++----------------------------------
 1 file changed, 538 insertions(+), 650 deletions(-)

commit a495a2122d404fdf2c6cf5e3aa0524cf0437ec30
Author: Saleem Abdulrasool <compnerd@compnerd.org>
Date:   Tue Feb 23 15:28:51 2010 -0800

    include gio.h, not giotypes.h

    Including giotypes.h in gfiledescriptor.h causes a compilation
    failure for users
    of the header as giotypes.h may not be included directly.

 gio/gfiledescriptorbased.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8413dfda9b71ff671a92df2c1d3451fb7c0b2085
Author: Gintautas Miliauskas <gintautas@miliauskas.lt>
Date:   Tue Feb 23 23:45:09 2010 +0200

    Updated Lithuanian translation.

 po/lt.po | 1179
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 587 insertions(+), 592 deletions(-)

commit ec0e3089c0e80219ad6e7806b27363ac9c990462
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Tue Feb 23 22:25:51 2010 +0100

    Updated Danish translation

 po/da.po | 1018
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 510 insertions(+), 508 deletions(-)

commit 1903c229a267611a2624409371390a472d97ad4c
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Tue Feb 23 22:23:36 2010 +0100

    Updated German translation

 po/de.po | 1013
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 505 insertions(+), 508 deletions(-)

commit 2940285002c3504fb49fb7388d2265b464c92dcc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 23 12:49:08 2010 -0500

    .gitignore gcov output (*.gcov, *.gcno, *.gcda)

 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

commit cecf61d1c3e8ff07b1595641bad85fb9f9b03ddf
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Mon Dec 7 11:23:55 2009 +0100

    gobject: Don't use G_PARAM_SPEC_VALUE_TYPE when we know the pspec
    is valid

    https://bugzilla.gnome.org/show_bug.cgi?id=605667

 gobject/gobject.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit a7cc500d3829db1a8757ae940db09869b78bdca8
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Tue Feb 23 18:19:16 2010 +0100

    Test for unexisting files in $TMP and not in $HOME

    Some buildd environments have an unwritable $HOME, which makes the
    test that looks for an unexisting file there fail. Use $TMP instead,
    which should be more reliable.

    https://bugzilla.gnome.org/show_bug.cgi?id=610860

 gio/tests/readwrite.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 355246579ee08753e80bef5d31816a6ef52da73b
Author: Alexander Shopov <ash@contact.bg>
Date:   Tue Feb 23 09:30:39 2010 +0200

    Updated Bulgarian translation

 po/bg.po | 973
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 488 insertions(+), 485 deletions(-)

commit 1f66523ad325c301d9caf7130b99d3fd74940338
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 23 02:00:11 2010 -0500

    Fix backward logic in g_return_if_fail().

 glib/gvariant.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 360b9b540ee5e88de01a4c8aaf16c84f6cf23dc8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 23 01:59:57 2010 -0500

    GVariant: Improve test coverage.

 glib/tests/gvariant.c | 253
 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 245 insertions(+), 8 deletions(-)

commit 202d7d37d6ce066291504276810c350c9a3feb7a
Author: Emilio Pozuelo Monfort <pochu27@gmail.com>
Date:   Fri Feb 19 19:00:02 2010 +0100

    Don't fail a couple of tests when running as root

    root can access and write to a directory when it doesn't have
    exec and write permissions respectively. So expect the tests that
    check that to succeed rather than to fail when running as root.

    https://bugzilla.gnome.org/show_bug.cgi?id=552912

 gio/tests/live-g-file.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit 4535683b3f42b6840e01bd94fe6ea792b0ebeecf
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Feb 22 12:37:16 2010 +0100

    Keep metadata when files are renamed and trashed

    This fixes https://bugzilla.gnome.org/show_bug.cgi?id=609813

 gio/glocalfile.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit 515434bdcb63073d62b424c4b352a9d509cee5e6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 22 00:39:01 2010 -0500

    GVariantIter, GVariantBuilder

 docs/reference/glib/glib-sections.txt     |   22 +
 docs/reference/glib/tmpl/glib-unused.sgml |   67 --
 docs/reference/glib/tmpl/macros_misc.sgml |    5 +-
 docs/reference/glib/tmpl/version.sgml     |   68 ++
 glib/glib.symbols                         |   18 +
 glib/gvariant.c                           | 1531
 ++++++++++++++++++++++-------
 glib/gvariant.h                           |   36 +
 glib/gvarianttype.c                       |   17 +
 glib/gvarianttype.h                       |    1 +
 9 files changed, 1367 insertions(+), 398 deletions(-)

commit b9d728474ebc51c0d4ff46cb44d97134730174fc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Feb 21 19:39:33 2010 -0500

    Remove redudant check for direct #include gslice.h

    This was added before we had a standardised header check and not
    removed
    when the standard check was added.

 glib/gslice.c | 2 ++
 glib/gslice.h | 4 ----
 2 files changed, 2 insertions(+), 4 deletions(-)

commit 0a1ce31b6e8d3a7683ae5164d51e325d3669f53f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 21:38:33 2010 -0500

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7fea53a4a290f1cd2c052320b21ee3405e1ed605
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 21:37:33 2010 -0500

    2.23.4

 po/am.po          |  115 ++---
 po/ar.po          |  115 ++---
 po/as.po          |  115 ++---
 po/ast.po         |  115 ++---
 po/az.po          |  115 ++---
 po/be.po          |  116 ++---
 po/be@latin.po    |  116 ++---
 po/bg.po          |  115 ++---
 po/bn.po          |  115 ++---
 po/bn_IN.po       |  115 ++---
 po/bs.po          |  115 ++---
 po/ca.po          |  115 ++---
 po/ca@valencia.po |  115 ++---
 po/cs.po          |  942 +++++++++++++++++++-------------------
 po/cy.po          |  115 ++---
 po/da.po          |  115 ++---
 po/de.po          |  956 +++++++++++++++++++-------------------
 po/dz.po          |  115 ++---
 po/el.po          |  115 ++---
 po/en@shaw.po     |  115 ++---
 po/en_CA.po       |  115 ++---
 po/en_GB.po       |  115 ++---
 po/eo.po          |  115 ++---
 po/es.po          |  951 +++++++++++++++++++-------------------
 po/et.po          |  477 ++++++++++++++++++-
 po/eu.po          |  115 ++---
 po/fa.po          |  115 ++---
 po/fi.po          |  115 ++---
 po/fr.po          |  115 ++---
 po/ga.po          |  115 ++---
 po/gl.po          |  942 +++++++++++++++++++-------------------
 po/gu.po          |  115 ++---
 po/he.po          |  115 ++---
 po/hi.po          |  115 ++---
 po/hr.po          |  115 ++---
 po/hu.po          |  115 ++---
 po/hy.po          |  115 ++---
 po/id.po          |  115 ++---
 po/is.po          |  115 ++---
 po/it.po          |  115 ++---
 po/ja.po          |  115 ++---
 po/ka.po          |  115 ++---
 po/kn.po          |  115 ++---
 po/ko.po          |  952 +++++++++++++++++++-------------------
 po/ku.po          |  115 ++---
 po/lt.po          |  115 ++---
 po/lv.po          |  115 ++---
 po/mai.po         |  115 ++---
 po/mg.po          |  115 ++---
 po/mk.po          |  115 ++---
 po/ml.po          |  115 ++---
 po/mn.po          |  115 ++---
 po/mr.po          |  115 ++---
 po/ms.po          |  115 ++---
 po/nb.po          |  115 ++---
 po/ne.po          |  115 ++---
 po/nl.po          |  116 ++---
 po/nn.po          |  115 ++---
 po/oc.po          |  115 ++---
 po/or.po          |  115 ++---
 po/pa.po          |  115 ++---
 po/pl.po          |  942 +++++++++++++++++++-------------------
 po/ps.po          |  115 ++---
 po/pt.po          |  115 ++---
 po/pt_BR.po       |  115 ++---
 po/ro.po          |  954 +++++++++++++++++++-------------------
 po/ru.po          |  115 ++---
 po/rw.po          |  116 ++---
 po/si.po          |  115 ++---
 po/sk.po          |  115 ++---
 po/sl.po          | 1323
 +++++++++++++++++++++++++----------------------------
 po/sq.po          |  119 ++---
 po/sr.po          |  115 ++---
 po/sr@ije.po      |  115 ++---
 po/sr@latin.po    |  115 ++---
 po/sv.po          |  115 ++---
 po/ta.po          |  115 ++---
 po/te.po          |  115 ++---
 po/th.po          |  115 ++---
 po/tl.po          |  115 ++---
 po/tr.po          |  115 ++---
 po/tt.po          |  115 ++---
 po/uk.po          |  115 ++---
 po/vi.po          |  115 ++---
 po/wa.po          |  115 ++---
 po/xh.po          |  115 ++---
 po/yi.po          |  115 ++---
 po/zh_CN.po       |  115 ++---
 po/zh_HK.po       |  960 +++++++++++++++++++-------------------
 po/zh_TW.po       |  945 +++++++++++++++++++-------------------
 90 files changed, 10110 insertions(+), 9327 deletions(-)

commit 9a08cd5b042a1550cd446724e1ce71ff5379ed2b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 20:28:34 2010 -0500

    More distcheck fixes

 glib/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit ef497e8e64100f672509b8398a9805677ce80bcb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 20:11:33 2010 -0500

    Fix some distcheck issues

 glib/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit 3983418c25037dd01fea4b7a52eecdc703535d78
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 19:55:02 2010 -0500

    Fix up GFileDescriptorBased docs

 docs/reference/gio/gio-docs.xml     |  1 +
 docs/reference/gio/gio-sections.txt | 13 +++++++++++++
 docs/reference/gio/gio.types        |  1 +
 gio/gfiledescriptorbased.c          |  4 ++--
 4 files changed, 17 insertions(+), 2 deletions(-)

commit 03fc92784d0ba995883fa2cbae96531ff3db8672
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 19:48:22 2010 -0500

    Add indices for 2.24 additions

 docs/reference/glib/glib-docs.sgml       | 4 ++++
 docs/reference/gobject/gobject-docs.sgml | 4 ++++
 2 files changed, 8 insertions(+)

commit 80a160c7c6c1028febfda3d5bf3b557406a9555c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 19:46:57 2010 -0500

    Small doc fixes

 docs/reference/glib/glib-sections.txt       | 5 +++++
 docs/reference/gobject/gobject-sections.txt | 2 ++
 2 files changed, 7 insertions(+)

commit 2de84d65943c29b86c24f2da9c9e7ca094e9c3a6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 19:42:37 2010 -0500

    Fix up make check

 gio/gfiledescriptorbased.c |  2 ++
 gio/gio.symbols            | 13 ++++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

commit fd751cc2a2906bf4fd19cadacf202de9819247c4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 19:17:50 2010 -0500

    More updates

 NEWS | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit e0e57fd97d156e860f1211887b6f302c68c86202
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 17:59:15 2010 -0500

    Fix a doc typo.

    Reported in bug 608063 by Дилян Палаузов.

 glib/goption.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit dcdc409cd88f6d47eb54a7eee528be6c8667d394
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 16:29:15 2010 -0500

    Fix the large array test to work

    Fix by Sven Herzberg, bug 568760

 glib/tests/array-test.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 21080a33e12e87144e0534cd18b3699a9dbc2f36
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 16:12:35 2010 -0500

    Add missign single include guards

    Reported in bug 609530. patch by Christian Dywan.

 gio/gcharsetconverter.h    | 4 ++++
 gio/gnativevolumemonitor.h | 4 ++++
 gio/gzlibcompressor.h      | 4 ++++
 gio/gzlibdecompressor.h    | 4 ++++
 4 files changed, 16 insertions(+)

commit dd7bd61c5301f92408ccb420a5bbd094faa863c3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 16:04:21 2010 -0500

    Documentation improvement

    Document the size requirements on output buffer in
    g_base64_encode_close.
    Patch by Christian Persch, bug 609564.

 glib/gbase64.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 6c1a914d511b9a94fbeb3e30d93608c3f537c0a7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 15:55:10 2010 -0500

    Fix build on Solaris 8

    System header fun. See bug 610131.

 configure.in             | 2 +-
 gio/libasyncns/asyncns.c | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

commit de6914a46a0af720de3df34539e61973e9d4446b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 15:32:08 2010 -0500

    Add a pointer to G_DEFINE_INTERFACE

 docs/reference/gobject/tut_gtype.xml | 7 +++++++
 1 file changed, 7 insertions(+)

commit ecb45f43824cdae003cf1280eb0c13039619d6b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 15:28:04 2010 -0500

    Fix an oversight

    _Always_ explicitly compare strcmp to 0... this was pointed out in
    bug 610484 by Christian Persch.

 glib/gvariant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 19e438556cd0d958b34cd9a63bd528d680d77c45
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 15:19:06 2010 -0500

    Updates

 NEWS | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit e377a6f4816ceef23a730c6e431d9ccbb052e7f0
Author: Fran Diéguez <frandieguez@ubuntu.com>
Date:   Sat Feb 20 22:22:04 2010 +0100

    Updated Galician Translation

 po/gl.po | 119
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 62 insertions(+), 57 deletions(-)

commit af22e5739ba89a9795f046ddaf00a506b77c5a8e
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Feb 20 22:20:04 2010 +0100

    Updated Polish translation

 po/pl.po | 1097
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 552 insertions(+), 545 deletions(-)

commit 5047fd7f688dc0a3e4c148864f63961389bc83f9
Author: Colin Walters <walters@verbum.org>
Date:   Fri Feb 19 16:06:22 2010 -0500

    [gutf8.c] Add a bit of documentation to UNICODE_VALID

 glib/gutf8.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

commit ed3c914cdbdd02d1af6d2f6a3a3f3a9fdc8dc1c2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 19 10:42:53 2010 -0500

    Merge the main public API of GVariant

 docs/reference/glib/glib-sections.txt |   60 +-
 glib/Makefile.am                      |    1 +
 glib/glib.symbols                     |   56 +
 glib/gvariant-core.c                  |   18 +
 glib/gvariant.c                       | 1858
 +++++++++++++++++++++++++++++++++
 glib/gvariant.h                       |   95 +-
 glib/tests/gvariant.c                 |  179 +++-
 7 files changed, 2259 insertions(+), 8 deletions(-)

commit afa5dc0c6d9e1aa9b6e057d93562e6ee5796bf46
Author: Petr Kovar <pknbe@volny.cz>
Date:   Thu Feb 18 20:07:56 2010 +0100

    Update Czech translation

 po/cs.po | 947
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 480 insertions(+), 467 deletions(-)

commit 48f74cab395044a07e1220440cdc816db01b9984
Author: Christian Kellner <gicmo@gnome.org>
Date:   Thu Feb 18 15:49:58 2010 +0100

    Move event support in the inotify backend

    This adds support for G_FILE_MONITOR_SEND_MOVED events when
    requested by
    the user to the inotify backend. Last part to fix bug #547890.
    Based heavily on a patch by Martyn Russel <martyn@lanedo.com>.

 gio/inotify/ginotifydirectorymonitor.c |  7 +++--
 gio/inotify/ginotifyfilemonitor.c      |  9 ++++++-
 gio/inotify/inotify-helper.c           | 49
 +++++++++++++++++++++++++++++-----
 gio/inotify/inotify-kernel.c           |  4 +--
 gio/inotify/inotify-path.c             | 18 +++++++++++++
 gio/inotify/inotify-path.h             |  8 +++---
 gio/inotify/inotify-sub.c              |  6 +++--
 gio/inotify/inotify-sub.h              |  3 ++-
 8 files changed, 86 insertions(+), 18 deletions(-)

commit 239af977126a4a4b6c68cb43e0876847c7ce2211
Author: Christian Kellner <gicmo@gnome.org>
Date:   Thu Feb 18 15:43:45 2010 +0100

    GLocalFileMonitor: Support for GFileMonitorFlags

    Evaluate and remember GFileMonitorFlags. This is a part of move
    event support for fs-monitoring (bug #547890).

 gio/glocalfilemonitor.c | 28 +++++++++++++++++++++++++---
 gio/glocalfilemonitor.h |  1 +
 2 files changed, 26 insertions(+), 3 deletions(-)

commit 41956b237601a1c5ded0ba5e8821b9f5d09278be
Author: Christian Kellner <gicmo@gnome.org>
Date:   Thu Feb 18 15:40:13 2010 +0100

    Move event support for fs-monitoring: Event & flag

    Add a G_FILE_MONITOR_SEND_MOVED flag indicating the API user
    wants to receive the new G_FILE_MOINOTR_EVENT_MOVED event
    instead of single CREATED/DELETED events.
    First part of bug #547890.

 gio/gioenums.h | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit a5dc1af0a230ecfca2dac7fa0dcdf8359537a9f6
Author: Ivar Smolin <okul@linux.ee>
Date:   Thu Feb 18 11:46:06 2010 +0200

    Estonian translation updated

 po/et.po | 511
 +++------------------------------------------------------------
 1 file changed, 21 insertions(+), 490 deletions(-)

commit e1cc5a5fecc1847a6080435fc8a40f2d8d534bbb
Author: Mario Blättermann <mariobl@gnome.org>
Date:   Wed Feb 17 09:00:04 2010 +0100

    Updated German translation

 po/de.po | 1022
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 515 insertions(+), 507 deletions(-)

commit 63a6666ab7a54c9584b6579e323301f3528e86b3
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Feb 17 08:45:28 2010 +0100

    Make g_type_interface_prerequisites() only return one instantiable
    type

    Previously, the code had a heisenbug and could potentially return
    superclasses, too. In fact, it was based on the behavior of malloc.

    https://bugzilla.redhat.com/show_bug.cgi?id=554678

 gobject/gtype.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 9fdbae9344a04479ccb601ebd4ae2c709e7856d9
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Feb 16 12:38:11 2010 +0100

    Updated Slovenian translation

 po/sl.po | 163
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 84 insertions(+), 79 deletions(-)

commit b899bfc7415ec76ef563de3fc945b84675357464
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 15 19:11:58 2010 -0500

    GVariant: create child instance from its own data

    also: white-space fix in the serialiser

 glib/gvariant-core.c       | 8 ++++++--
 glib/gvariant-serialiser.c | 1 -
 2 files changed, 6 insertions(+), 3 deletions(-)

commit 7fb9d536c0c89800f745ea2c05380efd8f371bf1
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Tue Feb 16 03:42:19 2010 +0900

    Updated Korean translation

 po/ko.po | 1032
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 517 insertions(+), 515 deletions(-)

commit 68505d5a9f0b2cbacee4eafa3ba754612f052a5f
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Mon Feb 15 17:54:26 2010 +0100

    Updated Spanish translation

 po/es.po | 958
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 483 insertions(+), 475 deletions(-)

commit 36d29e06f9459ce28206d212667aee3adc1fd780
Author: Fran Diéguez <frandieguez@ubuntu.com>
Date:   Mon Feb 15 17:10:21 2010 +0100

    Updated Galician Translation

 po/gl.po | 1259
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 641 insertions(+), 618 deletions(-)

commit bb4f63d6390fe5efd183f259e5bd891f89de9e24
Author: Christian Kellner <gicmo@gnome.org>
Date:   Sun Feb 7 17:23:38 2010 +0100

    GFile: Support for splice(2) in copy_fallback

    The (linux specific) system call splice can be
    used to transfer data between file descriptors
    whitout copying them into user space.
    See bug #604086 for additional details.

 configure.in |   1 +
 gio/gfile.c  | 187
 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 170 insertions(+), 18 deletions(-)

commit 28f90db1edf938c04f0b5c8a2f54f8add50db234
Author: Christian Kellner <gicmo@gnome.org>
Date:   Sun Feb 7 17:18:06 2010 +0100

    GLocalFileOutputStream: Implement GFileDescriptorBased

    Also convert GLocalFileIOStream to use the new interface to obtain
    the file descriptor.

 gio/glocalfileiostream.c     |  3 ++-
 gio/glocalfileoutputstream.c | 30 +++++++++++++++++++++++-------
 gio/glocalfileoutputstream.h |  1 -
 3 files changed, 25 insertions(+), 9 deletions(-)

commit 670f6210ced672eb9c8a500b3dd6cfd22346472b
Author: Christian Kellner <gicmo@gnome.org>
Date:   Sun Feb 7 17:17:44 2010 +0100

    GLocalFileInputStream: Implement GFileDescriptorBased

 gio/glocalfileinputstream.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

commit 4536a4adbc290f56f3686dec0c8e05c15049a602
Author: Christian Kellner <gicmo@gnome.org>
Date:   Sun Feb 7 14:51:01 2010 +0100

    GFileDescriptorBased: New interface

    New interface for file descriptor based io object. The interface
    is only exported on unix based systems. See bug 604086.

 gio/Makefile.am            |  3 ++
 gio/gfiledescriptorbased.c | 72
 ++++++++++++++++++++++++++++++++++++++++++++++
 gio/gfiledescriptorbased.h | 63 ++++++++++++++++++++++++++++++++++++++++
 gio/giotypes.h             |  1 +
 4 files changed, 139 insertions(+)

commit 3840151012b6ed01bfa9aada2914cce974398d0d
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Mon Feb 15 19:15:38 2010 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1028
 +++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 1015
 +++++++++++++++++++++++++++++-----------------------------
 2 files changed, 1015 insertions(+), 1028 deletions(-)

commit b37da7134b127e6c92e7002150077515dc7d42b4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Feb 15 10:13:10 2010 +0100

    Set result_uncertain in win32 g_content_type_guess implementation

    Fixes bug #609143

 gio/gcontenttype.c | 3 +++
 1 file changed, 3 insertions(+)

commit 83c6087dcc2168cc41db3a328bbd30341ac3955b
Author: Lucian Grijincu <lucian.grijincu@gmail.com>
Date:   Sat Feb 13 19:35:42 2010 +0200

    Updated Romanian translation

 po/ro.po | 1025
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 510 insertions(+), 515 deletions(-)

commit e66d66c5559f4f0423d015a4d006f170dcb5d582
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 11 16:52:20 2010 -0500

    GVariant: lock before freeing, to avoid assert

 glib/gvariant-core.c | 2 ++
 1 file changed, 2 insertions(+)

commit fd3923aba2f827b47c54edc9728c953b9520fa52
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Feb 11 21:08:57 2010 +0100

    Move offsets array from interface data member to TypeNode

    We need to assign offsets when the interface is not yet instantiated.

 gobject/gtype.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 61b649cffd26c3feafe4158da01ebb1394a1b574
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Feb 11 21:05:41 2010 +0100

    Move prerequisites out of _prot struct

    Also fix the naming (including typo)

 gobject/gtype.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 1e6b18422563bc428e17e8a4e3c84dac8ed02ab2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 10 13:59:14 2010 -0500

    add performance tests to gitignore

 tests/gobject/.gitignore | 2 ++
 1 file changed, 2 insertions(+)

commit 3e30e8a87e18952e9c26c0d05f5c336a110f2bed
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 10 11:29:12 2010 -0500

    make tests not dynamic link against /lib/libglib

    For some reason, even though the tests are linked against
    libgobject.la
    and libgobject.la mentions libglib.la as a dependency, the tests are
    running against the system glib instead of the in-tree one.

    Adding the libglib.la file as an explicit LDFLAG fixes it.

 tests/gobject/Makefile.am | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 1e655eb02c6cadee45a28df359327ce9fb41c6a5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Feb 10 11:13:06 2010 -0500

    merge GVariant

 docs/reference/glib/Makefile.am             |   7 +-
 docs/reference/glib/glib-docs.sgml          |   1 +
 docs/reference/glib/glib-sections.txt       |  18 +
 docs/reference/glib/tmpl/.gitignore         |   1 +
 docs/reference/gobject/gobject-sections.txt |   2 +
 glib/Makefile.am                            |   4 +
 glib/glib.h                                 |   1 +
 glib/glib.symbols                           |  13 +
 glib/gvariant-core.c                        | 855
 ++++++++++++++++++++++++++++
 glib/gvariant-core.h                        |  46 ++
 glib/gvariant.h                             |  47 ++
 gobject/gboxed.c                            |  27 +
 gobject/gboxed.h                            |  18 +
 gobject/gobject.symbols                     |   2 +
 14 files changed, 1039 insertions(+), 3 deletions(-)

commit 2afe2325c4c9e42dab8ebfed11b86d24715837e0
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Wed Feb 10 16:34:53 2010 +0100

    Updated Slovenian translation

 po/sl.po | 1352
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 701 insertions(+), 651 deletions(-)

commit 243e340d6edde4d7ae1c45b3041489332f83a6d5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 9 10:35:01 2010 -0500

    bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1831ff2d30ee837179d9d79d9dbf36016564e0f0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 9 10:20:37 2010 -0500

    2.23.3

 po/am.po          |  250 +++++-----
 po/ar.po          |  254 +++++-----
 po/as.po          |  254 +++++-----
 po/ast.po         |  254 +++++-----
 po/az.po          |  253 +++++-----
 po/be.po          |  263 ++++++-----
 po/be@latin.po    |  260 ++++++-----
 po/bg.po          |  254 +++++-----
 po/bn.po          |  254 +++++-----
 po/bn_IN.po       |  254 +++++-----
 po/bs.po          |  253 +++++-----
 po/ca.po          |  254 +++++-----
 po/ca@valencia.po |  254 +++++-----
 po/cs.po          |  940 +++++++++++++++++++------------------
 po/cy.po          |  254 +++++-----
 po/da.po          |  254 +++++-----
 po/de.po          |  254 +++++-----
 po/dz.po          |  253 +++++-----
 po/el.po          |  254 +++++-----
 po/en@shaw.po     |  254 +++++-----
 po/en_CA.po       |  254 +++++-----
 po/en_GB.po       |  254 +++++-----
 po/eo.po          |  251 +++++-----
 po/es.po          |  955 +++++++++++++++++++-------------------
 po/et.po          |  254 +++++-----
 po/eu.po          |  255 +++++-----
 po/fa.po          |  253 +++++-----
 po/fi.po          |  254 +++++-----
 po/fr.po          |  950 ++++++++++++++++++-------------------
 po/ga.po          |  251 +++++-----
 po/gl.po          |  254 +++++-----
 po/gu.po          |  254 +++++-----
 po/he.po          |  254 +++++-----
 po/hi.po          |  254 +++++-----
 po/hr.po          |  253 +++++-----
 po/hu.po          |  254 +++++-----
 po/hy.po          |  251 +++++-----
 po/id.po          |  253 +++++-----
 po/is.po          |  253 +++++-----
 po/it.po          |  254 +++++-----
 po/ja.po          |  254 +++++-----
 po/ka.po          |  254 +++++-----
 po/kn.po          |  254 +++++-----
 po/ko.po          |  254 +++++-----
 po/ku.po          |  250 +++++-----
 po/lt.po          |  254 +++++-----
 po/lv.po          |  251 +++++-----
 po/mai.po         |  254 +++++-----
 po/mg.po          |  253 +++++-----
 po/mk.po          |  254 +++++-----
 po/ml.po          |  254 +++++-----
 po/mn.po          |  253 +++++-----
 po/mr.po          |  254 +++++-----
 po/ms.po          |  253 +++++-----
 po/nb.po          |  940 +++++++++++++++++++------------------
 po/ne.po          |  253 +++++-----
 po/nl.po          |  256 +++++-----
 po/nn.po          |  254 +++++-----
 po/oc.po          |  249 +++++-----
 po/or.po          |  254 +++++-----
 po/pa.po          |  254 +++++-----
 po/pl.po          |  254 +++++-----
 po/ps.po          |  253 +++++-----
 po/pt.po          |  254 +++++-----
 po/pt_BR.po       |  940 +++++++++++++++++++------------------
 po/ro.po          |  254 +++++-----
 po/ru.po          |  258 ++++++-----
 po/rw.po          |  253 +++++-----
 po/si.po          |  254 +++++-----
 po/sk.po          |  253 +++++-----
 po/sl.po          | 1340
 ++++++++++++++++++++++++++---------------------------
 po/sq.po          |  256 +++++-----
 po/sr.po          |  254 +++++-----
 po/sr@ije.po      |  253 +++++-----
 po/sr@latin.po    |  254 +++++-----
 po/sv.po          |  254 +++++-----
 po/ta.po          |  254 +++++-----
 po/te.po          |  254 +++++-----
 po/th.po          |   21 +-
 po/tl.po          |  253 +++++-----
 po/tr.po          |  254 +++++-----
 po/tt.po          |  250 +++++-----
 po/uk.po          |  254 +++++-----
 po/vi.po          |  254 +++++-----
 po/wa.po          |  253 +++++-----
 po/xh.po          |  253 +++++-----
 po/yi.po          |  251 +++++-----
 po/zh_CN.po       |  254 +++++-----
 po/zh_HK.po       |  254 +++++-----
 po/zh_TW.po       |  254 +++++-----
 90 files changed, 15161 insertions(+), 11981 deletions(-)

commit f570cf99b32d65633082f451a41d3336de0ec005
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 9 09:16:23 2010 -0500

    Doc cleanups

 docs/reference/glib/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit a68c0cde8f3b3ca7aa581843a65e43fcc2b11409
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 9 08:46:50 2010 -0500

    Updates

 NEWS | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

commit bd6a88aef70cb93d79580c00dae420c4a4729f1e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 8 00:43:17 2010 -0500

    gstrfuncs.h: needs gmacros.h for G_BEGIN_DECLS

 glib/gstrfuncs.h | 1 +
 1 file changed, 1 insertion(+)

commit 0be1a4fb973e6a10c12ad9d67344281ccee5ce7e
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Mon Feb 8 09:57:37 2010 +0700

    Updated Thai translation.

 po/th.po | 276
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 155 insertions(+), 121 deletions(-)

commit e04c9c699c1ca181419d3d325aade70cf3e14763
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Feb 7 15:41:21 2010 -0500

    add missing #include "config.h"

 glib/gbuffer.c             | 2 ++
 glib/gurifuncs.c           | 2 ++
 glib/gvariant-serialiser.c | 2 ++
 glib/gvarianttype.c        | 2 ++
 glib/gvarianttypeinfo.c    | 2 ++
 5 files changed, 10 insertions(+)

commit 218c691ca33f556033535fa43a39b65cd2276282
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Feb 7 03:14:28 2010 -0500

    remove #include <glib.h> from some .c files

    include individual headers instead

 glib/gurifuncs.c        | 9 +++++++--
 glib/gvarianttypeinfo.c | 5 ++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

commit ea2917b01f045d8e7ede4824039d462203af3290
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Feb 7 03:08:08 2010 -0500

    gurifuncs.c: #include "string.h" -> <string.h>

 glib/gurifuncs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f303375736edbb6c7d39f339b89be14d621fd8e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Feb 7 02:52:07 2010 -0500

    GVariantTypeInfo: free hash table when not in use

 glib/gvarianttypeinfo.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 80538aba7ea8f9a05ea1a6a66eb202a4ccfe4b5f
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 4 21:18:53 2010 -0500

    merge the GVariant serialiser

 glib/Makefile.am           |    2 +
 glib/gvariant-serialiser.c | 1656
 ++++++++++++++++++++++++++++++++++++++++++++
 glib/gvariant-serialiser.h |   75 ++
 glib/tests/gvariant.c      | 1245 +++++++++++++++++++++++++++++++++
 4 files changed, 2978 insertions(+)

commit eea6042f5f4db2f123763097ac2fd4738cef24ee
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Feb 5 12:37:43 2010 -0500

    GMappedFile: minimal changes to support GBuffer

    Just reorganise the GMappedFile struct to be binary compatible with
    GBuffer.  If GBuffer becomes public later then we can revisit this.

 glib/gmappedfile.c | 46 +++++++++++++++++++++++++++++++---------------
 1 file changed, 31 insertions(+), 15 deletions(-)

commit 3f4b7f6d37cd0036f65c31eeee033d650072561e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Feb 6 10:18:07 2010 -0500

    add private GBuffer type

 glib/Makefile.am |   2 +
 glib/gbuffer.c   | 205
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gbuffer.h   |  88 ++++++++++++++++++++++++
 3 files changed, 295 insertions(+)

commit 813d0d17a65be2ecb5961a96630d11a195ce6a67
Author: Tim-Philipp Müller <tim@centricular.net>
Date:   Fri Feb 5 01:14:20 2010 +0000

    Don't leak filename in g_io_modules_scan_all_in_directory

    https://bugzilla.gnome.org/show_bug.cgi?id=608159

 gio/giomodule.c | 2 ++
 1 file changed, 2 insertions(+)

commit 4adde81771f5a4471a568a409a38fd9162d49418
Author: Hans Breuer <hans@breuer.org>
Date:   Sat Feb 6 13:22:39 2010 +0100

    Fix inconsistent line-endings

    Apparently CRLF (windows format) was checked in from Linux
    causing modified by checkout under windows. See:
    http://help.github.com/dealing-with-lineendings/
    http://mail.gnome.org/archives/gtk-devel-list/2009-July/msg00041.html

 po/be.po | 400
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 200 insertions(+), 200 deletions(-)

commit 00b55e2bc7cb7f4ff7adb3b40e1b41becce6cba1
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sat Feb 6 10:40:03 2010 +0200

    Drop empty elements from the VS9 vcproj files

    Dunno if this makes sense, if one lets VS edit the it will put them
    back anyway. But it's more pleasing to the eye.

 build/win32/vs9/gio.vcproj                         |  50 -----
 build/win32/vs9/glib-genmarshal.vcproj             |  50 -----
 build/win32/vs9/glib.vcproj                        | 230
 ++++++---------------
 build/win32/vs9/gmodule.vcproj                     |  50 -----
 build/win32/vs9/gobject.vcproj                     |  50 -----
 build/win32/vs9/gspawn-win32-helper-console.vcproj |  50 -----
 build/win32/vs9/gspawn-win32-helper.vcproj         |  50 -----
 build/win32/vs9/gthread.vcproj                     |  50 -----
 build/win32/vs9/testglib.vcproj                    |  50 -----
 9 files changed, 60 insertions(+), 570 deletions(-)

commit 10cd6df4a8b947b3b2b68891c779f5318b46e8de
Author: Jonh Wendell <jwendell@gnome.org>
Date:   Fri Feb 5 11:09:26 2010 -0300

    Updated Brazilian Portuguese translation

 po/pt_BR.po | 1005
 +++++++++++++++++++++++++++++++----------------------------
 1 file changed, 523 insertions(+), 482 deletions(-)

commit 5e753d6abcad6040a6fd25f5ac34d5dab4f7ae22
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 4 20:27:11 2010 -0500

    rename test: gvarianttype -> gvariant

    More test cases will be added to this file.

 glib/tests/.gitignore                     | 2 +-
 glib/tests/Makefile.am                    | 4 ++--
 glib/tests/{gvarianttype.c => gvariant.c} | 0
 3 files changed, 3 insertions(+), 3 deletions(-)

commit 9a990cea0cfc7357000e30f3c24030fed2ff4708
Author: Petr Kovar <pknbe@volny.cz>
Date:   Thu Feb 4 23:54:15 2010 +0100

    Update Czech translation

 po/cs.po | 1012
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 521 insertions(+), 491 deletions(-)

commit 762e18d8cebf907e51aed14298525048f7c9e015
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 19:57:38 2010 +0200

    Further work on VS9 project files

 build/win32/vs9/README.txt     | 16 ++++++++++++----
 build/win32/vs9/glib.vsprops   | 32 ++++++++++++++++++++++++++++++--
 build/win32/vs9/install.vcproj |  8 ++++----
 3 files changed, 46 insertions(+), 10 deletions(-)

commit 021643cda4f9b13fd72e898165744e9aefb346cd
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 19:54:50 2010 +0200

    Clarify use of struct stat on Windows

 gio/glocalfile.c     | 23 ++++++++++++++---------
 gio/glocalfileinfo.c | 10 ++++++----
 glib/gstdio.c        | 24 +++++++++++++++++++-----
 glib/gstdio.h        | 37 +++++++++++++++++++++++++++++++++++++
 4 files changed, 76 insertions(+), 18 deletions(-)

commit 5589d2b45567a0b35e8d8f55f20b1e381c53ca04
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 19:20:08 2010 +0200

    Internally use the _stati64 API explicitly on Windows

    Avoids warnings and confusion when compiling with MSVC.

 glib/giowin32.c    | 24 ++++++++++--------------
 glib/gkeyfile.c    |  5 ++---
 glib/gmappedfile.c |  5 ++---
 3 files changed, 14 insertions(+), 20 deletions(-)

commit 05291c0d11f269dedacde62e767b75976c27bd33
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 15:24:56 2010 +0200

    Enable libtool compatible DLL naming in the VS9 projects

 build/win32/vs9/gio.vcproj     |  8 ++++----
 build/win32/vs9/glib.vcproj    |  8 ++++----
 build/win32/vs9/glib.vsprops   | 28 +++++++++++++++++++++++++++-
 build/win32/vs9/gmodule.vcproj |  8 ++++----
 build/win32/vs9/gobject.vcproj |  8 ++++----
 build/win32/vs9/gthread.vcproj |  8 ++++----
 6 files changed, 47 insertions(+), 21 deletions(-)

commit bfd60d8835149ede901b52f42d2a56c8ec6e7f77
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 4 09:06:56 2010 -0500

    GVariantType test case: assert all memory freed

    Make sure we've freed all TypeInfos at the end of the test.

 glib/tests/gvarianttype.c | 2 ++
 1 file changed, 2 insertions(+)

commit 6d6d7a8bb2c58b4cce7031e68d31978b2f83e6ff
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Feb 4 09:04:32 2010 -0500

    GVariantTypeInfo tweaks

      1) always emit ending type FIXED for fixed sized items

        The serialiser needs to know if it dealing with a fixed sized item
        in case the serialised data is corrupt and the item has the wrong
        size.

      2) add a macro that will be used by test cases to check that all
         memory has been freed.

 glib/gvarianttypeinfo.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit cb7dfdc1943c016fe05c67ccedf653bfb7bc3891
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 15:00:15 2010 +0200

    Use inherited properties in all configurations in gmodule, too

 build/win32/vs9/gmodule.vcproj | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit 79eb03aa4f6f75c7049a3c5b11cb83fea0685b88
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 14:51:56 2010 +0200

    Use README.txt instead of README for Windows developer friendliness

 build/win32/vs9/Makefile.am            |  2 +-
 build/win32/vs9/{README => README.txt} | 58
 +++++++++++++++++-----------------
 2 files changed, 30 insertions(+), 30 deletions(-)

commit ec1944781589fdb15d61b2b251d51bd7e4617832
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 14:50:36 2010 +0200

    Update README for VS9 build

 build/win32/vs9/README | 33 +++++++++++++++++++++++++++++----
 1 file changed, 29 insertions(+), 4 deletions(-)

commit 9d444f7b12fff6b7f9e6ba4a2667ab293af793eb
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 14:36:23 2010 +0200

    Refactor VS9 project files

    Factor out common parts into a vsprops file. Drop empty elements for
    tools that aren't used.

 build/win32/vs9/Makefile.am                        |   9 +-
 build/win32/vs9/gio.vcproj                         | 184
 +++----------------
 build/win32/vs9/glib-genmarshal.vcproj             | 138 +--------------
 build/win32/vs9/glib.vcproj                        | 194
 +++-----------------
 build/win32/vs9/glib.vsprops                       | 196
 +++++++++++++++++++++
 build/win32/vs9/gmodule.vcproj                     | 173
 ++----------------
 build/win32/vs9/gobject.vcproj                     | 178
 +++----------------
 build/win32/vs9/gspawn-win32-helper-console.vcproj | 142 +--------------
 build/win32/vs9/gspawn-win32-helper.vcproj         | 142 +--------------
 build/win32/vs9/gthread.vcproj                     | 150 +---------------
 build/win32/vs9/install.vcproj                     | 164
 +----------------
 build/win32/vs9/testglib.vcproj                    | 142 +--------------
 12 files changed, 319 insertions(+), 1493 deletions(-)

commit 241c7f476d8867d4d380c655d15a8963152a1fa0
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 14:35:04 2010 +0200

    Don't use deprecated g_win32 API

 tests/testglib.c | 24 ------------------------
 1 file changed, 24 deletions(-)

commit 3f3c163aa2ddbfb756b556b70901d2a58b1313d9
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 00:37:13 2010 +0200

    Put a version info resource also in the gio DLL

    Also, distribute gio/gio.rc(.in).

 configure.in    |  1 +
 gio/Makefile.am | 18 +++++++++++++++++-
 gio/gio.rc.in   |  2 +-
 3 files changed, 19 insertions(+), 2 deletions(-)

commit 154a5314be98b22cb3171721d40cb9c4e6d5f102
Author: Tor Lillqvist <tml@iki.fi>
Date:   Thu Feb 4 00:11:44 2010 +0200

    Update copyright years

 glib/glib.rc.in       | 2 +-
 gmodule/gmodule.rc.in | 2 +-
 gobject/gobject.rc.in | 2 +-
 gthread/gthread.rc.in | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 33b011ce7d9415d60493595bbfe14dbc02c2d201
Author: Krzesimir Nowak <qdlacz@gmail.com>
Date:   Wed Jan 13 18:40:17 2010 +0100

    Add checks for NULL pointer in arrays.

    Fixes: Bug 599197 -  array ref and unref functions crash on NULL
    array.

    * garray.c: Added safety guards to all public functions, which did
    not have them earlier. Now when NULL is passed to them, they will
    issue a warning and return, instead of segfaulting.

 glib/garray.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 2b121c02efc13f4b8c6c771b33a2363a21e7757f
Author: River Tarnell <river@loreley.flyingparchment.org.uk>
Date:   Wed Feb 3 17:31:02 2010 +0100

    properly guard the includes

    Fixes: Bug 604967 -  2.22.3 libasyncns build fails on HP-UX 11.11

    * gio/libasyncns/asyncns.c: properly guard the includes of
    sys/select.h
      and sys/time.h

 gio/libasyncns/asyncns.c | 8 ++++++++
 1 file changed, 8 insertions(+)

commit e62e7227bf6d97215b697fd9a1d7b4a5addd70cb
Author: Tor Lillqvist <tml@iki.fi>
Date:   Wed Feb 3 18:09:28 2010 +0200

    Fix the "install" VS9 project

    Install also ghostutils.h. Don't bother mentioning any pointless
    PreprocessorDefinitions for the "install" project, as all it does is
    copy files.

 build/win32/vs9/install.vcproj | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 0ac2277b490dae967b7a5083966610cffe8582e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Feb 2 23:38:20 2010 -0500

    GVariantTypeInfo changes

     - rename 'type' in MemberInfo to 'type_info'
     - add 'ending_type' field to MemberInfo
     - document how to find the ending

 glib/gvarianttypeinfo.c   | 23 ++++++++++++++++-------
 glib/gvarianttypeinfo.h   | 21 ++++++++++++++++++++-
 glib/tests/gvarianttype.c |  6 +++---
 3 files changed, 39 insertions(+), 11 deletions(-)

commit 1de58ef708fb1972445a65e184e1579f0d0bbaaf
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Feb 2 21:24:45 2010 +0200

    Link with dnsapi.lib also in 32-bit builds

 build/win32/vs9/gio.vcproj | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 57d3e4cba3a0a273d93a25356801080d710d926e
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Feb 2 21:23:27 2010 +0200

    Include also testglib.vcproj in tarball

 build/win32/vs9/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit cf0e4c33fa8a7efdc62d52cad0d7dc9135dccdf8
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Tue Feb 2 10:41:00 2010 +0000

    Don't use a compiler keyword as a variable name

    Appease the MS C++ compiler by using _val instead of __value as
    a variable
    name in G_VALUE_COLLECT_INIT.

    Problem found by Haakon Sporsheim <haakon.sporsheim@gmail.com>.
    Re-closes: bgo#608602

 gobject/gvaluecollector.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit e2bc5c21122b0a0703524a37df6cef43577a46f7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Feb 1 18:30:57 2010 -0500

    g_bit_lock: remove double variable declarations

    Remove double declaration of local static variables used for futex
    emulation.

    Problem found by Haakon Sporsheim <haakon.sporsheim@gmail.com>.

 glib/gbitlock.c | 3 ---
 1 file changed, 3 deletions(-)

commit 27a080537efdb8660c62445427b53fc29735f304
Author: Dan Winship <danw@gnome.org>
Date:   Mon Feb 1 18:11:43 2010 -0500

    ghostutils: Fix a crash and add some tests

    https://bugzilla.gnome.org/show_bug.cgi?id=608743

 glib/ghostutils.c      | 13 ++++++++++++-
 glib/tests/hostutils.c | 19 +++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

commit 3443f47ddf520b044997d5b09b95dec692e34ae5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 14:30:08 2010 -0500

    G{Byte,Ptr,}Array: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore          |   3 +
 docs/reference/glib/tmpl/arrays.sgml         | 339 ---------------
 docs/reference/glib/tmpl/arrays_byte.sgml    | 211 ---------
 docs/reference/glib/tmpl/arrays_pointer.sgml | 308 -------------
 glib/garray.c                                | 629
 +++++++++++++++++++++++++++
 5 files changed, 632 insertions(+), 858 deletions(-)

commit 501a2906d3208440a74bebe8736ea39b3f5b5947
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 13:07:16 2010 -0500

    GList, GSList: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore               |   2 +
 docs/reference/glib/tmpl/linked_lists_double.sgml | 467
 ----------------------
 docs/reference/glib/tmpl/linked_lists_single.sgml | 394
 ------------------
 glib/glist.c                                      | 154 +++++++
 glib/gslist.c                                     | 113 ++++++
 5 files changed, 269 insertions(+), 861 deletions(-)

commit c8c5c5a991b384964d0650d7fec02663dddc9035
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 01:26:49 2010 -0500

    remove trailing whitespace breaking .gitignore

 docs/reference/glib/tmpl/.gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4bdf7d12a8ef7e027dced8d0da46986c2009180e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 00:39:40 2010 -0500

    GIOChannel: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore      |   1 +
 docs/reference/glib/tmpl/iochannels.sgml | 666
 -------------------------------
 glib/giochannel.c                        | 196 +++++++++
 glib/giounix.c                           |  36 ++
 glib/giowin32.c                          |  52 +++
 5 files changed, 285 insertions(+), 666 deletions(-)

commit 4353151449fedf8e018c07ae4d196652a39f0528
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 00:27:28 2010 -0500

    GTree, GNode: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore        |   2 +
 docs/reference/glib/tmpl/trees-binary.sgml | 250 --------------
 docs/reference/glib/tmpl/trees-nary.sgml   | 501
 -----------------------------
 glib/gnode.c                               | 116 +++++++
 glib/gtree.c                               |  67 ++++
 5 files changed, 185 insertions(+), 751 deletions(-)

commit d81506a154ba387e339dfb5ff6acddac1e4866c5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 00:18:09 2010 -0500

    GThreadPool: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore        |   1 +
 docs/reference/glib/tmpl/thread_pools.sgml | 202
 -----------------------------
 glib/gthreadpool.c                         |  50 +++++++
 3 files changed, 51 insertions(+), 202 deletions(-)

commit c471468ca477b44c1c14038951f720fd1ca26070
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 00:16:14 2010 -0500

    GRelation: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore     |   1 +
 docs/reference/glib/tmpl/relations.sgml | 204
 --------------------------------
 glib/grel.c                             | 162 +++++++++++++++++++++++++
 3 files changed, 163 insertions(+), 204 deletions(-)

commit 21a6b69f4fe85948e6e97650ccdd6e280098a790
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 00:10:58 2010 -0500

    GCache: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore  |   1 +
 docs/reference/glib/tmpl/caches.sgml | 162
 -----------------------------------
 glib/gcache.c                        | 134 +++++++++++++++++++++++++++++
 3 files changed, 135 insertions(+), 162 deletions(-)

commit fa7cafae5cfea880a1d6cfc82b000eecd34534e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 00:05:48 2010 -0500

    GChecksum: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore    |   1 +
 docs/reference/glib/tmpl/checksum.sgml | 145
 ---------------------------------
 glib/gchecksum.c                       |  22 +++++
 3 files changed, 23 insertions(+), 145 deletions(-)

commit 5ee096636b3e603863e0935c2e7ff107b4d72f63
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jan 31 00:03:33 2010 -0500

    GCompletion: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore      |   1 +
 docs/reference/glib/tmpl/completion.sgml | 158
 -------------------------------
 glib/gcompletion.c                       | 122 ++++++++++++++++++++++++
 3 files changed, 123 insertions(+), 158 deletions(-)

commit 75b3bd99e1a219fdd8d8f0be5a9fdddfda120ace
Author: Christian Dywan <christian@twotoasts.de>
Date:   Mon Feb 1 12:37:23 2010 +0100

    Fix typo in introduction to threads in Glib

 glib/gthread.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f25e756ab65fef3bd793aaf234a82b4a82d19d67
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Sun Jan 31 19:57:59 2010 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 965
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 504 insertions(+), 461 deletions(-)

commit aa67c725e1bde15c900b65c1971771ec084cef20
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sun Jan 31 16:15:32 2010 +0000

    Fix shadowing of G_VALUE_COLLECT variables in G_VALUE_COLLECT_INIT

    Closes: bgo#608602

 gobject/gvaluecollector.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 6d52d34dff51676bdfa42d09c26c683304275c39
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 23:34:19 2010 -0500

    data{list,sets}, quarks: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore    |   3 +
 docs/reference/glib/tmpl/datalist.sgml | 244 -------------------
 docs/reference/glib/tmpl/datasets.sgml | 212 ----------------
 docs/reference/glib/tmpl/quarks.sgml   | 124 ----------
 glib/gdataset.c                        | 428
 ++++++++++++++++++++++++++++++++-
 5 files changed, 429 insertions(+), 582 deletions(-)

commit c7000fcfecca109a9f35c8c2e4e56d3a63cf5bd6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 23:10:34 2010 -0500

    GPattern: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore    |   1 +
 docs/reference/glib/tmpl/patterns.sgml | 124
 ---------------------------------
 glib/gpattern.c                        | 103 +++++++++++++++++++++++++++
 3 files changed, 104 insertions(+), 124 deletions(-)

commit 84572f81bfc2696390625e814d0200cbb26220cb
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 23:04:52 2010 -0500

    String chunks: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore         |   1 +
 docs/reference/glib/tmpl/string_chunks.sgml | 108
 ----------------------------
 glib/gstring.c                              |  35 +++++++++
 3 files changed, 36 insertions(+), 108 deletions(-)

commit 4431ac5dda5a3f130c9eb8f41445c883d960fe4c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 22:58:43 2010 -0500

    Move allocator and memchunk docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore         |   2 +
 docs/reference/glib/tmpl/allocators.sgml    |  57 -----
 docs/reference/glib/tmpl/memory_chunks.sgml | 331
 --------------------------
 glib/gmem.c                                 | 353
 ++++++++++++++++++++++++++++
 glib/gtimer.c                               |   3 +-
 5 files changed, 357 insertions(+), 389 deletions(-)

commit 3a161ee8f34f8c5861075a4b0d52730f7ba5bec0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 22:19:29 2010 -0500

    GSequence: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore    |   1 +
 docs/reference/glib/tmpl/sequence.sgml | 432
 ---------------------------------
 glib/gsequence.c                       |  69 ++++++
 3 files changed, 70 insertions(+), 432 deletions(-)

commit 0ab7bb4b18908813b484514b8d2f597d962dd3c7
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 22:15:35 2010 -0500

    GShell: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore |  1 +
 docs/reference/glib/tmpl/shell.sgml | 68
 -------------------------------------
 glib/gshell.c                       | 22 ++++++++++++
 3 files changed, 23 insertions(+), 68 deletions(-)

commit f6482a1eaa10f6e21536776ca667980ccd9e5f77
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 22:12:22 2010 -0500

    GTimer: move docs from tmpl to .c

 docs/reference/glib/tmpl/.gitignore  |   1 +
 docs/reference/glib/tmpl/timers.sgml | 110
 -----------------------------------
 glib/gtimer.c                        |  91 ++++++++++++++++++++++++++++-
 3 files changed, 91 insertions(+), 111 deletions(-)

commit d87712d3e6d3975b2c0a5fb436b8b8d3e009a3e1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 21:55:03 2010 -0500

    Fix up gthread.c documentation

    The last incomplete commit got pushed accidentally.  This finishes
    it up.

 glib/gthread.c | 214
 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 151 insertions(+), 63 deletions(-)

commit 0f246e28ca6651b7b40a5a5668b45729226ca177
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 20:15:25 2010 -0500

    merge GVariantTypeInfo

 glib/Makefile.am          |   2 +
 glib/gvarianttypeinfo.c   | 841
 ++++++++++++++++++++++++++++++++++++++++++++++
 glib/gvarianttypeinfo.h   | 140 ++++++++
 glib/tests/gvarianttype.c | 429 +++++++++++++++++++++--
 4 files changed, 1392 insertions(+), 20 deletions(-)

commit 4c58a85dd1eb89fe45b8fc5730291238c057d63e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 16:00:51 2010 -0500

    Revert accidental commit "dirt"

    This reverts commit c46bc6ba1fc8c5045c9a93b95e78e81936e2d954.

 docs/reference/glib/Makefile.am           |   1 -
 docs/reference/glib/glib-sections.txt     |   2 +
 docs/reference/glib/tmpl/glib-unused.sgml | 847
 ++----------------------------
 docs/reference/glib/tmpl/macros_misc.sgml |   5 +-
 docs/reference/glib/tmpl/version.sgml     |  68 ---
 5 files changed, 44 insertions(+), 879 deletions(-)

commit f411e23043a5f97010ee12895f78a779df43b3dd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 14:06:12 2010 -0500

    GIO: Remove trailing "." from Since: tags in docs

    Typing "Since: 2.22." results in the creation of an
    api-index-2.22..xml
    file (ie: the last '.' is taken to be part of the version number).

 gio/gfileinfo.h | 4 ++--
 gio/gsocket.c   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit c46bc6ba1fc8c5045c9a93b95e78e81936e2d954
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 13:00:01 2010 -0500

    dirt

 docs/reference/glib/Makefile.am           |   1 +
 docs/reference/glib/glib-sections.txt     |   2 -
 docs/reference/glib/tmpl/glib-unused.sgml | 847
 ++++++++++++++++++++++++++++--
 docs/reference/glib/tmpl/macros_misc.sgml |   5 +-
 docs/reference/glib/tmpl/version.sgml     |  68 +++
 5 files changed, 879 insertions(+), 44 deletions(-)

commit 6857767b8600a361188f75e62c086ed7d7c06d7c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 12:32:09 2010 -0500

    move threads docs to .c

 docs/reference/glib/tmpl/.gitignore   |    1 +
 docs/reference/glib/tmpl/threads.sgml | 1801
 ---------------------------------
 glib/gthread.c                        | 1492 ++++++++++++++++++++++++++-
 3 files changed, 1475 insertions(+), 1819 deletions(-)

commit 4234481855b8bef92d594421977a2aa130ac3ad6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 13:29:23 2010 -0500

    GIOChannel: fill in missing docs

 docs/reference/glib/tmpl/iochannels.sgml | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 7b6c8a56059657073f56dbc2a9d04acde2588349
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 12:30:53 2010 -0500

    g_strlcpy doc: small fixup

    prevent the <note> from getting sucked in as part of the Returns:

 glib/gstrfuncs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 522dafe126ed814a1699238142fbc12b7f55b0b6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 12:13:50 2010 -0500

    gbitlock: fix gtkdoc brokenness

 glib/gbitlock.c | 1 +
 glib/gbitlock.h | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

commit d51b6c471ab13348077630e8f7a3a480b3d266f0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 01:00:50 2010 -0500

    GRand: move docs from tmpl to inline comments

 docs/reference/glib/tmpl/.gitignore          |   1 +
 docs/reference/glib/tmpl/random_numbers.sgml | 206
 ---------------------------
 glib/grand.c                                 |  64 +++++++++
 3 files changed, 65 insertions(+), 206 deletions(-)

commit 3de141b8d5d410a87481a2dec1bb3227464d97c8
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Jan 30 12:37:00 2010 +0100

    Updated Spanish translation

 po/es.po | 984
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 514 insertions(+), 470 deletions(-)

commit 2f4bc34b324505cc6b196a9793b71e8455fe8540
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 30 00:00:48 2010 -0500

    gvarianttype: fix a trivial missing const

 glib/gvarianttype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1d55cfb51e03f4ba23191df4625ca62d3624652e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 29 23:56:04 2010 -0500

    don't #include <glib.h> from other public headers

    fix up some problems that were hidden by that

 glib/glib.symbols   | 6 ++++--
 glib/gtestutils.c   | 1 +
 glib/gtestutils.h   | 6 +++++-
 glib/gurifuncs.c    | 1 +
 glib/gurifuncs.h    | 2 +-
 glib/gvarianttype.c | 1 +
 6 files changed, 13 insertions(+), 4 deletions(-)

commit 71b14dedd8fa7b141e1496ba0b727996f6808579
Author: Claude Paroz <claude@2xlibre.net>
Date:   Fri Jan 29 22:52:58 2010 +0100

    Updated French translation

 po/fr.po | 1008
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 514 insertions(+), 494 deletions(-)

commit a4f5a3705b7df850cac0313853f8f95b5cfe24df
Author: Andre Klapper <a9016009@gmx.de>
Date:   Fri Jan 29 22:33:06 2010 +0100

    Update POTFILES.in to make l10n.gnome.org happy

 po/POTFILES.in | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 6aa73f03eb14188b71b91c647442488e776a4952
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 28 22:43:51 2010 -0500

    improve gitignore

 .gitignore         | 3 +++
 glib/.gitignore    | 4 ++++
 gmodule/.gitignore | 1 +
 gobject/.gitignore | 1 +
 gthread/.gitignore | 1 +
 po/.gitignore      | 1 +
 tests/.gitignore   | 2 ++
 7 files changed, 13 insertions(+)

commit c73d2818432956aaedb12886ea0011847b7d030e
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 28 22:36:48 2010 -0500

    GHash: move docs from tmpl to inline comments

 docs/reference/glib/tmpl/.gitignore       |   1 +
 docs/reference/glib/tmpl/hash_tables.sgml | 489
 ------------------------------
 glib/ghash.c                              | 114 +++++++
 glib/ghash.h                              |  17 +-
 4 files changed, 130 insertions(+), 491 deletions(-)

commit fe89b2ea293cbcd02de2cba1834e03eee0190cdc
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 28 19:12:55 2010 -0500

    Since: markers for g_bit_*lock()

 glib/gbitlock.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 40eae351b1a95626f49ea042e5f5e9824c171c50
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 28 18:41:19 2010 -0500

    Bug 548967 - 1 bit mutex lock: add tests

    Add a test case for the new API.

    Always check the emulated futex(2) implementation, even on systems
    with
    futex support.

 configure.in               |   1 +
 glib/gbitlock.c            |   4 ++
 gthread/Makefile.am        |   3 ++
 gthread/tests/.gitignore   |   2 +
 gthread/tests/1bit-mutex.c | 127
 +++++++++++++++++++++++++++++++++++++++++++++
 gthread/tests/Makefile.am  |  15 ++++++
 6 files changed, 152 insertions(+)

commit 669b0f2d6b5ef3a4924a1402d569c4e38e4fb41c
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 28 11:32:07 2010 -0500

    Bug 548967 - 1 bit mutex lock

    Add support for a mutex lock that consumes only one bit of storage
    inside of an integer on systems that support futexes.  Futex is
    emulated
    (at a higher cost) on systems that don't have it -- but only in the
    contended case.

 configure.in                          |  26 +++
 docs/reference/glib/glib-sections.txt |   5 +
 glib/Makefile.am                      |   2 +
 glib/gbitlock.c                       | 292
 ++++++++++++++++++++++++++++++++++
 glib/gbitlock.h                       |  43 +++++
 glib/glib.h                           |   1 +
 glib/glib.symbols                     |   8 +
 glib/gthread.c                        |   1 +
 glib/gthreadprivate.h                 |   1 +
 9 files changed, 379 insertions(+)

commit 595cad2531ac8bb4a4954337931134cb304088df
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jan 28 12:39:46 2010 -0500

    glib docs: Delete and ignore empty .tmpl files

 docs/reference/glib/tmpl/.gitignore      |   4 ++
 docs/reference/glib/tmpl/ghostutils.sgml |  64 -------------------
 docs/reference/glib/tmpl/gurifuncs.sgml  | 104
 -------------------------------
 3 files changed, 4 insertions(+), 168 deletions(-)

commit b0a0ac51cb7e628f90b8293c098a6a1a26425301
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Jan 27 21:30:26 2010 -0500

    Return NULL from g_mapped_file_get_contents()

    In the case of an empty file, return NULL instead of "".  This means
    that the return result of g_mapped_file_get_contents() will always be
    page-aligned.

 README.in          | 5 +++++
 glib/gmappedfile.c | 6 ++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

commit 2a19bb7699c13e6d7cc5761d9285617e6b2b51f7
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Wed Jan 27 13:16:13 2010 +0100

    Updated Slovenian translation

 po/sl.po | 1315
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 682 insertions(+), 633 deletions(-)

commit 082ff883b64ca39a197b7fccb520f0b5fa707e8a
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Jan 26 16:12:20 2010 -0500

    Improve type documentation

 docs/reference/glib/tmpl/types.sgml | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

commit 7d6af08777d4762ec17bfe8a4fa6eb83ba8d6f36
Author: Christian Dywan <christian@twotoasts.de>
Date:   Tue Jan 26 20:45:40 2010 +0100

    Add gtk-doc comments with Since tags to GMemoryOutputStream properties

 gio/gmemoryoutputstream.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit b0d2f344a68abcc14558c0363ffbe5bfdcba2a66
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Jan 26 19:15:48 2010 +0100

    [glib/gvarianttype] Move some documentation to header file

    Also, change G_VARIANT_TYPE(str) for G_VARIANT_TYPE(type_string)
    so It's correctly documented now.

 glib/gvarianttype.c | 23 -----------------------
 glib/gvarianttype.h | 30 ++++++++++++++++++++++++++----
 2 files changed, 26 insertions(+), 27 deletions(-)

commit 3c66490503534eccdd9d3082684ca5c9abf89c0c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Jan 26 19:00:41 2010 +0100

    [glib/gvariantype] Added missing "Since: 2.24" tag

 glib/gvarianttype.c | 2 ++
 1 file changed, 2 insertions(+)

commit 3658727cfa0eca8c66bc2cdff46992099caf0acd
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Tue Jan 26 11:22:31 2010 +0100

    always use our own internal assertion message symbol

    Re-using glibc's __abort_msg symbol causes linking problems, since
    the symbol
    is declared private. Always use our own__glib_abort_msg symbol
    to store
    assertion messages, to avoid compatibility and linking problems.

    Also fix the test case to work with out of tree builds (such as "make
    distcheck"), and re-enable it.

    https://bugzilla.gnome.org/show_bug.cgi?id=594872

 configure.in                 | 14 --------------
 glib/gtestutils.c            | 26 +++++++++-----------------
 tests/Makefile.am            |  2 +-
 tests/run-assert-msg-test.sh | 17 +++++------------
 4 files changed, 15 insertions(+), 44 deletions(-)

commit e84a3f824855419c361ebc9f2e04768f96c6f3b9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 14:16:09 2010 -0500

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 079c980ecabf42ee9d0a061f9a11b078c6394225
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 14:14:14 2010 -0500

    2.23.2

 po/am.po          |   42 +-
 po/ar.po          |   45 +-
 po/as.po          |   45 +-
 po/ast.po         | 1355
 ++++++++++++++++++++++++++---------------------------
 po/az.po          |   42 +-
 po/be.po          |   42 +-
 po/be@latin.po    |   45 +-
 po/bg.po          |  921 ++++++++++++++++++------------------
 po/bn.po          | 1256
 +++++++++++++++++++++++--------------------------
 po/bn_IN.po       |   45 +-
 po/bs.po          |   42 +-
 po/ca.po          |   45 +-
 po/ca@valencia.po |   45 +-
 po/cs.po          |   45 +-
 po/cy.po          |   42 +-
 po/da.po          |   45 +-
 po/de.po          |   45 +-
 po/dz.po          |   42 +-
 po/el.po          |   45 +-
 po/en@shaw.po     |   45 +-
 po/en_CA.po       |   45 +-
 po/en_GB.po       |   45 +-
 po/eo.po          |   42 +-
 po/es.po          |  929 ++++++++++++++++++------------------
 po/et.po          |  484 ++++++++++++++++++-
 po/eu.po          |  996 ++++++++++++++++++++-------------------
 po/fa.po          |   42 +-
 po/fi.po          |   45 +-
 po/fr.po          |   45 +-
 po/ga.po          |   42 +-
 po/gl.po          |   45 +-
 po/gu.po          |   45 +-
 po/he.po          |   45 +-
 po/hi.po          |   45 +-
 po/hr.po          |   42 +-
 po/hu.po          |   45 +-
 po/hy.po          |   42 +-
 po/id.po          |   42 +-
 po/is.po          |   42 +-
 po/it.po          |   45 +-
 po/ja.po          |   45 +-
 po/ka.po          |   42 +-
 po/kn.po          |   45 +-
 po/ko.po          |   45 +-
 po/ku.po          |   42 +-
 po/lt.po          |   45 +-
 po/lv.po          |   42 +-
 po/mai.po         |   45 +-
 po/mg.po          |   42 +-
 po/mk.po          |   45 +-
 po/ml.po          |   45 +-
 po/mn.po          |   42 +-
 po/mr.po          |   45 +-
 po/ms.po          |   42 +-
 po/nb.po          |  925 ++++++++++++++++++------------------
 po/ne.po          |   42 +-
 po/nl.po          |   45 +-
 po/nn.po          |   45 +-
 po/oc.po          |   42 +-
 po/or.po          |   45 +-
 po/pa.po          |   45 +-
 po/pl.po          |   45 +-
 po/ps.po          |   42 +-
 po/pt.po          |   45 +-
 po/pt_BR.po       |   45 +-
 po/ro.po          |   45 +-
 po/ru.po          |   45 +-
 po/rw.po          |   42 +-
 po/si.po          |   42 +-
 po/sk.po          |   42 +-
 po/sl.po          |   45 +-
 po/sq.po          |   47 +-
 po/sr.po          |   45 +-
 po/sr@ije.po      |   42 +-
 po/sr@latin.po    |   45 +-
 po/sv.po          | 1323
 ++++++++++++++++++++++++++-------------------------
 po/ta.po          |   45 +-
 po/te.po          |   45 +-
 po/th.po          |   45 +-
 po/tl.po          |   42 +-
 po/tr.po          |   45 +-
 po/tt.po          |   42 +-
 po/uk.po          |  939 +++++++++++++++++++------------------
 po/vi.po          |   45 +-
 po/wa.po          |   42 +-
 po/xh.po          |   42 +-
 po/yi.po          |   42 +-
 po/zh_CN.po       |   45 +-
 po/zh_HK.po       |   45 +-
 po/zh_TW.po       |   45 +-
 90 files changed, 7008 insertions(+), 5674 deletions(-)

commit 975aea7bce39a2909607c6c40c2c0c945169b0c6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 14:13:48 2010 -0500

    Disable yet another failing test that was recently added...

 tests/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f13804f68e37c597533644e671d38229e80b917a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 12:46:35 2010 -0500

    Minor docs update

 docs/reference/gio/gio-sections.txt | 1 +
 1 file changed, 1 insertion(+)

commit bc4f3904f27652b844f9786ba2b243a5ea3368b5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 12:43:10 2010 -0500

    Another few failing tests disabled

 gio/tests/filter-streams.c | 2 ++
 1 file changed, 2 insertions(+)

commit 305c9c6de5436b35fc3929d4c4ff3f29c00d8678
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 12:29:09 2010 -0500

    Disable a failing test, tsk, tsk.

 glib/tests/array-test.c | 2 ++
 1 file changed, 2 insertions(+)

commit 81f186d1e55621622fc3a29f43522a8d5494edde
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 12:00:06 2010 -0500

    Mention GVariant

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit e0d1124bd9bc516daaa84c94fee39decf9acc1d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 11:57:47 2010 -0500

    Updates

 NEWS | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

commit b4c0b10658bb77f14005a117d5abdb620fec4068
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 25 11:31:56 2010 -0500

    add testcase for GVariantType

 glib/tests/.gitignore     |   1 +
 glib/tests/Makefile.am    |   3 +
 glib/tests/gvarianttype.c | 650
 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 654 insertions(+)

commit 0ccb288da103890dcf89ceda75fb8b488077a1de
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jan 25 11:26:27 2010 -0500

    merge GVariantType

    GVariantType is the type system for GVariant

 docs/reference/glib/glib-docs.sgml    |    1 +
 docs/reference/glib/glib-sections.txt |   68 ++
 glib/Makefile.am                      |    2 +
 glib/glib.h                           |    1 +
 glib/glib.symbols                     |   34 +
 glib/gvarianttype.c                   | 1495
 +++++++++++++++++++++++++++++++++
 glib/gvarianttype.h                   |  282 +++++++
 7 files changed, 1883 insertions(+)

commit 11d4e59712b5a19c9847facf6da79946c9bd24aa
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jan 20 21:06:30 2010 +0100

    Move the boxed private type data to TypeNode

    This way we don't need to keep a custom array that we bsearch on (and
    that isn't threadsafe) but can use the gtype.c machinery that is
    threadsafe. And fast, too!

    https://bugzilla.gnome.org/show_bug.cgi?id=554887

 gobject/Makefile.am     |  5 +++-
 gobject/gboxed.c        | 72
 ++++---------------------------------------------
 gobject/gtype-private.h | 41 ++++++++++++++++++++++++++++
 gobject/gtype.c         | 45 +++++++++++++++++++++++++++++++
 4 files changed, 95 insertions(+), 68 deletions(-)

commit ac666d2ae35b86c0d92ae70a0fb77b9df91035d1
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Jan 20 20:02:24 2010 +0100

    Put calls to registered copy/free functions into separate functions

    This eases cleaning up these functions.

    One optimization in value_set_internal() was lost in the process. It
    shouldn't cause too many issues when all is said and done.

    https://bugzilla.gnome.org/show_bug.cgi?id=554887

 gobject/gboxed.c | 97
 ++++++++++++++++++--------------------------------------
 1 file changed, 31 insertions(+), 66 deletions(-)

commit 4ecf8655b315f9da3d108356c8f39394300deae3
Author: Alexander Shopov <ash@contact.bg>
Date:   Mon Jan 25 11:58:18 2010 +0200

    Updated Bulgarian translation

 po/bg.po | 974
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 490 insertions(+), 484 deletions(-)

commit d819c8e486c9aaa2602d93fdd5cd1743d5a46624
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jan 24 20:50:51 2010 -0500

    Typo fixes

 gio/gsimpleasyncresult.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit cd59feff775e3cf9b15190dd6d75c4e6b98336e8
Author: Jamil Ahmed <itsjamil@gmail.com>
Date:   Sun Jan 24 22:54:12 2010 +0600

    Updated Bengali translation

 po/bn.po | 1295
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 691 insertions(+), 604 deletions(-)

commit e71dcb204e3be3c0129c0782f3b5420be47fb2ef
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sat Jan 23 01:07:46 2010 -0500

    gio: .gitignore gio-querymodules

 gio/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit c8fc3112f910b544ace0e1cb14d47555b38be6d8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jan 22 20:18:58 2010 -0500

    Bug 448888 - don't init g_slice for always-malloc

 glib/gslice.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 7693b0af445645f09e55ed7cebe0051c3d1fdd8d
Author: Alberto Garcia <agarcia@igalia.com>
Date:   Wed Jan 20 18:53:08 2010 +0100

    [tests] Remove C++ style comments

    It makes the IBM XL C Compiler (the 'native' non-free compiler
    on the AIX 5.3 and 6.1 platform) stop compiling with syntax error.

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=581300

    Signed-off-by: Javier Jardón <jjardon@gnome.org>

 gobject/tests/threadtests.c | 8 ++++----
 tests/slice-concurrent.c    | 2 +-
 tests/slice-test.c          | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

commit 6c3551fedb7bfde716fa00cfcbba00ca987c2a79
Author: Dan Winship <danw@gnome.org>
Date:   Mon Jan 18 09:46:19 2010 -0500

    [configure] More -lresolv-checking-fixing

    https://bugzilla.gnome.org/show_bug.cgi?id=586150

 configure.in | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 914120b9701650ccf7bede1907b69b521ca43236
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Jan 18 14:03:16 2010 +0100

    Ensure values are memset to 0 when calling G_VALUE_COLLECT_INIT()

    The reason we need to enforce this is that the GTypeValueTable
    documentation explicitly states that memory is memset to 0 when the
    value_init function is called.

    https://bugzilla.gnome.org/show_bug.cgi?id=603590

 gobject/gobject.c         | 2 +-
 gobject/gsignal.c         | 4 ++--
 gobject/gvaluecollector.h | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

commit 956b3b507d03b6d10f8bef34b3775a409c5ba9ee
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jan 13 11:24:28 2010 -0500

    [configure] Fix res_query check for OS X

    https://bugzilla.gnome.org/show_bug.cgi?id=586150

 configure.in  | 36 +++++++++++++++++++-----------------
 gio-2.0.pc.in |  2 +-
 2 files changed, 20 insertions(+), 18 deletions(-)

commit a6ab4b78725f6376c04f7fb2eb6cbf9a56387253
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Nov 17 21:15:15 2009 +0100

    Upgrade to version 0.8 of libasyncns

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=602240

 gio/libasyncns/asyncns.c   | 94
 ++++++++++++++++++++++++++++------------------
 gio/libasyncns/g-asyncns.h | 16 ++------
 2 files changed, 61 insertions(+), 49 deletions(-)

commit fe23567c436612e7a167c1681d6cb69392769fb7
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Wed Jan 13 17:29:39 2010 +0100

    Updated Basque language

 po/eu.po | 1044
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 512 insertions(+), 532 deletions(-)

commit b577c207a5279667801c44d8f1d9469ca431478b
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Jan 13 16:20:56 2010 +0100

    Updated Norwegian bokmål translation

 po/nb.po | 937
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 477 insertions(+), 460 deletions(-)

commit 7448eb71c3ac85a08c8f0fceaf9747e6298ae5c9
Author: Sven Herzberg <herzi@gnome-de.org>
Date:   Wed Jan 13 14:47:58 2010 +0100

    properly abort instead of looping infinitely

    Fixes: Bug 568760 - nautilus freezes due to a bug in garray.c:322

    * glib/garray.c: increase the size of potential return values by
      using an unsigned result; properly check if we still handle
      valid size
      proposals, return the original request if there's no usable
      size left
    * tests/array-test.c: reproduce the error condition of the bug report

 glib/garray.c           | 18 ++++++++++--------
 glib/tests/array-test.c | 24 ++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 8 deletions(-)

commit 820181a5de46da070d7792128fe148b51fc79a20
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Jan 13 10:25:52 2010 +0100

    Fix docs in previous commit

 gobject/gvaluecollector.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3c5e1fd903ce18efe51672074e01d1637c4bc0b2
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Jan 13 10:24:09 2010 +0100

    Remove additional thread support in performance test

    We're always enabling threads now so this is not needed.

 tests/gobject/performance.c      | 6 ------
 tests/gobject/run-performance.sh | 3 +--
 2 files changed, 1 insertion(+), 8 deletions(-)

commit 40bf3aa5d2fd9d2aa6244ce8023ad1eed3bf0383
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Wed Dec 2 11:50:02 2009 +0100

    gobject: Use new G_VALUE_COLLECT_INIT variant

    Makes g_object_new_valist 20% to 30% faster (against 2321e5a).

    Profiled against the pan newsreader which uses a variant of simple
    and complex object creation.

    https://bugzilla.gnome.org/show_bug.cgi?id=603590

 gobject/gobject.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

commit 0f25115ffc887110993f6947f9907a85374933d3
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Wed Dec 2 11:49:49 2009 +0100

    gsignal: Use new G_VALUE_COLLECT_INIT variant

    Makes g_signal_emit_valist from 15% to 20% faster.

    Results reported from profiling the pan newsreader which uses
    a variant
    of simple and complex signal emissions (i.e no args or various args)

    https://bugzilla.gnome.org/show_bug.cgi?id=603590

 gobject/gsignal.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

commit 546fc0ca331c8d1b3393fe218a697b6a1a1c1072
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Wed Dec 2 11:48:18 2009 +0100

    gvaluecollector: Add variant of G_VALUE_COLLECT for most used cases.

    Most callers of G_VALUE_COLLECT previously had to initialize the
    GValue
    and then G_VALUE_COLLECT would still go through a cleanup phase.

    The new variant allows passing a unitialized GValue along with a GType
    and speedup the initialization/collection process.

    https://bugzilla.gnome.org/show_bug.cgi?id=603590

 gobject/gvaluecollector.h | 44
 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 36 insertions(+), 8 deletions(-)

commit 3bb404f13329dbd6c67f777e5a6d9228716ab440
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 21:55:15 2010 +0100

    Mention thread changes in NEWS

 README.in | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 94b8613b5ffefadb5c82424bd1f3083ff11fa811
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 21:28:23 2010 +0100

    Use unconditional thread calls in gio and gobject

    If threads are available we always enable threads in gobject, which
    means all gio/gobject code can enable the unconditional thread calls.

    This is a minor optimization since we avoid a bunch of unnecessary
    is-threads-enabled checks.

    https://bugzilla.gnome.org/show_bug.cgi?id=606775

 configure.in        | 1 +
 gio/Makefile.am     | 5 +++++
 gobject/Makefile.am | 5 +++++
 3 files changed, 11 insertions(+)

commit de5c708e0b3d257388d3a5d09c80806d27069c88
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 21:26:52 2010 +0100

    Make thread calls unconditional if G_THREADS_MANDATORY is set

    Since gobject now initialized threads unconditionally if threads are
    available it makes no sense to have each thread operation
    conditionally check if threads are enables, so allow this to be
    avoided.

    https://bugzilla.gnome.org/show_bug.cgi?id=606775

 glib/gthread.h | 4 ++++
 1 file changed, 4 insertions(+)

commit fa2bced1f30f93443ef43ce8b5b1e437cd07168c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 21:22:45 2010 +0100

    Enable threads in g_type_init()

    This means threads will be supported for all gobject
    libraries/applications
    and initialized early enough to not cause any problems.

    This solves the problem of libraries needing threadsafety. Previosly
    they just called g_threads_init() anyway, which often works but
    sometimes
    breaks in unexpected ways.

    See this thread for more details:
    http://mail.gnome.org/archives/gtk-devel-list/2009-November/msg00208.html

    https://bugzilla.gnome.org/show_bug.cgi?id=606775

 docs/reference/glib/tmpl/threads.sgml | 8 ++++++++
 gobject-2.0-uninstalled.pc.in         | 2 +-
 gobject-2.0.pc.in                     | 2 +-
 gobject/Makefile.am                   | 2 +-
 gobject/gtype.c                       | 9 ++++++++-
 5 files changed, 19 insertions(+), 4 deletions(-)

commit 0df3ca8f9bbb624b219ecdb25d3fe8aa4a51d953
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 21:16:59 2010 +0100

    Relax g_thread_init() requirements

    We now allow g_thread_init(NULL) to be called after other glib calls
    (with
    some minor limitations). This is mainly a documentation change as this
    really was already possible.

    We also allow g_thread_init() to be called multiple times. Only the
    first call actually initializes the threading system, further calls
    are ignored (but print a warning if the argument is not NULL).

    https://bugzilla.gnome.org/show_bug.cgi?id=606775

 docs/reference/glib/tmpl/threads.sgml | 55
 ++++++++++++-----------------------
 gthread/gthread-impl.c                |  7 ++++-
 2 files changed, 25 insertions(+), 37 deletions(-)

commit 74ad124cfba3278c385d177a527f19574fda9670
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 13:09:10 2010 +0100

    Implement lazy loading of fam plugin

 gio/fam/Makefile.am  | 15 ++++++++++++++-
 gio/fam/fam-module.c | 11 +++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

commit 57b771235e8e548ba3bb68a49ae4f016072ee89f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 13:11:22 2010 +0100

    Add gio-querymodule program

    This can be used to update the giomodule.cache file in directories
    with
    giomodules in order to support lazy module loading.

 gio/Makefile.am        |  10 ++++
 gio/gio-querymodules.c | 133
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 143 insertions(+)

commit 682b3da99b1766b3dda0ee5978040e11108e063c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 11:57:17 2010 +0100

    Use the new lazy loading of modules for gio modules

 gio/giomodule.c | 30 +++++++++++-------------------
 1 file changed, 11 insertions(+), 19 deletions(-)

commit 488bede191081f035f24f7c3e55a86bc8ee2d7ae
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jan 12 11:36:12 2010 +0100

    Add support for lazy loading of giomodules

    Adds an optional query method to giomodules which should return all
    possible extension points the module may implement.

    Then we add a new call g_io_modules_scan_all_in_directory() similar to
    g_io_modules_load_all_in_directory() that doesn't return all loaded
    modules, thus allowing lazy loading.

    In g_io_modules_scan_all_in_directory we look for an optional
    giomodule.cache file and use the information in that to avoid
    loading modules until they are needed for an extension point.

 gio/gio.symbols |   1 +
 gio/giomodule.c | 211
 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 gio/giomodule.h |  31 +++++++++
 3 files changed, 222 insertions(+), 21 deletions(-)

commit 6aa1aef5562b2db9777ad17183427dbbb88599b2
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Tue Jan 12 12:54:49 2010 +0100

    Flush gcharsetconverter when needed.

    This patch fixes bug #605686.

 gio/gcharsetconverter.c | 53
 +++++++++++++++++++++++++++++--------------------
 1 file changed, 31 insertions(+), 22 deletions(-)

commit f4ccd96ea1a137eb0c533f177ff87290a84ee0d5
Author: Kamal Mostafa <kamal@whence.com>
Date:   Fri Jan 1 20:36:28 2010 -0800

    g_object_new(): skip varargs for simple calls

    g_object_new() avoids useless varargs processing for simple calls
    with no
    properties.  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=605883

 gobject/gobject.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 8c293b0ae0f3d7a404b3249872a1591313467b4f
Author: Daniel Nylander <po@danielnylander.se>
Date:   Sat Jan 9 16:43:35 2010 +0100

    Updated Swedish translation

 po/sv.po | 1354
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 691 insertions(+), 663 deletions(-)

commit e61fed47b39265056dc2f9f5c3c5a6fc14bc0bf2
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Thu Jan 7 20:26:48 2010 +0100

    Updated Spanish translation

 po/es.po | 950
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 483 insertions(+), 467 deletions(-)

commit 37716bd00a7911de545ebca3dc7a248503eaf46e
Author: Hiroyuki Ikezoe <poincare@ikezoe.net>
Date:   Thu Jan 7 19:33:39 2010 +0900

    Use GCC atomic builtin operations.

    Fix for bug #531902.

 configure.in       | 211
 +++++++++++++++++++++++++++++------------------------
 glib/Makefile.am   |   8 +-
 glib/gatomic-gcc.c |  92 +++++++++++++++++++++++
 3 files changed, 214 insertions(+), 97 deletions(-)

commit 7211f7f8eb6845b010f45dd9084f67f80af40412
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Thu Jan 7 10:47:20 2010 +0200

    docs: switch to xi:inbclude for the content to save some more seconds

 docs/reference/gobject/gobject-docs.sgml |  77 ++++-------
 docs/reference/gobject/tut_gobject.xml   |   3 +
 docs/reference/gobject/tut_gsignal.xml   |   3 +
 docs/reference/gobject/tut_gtype.xml     |   5 +-
 docs/reference/gobject/tut_howto.xml     |  21 +--
 docs/reference/gobject/tut_intro.xml     |   3 +
 docs/reference/gobject/tut_tools.xml     | 221
 ++++++++++++++++---------------
 7 files changed, 163 insertions(+), 170 deletions(-)

commit 00db5238d9cdd1034f39749cac2d7b18df4b231c
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Thu Jan 7 11:31:24 2010 +0200

    docs: switch to xi:inbclude for the content to save some more seconds

 docs/reference/glib/building.sgml     |   4 +
 docs/reference/glib/changes.sgml      |   4 +
 docs/reference/glib/compiling.sgml    |   4 +
 docs/reference/glib/cross.sgml        |   4 +
 docs/reference/glib/glib-docs.sgml    | 231
 +++++++++++-----------------------
 docs/reference/glib/regex-syntax.sgml |   4 +
 docs/reference/glib/resources.sgml    |   4 +
 docs/reference/glib/running.sgml      |   4 +
 8 files changed, 103 insertions(+), 156 deletions(-)

commit d01e2527ce59b5daac2b63a6ac0074cbec8bebe5
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Thu Jan 7 10:22:14 2010 +0200

    docs: use xi:include to use the generated indexes if available.

    This works transparantly for people with new enough gtk-doc
    (>=1.11) and
    significantly improves the build time.

 docs/reference/gio/gio-docs.xml          | 19 ++++++----
 docs/reference/glib/glib-docs.sgml       | 62
 +++++++++++++++++++-------------
 docs/reference/gobject/gobject-docs.sgml | 54
 +++++++++++++++++-----------
 3 files changed, 84 insertions(+), 51 deletions(-)

commit 4c55b45162a3a76ca6c1d1c450ea667eeb7bae44
Author: Haakon Sporsheim <haakon.sporsheim@gmail.com>
Date:   Thu Jan 7 10:12:13 2010 +0200

    Don't do pointer arithmetics on void*

    For instance MSVC doesn't like that.

    Signed-off-by: Tor Lillqvist <tml@iki.fi>

 gobject/gatomicarray.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 759fbac7b765e3ef3df4e64e534c99d45526bdd3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 6 17:37:11 2010 -0500

    Add properties to GMemoryOutputStream

    This helps bindings. Patch by Krzysztof Kosiński. See bug 605733.

 gio/gmemoryoutputstream.c        | 308
 ++++++++++++++++++++++++++++-----------
 gio/gmemoryoutputstream.h        |   6 +-
 gio/tests/memory-output-stream.c |  37 +++++
 3 files changed, 260 insertions(+), 91 deletions(-)

commit f2d8f6287d6e3fcb9e58402c2051d557f7e41632
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jan 6 13:23:48 2010 -0500

    Fix the filename roundtrip check

    The check was always failing because the code was comparing
    the wrong strings. Reported in bug 605977.

 gio/glocalfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit baf20e09842a97c2d7925dff5ff9c6d35e36b27d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jan 5 18:49:23 2010 -0500

    GUnixFDMessage: fix a small typo in an extra check

    In the deserialise function, GUnixFDMessage was comparing 'level' to
    both SOL_SOCKET and SCM_RIGHTS.  It is correct to compare 'type' to
    SCM_RIGHTS.  The code passed tests only because:

    1) it's a "should always be OK" double-check

    2) SOL_SOCKET and SCM_RIGHTS, by chance, both have the value '1' on
       Linux systems.

 gio/gunixfdmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b00c6d7fb5798b4e528554e1221a553ab95506ed
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 5 18:18:55 2010 -0500

    Fix a memleak

    An early exit in expand_application_parameters forgot to free
    a GString. Reported by Steve Grubb.

 gio/gdesktopappinfo.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 6cee86a3efc98333282218f8eb1e0149a7cd703d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Jan 5 18:16:37 2010 -0500

    Fix an off-by-one error

    Reported by Steve Grubb.

 gio/gcontenttype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95889d19275fd0f8f47f6c7f0e5b37861aa28497
Author: Maxim V. Dziumanenko <dziumanenko@gmail.com>
Date:   Tue Jan 5 16:53:01 2010 +0200

    Update Ukrainian translation

 po/uk.po | 948
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 474 insertions(+), 474 deletions(-)

commit e8ccfd1bb2e17037d54440290b718bd19567a2e4
Author: Haakon Sporsheim <haakon.sporsheim@gmail.com>
Date:   Tue Jan 5 11:28:43 2010 +0200

    Avoid compilation warning from MSVC

    Signed-off-by: Tor Lillqvist <tml@iki.fi>

 glib/gutils.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d13c552dafe93e819e9c17bb68f46c33c9e97b10
Author: Piotr Eljasiak <epiotr@src.gnome.org>
Date:   Tue Jan 5 00:48:02 2010 +0100

    Fix a typo in the docs

 glib/gmarkup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c4600066a60e4ade006eeba196e560232f26116a
Author: Xandru Armesto Fernandez <xandru@softastur.org>
Date:   Mon Jan 4 22:10:47 2010 +0100

    Added asturian language

 po/LINGUAS | 1 +
 1 file changed, 1 insertion(+)

commit 4655e85081f1fe62a0dd01342dab2109d2979b16
Author: Xandru Armesto Fernandez <xandru@softastur.org>
Date:   Mon Jan 4 22:10:29 2010 +0100

    Updated asturian translations

 po/ast.po | 2084
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 2084 insertions(+)

commit 3f5fb1ee9c2e3c09bc21913f02c1797550acdcea
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Jan 3 23:34:26 2010 +0100

    [docs] Fix @title usage in "Enumeration and flags types" section

 gobject/genums.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit a91514ba1946ee048d9b2ddb049bc7dff5998940
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 2 19:50:55 2010 -0500

    Document that various functions ref GSimpleAsyncResult

    Patch by Will Thompson, see bug 602417.

 gio/gsimpleasyncresult.c | 220
 ++++++++++++++++++++++++-----------------------
 1 file changed, 113 insertions(+), 107 deletions(-)

commit f58fa6934315bc83d57a6d63ae1f9ca08dd9731b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 2 19:44:26 2010 -0500

    Document that _finish() must be called at most once.

    The patch was provided by Will Thompson in bug 602417.

 gio/gasyncresult.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 74af99b860db66d6e32ed12c54016246e60be99a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 2 19:35:08 2010 -0500

    Fix a typo

    ...and some whitespace fixes. Pointed out by Will Thompson in
    bug 602417.

 gio/gasyncresult.c | 69
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 35 insertions(+), 34 deletions(-)

commit 0542e6dbf9b817a3ad4f0dbf4b85177536e11277
Author: Pablo Castellano <pablog@src.gnome.org>
Date:   Sun Jan 3 01:23:53 2010 +0100

    Updated .gitignore files

 glib/.gitignore    | 1 +
 gobject/.gitignore | 1 +
 2 files changed, 2 insertions(+)

commit ab799115defeab7771f3cb5cd0c88eba0d73558a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Jan 2 19:17:37 2010 -0500

    Don't return anything from a void function

    Sun C doesn't like it. Reported in bug 604824.

 gio/gconverter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 05af612943b4f34b63e4bfcb7dc7bbab6725417b
Author: Ivar Smolin <okul@linux.ee>
Date:   Sat Jan 2 22:42:01 2010 +0200

    Updating Estonian translation

 po/et.po | 490
 ++-------------------------------------------------------------
 1 file changed, 15 insertions(+), 475 deletions(-)

commit 32f79f55ef287bf505ff434f13d79d89f3630bb2
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Thu Dec 31 12:42:41 2009 +0100

    Bug 604457 -  gutf8inputstream.c: increasing unknown size pointer

 gio/gutf8inputstream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 73ca6f70199353c22bf2d6aa99d5cd1eaea76702
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Dec 28 02:04:01 2009 +0100

    [docs] Fix 'Deprecated' tag on some win32 functions

    Fix g_win32_get_package_installation_directory() and
    g_win32_get_package_installation_subdirectory_utf8()

 glib/gwin32.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 85e00d3a9433a5f83f9897c832fa00e4e0540e2c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Thu Dec 24 05:05:21 2009 +0100

    [docs] Fix 'Deprecated' tag in g_date_set_time()

 glib/gdate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit da66897950431870390f8dc3f798e24f23ffb8c8
Author: Martin Pitt <martin.pitt@ubuntu.com>
Date:   Tue Dec 22 11:09:20 2009 +0100

    Support storing assertion messages into core dump

    Crash interception/debugging systems like Apport or ABRT capture
    core dumps for
    later crash analysis. However, if a program exits with an assertion
    failure,
    the core dump is not useful since the assertion message is only
    printed to
    stderr.

    glibc recently got a patch which stores the message of assert()
    into the
    __abort_msg global variable.
    (http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=48dcd0ba)
    That works fine for programs which actually use the standard C
    assert() macro.

    This patch adds the same functionality for glib's assertion tests. If
    we are
    building against a glibc which already has __abort_msg (2.11 and
    later, or
    backported above git commit), use that, otherwise put it into our
    own field
    __glib_assert_msg.

    Usage:

      $ cat test.c
      #include <glib.h>

      int main() {
          g_assert(1 < 0);
          return 0;
      }

      $ ./test
      **ERROR:test.c:5:main: assertion failed: (1 < 0)
      Aborted (Core dumped)

      $ gdb --batch --ex 'print (char*) __abort_msg' ./test core
      [...]
      $1 = 0x93bf028 "ERROR:test.c:5:main: assertion failed: (1 < 0)"

    https://bugzilla.gnome.org/show_bug.cgi?id=594872

 configure.in                 | 14 +++++++++++++
 glib/gtestutils.c            | 23 +++++++++++++++++++++
 tests/.gitignore             |  1 +
 tests/Makefile.am            |  6 ++++--
 tests/assert-msg-test.c      |  8 ++++++++
 tests/run-assert-msg-test.sh | 48
 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 98 insertions(+), 2 deletions(-)

commit e9ab9eaff66b62c9653b90cca2eaf1d142f716a1
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Tue Dec 22 23:39:21 2009 +0700

    Updated Thai translation.

 po/th.po | 35 +++++++++++++++--------------------
 1 file changed, 15 insertions(+), 20 deletions(-)

commit 8202728f067c5d418f4fcc5172a990aa1c68312b
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Dec 22 00:46:12 2009 +0200

    Install gio-unix-2.0.pc only on Unix

    The gio-unix-2.0 headers are installed only on Unix anyway.

 Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit dba6cef3c9c29314c20a122647c23b12329025dc
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Dec 21 23:04:43 2009 +0100

    [docs] Fix G_DEFINE_INTERFACE "Since" tag

    This symbol is available since Glib 2.24, not 2.20.

 gobject/gtype.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e7488ca85721b05181f699f4e8b12098077ce210
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Jun 5 23:28:17 2009 -0400

    [gobject] Grow gvalue transform array exponentially

    Bug 589176 - Grow gvalue transform array exponentially

    Reduces about 180 realloc calls during g_type_init().

 gobject/gvalue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 88261680f518c3c701154504011f778866d6dc2a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 21 10:56:03 2009 -0500

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d7bdc48c2618cbc6b99c161592fd59c92d28d1c8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 21 10:54:11 2009 -0500

    2.23.1

 po/am.po          |  80 ++---
 po/ar.po          |  80 ++---
 po/as.po          |  80 ++---
 po/az.po          |  80 ++---
 po/be.po          |  80 ++---
 po/be@latin.po    |  80 ++---
 po/bg.po          |  80 ++---
 po/bn.po          |  80 ++---
 po/bn_IN.po       |  80 ++---
 po/bs.po          |  80 ++---
 po/ca.po          |  80 ++---
 po/ca@valencia.po |  80 ++---
 po/cs.po          |  80 ++---
 po/cy.po          | 917
 ++++++++++++++++++++++++++---------------------------
 po/da.po          |  80 ++---
 po/de.po          |  80 ++---
 po/dz.po          |  80 ++---
 po/el.po          |  80 ++---
 po/en@shaw.po     |  80 ++---
 po/en_CA.po       |  80 ++---
 po/en_GB.po       |  80 ++---
 po/eo.po          |  80 ++---
 po/es.po          |  80 ++---
 po/et.po          | 465 ++++++++++++++++++++++++++-
 po/eu.po          |  80 ++---
 po/fa.po          |  80 ++---
 po/fi.po          |  80 ++---
 po/fr.po          |  80 ++---
 po/ga.po          |  80 ++---
 po/gl.po          |  80 ++---
 po/gu.po          |  80 ++---
 po/he.po          | 930
 +++++++++++++++++++++++++++---------------------------
 po/hi.po          |  80 ++---
 po/hr.po          |  80 ++---
 po/hu.po          |  80 ++---
 po/hy.po          |  80 ++---
 po/id.po          |  80 ++---
 po/is.po          |  80 ++---
 po/it.po          |  80 ++---
 po/ja.po          |  80 ++---
 po/ka.po          |  80 ++---
 po/kn.po          |  80 ++---
 po/ko.po          |  80 ++---
 po/ku.po          |  80 ++---
 po/lt.po          |  80 ++---
 po/lv.po          |  80 ++---
 po/mai.po         |  80 ++---
 po/mg.po          |  80 ++---
 po/mk.po          |  80 ++---
 po/ml.po          |  80 ++---
 po/mn.po          |  80 ++---
 po/mr.po          |  80 ++---
 po/ms.po          |  80 ++---
 po/nb.po          | 917
 ++++++++++++++++++++++++++---------------------------
 po/ne.po          |  80 ++---
 po/nl.po          |  80 ++---
 po/nn.po          |  80 ++---
 po/oc.po          |  80 ++---
 po/or.po          |  80 ++---
 po/pa.po          |  80 ++---
 po/pl.po          |  80 ++---
 po/ps.po          |  80 ++---
 po/pt.po          |  80 ++---
 po/pt_BR.po       |  80 ++---
 po/ro.po          |  80 ++---
 po/ru.po          |  80 ++---
 po/rw.po          |  80 ++---
 po/si.po          |  80 ++---
 po/sk.po          |  80 ++---
 po/sl.po          |  80 ++---
 po/sq.po          |  80 ++---
 po/sr.po          |  80 ++---
 po/sr@ije.po      |  80 ++---
 po/sr@latin.po    |  80 ++---
 po/sv.po          |  80 ++---
 po/ta.po          |  80 ++---
 po/te.po          |  80 ++---
 po/th.po          |  80 ++---
 po/tl.po          |  80 ++---
 po/tr.po          |  80 ++---
 po/tt.po          |  80 ++---
 po/uk.po          |  80 ++---
 po/vi.po          | 127 ++++----
 po/wa.po          |  80 ++---
 po/xh.po          |  80 ++---
 po/yi.po          |  80 ++---
 po/zh_CN.po       |  80 ++---
 po/zh_HK.po       |  80 ++---
 po/zh_TW.po       |  80 ++---
 89 files changed, 5260 insertions(+), 4816 deletions(-)

commit ad1580e516fd481eaa1c6bb9134c1c11a517e824
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 21 10:02:07 2009 -0500

    Update release notes

 README.in | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 7af2609a44f26b8a6e65601fc2fa6f7453ff73c5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 21 09:59:24 2009 -0500

    Updates

 NEWS | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

commit 52405a6b5dcaa1e8e6268192760ee6e11939a3b5
Author: Iestyn Pryce <dylunio@gmail.com>
Date:   Mon Dec 21 14:57:15 2009 +0000

    Updated Welsh translation

 po/cy.po | 99
 ++++++++++++++++++++++++++++++----------------------------------
 1 file changed, 47 insertions(+), 52 deletions(-)

commit 71d508776efc69e2ee97b424bbeb25d3ced38ac8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 21 09:21:54 2009 -0500

    Remove comment as well

 glib/tests/option-context.c | 4 ----
 1 file changed, 4 deletions(-)

commit 7db8b92b979b2f95268d42eecf9dc7a361e6f5d1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 21 09:11:23 2009 -0500

    Revert the g_set_prgname change

    This change breaks our API and causes warnings from essentially
    all applications.
    See bug 563627.

 glib/gutils.c               | 11 ++---------
 glib/tests/option-context.c |  2 --
 2 files changed, 2 insertions(+), 11 deletions(-)

commit 473fd041324931cc1267e354408475058611d740
Author: Iestyn Pryce <dylunio@gmail.com>
Date:   Sun Dec 20 12:03:19 2009 +0000

    Updated Welsh translation

 po/cy.po | 1114
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 561 insertions(+), 553 deletions(-)

commit ccd33a4043008f2927df6988bfe623341afb91f9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Dec 19 11:46:19 2009 +0100

    Bug 501166 - Warning message says IA__g_type_init instead of
    g_type_init

 gobject/gtype.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 991702494946bdfcea958c6bd421b51867ea7545
Author: Javier Jardón <jjardon@gnome.org>
Date:   Tue Dec 15 21:15:41 2009 +0100

    G_DEFINE_INTERFACE_* documentation is not generated

    Fix the documentation: Replace "@Since:" with "Since:"

    https://bugzilla.gnome.org/show_bug.cgi?id=604645

 gobject/gtype.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 046e521b4f08a88c889620225faea7284356eb23
Author: Kamal Mostafa <kamal@whence.com>
Date:   Fri Dec 18 10:34:05 2009 -0800

    Fix typo "Performace" in gtester-report Details pop-up window

 glib/gtester-report | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f74c0e257fef1b6304294d34130e74b591b14acf
Author: Dan Winship <danw@gnome.org>
Date:   Fri Dec 18 12:27:36 2009 +0100

    update .gitignores

 gio/tests/.gitignore     | 26 +++++++++++++++-----------
 gobject/tests/.gitignore |  1 +
 2 files changed, 16 insertions(+), 11 deletions(-)

commit 28d91b5bb6f0543c259976d8338a7b4d95054dd3
Author: Dan Winship <danw@gnome.org>
Date:   Fri Dec 18 10:26:09 2009 +0100

    Fix UnixWare build by not using "sa_len" as a variable name

    https://bugzilla.gnome.org/show_bug.cgi?id=604875

 gio/gnetworkingprivate.h | 2 +-
 gio/gresolver.c          | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 50741f2fb2db13ef236974e676d1b6472c3aef5c
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Fri Dec 18 15:00:54 2009 +0700

    vi.po: updated Vietnamese translation

 po/vi.po | 412
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 197 insertions(+), 215 deletions(-)

commit 3f41e31bf974f6abaeb28264654d6b46b87b7428
Author: Gian Mario Tagliaretti <gianmt@gnome.org>
Date:   Tue Dec 15 23:49:18 2009 +0100

    Remove wrong file imports, only gio/gio.h should be included

 gio/gunixconnection.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit a0bcd63304c683d54e1d55203922a58de672b8f6
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Dec 14 03:16:55 2009 +0200

    Don't check for headers we include unconditionally

    Don't bother checking for winsock2.h and mswsock.h in the configure
    script as we include these unconditionally when building for Windows
    anyway.

 config.h.win32.in | 3 ---
 configure.in      | 2 +-
 2 files changed, 1 insertion(+), 4 deletions(-)

commit 8dc200db043fb7251baed6e346a7c5542a24a7b9
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Dec 14 03:09:46 2009 +0200

    Check for <wspiapi.h> and use it if present

    Should help bug #603527 if glib is built in an environment that has
    <wspiapi.h>.

 config.h.win32.in    | 7 +++++++
 configure.in         | 2 +-
 gio/gwin32resolver.c | 8 ++++++++
 3 files changed, 16 insertions(+), 1 deletion(-)

commit cdf00a6a9b98574dd4a06779de43612b9c8fa42a
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Tue Dec 8 17:05:09 2009 +0100

    Add unit tests for some more methods

 gio/tests/buffered-input-stream.c | 83
 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 82 insertions(+), 1 deletion(-)

commit 4fbbe190b7cbfd271bbb18428bc103ebffa41112
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Dec 7 22:00:51 2009 +0100

    Remove default implementation of async filter steam ops

    Not only is the default implementation broken (it causes infinite
    recursion
    as seen in bug #603982), but its also worthless. If we just fall
    back on the
    default stream operations we automatically get async version based on
    the sync filter stream operations, which is what we want.

 gio/gfilterinputstream.c  | 185
 +---------------------------------------------
 gio/gfilteroutputstream.c | 173
 -------------------------------------------
 2 files changed, 2 insertions(+), 356 deletions(-)

commit 8a6d5e203eb22dad7e197f33b8c7d96f72be4bea
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Dec 6 15:45:37 2009 +0100

    Fix makefile typo

 gio/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 568cd48365a8c8ffa6fc25d5282ec92de6e2ff31
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sat Nov 28 23:39:48 2009 +0100

    Add GUtf8InputStream - Bug #603270

    Add a filter input stream that performs utf8 validation.

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  18 ++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gio.h                           |   1 +
 gio/gio.symbols                     |   7 +
 gio/giotypes.h                      |   1 +
 gio/gutf8inputstream.c              | 327
 ++++++++++++++++++++++++++++++++++++
 gio/gutf8inputstream.h              |  80 +++++++++
 gio/tests/Makefile.am               |   4 +
 gio/tests/utf8-input-stream.c       | 252 +++++++++++++++++++++++++++
 11 files changed, 694 insertions(+)

commit c20280b41bc084793e2baa094dc03dc9d1d75f8b
Author: Yair Hershkovitz <yairhr@gmail.com>
Date:   Sun Dec 6 08:41:49 2009 +0200

    Updated Hebrew translation

 po/he.po | 961
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 481 insertions(+), 480 deletions(-)

commit efb594b7d49e5058de621f1253671ec192eae695
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Fri Dec 4 21:18:32 2009 +0100

    Updated Norwegian bokmål translation.

 po/nb.po | 951
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 476 insertions(+), 475 deletions(-)

commit 2321e5aed07154761223bb124770beba56700e41
Author: Matthew W. S. Bell <matthew@bells23.org.uk>
Date:   Wed Dec 2 01:48:30 2009 +0100

    Initialise variable in g_time_val_from_iso8601()

    The function does not initialise the struct tm,
    giving it improper values of tm_isdst making the result
    an hour out.

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=603540

 glib/gtimer.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 3d8035f799f632f196d914fde02dc052b7944581
Author: Jeroen Nijhof <jeroen.nijhof@ericsson.com>
Date:   Tue Dec 1 19:42:09 2009 +0100

    [gio] Remove some commas at end of enumerator list

    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=603476

 gio/gioenums.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 39cd766e8ef6901c097fdf2d3148fdc952f06b0e
Author: Dan Winship <danw@gnome.org>
Date:   Tue Dec 1 10:42:58 2009 +0100

    Use G_DEFINE_INTERFACE in gio

    Note: Since we export types with Iface in the name rather than
    Interface we have to use some typedefs to make this work. New
    interfaces should probably use Interface as the public name.

 gio/gappinfo.c        |  45 +------------
 gio/gasyncresult.c    |  44 +------------
 gio/gdesktopappinfo.c |  44 +------------
 gio/gdrive.c          | 175
 +++++++++++++++++++-------------------------------
 gio/gfile.c           |  46 +------------
 gio/gicon.c           |  44 +------------
 gio/gloadableicon.c   |  45 +------------
 gio/gmount.c          | 143 ++++++++++++++---------------------------
 gio/gseekable.c       |  38 +----------
 gio/gvolume.c         | 105 +++++++++---------------------
 10 files changed, 165 insertions(+), 564 deletions(-)

commit 91d96350a7eed2e2acfc0c254b6dfc4e6fe81a8b
Author: Dan Winship <danw@gnome.org>
Date:   Tue Dec 1 10:33:12 2009 +0100

    Add G_DEFINE_INTERFACE

    This is a macro similar to G_DEFINE_TYPE but it lets you define
    interfaces rather than classes.

    For discussion, see bug #320482

 docs/reference/gobject/gobject-sections.txt |  2 +
 gobject/gtype.h                             | 70
 ++++++++++++++++++++++++++++-
 gobject/tests/threadtests.c                 | 30 -------------
 3 files changed, 70 insertions(+), 32 deletions(-)

commit 74a970f754bbffcc9f0a3fa6dd9977a8640544c8
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Nov 30 19:50:21 2009 -0500

    Add byteswap macros for gsize/gssize.

 configure.in                             |  5 +++
 docs/reference/glib/glib-sections.txt    | 12 ++++++
 docs/reference/glib/tmpl/byte_order.sgml | 72
 ++++++++++++++++++++++++++++++++
 glib/gtypes.h                            |  5 +++
 glibconfig.h.win32.in                    |  4 ++
 5 files changed, 98 insertions(+)

commit 2a78adc5e3f5b33e92cc55570397da24e062aa24
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Oct 8 20:01:15 2009 +0200

    Only add object to list new objects when it has a custom constructor

    This works around the need to take a custom mutex twice and add the
    object to a GSList of objects that are currently in construction
    for the
    common case. Only when the constructor is overwritten do we use the
    previous behavior and allow things like singleton objects.

    The only slightly incompatible change is that previously, it was ok to
    call g_object_set() on construct-only properties while the object was
    initialized. This will now fail. If that behavior is needed, setting a
    custom constructor that just chains up will reenable this
    functionality.

    https://bugzilla.gnome.org/show_bug.cgi?id=557151

 gobject/gobject.c | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

commit f0f32a7ef0f7ae8cdd2aa2992d2e116dd7b602fe
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 24 15:04:20 2009 +0200

    Remove more read locks usage

    g_type_default_interface_peek() and g_type_value_table_peek()
    don't need
    to acquire read locks anymore when they test the refcount instead of
    node->data.

 gobject/gtype.c | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

commit 5cac5c828b9d56ed0b1932deb7364d6ba926eb96
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 24 14:57:19 2009 +0200

    Make g_type_class_peek[_static]() not take any locks

    By replacing a check for node->data with a check for
    NODE_REFCOUNT(node)
    these functions don't require a read lock anymore.

 gobject/gtype.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

commit 83ee0d947d7c103e975be0fc4e62415ad7d57571
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 13:19:46 2009 +0200

    gobject/tests: New test for dynamic class creation/destruction

    Starts 100 threads which ref/unref a dynamic class to test the recent
    changes to class init/uninit.

 gobject/tests/Makefile.am    |   4 +-
 gobject/tests/dynamictests.c | 235
 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 238 insertions(+), 1 deletion(-)

commit 35c376a8a6be94f6fd5c22164a5e0968f4d3e26e
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 12:42:49 2009 +0200

    Add type_data_ref_U() and use it in g_type_class_ref()

    The function returns TRUE if the type was previously initialized
    and can
    be easily reused. It returns FALSE and does not take a reference
    if the
    type is not referenced yet.

    g_type_class_ref() uses this to avoid taking locks in the common path,
    which speeds up object creation a lot - in particular in multithreaded
    applications.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 62
 ++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 42 insertions(+), 20 deletions(-)

commit 5160175656797fde6b301b0d832b692052b96e3e
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 12:29:25 2009 +0200

    Reorganize g_type_class_ref()

    Moves the first check out of the lock, as it's not required.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

commit 00a4470ad07551f3629029892b819c18d8902f2f
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 24 12:26:53 2009 +0200

    Make ClassData->init_state atomic

    This is necessary to make g_type_class_ref() lockless.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

    Also includes fix for:

    https://bugzilla.gnome.org/show_bug.cgi?id=587892

 gobject/gtype.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

commit 4c243b1cba6e94658e68c3e4b188d0d784ed7463
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 11:45:13 2009 +0200

    Make type_data_unref_U not take locks in the common case

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

commit 5e7dba0501f4af4ac5427bbf1227ba5cb026cffa
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 11:38:49 2009 +0200

    Make all accesses of Node->ref_count atomic

    This does not change any locking behavior at all, it just replaces
    simple getters/setters of the variable with atomic versions.

    The ref_count variable was kept as unsigned, even though that requires
    casting for all operations, to mirror GObject->refcount.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit 2ec989902b2800d150bbb2cf6c3b6924f43ed736
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 11:19:58 2009 +0200

    type_data_unref_Wm => type_data_unref_U

    Make the type unref function not hold any locks when called. This
    makes it easier to optimize it to be atomic later.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 37 ++++++++++++++-----------------------
 1 file changed, 14 insertions(+), 23 deletions(-)

commit b163759320ddfce0276b20bb453de70919aeeff3
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 24 11:16:10 2009 +0200

    Add a NODE_REFCOUNT getter

    This is useful when moving the code to be atomic.
    It also will make that patch smaller.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 39 +++++++++++++++++++--------------------
 1 file changed, 19 insertions(+), 20 deletions(-)

commit 170423f924950728cec21a784787aa43b0be71bc
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 10:44:17 2009 +0200

    Move setting the refcount to the end of the function

    This is a safety feature for when making it atomic later.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f8d24e849533e0e43cd7c9cf9a9692e4779c0472
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 10:16:48 2009 +0200

    Pass the TypeNode to type_data_last_unref_Wm()

    Previously the GType was looked up just for calling the function
    Also moves the unref functions together in the code.

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 57
 +++++++++++++++++++++++++++------------------------------
 1 file changed, 27 insertions(+), 30 deletions(-)

commit 718b476c4474e5c9e973046ef555ffcb9bfd38a1
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Thu Sep 24 10:03:14 2009 +0200

    Move ref_count from TypeNode->data to TypeNode

    https://bugzilla.gnome.org/show_bug.cgi?id=585375

 gobject/gtype.c | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

commit 69961d27a13b2083d864884b40c861c5e97a5c12
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Sep 9 16:42:32 2009 +0200

    Implement O(1) interface lookups

    Currently interface lookups are do a binary search over all the
    interfaces
    an object implements. Its possible to do this lookup in constant
    time using for
    instance the gcj algorighm described at:
    http://gcc.gnu.org/ml/java/1999-q3/msg00377.html

    This is an implementation of that based on GAtomicArray.

 gobject/gtype.c | 185
 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 151 insertions(+), 34 deletions(-)

commit 8f27a5e62129672f5c17b140ca854fd2307a9734
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Sep 9 16:51:28 2009 +0200

    Implement lock free interface lookup

    We implement lock free interface lookup by moving the n_ifaces
    counter into memory pointed to by TypeNode->iface_entries, and
    then updating this in RCU-style by always copying it, modifying
    the copy and then when the modification is done replace the old
    pointer with g_atomic_pointer_set.

    There is one additional complexity when freeing the old memory,
    since the old memory region can be in use. To handle this we
    don't free such memory, but put it on a free list and reuse it
    later. This means that lock-free lookups must be able to
    handle the memory being modified in random ways without crashing,
    and at the end we verify that the memory didn't change and the
    transaction is ok.

    With this infrastructure the patch then implements a lock-free
    version of type_lookup_iface_entry_L called type_lookup_iface_vtable_I
    and use it in: g_type_interface_peek, g_type_interface_peek_parent
    and type_node_check_conformities_UorL.

    Using the performance tests from bug 557100 shows that the general
    performance difference is negligible, but the lack of a lock for each
    type check and interface vfunc call should greatly enhance threaded
    scalability.

 gobject/gtype.c | 329
 +++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 204 insertions(+), 125 deletions(-)

commit 75ce4741f9a7a26098a77407de9b4cc2b985a254
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Sep 9 16:47:44 2009 +0200

    Add GAtomicArray for RCU-style lockless updates

    This adds supports for a lock-less a non-shrinking growable array.
    You can use it to do reads using no locks, as long as your read-code
    can handle that during the read transaction the object can be modified
    by another writer (but it will not change size or be freed), and you
    can only trust the result once the transaction has finished
    successfully.

    This doesn't free things like RCU normally does, instead it pushes the
    memory on a free list that is reused for other atomic arrays.

 gobject/Makefile.am    |   3 +-
 gobject/gatomicarray.c | 169
 +++++++++++++++++++++++++++++++++++++++++++++++++
 gobject/gatomicarray.h |  60 ++++++++++++++++++
 3 files changed, 231 insertions(+), 1 deletion(-)

commit f55752b10cc29090550005e16e9e7f72c5c060fa
Author: Ivar Smolin <okul@linux.ee>
Date:   Mon Nov 30 13:08:18 2009 +0200

    Updating Estonian translation

 po/et.po | 479
 ++-------------------------------------------------------------
 1 file changed, 10 insertions(+), 469 deletions(-)

commit 8df6191a322d6b412448aa5618daf68c4e0ab3da
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 30 00:11:10 2009 -0500

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2532707ce420623acaf7f1fc0bd3670bb3a8a86b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 30 00:09:36 2009 -0500

    2.23.0

 docs/reference/glib/tmpl/glib-unused.sgml |   67 ++
 docs/reference/glib/tmpl/macros_misc.sgml |    5 +-
 docs/reference/glib/tmpl/version.sgml     |   68 --
 po/am.po                                  |  282 +++---
 po/ar.po                                  |  285 +++---
 po/as.po                                  |  287 ++++---
 po/az.po                                  |  282 +++---
 po/be.po                                  |  283 +++---
 po/be@latin.po                            |  286 ++++---
 po/bg.po                                  |  287 ++++---
 po/bn.po                                  |  287 ++++---
 po/bn_IN.po                               |  287 ++++---
 po/bs.po                                  |  282 +++---
 po/ca.po                                  |  917 ++++++++++----------
 po/ca@valencia.po                         |  285 +++---
 po/cs.po                                  |  287 ++++---
 po/cy.po                                  |  282 +++---
 po/da.po                                  |  287 ++++---
 po/de.po                                  |  287 ++++---
 po/dz.po                                  |  282 +++---
 po/el.po                                  |  286 ++++---
 po/en@shaw.po                             |  966 +++++++++++----------
 po/en_CA.po                               |  285 +++---
 po/en_GB.po                               |  287 ++++---
 po/eo.po                                  |  282 +++---
 po/es.po                                  |  930 ++++++++++----------
 po/et.po                                  |  492 ++++++++++-
 po/eu.po                                  |  287 ++++---
 po/fa.po                                  |  282 +++---
 po/fi.po                                  |  287 ++++---
 po/fr.po                                  |  287 ++++---
 po/ga.po                                  |  282 +++---
 po/gl.po                                  |  941 ++++++++++----------
 po/gu.po                                  |  287 ++++---
 po/he.po                                  |  287 ++++---
 po/hi.po                                  |  287 ++++---
 po/hr.po                                  |  282 +++---
 po/hu.po                                  |  287 ++++---
 po/hy.po                                  |  282 +++---
 po/id.po                                  |  282 +++---
 po/is.po                                  |  282 +++---
 po/it.po                                  |  287 ++++---
 po/ja.po                                  |  287 ++++---
 po/ka.po                                  |  282 +++---
 po/kn.po                                  |  287 ++++---
 po/ko.po                                  |  287 ++++---
 po/ku.po                                  |  282 +++---
 po/lt.po                                  |  285 +++---
 po/lv.po                                  |  282 +++---
 po/mai.po                                 |  285 +++---
 po/mg.po                                  |  282 +++---
 po/mk.po                                  |  285 +++---
 po/ml.po                                  |  287 ++++---
 po/mn.po                                  |  282 +++---
 po/mr.po                                  |  287 ++++---
 po/ms.po                                  |  282 +++---
 po/nb.po                                  |  943 ++++++++++----------
 po/ne.po                                  |  282 +++---
 po/nl.po                                  |  285 +++---
 po/nn.po                                  |  285 +++---
 po/oc.po                                  |  282 +++---
 po/or.po                                  |  287 ++++---
 po/pa.po                                  |  287 ++++---
 po/pl.po                                  |  287 ++++---
 po/ps.po                                  |  282 +++---
 po/pt.po                                  |  287 ++++---
 po/pt_BR.po                               |  951 ++++++++++----------
 po/ro.po                                  |  287 ++++---
 po/ru.po                                  |  287 ++++---
 po/rw.po                                  |  282 +++---
 po/si.po                                  |  282 +++---
 po/sk.po                                  |  285 +++---
 po/sl.po                                  | 1282
 +++++++++++++--------------
 po/sq.po                                  |  288 ++++---
 po/sr.po                                  |  287 ++++---
 po/sr@ije.po                              |  282 +++---
 po/sr@latin.po                            |  287 ++++---
 po/sv.po                                  | 1332
 ++++++++++++++---------------
 po/ta.po                                  |  287 ++++---
 po/te.po                                  |  287 ++++---
 po/th.po                                  |  287 ++++---
 po/tl.po                                  |  282 +++---
 po/tr.po                                  |  287 ++++---
 po/tt.po                                  |  282 +++---
 po/uk.po                                  |  287 ++++---
 po/vi.po                                  |  285 +++---
 po/wa.po                                  |  282 +++---
 po/xh.po                                  |  282 +++---
 po/yi.po                                  |  282 +++---
 po/zh_CN.po                               |  285 +++---
 po/zh_HK.po                               |  287 ++++---
 po/zh_TW.po                               |  287 ++++---
 92 files changed, 16991 insertions(+), 14691 deletions(-)

commit 310e2e7291ba716755e538a6fe286a0072b39ef1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 29 22:57:00 2009 -0500

    More updates

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit 8907bfee863e969bc68de749a45f34d7f7f21699
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 29 22:54:16 2009 -0500

    Fix up GIO docs

 docs/reference/gio/gio-docs.xml      |  31 ++++-----
 docs/reference/gio/gio-sections.txt  | 113
 +++++++++++++++++++++++++++++++++
 docs/reference/gio/gio.types         |   9 +++
 gio/fen/fen-data.c                   |   4 --
 gio/gappinfo.h                       |   1 +
 gio/gcharsetconverter.c              |  31 ++++++++-
 gio/gconverterinputstream.c          |  13 +++-
 gio/gconverterinputstream.h          |   2 +-
 gio/gconverteroutputstream.c         |  13 +++-
 gio/gconverteroutputstream.h         |   2 +-
 gio/gdummyfile.c                     |   6 --
 gio/gioenums.h                       |   6 +-
 gio/glocaldirectorymonitor.c         |   7 --
 gio/glocalfile.c                     |   6 --
 gio/glocalfileinputstream.c          |   6 --
 gio/glocalfilemonitor.c              |   7 --
 gio/gunionvolumemonitor.c            |   9 +--
 gio/gunixvolume.c                    | 120
 +++++++++++++++--------------------
 gio/gunixvolumemonitor.c             |  12 ----
 gio/gwin32mount.c                    |   2 +-
 gio/gwin32volumemonitor.c            |   6 +-
 gio/win32/gwinhttpfile.c             |   4 +-
 gio/win32/gwinhttpfileinputstream.c  |   4 +-
 gio/win32/gwinhttpfileoutputstream.c |   4 +-
 gio/win32/gwinhttpvfs.c              |   2 +-
 25 files changed, 261 insertions(+), 159 deletions(-)

commit 80bda52b57440b66752df6aa4078e3a723b3a990
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 29 21:19:10 2009 -0500

    Fix dynamictype test to build

 tests/gobject/dynamictype.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 06c71ba399adc22c4f327876bac50bbd1a6dfcf4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 29 20:55:25 2009 -0500

    Fix 'make check' in gio

 gio/gio.symbols | 430
 +++++++++++++++++++++++++++++---------------------------
 gio/pltcheck.sh |   2 +-
 2 files changed, 225 insertions(+), 207 deletions(-)

commit a4a69df105e57a37fbb2b14275f262613aff1071
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 29 20:48:52 2009 -0500

    Remove filter-cat from TEST_PROGS

    Since it is not intended to be run as part of make check.

 gio/tests/Makefile.am | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 12939c54f93ddc61c02b592ced931fb30d797fe8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Nov 29 20:47:51 2009 -0500

    Disable a broken test

    One of the option context tests relied on the ability to
    call g_set_pgrname() more than once. Thats no longer possible
    (without incurring a warning that wrecks the test).

 glib/tests/option-context.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 31be5a93402ca596bb1bc5d872ef437c51ac6d12
Author: David Planella <david.planella@gmail.com>
Date:   Sun Nov 29 19:27:45 2009 +0100

    Updated Catalan translations, with some corrections from Carles
    Ferrando

 po/ca.po | 964
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 497 insertions(+), 467 deletions(-)

commit e7992b7b06df986bd36dd745a4cca2661e77f497
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sun Nov 29 15:14:10 2009 +0100

    Fix return type of g_converter_[in|out]put_stream.

    Fixes bug #603265

 gio/gconverterinputstream.c  |  8 ++++----
 gio/gconverterinputstream.h  |  4 ++--
 gio/gconverteroutputstream.c | 10 +++++-----
 gio/gconverteroutputstream.h |  4 ++--
 gio/tests/converter-stream.c | 30 +++++++++++++-----------------
 5 files changed, 26 insertions(+), 30 deletions(-)

commit bd2a9f7ebb12fde7ea4dcf38d252bfea519970e4
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Nov 28 13:26:38 2009 +0100

    Updated Spanish translation

 po/es.po | 24 +++++++++---------------
 1 file changed, 9 insertions(+), 15 deletions(-)

commit 35d440535fecaacce228089b91873afc6c5e069a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 28 01:59:12 2009 -0500

    Updates

 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

commit 43149aafe04027bf7f91abb05df64afafc5ed4c4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Nov 28 01:30:27 2009 -0500

    Bump version to 2.23.0

 configure.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 92a766c74380f7511b0f0c2ea04059133ff8fd73
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Fri Nov 27 13:33:16 2009 +0100

    Updated Slovenian translation

 po/sl.po | 213
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 114 insertions(+), 99 deletions(-)

commit 56653e930feebd36cf36523669f3bcad59ad3dc2
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Fri Nov 27 01:37:49 2009 +0100

    Updated Spanish translation

 po/es.po | 171
 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 99 insertions(+), 72 deletions(-)

commit 8586b636c7a0162f7b06e00c6a563eeaf24cab46
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 26 12:15:04 2009 -0500

    Bug 589631 - enclose literals with double quotes

    Improve strings for purpose of translation.

    Based on a patch from Leonardo Ferreira Fontenelle.

 gio/gmount.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 09b1b6414b6aa001733fa7897f48970cb3cf258a
Author: Christian Kellner <gicmo@gnome.org>
Date:   Fri Oct 9 15:06:44 2009 +0200

    Add "default location" support to GMount

    The "default location" of the given mount is a path that reflects
    the main entry point for the user (e.g. the home directory, or the
    root of the volume).

    https://bugzilla.gnome.org/show_bug.cgi?id=561998

 gio/gmount.c | 31 +++++++++++++++++++++++++++++++
 gio/gmount.h |  3 +++
 2 files changed, 34 insertions(+)

commit 2b2195bf68bf68837dc9f6b4765d3716694f42b3
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Nov 26 16:05:07 2009 +0100

    Pass in the right device to vfs->local_file_add_info for symlinks

    We used to pass the path for the symlink, but the device of the target
    which is wrong and breaks metadata access.

    https://bugzilla.gnome.org/show_bug.cgi?id=593809

 gio/glocalfileinfo.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 96f41b62836810563c4f69ba6d053e91c638728a
Author: Mures Andone <mures.andone@movial.com>
Date:   Tue Nov 10 14:59:31 2009 +0200

    Fixed bug 91 (GIO monitoring not working due to bad assert)

    https://bugzilla.gnome.org/show_bug.cgi?id=593856

 gio/inotify/ginotifydirectorymonitor.c | 10 ++++++++--
 gio/inotify/ginotifyfilemonitor.c      | 10 ++++++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

commit 97db31fa14d2556a649d1d66a0dfc1792c5908d7
Author: Will Thompson <will.thompson@collabora.co.uk>
Date:   Fri Nov 20 13:01:17 2009 +0000

    Apply English pedantry to GAsyncInitable's docs

    • "asynchronous" was misspelled as "asyncronous" in various places;
    • punctuation was missing;
    • g_async_initable_new_async() had a stray "and";
    • references to g_async_initable_new_finish() were missing a "the".

    https://bugzilla.gnome.org/show_bug.cgi?id=602417

 gio/gasyncinitable.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

commit 08d33b81ee4addefa6c5fac6894111d09f90951b
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Nov 26 13:15:11 2009 +0100

    Remove unused variable

 gio/gzlibdecompressor.c | 1 -
 1 file changed, 1 deletion(-)

commit b35fa1994d6607376136716c133dd88433706ee8
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Nov 26 12:30:14 2009 +0100

    Cast iface_init to GInterfaceInitFunc

    This is in line with what all other type define macros do.

    https://bugzilla.gnome.org/show_bug.cgi?id=508157

 gobject/gtypemodule.h       | 2 +-
 tests/gobject/dynamictype.c | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

commit 36646f46ab07dec3d5a2ce0c9ba1932587528ca8
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Nov 26 11:54:44 2009 +0100

    Add test for G_IMPLEMENT_INTERFACE_DYNAMIC

 tests/gobject/dynamictype.c | 53
 +++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 49 insertions(+), 4 deletions(-)

commit 7d51c96e5e39e8f3b403884f286ef781f0c952d6
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Nov 24 09:53:15 2009 +0100

    Add G_IMPLEMENT_INTERFACE_DYNAMIC

    Convenience macro to easy interface addition for dynamic types.

    https://bugzilla.gnome.org/show_bug.cgi?id=508157

 docs/reference/gobject/gobject-sections.txt |  1 +
 gobject/gtypemodule.h                       | 27
 ++++++++++++++++++++++++---
 2 files changed, 25 insertions(+), 3 deletions(-)

commit b3156508c49f5274805de1d0d9bc5a69f43de1e9
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 24 21:00:11 2008 +0200

    Add TB and PB cases to g_format_size_for_display

 glib/gfileutils.c | 32 +++++++++++++++++++++++++-------
 1 file changed, 25 insertions(+), 7 deletions(-)

commit 1ffedec41f01b2cac9ecd9664cec1867e5d1ebb0
Author: Tor Lillqvist <tml@iki.fi>
Date:   Wed Nov 25 12:57:10 2009 +0200

    Remove fuzzy marker from header, which crashed my msgfmt

 po/en@shaw.po | 1 -
 1 file changed, 1 deletion(-)

commit 3d7edc137e447456b7cd6b9df8b6257454c43a5d
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 11 22:40:28 2009 -0500

    Bug 601637 - add GUnixFDList

    change GUnixFDMessage to contain a GUnixFDList.

    add test case for GUnixFDMessage and GUnixFDList.

    update docs.

 docs/reference/gio/gio-docs.xml     |   1 +
 docs/reference/gio/gio-sections.txt |  23 +++
 docs/reference/gio/gio.types        |   1 +
 gio/Makefile.am                     |   2 +
 gio/gunixfdlist.c                   | 391
 ++++++++++++++++++++++++++++++++++++
 gio/gunixfdlist.h                   |  89 ++++++++
 gio/gunixfdmessage.c                | 193 +++++++++++-------
 gio/gunixfdmessage.h                |   7 +-
 gio/tests/Makefile.am               |   5 +-
 gio/tests/unix-fd.c                 | 197 ++++++++++++++++++
 10 files changed, 835 insertions(+), 74 deletions(-)

commit e5a98502be13e9f9561106577ecbc736211ca692
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Nov 24 13:31:33 2009 +0100

    Update gio.symbols with new functions

 gio/gio.symbols | 53
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

commit b7c4aa61523adfe79991051edf2d0128fd0e5222
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Nov 24 13:31:10 2009 +0100

    Export g_charset_converter_get_num_fallbacks in header

 gio/gcharsetconverter.h | 1 +
 1 file changed, 1 insertion(+)

commit 2af69f4135253573ccc3a14f0cb9555bdba6ac3b
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Nov 24 13:02:05 2009 +0100

    Fix GZlibCompressorFormat names

    What used to be called RAW is really the zlib header format.
    There is a real "raw" format, so rename the default and add a
    RAW type.

 gio/gioenums.h          |  8 +++++---
 gio/gzlibcompressor.c   | 12 ++++++++++--
 gio/gzlibdecompressor.c |  9 +++++++--
 gio/tests/filter-cat.c  |  4 ++--
 4 files changed, 24 insertions(+), 9 deletions(-)

commit 85501f5ffabe59ac38daf4d29990a7d5cd949c31
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 11 23:31:12 2009 -0500

    Bug 591214 - Warnings building gcancellable.o

    - check for EINTR on read() and write() calls
    - remove unused 'priv' variable

 gio/gcancellable.c | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

commit 48e2a570439373882cf755567e1d147bc5dd50e5
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 20 12:54:35 2009 -0600

    Bug 598712 - can't detect text file with backspace

    looks_like_text(): Allow '\b' to appear in text files.

 gio/gcontenttype.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 230745a350fea524f899c6319a7c529fd82bd377
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Nov 18 16:07:16 2009 +0100

    Add filter-cat test for GConverter streams

 gio/tests/Makefile.am  |   4 +
 gio/tests/filter-cat.c | 227
 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 231 insertions(+)

commit 92b9218cbf8cbc594c3a067b2dc09730416df85f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Nov 20 12:04:31 2009 +0100

    Add GZlibCompressor

 gio/Makefile.am       |   2 +
 gio/gio.h             |   1 +
 gio/giotypes.h        |   1 +
 gio/gzlibcompressor.c | 316
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gzlibcompressor.h |  51 ++++++++
 5 files changed, 371 insertions(+)

commit 38c3eb14e42da8ca2d55918be048cf1729591486
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Nov 19 17:20:20 2009 +0100

    Add GZlibDecompressor for zlib decompression

 gio/Makefile.am         |   2 +
 gio/gio.h               |   1 +
 gio/gioenums.h          |  15 +++
 gio/giotypes.h          |   1 +
 gio/gzlibdecompressor.c | 292
 ++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gzlibdecompressor.h |  50 +++++++++
 6 files changed, 361 insertions(+)

commit 8cb1252d92e5cfea3804ef27edc01cac5b044ff3
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Nov 19 17:16:29 2009 +0100

    Add zlib dependency to gio

    Will be used by compression APIs

 configure.in    | 11 +++++++++++
 gio-2.0.pc.in   |  1 +
 gio/Makefile.am |  1 +
 3 files changed, 13 insertions(+)

commit fce2873641ffe20834722ad33894c91b2e4b6c32
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 23 19:59:03 2009 +0200

    Add test for converter streams

 gio/tests/Makefile.am        |   4 +
 gio/tests/converter-stream.c | 576
 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 580 insertions(+)

commit 7f8991596be1f17bd71c367bef630423f0a83c35
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Nov 23 15:03:57 2009 +0100

    Add GConverterOutputStream

    This allows for conversion when saving

 gio/Makefile.am              |   2 +
 gio/gconverteroutputstream.c | 595
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gconverteroutputstream.h |  80 ++++++
 gio/gio.h                    |   1 +
 gio/giotypes.h               |   1 +
 5 files changed, 679 insertions(+)

commit afe3324fcac8ea2a6b6007c938d7974aa923c0d3
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Nov 23 15:02:50 2009 +0100

    Add g_output_stream_is_closing

    Need this to check how we're flushing when closing a converter
    output stream.

 gio/goutputstream.c | 29 ++++++++++++++++++++++++++++-
 gio/goutputstream.h |  1 +
 2 files changed, 29 insertions(+), 1 deletion(-)

commit 848e0bf760ea7326420669e90ef6675786dea702
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Oct 22 22:50:52 2009 +0200

    Add GConverterInputStream

    Read and convert data from an input stream

 gio/Makefile.am             |   2 +
 gio/gconverterinputstream.c | 544
 ++++++++++++++++++++++++++++++++++++++++++++
 gio/gconverterinputstream.h |  80 +++++++
 gio/gio.h                   |   1 +
 gio/giotypes.h              |   1 +
 5 files changed, 628 insertions(+)

commit 134e9bd84f6311e8b18fe69ce8df030561aa12d9
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Nov 23 16:19:08 2009 +0100

    Add fallback mode to GCharsetConverter

 gio/gcharsetconverter.c | 75
 ++++++++++++++++++++++++++++++++++++++++++++++---
 gio/gcharsetconverter.h |  3 ++
 2 files changed, 74 insertions(+), 4 deletions(-)

commit 4b8382823e0f03b59d07473f708f1892dcd743dc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Oct 21 21:25:36 2009 +0200

    Add GCharsetConverter

 gio/Makefile.am         |   2 +
 gio/gcharsetconverter.c | 373
 ++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gcharsetconverter.h |  52 +++++++
 gio/gio.h               |   1 +
 gio/giotypes.h          |   1 +
 5 files changed, 429 insertions(+)

commit 0d86b25f91aeff168474280f4f5e03df779afc6d
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Nov 18 13:14:13 2009 +0100

    Add GConverter interface

    This is an interface for stateful conversions of data. Its a generic
    interface suitable for things like IConv, compression, decompression,
    and regexp replacement.

 gio/Makefile.am  |   2 +
 gio/gconverter.c | 234
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gconverter.h |  94 ++++++++++++++++++++++
 gio/gio.h        |   1 +
 gio/gioenums.h   |  34 ++++++++
 gio/giotypes.h   |   1 +
 6 files changed, 366 insertions(+)

commit 110133135dabfb2ac829abe7bf84d95baf92a61a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Oct 20 14:12:31 2009 +0200

    Add G_IO_ERROR_PARTIAL_INPUT and G_IO_ERROR_INVALID_DATA errors

    These are needed for GConverter

 gio/gioenums.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 04d83e8e503a07e7b4279227c8f992ddf7c6ef4e
Author: Cody Russell <bratsche@gnome.org>
Date:   Mon Nov 23 07:48:14 2009 -0600

    gtester should fail even if -k is passed

 glib/gtester.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 874efeb8ea7b822cfba254421e76b331815782cb
Author: Vladimir Melo <vmelo@gnome.org>
Date:   Mon Nov 23 08:36:06 2009 -0500

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 928
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 469 insertions(+), 459 deletions(-)

commit 56eee6759ba04ad970d2bb356a27de13d79ea575
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Nov 20 14:40:58 2009 -0600

    Remove #include "glocalfile.h" from GFile

    It might give somebody the wrong idea. =)

 gio/gfile.c | 1 -
 1 file changed, 1 deletion(-)

commit ec79146572aece95c7bc032b486e6a57015ee6e4
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Nov 20 16:47:09 2009 +0100

    Fix thread-safety

    The n_children variable can be written when locked, while the n_supers
    variable is read at any time. As they both share the same bytes,
    accessing them is not threadsafe.
    This patch puts them into different bytes.

    Thanks to Xan Lopez and valgrind for noticing this.

 gobject/gtype.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit ba2b2bbca2b747d704ae62e99fc7d216f82111ff
Author: Juan A. Suarez Romero <jasuarez@igalia.com>
Date:   Fri Nov 20 16:46:41 2009 +0100

    priv variable should only be used in win32 code

 gio/gcancellable.c | 44 +++++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

commit 8e2fa44953f1f92afdb198bb3ff8b98bb4cf6699
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 19 10:19:01 2009 -0600

    g_socket_listener_add_any_inet_port is Since 2.24

    accidentally committed an old patch without updating.

 gio/gsocketlistener.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c005878ae7e429dd51f6be3d9a22b430c8155221
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Mon Jun 15 14:07:13 2009 -0400

    Bug 585566 - GSocketListener API issues

    Add a new function, g_socket_listener_add_any_inet_port(), to
    deal with
    the desired use case.

 docs/reference/gio/gio-sections.txt |   1 +
 gio/gio.symbols                     |   1 +
 gio/gsocketlistener.c               | 225
 ++++++++++++++++++++++++++++++++++++
 gio/gsocketlistener.h               |   3 +
 4 files changed, 230 insertions(+)

commit 77baa70eda24be0049d09123e4b81b1f03817110
Author: Christian Dywan <christian@lanedo.com>
Date:   Thu Nov 19 09:58:43 2009 -0600

    Bug 600550 - (...) doesn't treat arguments properly

    Add some additional checking to g_app_info_create_from_commandline to
    make it handle strange inputs more elegantly.

 gio/gdesktopappinfo.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 3257e8ebe470fce6b2eb935589f18d509336a227
Author: Vincent Untz <vuntz@gnome.org>
Date:   Wed Nov 18 16:37:47 2009 -0600

    Bug 600620 - Add g_app_info_get_display_name()

    This new API can make use of X-GNOME-FullName in .desktop files,
    to have
    the full name of applications.

 gio/gappinfo.c        | 27 +++++++++++++++++++++++++++
 gio/gappinfo.h        |  2 ++
 gio/gdesktopappinfo.c | 20 ++++++++++++++++++++
 3 files changed, 49 insertions(+)

commit 9681d7e75f2d1296a890bfa64b3478ea7025df62
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 18 18:43:30 2009 -0600

    Bug 595138 - GFile not robust with invalid input

    Improve handling of g_file_query_default_handler() when called on an
    invalid GFile (ie: one created with an invalid URI).

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d97ea298672880ee80964c07b9cf31d604c3df9
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Nov 17 20:41:48 2009 -0600

    Bug 600141 - Add -pthread to gmodule pkg-config

    It is not generally permissible to dlopen() libpthread into a program
    that is not already linked with threading support.  The most
    common case
    of this happening is when GIO opens Gvfs (which includes DBus, which
    links against libpthread).

    Since gmodule is the way that most users cause this problem for
    themselves and since the easiest workaround is to link the program
    with
    -pthread, the best fix for the issue is to add -pthread to the gmodule
    pkg-config.

 gmodule-2.0-uninstalled.pc.in           | 4 ++--
 gmodule-2.0.pc.in                       | 4 ++--
 gmodule-export-2.0.pc.in                | 4 ++--
 gmodule-no-export-2.0-uninstalled.pc.in | 4 ++--
 gmodule-no-export-2.0.pc.in             | 4 ++--
 5 files changed, 10 insertions(+), 10 deletions(-)

commit 983a717fa6431d67ce9d765c1714f77ecb0b02fa
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Nov 12 01:37:27 2009 -0500

    Bug 535159 - g_file_has_parent

    - add a g_file_has_parent() function as a wrapper around
       g_file_get_parent()

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gfile.c                         | 43
 +++++++++++++++++++++++++++++++++++++
 gio/gfile.h                         |  2 ++
 gio/gio.symbols                     |  1 +
 4 files changed, 47 insertions(+)

commit ba0a6e1911ee581f1d651a7a05bab789c760ef3c
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Nov 16 00:29:39 2009 +0100

    Fix compilation warning: Initialize the variable

 gio/tests/unix-streams.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c6243026ed61698a797ce1b731760e4f0497ad97
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Nov 16 00:33:07 2009 +0100

    Fix compilation warning: Remove unused function

 gio/xdgmime/xdgmimecache.c | 1 -
 1 file changed, 1 deletion(-)

commit 00a331f970dfd49e1f9dc5ed3b42a9dd41d530ce
Author: Javier Jardón <jjardon@gnome.org>
Date:   Mon Nov 16 00:22:03 2009 +0100

    Fix compilation warning: cast to (GCompareFunc)

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 18b3ff33afad10dfac7dfdf3025313490f8313cc
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Nov 15 05:51:45 2009 +0100

    Don't mention g_utf32_to_utf8() and g_utf8_to_utf32()

    These functions doesn't exist.
    Suggest to use g_ucs4_to_utf8/g_utf8_to_ucs4 to produce the UTF-8
    representation of a gunichar

    This fix bug: https://bugzilla.gnome.org/show_bug.cgi?id=601874

 docs/reference/glib/tmpl/unicode.sgml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 96bf69d4cc4077a986c9b2c398356e9d543d88bd
Author: Javier Jardón <jjardon@gnome.org>
Date:   Sun Nov 15 23:58:23 2009 +0100

    Suggest the use of G_STRFUNC

    Suggest G_STRFUNC in the documentation of the deprecated functions
    G_GNUC_PRETTY_FUNCTION and G_GNUC_FUNCTION

 docs/reference/glib/tmpl/macros_misc.sgml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6b7b7a76020e76370e416d794eceb99937b9ed33
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 11 23:48:06 2009 -0500

    Bug 587300 - g_cancellable_disconnect deadlock

    add documentation to clarify that a deadlock is the expected case for
    calling this function from a signal handler

 gio/gcancellable.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 3d09b8e09c07ebb3bae4074f946c5da8d643d247
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 11 23:21:48 2009 -0500

    Bug 591216 - Warning building resolver.o

    check result of write system call to quiet compiler warning

 gio/tests/resolver.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 78e8b39b49ce47a80e70319ffaf548cda177a746
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Nov 11 22:20:11 2009 -0500

    GSocket.receive_message: fix bogus allocation math

 gio/gsocket.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 409cdb8d13225125c12f7b56293b6dd397086c29
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Nov 11 20:09:53 2009 +0100

    Updated Norwegian bokmål translation.

 po/nb.po | 929
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 466 insertions(+), 463 deletions(-)

commit e5b20a3364b831a19b6cf99f67f803da3a6b6e6b
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Nov 10 14:19:59 2009 +0200

    Include all of share/gtk-doc/html to get also the gio docs

    Also add -D switches to not pointlessly include entries for
    directories
    in the zip files.

 glib-zip.in | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 6e86c9a6aa977331c6bd47b726aaf34398a5ad37
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Nov 10 01:37:13 2009 +0200

    Avoid gcc warning about redeclaration of atexit() on MinGW

 glib/gutils.h | 2 ++
 1 file changed, 2 insertions(+)

commit a9c4320e813aa80343ed5826c51be456a5683f5f
Author: Daniel Nylander <po@danielnylander.se>
Date:   Sun Nov 8 22:04:51 2009 +0100

    Updated Swedish translation

 po/sv.po | 1307
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 668 insertions(+), 639 deletions(-)

commit e9915ee7bdde49a7c6c2c0592b96f60cf31b8383
Author: Fran Diéguez <fran.dieguez@mabishu.com>
Date:   Sat Nov 7 14:40:58 2009 +0100

    Updated Galician Translation

 po/gl.po | 918
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 465 insertions(+), 453 deletions(-)

commit ee116a6b1c60343aafd5b10e11798adbeed0d555
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Fri Nov 6 21:51:28 2009 +0100

    Updated Spanish translation

 po/es.po | 927
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 467 insertions(+), 460 deletions(-)

commit 6c315c77895e7e64c5dfb08cc223ff442f924e00
Author: Ivar Smolin <okul@linux.ee>
Date:   Fri Nov 6 18:15:29 2009 +0200

    Updating Estonian translation

 po/et.po | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

commit fc0b5d735ed06fd09f6f6169965ea427d43c241b
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Fri Nov 6 14:58:44 2009 +0100

    Updated Slovenian translation

 po/sl.po | 1316
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 686 insertions(+), 630 deletions(-)

commit ef6117f78d036b956d3fe91f6a3748f64499f4c1
Author: Stéphane Démurget <stephane.demurget@free.fr>
Date:   Sun Oct 25 11:14:36 2009 +0100

    Bug 324930 - Nicer message for EPERM on symlink

    Introduced a more precise error message for EPERM when symlinking to
    a local filesystem.

    EPERM on symlink means symlinking is not supported by the underlying
    fs so it is not the general meaning of EPERM which roughly translates
    to 'Operation not permitted'.

 gio/glocalfile.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 3c57a6c7ccb38efb8fb3ecf12e9f66f113ffde19
Author: Tor Lillqvist <tml@iki.fi>
Date:   Wed Nov 4 23:59:18 2009 +0200

    Don't call WSAEventSelect() on -1

    If g_io_win32_sock_close() has been called on a socket channel, don't
    later in g_io_win32_free() call WSAEventSelect() on its fd which has
    been set to -1.

 glib/giowin32.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 0d6b1ab42a6a9026743f197f03264afdbac7fb7b
Author: Paolo Bonzini <bonzini@gnu.org>
Date:   Tue Nov 3 18:38:58 2009 +0200

    Don't run system("touch conf.glibtest)" in the AM_PATH_GLIB_2_0 macro

    Just use the C library instead to create the file. Helps building
    using Wine. Not that I think we want to endorse that, but accepting
    this minimal patch doesn't hurt. From bug #590016.

    Signed-off-by: Tor Lillqvist <tml@iki.fi>

 m4macros/glib-2.0.m4 | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit f6276add355388738f856201c400d1c43cedcaf2
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Nov 3 18:21:19 2009 +0200

    Improve descriptive comment text

 glibconfig.h.win32.in | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 9c292a831fac91dfe17158e3379d6ef4ad351c76
Author: Hib Eris <hib@hiberis.nl>
Date:   Tue Nov 3 15:06:29 2009 +0200

    Fix check for C++ compiler when cross-compiling

    Use AC_CHECK_TOOLS instead of AC_CHECK_PROGS. Patch from bug #577711.

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b64ee1f02098d229ff16df9dfebdc3e3f3d76687
Author: Carlo Bramini <carlo.bramix@libero.it>
Date:   Tue Nov 3 14:26:25 2009 +0200

    Make g_file_test() behave on Windows more like as on POSIX

    Patch from bug #572252.

 glib/gfileutils.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

commit 22d026d34492b27a531bc60e6edc10eec1aa61be
Author: Thomas Thurman <tthurman@gnome.org>
Date:   Sat Oct 31 02:49:31 2009 -0400

    Shavian translation

 po/LINGUAS    |    1 +
 po/en@shaw.po | 1968
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1969 insertions(+)

commit 4288ad76922da01d1f452c6c257e97008b16aaf0
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Oct 28 19:18:20 2009 +0100

    Properly nul-terminate return values from g_convert()

    The patch ensures that multibyte character sets are properly
    nul-terminated. This is an issue because the documentation claims to
    return a "nul-terminated" string and users of the API assume that
    means
    a proper nul-termination in the resulting character set.

    I looked at Pidgin and GStreamer code and found at least 3 cases where
    this was happening.

    This patch also reverts the documentation change from
    5a633f82dbbce067c56fba0ee372fd341b76368d as that is now no longer
    necessary.

 glib/gconvert.c | 44 ++++++++++++++++++++------------------------
 1 file changed, 20 insertions(+), 24 deletions(-)

commit 5a633f82dbbce067c56fba0ee372fd341b76368d
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Oct 27 21:07:13 2009 +0100

    Clarify documentation about g_convert() nul-terminated returns

    THere is effectively no nul-termination for multibyte characters.

 glib/gconvert.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

commit f3fbf37dd899de5d7bd61d86bed8aada479f564a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 25 02:56:13 2009 -0400

    Avoid a warning

 gio/gfile.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit e63262d49d40a36060613fb1d0ed468ca5dddc19
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 25 02:55:46 2009 -0400

    Don't give up too early when collecting mime types

    Since returning exactly one match has special significance, don't
    give up matching before we've found at least 2 types. Also, make
    sure that we don't return the same mime type more than once.
    Bug 541236.

 gio/xdgmime/xdgmimecache.c | 67
 +++++++++++++++++++++++++++++++++-------------
 gio/xdgmime/xdgmimeglob.c  | 43 +++++++++++++++++++++++++----
 2 files changed, 87 insertions(+), 23 deletions(-)

commit 3dab24828edd8ebfd6d6c8bb20c181fc0d5650a1
Author: Sven Herzberg <herzi@gnome-de.org>
Date:   Fri Oct 23 14:49:38 2009 +0200

    make sure g_set_prgname() gets called only once

    * glib/gutils.c: copy the call-once statement from
    g_set_application_name();
      Fixes Bug #563627: g_get_prgname() threadsafety

 glib/gutils.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

commit d105f431b0b684ed47e1c23ca283e38e522ce545
Author: Tor Lillqvist <tml@iki.fi>
Date:   Fri Oct 23 00:46:50 2009 +0300

    Fix GWin32DirectoryMonitor

    GWin32DirectoryMonitor was quite broken, but nobody had apparently
    noticed, or at least not filed any bug. Only now with a bleeding edge
    GTK+ file chooser does the code get exercised in common programs like
    gtk-demo or GIMP, apparently. Bug #598899.

 gio/win32/gwin32directorymonitor.c | 67
 ++++++++++++++++++++++++++++----------
 1 file changed, 50 insertions(+), 17 deletions(-)

commit 8eebc189440693922e23298a761189cfbe71f796
Author: Cody Russell <bratsche@gnome.org>
Date:   Wed Oct 14 21:24:30 2009 -0500

    GTypeModule derived class unref does not unload plugin

    Correctly unref the pclass. Patch by Chris Wilson and Tim Janik.

    https://bugzilla.gnome.org/show_bug.cgi?id=350200

 gobject/gtype.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit e95a3b0576fc9426441956e4053791e197d4f421
Author: Tomas Bzatek <tbzatek@redhat.com>
Date:   Tue Oct 13 16:21:42 2009 +0200

    Documentation fixes

 docs/reference/gio/gio-sections.txt | 1 +
 gio/gfileattribute.c                | 1 +
 gio/gfileinfo.h                     | 5 +++--
 3 files changed, 5 insertions(+), 2 deletions(-)

commit 443674faaa0c6c79492732fd56360faeca06e9ab
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Oct 12 00:18:48 2009 +0300

    Construct the gio module directory pathname at run-time on Windows

 gio/giomodule.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

commit 2a3710872f8bfc1c95dc8044c92c9ce020adad40
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Oct 8 11:59:23 2009 +0200

    xdgmime: sort glob hits with larger weight first

    Higher weight is more important, so return these first meaning
    they will be used as the default.

 gio/xdgmime/xdgmimecache.c | 2 +-
 gio/xdgmime/xdgmimeglob.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d9b87676fa8f0340a9baa2001ae912192e12d4c6
Author: Ivar Smolin <okul@linux.ee>
Date:   Thu Oct 8 09:56:25 2009 +0300

    Updating Estonian translation

 po/et.po | 477
 ++-------------------------------------------------------------
 1 file changed, 11 insertions(+), 466 deletions(-)

commit 3daaa459e332c62972c8792453e0a841157ecf11
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 7 10:31:19 2009 -0400

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f814174371cbc61404012720c49485bc4d66feba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 7 10:29:32 2009 -0400

    2.22.2

 NEWS                    |   6 +-
 build/win32/Makefile.am |   9 +-
 po/am.po                |   2 +-
 po/ar.po                |   2 +-
 po/as.po                |   2 +-
 po/az.po                |   2 +-
 po/be.po                |   2 +-
 po/be@latin.po          |   2 +-
 po/bg.po                |   2 +-
 po/bn.po                |   2 +-
 po/bn_IN.po             |   2 +-
 po/bs.po                |   2 +-
 po/ca.po                |   2 +-
 po/ca@valencia.po       |   2 +-
 po/cs.po                |   2 +-
 po/cy.po                |   2 +-
 po/da.po                |   2 +-
 po/de.po                |   2 +-
 po/dz.po                |   2 +-
 po/el.po                |   2 +-
 po/en_CA.po             |   2 +-
 po/en_GB.po             |   2 +-
 po/eo.po                |   2 +-
 po/es.po                |   2 +-
 po/et.po                |   2 +-
 po/eu.po                |   2 +-
 po/fa.po                |   2 +-
 po/fi.po                |   2 +-
 po/fr.po                |   2 +-
 po/ga.po                |   2 +-
 po/gl.po                |   2 +-
 po/gu.po                |   2 +-
 po/he.po                |   2 +-
 po/hi.po                |   2 +-
 po/hr.po                |   2 +-
 po/hu.po                |   2 +-
 po/hy.po                |   2 +-
 po/id.po                |   2 +-
 po/is.po                |   2 +-
 po/it.po                |   2 +-
 po/ja.po                |   2 +-
 po/ka.po                |   2 +-
 po/kn.po                |   2 +-
 po/ko.po                |   2 +-
 po/ku.po                |   2 +-
 po/lt.po                |   2 +-
 po/lv.po                |   2 +-
 po/mai.po               |   2 +-
 po/mg.po                |   2 +-
 po/mk.po                |   2 +-
 po/ml.po                |   2 +-
 po/mn.po                |   2 +-
 po/mr.po                |   2 +-
 po/ms.po                |   2 +-
 po/nb.po                |   2 +-
 po/ne.po                |   2 +-
 po/nl.po                |   2 +-
 po/nn.po                |   2 +-
 po/oc.po                |   2 +-
 po/or.po                |   2 +-
 po/pa.po                |   2 +-
 po/pl.po                |   2 +-
 po/ps.po                |   2 +-
 po/pt.po                |   2 +-
 po/pt_BR.po             |   2 +-
 po/ro.po                |   2 +-
 po/ru.po                | 909
 ++++++++++++++++++++++++------------------------
 po/rw.po                |   2 +-
 po/si.po                |   2 +-
 po/sk.po                |   2 +-
 po/sl.po                |   2 +-
 po/sq.po                |   2 +-
 po/sr.po                |   6 +-
 po/sr@ije.po            |   2 +-
 po/sr@latin.po          |  17 +-
 po/sv.po                |   2 +-
 po/ta.po                |   2 +-
 po/te.po                |   2 +-
 po/th.po                |   2 +-
 po/tl.po                |   2 +-
 po/tr.po                |   2 +-
 po/tt.po                |   2 +-
 po/uk.po                |   2 +-
 po/vi.po                |   2 +-
 po/wa.po                |   2 +-
 po/xh.po                |   2 +-
 po/yi.po                |   2 +-
 po/zh_CN.po             |   2 +-
 po/zh_HK.po             |   2 +-
 po/zh_TW.po             |   2 +-
 90 files changed, 553 insertions(+), 564 deletions(-)

commit 3d76112aed79b590b79899e46610ce7b2ecffc53
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Oct 7 09:28:19 2009 -0400

    Updates

 NEWS | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

commit 855deaa5780bfef3f6e8b3a41d00d6c7e40ca406
Author: Cody Russell <bratsche@gnome.org>
Date:   Tue Oct 6 12:27:12 2009 -0400

    g_object_unref racy condition can lead to crash

    Store whether the object has a toggleref before decrementing the
    refcount to prevent race condition when two threads simultaneously
    try to unref an object with a refcount of 2.
    Patch by Antoine Tremblay.

    https://bugzilla.gnome.org/show_bug.cgi?id=551706

 gobject/gobject.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit afa0db59df9b28d9ae8da9539f629165cc8490f3
Author: Leonid Kanter <leon@asplinux.ru>
Date:   Tue Oct 6 11:52:48 2009 +0300

    Updated Russian translation by <vicanis@gmail.com>

 po/ru.po | 1072
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 533 insertions(+), 539 deletions(-)

commit 68b1ca04433846b68141a72029ed67ae117a7e94
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Sat Oct 3 12:37:36 2009 +0200

    gobject/gtype.h: Fix _G_TYPE_CVH macro. Fixes #597194

    If __val doesn't exist, we shouldn't do any other checks.

 gobject/gtype.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1937765f9f9052a870cfd924b18e08aa8901a8f2
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Aug 19 17:24:16 2009 +0200

    Add fast path for construction with no params

    This avoids a bunch of code and makes construction of simple objects
    faster.

    Object construction performance improvement:
             Non-Threaded   Threaded
    Simple:           14%         5%
    Complex:        -1.1%      -2.2%

    Other tests stable.

    https://bugzilla.gnome.org/show_bug.cgi?id=557100

 gobject/gobject.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit ffc625ec9bcc4b2d34921940c07b28d244f2257a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Aug 19 17:22:32 2009 +0200

    Don't freeze/thaw notification during construction if no properties

    If the class has no properties there could be no notification anyway.
    This is an important optimization for construction of simple objects.

    Object construction performance improvement:
             Non-Threaded   Threaded
    Simple:           84%        91%
    Complex:        -1.4%      -0.6%

    Other tests stable.

    https://bugzilla.gnome.org/show_bug.cgi?id=557100

 gobject/gobject.c | 37 +++++++++++++++++++++++++------------
 1 file changed, 25 insertions(+), 12 deletions(-)

commit 302d13a757c164346883841ce040208906894b71
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 2 19:27:48 2009 +0200

    Add a check that no properties are added after a class is derived

    We can't support that, because that would cause the
    CLASS_HAS_PROPS_FLAG
    class flag to not be correct.

 gobject/gobject.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit 39a1fe5782c15873ab18b8d3d76adfcbd70dc6dd
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Aug 19 17:21:18 2009 +0200

    Add GObjectClass flag CLASS_HAS_PROPS_FLAG

    This is set if a class or any of its parents have installed any
    properties.

    https://bugzilla.gnome.org/show_bug.cgi?id=557100

 gobject/gobject.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 301d52d858b8e7d4b804b893dc2f740aaa0d5aa5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Aug 19 17:17:41 2009 +0200

    Add flags member for GObjectClass

    https://bugzilla.gnome.org/show_bug.cgi?id=557100

 gobject/gobject.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit af017accc55aff3d6f28df0a41724e93fca71ff4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Aug 19 15:48:19 2009 +0200

    Allocate GObjectNotifyQueue with g_slice instead of abusing g_list

    This is both cleaner and faster (it avoids function calls and
    zeroing the memory twice).

    Object construction performance improvement:
             Non-Threaded   Threaded
    Simple:           11%       1.3%
    Complex:           8%         6%

    Other tests stable.

    https://bugzilla.gnome.org/show_bug.cgi?id=557100

 gobject/gobjectnotifyqueue.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

commit f4d9789fcfc4c9be497414d6c65476adb9d20236
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Sep 9 17:08:57 2009 +0200

    Add gobject performance tests for threaded code

    This measures how much things like lock contention affects the gobject
    code.

 tests/gobject/Makefile.am            |   2 +
 tests/gobject/performance-threaded.c | 381
 +++++++++++++++++++++++++++++++++++
 2 files changed, 383 insertions(+)

commit b1f94af095bde6a9a695ce7b19425a62288ee0ee
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Aug 20 14:34:51 2009 +0200

    Add performance tests for GObject primitives

    These are basic performance test for a couple of basic gobject
    primitives:

    * construction of simple objects. Simple is a bare gobject derived
      class with no properties, signals or interfaces.

    * construction of complex objects. Complex is a gobject subclass
      with construct properties, normal properties, signals, and
      implements an interface.

    * run-time type check of complex objects

    * signal emissions

    Lots of care is taken to try to make the results reproducible. Each
    test is run for multible "rounds", where we try to make each round be
    "not too short" in order to be significant wrt timer accuracy, but
    also "not to long" to make the probability of some other random event
    happening on the system (interrupts, other process scheduled, etc)
    during the round less likely.
    The current target round time is 4 msecs, which was picked without
    rigour, but seems small wrt e.g. scheduler time.

    For each test we then run the calculated round size for 60 seconds,
    and then report the performance based on the minimal time of one
    round. The model here is that any random stuff that happens during a
    round can only slow it down, there is nothing that can make it go
    faster, so the minimal time is the best estimate of how fast one round
    goes.

    The result is not ideal, even on a "idle" system the results vary
    from round to round, but the variation seems to be less than 1%.
    So, any performance difference reported by this test over 1% is
    probably statistically significant.

    Additionally the tests can be run with or without threads being
    initialized. The script tests/gobject/run-performance.sh makes
    it easy to produce a performance report for the current checkout.

    https://bugzilla.gnome.org/show_bug.cgi?id=557100

 tests/gobject/Makefile.am        |   2 +
 tests/gobject/performance.c      | 735
 +++++++++++++++++++++++++++++++++++++++
 tests/gobject/run-performance.sh |   7 +
 3 files changed, 744 insertions(+)

commit 07ad638adff596ccd4bc2ec003be692059210357
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 2 12:54:18 2009 +0200

    remove xdgmime test

    This is getting diverged from the xdgmime copy and we don't need
    it here.

 gio/xdgmime/Makefile.am |   5 --
 gio/xdgmime/test-mime.c | 196
 ------------------------------------------------
 2 files changed, 201 deletions(-)

commit c7c0bcef893ca99609b102b42be5f871b9524a92
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 2 12:06:25 2009 +0200

    xdgmime - Correct the range checks for magic matching

 gio/xdgmime/xdgmimecache.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2624e7d6c6ddc5ad93caa7ce609092b6b54cb6d2
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 2 12:06:15 2009 +0200

    Remove unnecessary includes

 gio/xdgmime/xdgmimecache.c | 1 -
 gio/xdgmime/xdgmimeglob.c  | 1 -
 2 files changed, 2 deletions(-)

commit e1643fd76daf66ccffd9e6818e4f4ec8272e2a51
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 2 09:49:51 2009 +0200

    xdgmime - support the new case sensitive flag

 gio/xdgmime/xdgmimecache.c | 84
 +++++++++++++++++++++++++++++++++----------
 gio/xdgmime/xdgmimeglob.c  | 88
 +++++++++++++++++++++++++++++++++++++---------
 2 files changed, 136 insertions(+), 36 deletions(-)

commit 7c27df1feeea1d6ab8b927285cecc4ac34db8b06
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 2 09:48:35 2009 +0200

    xdgmime - support cache files with minor version 2

 gio/xdgmime/xdgmimecache.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit ce239a010e29c91f683dae354060f6ec6213e148
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Oct 2 09:46:33 2009 +0200

    Read the new glob2 format with case sensitive flags

 gio/xdgmime/xdgmime.c     |  4 +--
 gio/xdgmime/xdgmimeglob.c | 83
 ++++++++++++++++++++++++++++++++++-------------
 gio/xdgmime/xdgmimeglob.h |  6 ++--
 3 files changed, 66 insertions(+), 27 deletions(-)

commit 5e4a895bb37271169cb8c055d9ce1e3efe6ca525
Author: Tor Lillqvist <tml@iki.fi>
Date:   Fri Oct 2 12:43:21 2009 +0300

    Drop the VS8 project files from tarballs as they are unmaintained

 build/win32/Makefile.am | 1 -
 1 file changed, 1 deletion(-)

commit e5734fb87563181ee9f1f2827cb49d81e8ea28a7
Author: Pierre A. Joye <pierre.php@gmail.com>
Date:   Fri Oct 2 12:34:44 2009 +0300

    Update VS9 project files to fix build

    From bug #596784

 build/win32/vs9/gio.vcproj                 | 110
 ++++++++++++++++++++++++++++-
 build/win32/vs9/glib.vcproj                |  10 ++-
 build/win32/vs9/gmodule.vcproj             |   2 +-
 build/win32/vs9/gobject.vcproj             |   2 +-
 build/win32/vs9/gspawn-win32-helper.vcproj |   2 +-
 build/win32/vs9/gthread.vcproj             |   2 +-
 build/win32/vs9/install.vcproj             |   4 +-
 7 files changed, 122 insertions(+), 10 deletions(-)

commit e9fe53980b0ce8480c483774961b93388f3a55fe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 23:06:45 2009 -0400

    Fix --runtime-libdir option

    For stable releases, it needs to take LT_REVISION into account, not
    hardcode 0.

 gio/Makefile.am     | 4 ++--
 glib/Makefile.am    | 4 ++--
 gmodule/Makefile.am | 4 ++--
 gobject/Makefile.am | 4 ++--
 gthread/Makefile.am | 4 ++--
 5 files changed, 10 insertions(+), 10 deletions(-)

commit eeaf8c51209cbd11573adf6f6ba0d34f85920b1f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 22:07:04 2009 -0400

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit fffc3d41bd0968c37fd3edddf35a555fe91151d3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 22:05:27 2009 -0400

    2.22.1

 po/am.po          |  58 ++--
 po/ar.po          |  61 ++--
 po/as.po          |  61 ++--
 po/az.po          |  58 ++--
 po/be.po          |  59 ++--
 po/be@latin.po    |  61 ++--
 po/bg.po          |  61 ++--
 po/bn.po          | 932
 +++++++++++++++++++++++++++--------------------------
 po/bn_IN.po       |  61 ++--
 po/bs.po          |  58 ++--
 po/ca.po          |  61 ++--
 po/ca@valencia.po |  61 ++--
 po/cs.po          |  61 ++--
 po/cy.po          |  59 ++--
 po/da.po          |  61 ++--
 po/de.po          |  61 ++--
 po/dz.po          |  59 ++--
 po/el.po          |  61 ++--
 po/en_CA.po       |  61 ++--
 po/en_GB.po       |  61 ++--
 po/eo.po          |  58 ++--
 po/es.po          |  61 ++--
 po/et.po          |  61 ++--
 po/eu.po          |  61 ++--
 po/fa.po          |  59 ++--
 po/fi.po          |  61 ++--
 po/fr.po          |  61 ++--
 po/ga.po          |  60 ++--
 po/gl.po          |  61 ++--
 po/gu.po          |  61 ++--
 po/he.po          | 937
 +++++++++++++++++++++++++++---------------------------
 po/hi.po          |  61 ++--
 po/hr.po          |  58 ++--
 po/hu.po          |  61 ++--
 po/hy.po          |  58 ++--
 po/id.po          |  59 ++--
 po/is.po          |  58 ++--
 po/it.po          |  61 ++--
 po/ja.po          |  61 ++--
 po/ka.po          |  59 ++--
 po/kn.po          |  61 ++--
 po/ko.po          |  61 ++--
 po/ku.po          |  58 ++--
 po/lt.po          |  61 ++--
 po/lv.po          |  58 ++--
 po/mai.po         |  61 ++--
 po/mg.po          |  59 ++--
 po/mk.po          |  61 ++--
 po/ml.po          |  61 ++--
 po/mn.po          |  59 ++--
 po/mr.po          |  61 ++--
 po/ms.po          |  58 ++--
 po/nb.po          |  61 ++--
 po/ne.po          |  59 ++--
 po/nl.po          |  61 ++--
 po/nn.po          |  61 ++--
 po/oc.po          |  59 ++--
 po/or.po          |  61 ++--
 po/pa.po          |  61 ++--
 po/pl.po          |  61 ++--
 po/ps.po          |  61 ++--
 po/pt.po          |  61 ++--
 po/pt_BR.po       |  61 ++--
 po/ro.po          |  61 ++--
 po/ru.po          |  61 ++--
 po/rw.po          |  58 ++--
 po/si.po          |  59 ++--
 po/sk.po          |  60 ++--
 po/sl.po          |  61 ++--
 po/sq.po          |  61 ++--
 po/sr.po          |  61 ++--
 po/sr@ije.po      |  58 ++--
 po/sr@latin.po    |  61 ++--
 po/sv.po          |  61 ++--
 po/ta.po          |  61 ++--
 po/te.po          |  61 ++--
 po/th.po          |  61 ++--
 po/tl.po          |  59 ++--
 po/tr.po          |  61 ++--
 po/tt.po          |  59 ++--
 po/uk.po          |  61 ++--
 po/vi.po          |  61 ++--
 po/wa.po          |  58 ++--
 po/xh.po          |  59 ++--
 po/yi.po          |  58 ++--
 po/zh_CN.po       |  61 ++--
 po/zh_HK.po       |  61 ++--
 po/zh_TW.po       |  61 ++--
 88 files changed, 3278 insertions(+), 3765 deletions(-)

commit 82c6bf7d8c6abeda6dff80e5b754411398232cc3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 21:16:53 2009 -0400

    Updates

 NEWS | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 0c88408218050b9a239e90d6585731aeb1a1c181
Author: Miloš Popović <mpopovic@src.gnome.org>
Date:   Wed Sep 30 03:05:31 2009 +0000

    Updated Serbian translation

 po/sr.po       | 3 ---
 po/sr@latin.po | 3 ---
 2 files changed, 6 deletions(-)

commit b0adce8ab454c2c8e8da47019d510eac405e2452
Author: Miloš Popović <mpopovic@src.gnome.org>
Date:   Wed Sep 30 03:04:05 2009 +0000

    Updated Serbian translation

 po/sr@latin.po | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

commit b38f091b99adf4326001d5218d9e52bd1df8d800
Author: Miloš Popović <mpopovic@src.gnome.org>
Date:   Wed Sep 30 03:02:15 2009 +0000

    Updated Serbian translation

 po/sr.po       | 279
 +++++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 273
 ++++++++++++++++++++++++++++---------------------------
 2 files changed, 283 insertions(+), 269 deletions(-)

commit 0c652dc66e09a358c738492e0eb857fef56c6254
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 20:57:45 2009 -0400

    Don't mark test files for translation

    As pointed out in bug 596064

 po/POTFILES.in   | 1 -
 po/POTFILES.skip | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 6555e0171d6f9619b0f49109868fe99162ffbb72
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 20:52:26 2009 -0400

    Fix mime_info_cache_dir_add_desktop_entries

    This function tried to avoid adding duplicate entries, but failed
    due to using the wrong search function. See bug 595972.

 gio/gdesktopappinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2f93bea177a980b8ae750c07f3b269c9bea7ac25
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 20:45:26 2009 -0400

    Avoid a C99ism

    Move a variable declaration to the beginning of the block; see
    bug 596561. Also remove a pointless register declaration.

 glib/gmessages.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 442dadf3118cf3e2e9617461eb045f61483d58fc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 20:39:39 2009 -0400

    Improve docs for g_utf16_to_utf8

    Document that g_utf16_to_utf8 does not validate the resulting
    UTF-8 string. See bug 596314.

 glib/gutf8.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit 5fdb169b72b749218766e507deab491c5f5b0d9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 29 20:33:39 2009 -0400

    Clarify docs of g_async_result_get_source_object

    It returns a new reference. Reported in bug 596748

 gio/gasyncresult.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 90e1308809805691713edf8f651e80a063f9b66f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Sep 29 11:25:13 2009 +0200

    Avoid critical error in thread check if source is destroyed

    The source can be destroyed by the time we complete the result, and
    then the g_source_get_context(current_source) call will cause
    a critical error. We check for the source being destroyed and avoid
    the check in that case.

    This means we miss the right-thread check in this case, but thats
    merely a helper, so this is not critical.

 gio/gsimpleasyncresult.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 10c7b3a17e00283907139a19f1c6054f85a5d3a8
Author: Jamil Ahmed <itsjamil@gmail.com>
Date:   Tue Sep 29 04:01:37 2009 +0700

    Updated Bengali translation

 po/bn.po | 1967
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 951 insertions(+), 1016 deletions(-)

commit 6f1ce483eb136159f42b7dde3aa4466ba3e874c1
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 28 15:55:44 2009 +0200

    Always report metadata on the path, not symlink target

    Metadata are really part of the pathname, not the target file
    (as they are stored by pathname, and for many metadata like icon
    position
    etc make not sense using the target data). So, even if nofollow
    is not specified we should not follow links for metadata.

    Ideally this should be implemented in the metadata extension in gvfs,
    but the extension API does not allow this, so we do it in gio.

    See https://bugzilla.gnome.org/show_bug.cgi?id=593809

 gio/glocalfileinfo.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

commit 70027bf0928e7960c3ff78ce4a92aaad20ee899e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Sep 25 09:50:49 2009 +0200

    Fix up cast in gdb macros

    We need to actually assign the casted value somewhere.

 glib/glib.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e657dee578cc7b70c6a33fcb626e5d5aed4d82f3
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Sep 25 09:49:49 2009 +0200

    Use right soname for gdb autoloaded python files

    We need to look at LT_REVISION too to get the right filename.
    This was just hardcoded to zero before which is obviously wrong.

 glib/Makefile.am    | 2 +-
 gobject/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 660035479bc6583abc311cd4d43136fa447a95d6
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Fri Sep 25 10:39:58 2009 +0300

    Updated Hebrew translation

 po/he.po | 933
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 469 insertions(+), 464 deletions(-)

commit cc95c60c69af5e25e9c9eae11f68ba2436a0e6b0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Sep 24 10:26:46 2009 -0400

    Fix location of gdb macros

    These files need to be put in a location that corresponds to the
    location of the libraries, so we need to take the runtime-libdir
    path into account.

 configure.in        | 4 +++-
 glib/Makefile.am    | 4 ++--
 gobject/Makefile.am | 4 ++--
 3 files changed, 7 insertions(+), 5 deletions(-)

commit dcee4d4a66112a357626a6e2b1f749a24e41068a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 22 17:10:32 2009 -0400

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit cc4970cf9426ae4c929ccd859585a29fb9d243c8
Author: Josselin Mouette <joss@debian.org>
Date:   Wed Sep 23 18:39:45 2009 +0200

    Fall back to inotify_init if inotify_init1 does not work

    This fixes monitoring failing to work when glib is built on a 2.6.27+
    kernel but run on an older one.

    http://bugs.debian.org/544354
    https://bugzilla.gnome.org/show_bug.cgi?id=593775

 gio/inotify/inotify-kernel.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 1a4763e6ef8e4da2a5118a00ce567e00704979cd
Author: Tor Lillqvist <tml@iki.fi>
Date:   Wed Sep 23 09:33:48 2009 +0300

    Parse libtoolize --version more carefully

    Some recent versions of libtoolize output a version blurb like:
      libtoolize (GNU libtool 1.3110 2009-07-01) 2.2.7a
    Don't get confused by the numbers inside the parens.

 autogen.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 4c633ff0b58db039a29801d5039cc2756db90bbb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 22 16:57:08 2009 -0400

    2.22.0

 README.in                                 |    2 +-
 docs/reference/glib/tmpl/glib-unused.sgml |   67 --
 docs/reference/glib/tmpl/macros_misc.sgml |    5 +-
 docs/reference/glib/tmpl/main.sgml        |    7 +
 docs/reference/glib/tmpl/testing.sgml     |   21 +
 docs/reference/glib/tmpl/version.sgml     |   68 ++
 glib/Makefile.am                          |    9 +-
 gobject/Makefile.am                       |   10 +-
 po/am.po                                  |  188 ++--
 po/ar.po                                  |  188 ++--
 po/as.po                                  |  219 ++---
 po/az.po                                  |  188 ++--
 po/be.po                                  |  188 ++--
 po/be@latin.po                            |  188 ++--
 po/bg.po                                  |  915 ++++++++++----------
 po/bn.po                                  |  188 ++--
 po/bn_IN.po                               |  965 +++++++++++----------
 po/bs.po                                  |  188 ++--
 po/ca.po                                  |  925 ++++++++++----------
 po/ca@valencia.po                         |  188 ++--
 po/cs.po                                  |  915 ++++++++++----------
 po/cy.po                                  |  188 ++--
 po/da.po                                  |  925 ++++++++++----------
 po/de.po                                  |  188 ++--
 po/dz.po                                  |  188 ++--
 po/el.po                                  | 1332
 ++++++++++++++--------------
 po/en_CA.po                               |  188 ++--
 po/en_GB.po                               |  925 ++++++++++----------
 po/eo.po                                  |  188 ++--
 po/es.po                                  |  923 ++++++++++----------
 po/et.po                                  |  188 ++--
 po/eu.po                                  |  188 ++--
 po/fa.po                                  |  188 ++--
 po/fi.po                                  |  925 ++++++++++----------
 po/fr.po                                  |  188 ++--
 po/ga.po                                  |  188 ++--
 po/gl.po                                  |  920 ++++++++++----------
 po/gu.po                                  |  947 ++++++++++----------
 po/he.po                                  |  188 ++--
 po/hi.po                                  |  944 ++++++++++----------
 po/hr.po                                  |  188 ++--
 po/hu.po                                  |  188 ++--
 po/hy.po                                  |  188 ++--
 po/id.po                                  |  188 ++--
 po/is.po                                  |  188 ++--
 po/it.po                                  |  188 ++--
 po/ja.po                                  |  188 ++--
 po/ka.po                                  |  188 ++--
 po/kn.po                                  |  968 +++++++++++----------
 po/ko.po                                  |  188 ++--
 po/ku.po                                  |  188 ++--
 po/lt.po                                  |  188 ++--
 po/lv.po                                  |  188 ++--
 po/mai.po                                 |  188 ++--
 po/mg.po                                  |  188 ++--
 po/mk.po                                  |  188 ++--
 po/ml.po                                  |  979 ++++++++++-----------
 po/mn.po                                  |  188 ++--
 po/mr.po                                  |  947 ++++++++++----------
 po/ms.po                                  |  188 ++--
 po/nb.po                                  |  917 ++++++++++----------
 po/ne.po                                  |  188 ++--
 po/nl.po                                  |  188 ++--
 po/nn.po                                  |  188 ++--
 po/oc.po                                  |  188 ++--
 po/or.po                                  |  956 ++++++++++----------
 po/pa.po                                  |  943 ++++++++++----------
 po/pl.po                                  | 1339
 ++++++++++++++---------------
 po/ps.po                                  |  188 ++--
 po/pt.po                                  |  188 ++--
 po/pt_BR.po                               |  188 ++--
 po/ro.po                                  |  926 ++++++++++----------
 po/ru.po                                  |  188 ++--
 po/rw.po                                  |  188 ++--
 po/si.po                                  |  188 ++--
 po/sk.po                                  |  188 ++--
 po/sl.po                                  | 1280
 +++++++++++++--------------
 po/sq.po                                  |  188 ++--
 po/sr.po                                  |  931 ++++++++++----------
 po/sr@ije.po                              |  188 ++--
 po/sr@latin.po                            |  942 ++++++++++----------
 po/sv.po                                  |  188 ++--
 po/ta.po                                  |  950 ++++++++++----------
 po/te.po                                  |  956 ++++++++++----------
 po/th.po                                  |  188 ++--
 po/tl.po                                  |  188 ++--
 po/tr.po                                  |  188 ++--
 po/tt.po                                  |  188 ++--
 po/uk.po                                  |  917 ++++++++++----------
 po/vi.po                                  |  188 ++--
 po/wa.po                                  |  188 ++--
 po/xh.po                                  |  188 ++--
 po/yi.po                                  |  188 ++--
 po/zh_CN.po                               |  926 ++++++++++----------
 po/zh_HK.po                               |  938 ++++++++++----------
 po/zh_TW.po                               |  923 ++++++++++----------
 96 files changed, 19793 insertions(+), 19818 deletions(-)

commit 9203da305b1c840ebafe7d95f2e937348be0f333
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 22 12:36:50 2009 -0400

    some doc updates

 docs/reference/glib/glib-sections.txt | 3 +++
 1 file changed, 3 insertions(+)

commit 3413e758eb4fb15559e9da1b38efd59fcca81401
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 22 10:37:05 2009 -0400

    Updates

 NEWS | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

commit 74326a38658ebb9dbd59c9d8899a0bbb646301e5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 22 09:41:04 2009 -0400

    Set version to 2.22.0

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 01ccc9e3bac498e714087b2be543442aa2eadcaa
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Sep 22 12:21:02 2009 +0200

    Updated Slovenian translation

 po/sl.po | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 1c46514d5e072f3baee0145798e023610e895ab2
Author: Matej Urbančič <mateju@svn.gnome.org>
Date:   Tue Sep 22 12:15:38 2009 +0200

    Updated Slovenian translation

 po/sl.po | 1439
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 740 insertions(+), 699 deletions(-)

commit c755a7fd11ca5f865f6ccd477e0f4db3799161fa
Author: Mart Raudsepp <leio@gentoo.org>
Date:   Sun Sep 13 04:42:33 2009 +0300

    gio: Fix some typos in G*AppInfo documentation

 gio/gappinfo.c        | 10 +++++-----
 gio/gappinfo.h        |  4 ++--
 gio/gdesktopappinfo.c |  8 ++++----
 3 files changed, 11 insertions(+), 11 deletions(-)

commit 924f1bc528b212aab91adf608ef32e41b67f3298
Author: Mart Raudsepp <leio@gentoo.org>
Date:   Sun Sep 13 00:20:01 2009 +0300

    Accept -? for glib-mkenums.

    Commit 789e260638d tried to add support for -?, but there is a typo
    and instead -h was added when already present instead of -? for one
    of the cases.
    It works without this corrections, because all unrecognized options
    trigger usage showing as well, but this is more correct.

    This was bug 556706 originally.

 gobject/glib-mkenums.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6c061da2a232d8c817d9744a234ceee7b87b3dd8
Author: Mart Raudsepp <leio@gentoo.org>
Date:   Sat Sep 12 19:49:01 2009 +0300

    gio: Fix a Since tag to actually show up in new API of 2.20 indeces

    Typo made in e05426062

 gio/gdatainputstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 7feb4c3631a0745b3696454630be3aa3365d1067
Author: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date:   Tue Sep 22 09:59:13 2009 +0700

    po/vi.po: fix type "thoạt"

 po/vi.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a830fbd62c05193982c72a375251b2202986152f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 21 15:36:45 2009 +0200

    Document new gdb macros

 docs/reference/glib/running.sgml | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit 42320706c4dd6a4517a402dc5da5c27dfc6a5356
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 21 15:21:52 2009 +0200

    Add gforeach gdb command

 glib/glib.py | 84
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

commit 2b8943237f137f287b0b0854f80198de54fd26ea
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 21 12:26:23 2009 +0200

    Add pretty printer for hashtables

 glib/glib.py | 64
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

commit 2e8768d9a556afd2b2e6c974dcbcf24fee5ba6ff
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 21 11:06:39 2009 +0200

    Add pretty printing for GList and GSList

 glib/glib.py | 77
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

commit efe9169234e226f594b4254618f35a139338c35f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Sep 18 17:15:32 2009 +0200

    Initial support for gdb python macros

    This includes support for gobject pointer pretty printing and
    signal frame compression in backtraces.

    https://bugzilla.gnome.org/show_bug.cgi?id=595619

 glib/Makefile.am             |  13 +-
 glib/glib.py                 |  27 ++++
 glib/libglib-gdb.py.in       |  10 ++
 gobject/Makefile.am          |  12 +-
 gobject/gobject.py           | 305
 +++++++++++++++++++++++++++++++++++++++++++
 gobject/libgobject-gdb.py.in |  10 ++
 6 files changed, 375 insertions(+), 2 deletions(-)

commit 18af48ba9a347e2041c4986aaaac73fdd5386de3
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Mon Sep 21 20:54:02 2009 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 945
 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 930
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 938 insertions(+), 937 deletions(-)

commit 652f47fd2a9544e07cd6cbc5ca0d31d21c1ccd34
Author: Petr Kovar <pknbe@volny.cz>
Date:   Sun Sep 20 22:26:17 2009 +0200

    Updated Czech translation

 po/cs.po | 921
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 464 insertions(+), 457 deletions(-)

commit 5b30a46da4eadbd620f34e66e7b981f2dfe91a4f
Author: Ani <peter.ani@gmail.com>
Date:   Sun Sep 20 21:04:45 2009 +0530

    Updated Malayalam Translations

 po/ml.po | 150
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 76 insertions(+), 74 deletions(-)

commit 7a010ac2d409fc7ea849034ca7a5bda150ee0fad
Author: Gil Forcada <gforcada@gnome.org>
Date:   Sat Sep 19 18:04:56 2009 +0200

    Updated Catalan translation

 po/ca.po | 1088
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 540 insertions(+), 548 deletions(-)

commit 80f66b114193d3c1b5a5c5d4f34b01cba53208ca
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Sat Sep 19 10:21:36 2009 +0200

    Fix build with srcdir != builddir, bug #594597

 gio/win32/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 8b3853b8a1cc94767c5391808274f931a48f6cbb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 18 19:16:11 2009 -0400

    Reduce false positives in static analysis

    Tools like clang fail to recognize that stanzas like
    g_return_if_fail (GTK_IS_FOO (w)) guarantee w != NULL. By minimally
    rewriting the type-checking macros, we can avoid these false
    positives.

 gobject/gtype.h | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 53fc10d2695f917db530c9a3f166e45be59d1d3a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Sep 9 00:18:23 2009 -0400

    Fix a lot of clang complaints

    Mostly dead assignments.

 gio/gbufferedoutputstream.c |  9 ++-------
 gio/gdatainputstream.c      |  7 +------
 gio/gdummyfile.c            |  5 +----
 gio/ginputstream.c          | 16 +++++-----------
 gio/giostream.c             |  4 ----
 gio/glocalfile.c            | 20 ++++++++------------
 gio/glocalfileinputstream.c |  4 ----
 gio/goutputstream.c         | 34 +++++++++++++++-------------------
 gio/gunixinputstream.c      |  4 ----
 gio/gunixoutputstream.c     |  4 ----
 glib/gfileutils.c           |  3 +--
 glib/gkeyfile.c             |  3 +--
 glib/gregex.c               |  6 +-----
 13 files changed, 35 insertions(+), 84 deletions(-)

commit 04d632ccf59ce0491261ff87b3867012cb56d8bf
Author: Dumitru Mișu Moldovan <dumol@gnome.ro>
Date:   Fri Sep 18 00:17:32 2009 +0300

    Updated Romanian translation

 po/ro.po | 1086
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 536 insertions(+), 550 deletions(-)

commit 3bfba7924c94aa3a3bcc14e6eeee4fa691108dd0
Author: Miloš Popović <mpopovic@src.gnome.org>
Date:   Thu Sep 17 17:58:52 2009 +0000

    Updated Serbian translation

 po/sr.po       | 1381
 +++++++++++++++++++++++++++----------------------------
 po/sr@latin.po | 1392
 +++++++++++++++++++++++++++-----------------------------
 2 files changed, 1351 insertions(+), 1422 deletions(-)

commit dd7f660fb7b059d16cea6e33550a14ca2625c813
Author: krishnababu k <kkrothap@redhat.ocm>
Date:   Thu Sep 17 21:18:57 2009 +0530

    Updated Telugu Translation

 po/te.po | 960
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 475 insertions(+), 485 deletions(-)

commit 256662ddbaec90688c1725d504efc1248eacb7e1
Author: ifelix <ifelix@redhat.com>
Date:   Thu Sep 17 15:50:19 2009 +0530

    Updated Tamil Translations

 po/ta.po | 961
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 477 insertions(+), 484 deletions(-)

commit 78c548b506db0527335011ce92558bc1a9d5ebf0
Author: Fran Diéguez <fran.dieguez@glug.es>
Date:   Wed Sep 16 16:15:05 2009 +0200

    UPdated Galician Translation

 po/gl.po | 946
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 472 insertions(+), 474 deletions(-)

commit d88b6a3d60f0f84cf192c1b4093a0ae2362d7f02
Author: Runa Bhattacharjee <runab@redhat.com>
Date:   Tue Sep 15 18:31:49 2009 +0530

    Updated Bengali India Translations

 po/bn_IN.po | 1097
 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 536 insertions(+), 561 deletions(-)

commit 011592af55d980cfb21c51f5d4bcdd09cce865ec
Author: Manoj Kumar Giri <mgiri@mgiri.csb>
Date:   Tue Sep 15 16:22:41 2009 +0530

    Upadted Oriya Translation

 po/or.po | 964
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 477 insertions(+), 487 deletions(-)

commit ddc85a8b0242407c6234bbe2ebc49b873bf02396
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Tue Sep 15 14:29:36 2009 +0700

    Updated Thai translation.

 po/th.po | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit 3a240a7f718a44724008d35123c6f7b98abc896a
Author: Amitakhya Phukan <aphukan@fedoraproject.org>
Date:   Tue Sep 15 12:48:50 2009 +0530

    Updating Assamese translations.

 po/as.po | 42 ++++++++++++++++--------------------------
 1 file changed, 16 insertions(+), 26 deletions(-)

commit ef5e66c330cdc3f8d93ba33a0dfe251f98883204
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Sep 14 00:16:51 2009 +0200

    Update Norwegian bokmål translation.

 po/nb.po | 924
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 465 insertions(+), 459 deletions(-)

commit 220bde833af1bba3e535f727173b84a362374399
Author: Aron Xu <aronxu@gnome.org>
Date:   Sun Sep 13 15:09:29 2009 +0800

    Updated Simplified Chinese translation.

 po/zh_CN.po | 1082
 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 540 insertions(+), 542 deletions(-)

commit 7e514b6efaf6daae23c09a1e13ed65d2d8aa8008
Author: A S Alam <aalam@users.sf.net>
Date:   Sun Sep 13 08:58:57 2009 +0530

    Updating Translation for Punjabi

 po/pa.po | 956
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 474 insertions(+), 482 deletions(-)

commit e1957bd71c999ba5189a7fe94880647e84fa6357
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sun Sep 13 03:16:47 2009 +0200

    Updated Danish translation

 po/da.po | 930
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 467 insertions(+), 463 deletions(-)

commit 6366015decc608a74e2019ccb0d39dbc6e3f06ba
Author: Bruce Cowan <bcowan@fastmail.co.uk>
Date:   Sat Sep 12 20:04:29 2009 +0100

    Updated British English translation

 po/en_GB.po | 1120
 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 556 insertions(+), 564 deletions(-)

commit a92f10d712b6278364e02178c873a084bfbf9e19
Author: Tommi Vainikainen <thv@iki.fi>
Date:   Sat Sep 12 19:10:57 2009 +0300

    Updated Finnish translation

 po/fi.po | 930
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 467 insertions(+), 463 deletions(-)

commit 410305255d0acfa5e105a444cdf8b302b31b94a2
Author: Tor Lillqvist <tml@iki.fi>
Date:   Sat Sep 12 01:57:46 2009 +0300

    Remove old crap for fetching the "build" directory from svn

 autogen.sh | 17 -----------------
 1 file changed, 17 deletions(-)

commit 866731776651e04178a6cc1e78d244384a890d1a
Author: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Date:   Wed Sep 2 17:48:09 2009 +0100

    Fix GNetworkAddress skipping addresses when enumerating

    g_network_address_address_enumerator_next_finish takes the first
    item of the
    address list and moves the pointer to the next one, so we shouldn't
    do the same
    in g_network_address_address_enumerator_next_async function

    Fixes bug #593941

 gio/gnetworkaddress.c | 5 -----
 1 file changed, 5 deletions(-)

commit cdd04f36cac838f92826cbf415868100a4007741
Author: Richard Hughes <richard@hughsie.com>
Date:   Wed Sep 2 19:15:38 2009 +0100

    Make the error const for g_simple_async_result_set_from_error

 gio/gsimpleasyncresult.c | 2 +-
 gio/gsimpleasyncresult.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 11477609d1f2782fd4bbb3022d2ec46983930c6a
Author: James Hunt <jamesodhunt@gmail.com>
Date:   Thu Sep 10 17:18:13 2009 +0100

    g_socket_send_message() fails due to invalid sendmsg(2) params.

    g_socket_send_message() and g_socket_send_to() fail with ENOBUFS or
    EFAULT due to the fact that if no "address" argument is specified to
    g_socket_send_message, when g_socket_send_message() calls sendmsg(2),
    the 2nd parameter to sendmsg ("const struct msghdr *msg") contains
    uninitialized values. The fix is simple - initialize msg.msg_name to
    NULL and msg.msg_msg_namelen to 0.

    https://bugzilla.gnome.org/show_bug.cgi?id=594759

 gio/gsocket.c | 5 +++++
 1 file changed, 5 insertions(+)

commit 29baa5eebdce27d10c6f36ae8ad4fbc77d04f291
Author: Rajesh Ranjan <rranjan@rranjan.csb>
Date:   Fri Sep 11 16:00:29 2009 +0530

    hindi update by Rajesh Ranjan

 po/hi.po | 948
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 471 insertions(+), 477 deletions(-)

commit 9dc9b39284b78b63fad4a713ab6ea4154d4e8ff5
Author: Ani <peter.ani@gmail.com>
Date:   Fri Sep 11 12:18:50 2009 +0530

    Updated Malayalam Translations

 po/ml.po | 976
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 480 insertions(+), 496 deletions(-)

commit c3bbec5213d1e77253fd2cef67d6838041bb2f1f
Author: Maxim V. Dziumanenko <dziumanenko@gmail.com>
Date:   Fri Sep 11 01:48:56 2009 +0300

    Updated Ukrainian translation

 po/uk.po | 1104
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 520 insertions(+), 584 deletions(-)

commit 278ac0a45d2b677a0928b1c31b3e20a4c265ffb0
Author: Christian Dywan <christian@lanedo.com>
Date:   Thu Sep 10 16:40:11 2009 +0200

    Bug 579050 Allow making selected critical and warning messages
    non-fatal

    Implement g_test_log_set_fatal_handler which is a function similar to
    g_log_set_default_handler but for use in unit tests where certain
    errors have to be ignored because it is not possible to fix or avoid
    them otherwise. A unit test is added.

 glib/glib.symbols    |  3 +++
 glib/gmessages.c     | 47 +++++++++++++++++++++++++++++++++++++++++++++--
 glib/gtestutils.c    |  1 +
 glib/gtestutils.h    | 21 +++++++++++++++++++++
 glib/tests/testing.c | 27 +++++++++++++++++++++++++++
 5 files changed, 97 insertions(+), 2 deletions(-)

commit 4b1217b7e0e8d2e7e4187e8b328e10ad72066392
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Thu Sep 10 12:26:13 2009 +0530

    Updated Kannada(kn) translation

 po/kn.po | 973
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 479 insertions(+), 494 deletions(-)

commit 664dd256654b5def0bd6cdd5e3918bba78fedd52
Author: Kostas Papadimas <pkst@gnome.org>
Date:   Wed Sep 9 18:38:12 2009 +0300

    Updated Greek translation.

 po/el.po | 1391
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 708 insertions(+), 683 deletions(-)

commit 593cd7a683c267e9e02e3d0b8bc653a253f17df5
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Wed Sep 9 16:54:43 2009 +0530

    Updated Gujarati Translations

 po/gu.po | 952
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 472 insertions(+), 480 deletions(-)

commit f393e805874db16334c5c4f4aa7fa1c73964ca34
Author: Dan Winship <danw@gnome.org>
Date:   Tue Sep 8 11:19:13 2009 -0400

    Clarify g_ptr_array_set_size() docs re: free_func

 docs/reference/glib/tmpl/arrays_pointer.sgml | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit eadd2ce7fff83f86c4803aa5e2e251f554639bb6
Author: Alexander Shopov <ash@contact.bg>
Date:   Tue Sep 8 07:41:28 2009 +0300

    Updated Bulgarian translation

 po/bg.po | 926
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 466 insertions(+), 460 deletions(-)

commit bc1dd5cf11dc920ff44d51051e1e695b0b8ea421
Author: Dan Winship <danw@gnome.org>
Date:   Sun Sep 6 13:54:50 2009 -0400

    Call element_free_func when shrinking array with g_ptr_array_set_size

 glib/garray.c           | 8 ++------
 glib/tests/array-test.c | 4 +++-
 2 files changed, 5 insertions(+), 7 deletions(-)

commit 9a29f087e76fd01188cff73ce1dfe802bd815b15
Author: Sandeep Shedmake <sshedmak@redhat.com>
Date:   Mon Sep 7 19:14:52 2009 +0530

    Updated Marathi Translations

 po/mr.po | 952
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 472 insertions(+), 480 deletions(-)

commit 8af494d987b7482865439f882d1375767b57732f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 7 12:50:58 2009 +0200

    Avoid reading uninitialized memory

    If the statfs call fails, don't look at the result.

 gio/glocalfile.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 06de24f430d4b43733dec63ca0b840d129a716e2
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Sep 7 10:25:14 2009 +0200

    Remove warning in g_simple_async_result_complete

    This warning hits code that uses GSimpleAsyncResult outside of a
    mainloop as a helper object. For instance EggDBus does this.
    Since the bugs this warning would fix are pretty easy to spot
    and since EggDBus is deployed already we just remove the
    "called from outside main loop" warning.

    However, we need to keep the "called from wrong context" warning
    as that is very helpful when debugging misuse of the new multiple
    main context code.

 gio/gsimpleasyncresult.c | 2 --
 1 file changed, 2 deletions(-)

commit 034d516160ffacbb805ad28cfdb848134f26c1dc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:28:35 2009 -0400

    Another dead assignment

 gio/gmemoryoutputstream.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 6cda9bfb02314fff5e994a80164be16c67d14253
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:14:15 2009 -0400

    Remove a dead initialization

 gio/gthemedicon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 30645bd0a584137585d572b37f39d2904bba0a8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:12:06 2009 -0400

    Remove a dead increment

 gio/glocalfileinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0d1ffbf361503ac1f8236673f400e0f317635930
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:10:01 2009 -0400

    Remove another dead assignment

 gio/gdatainputstream.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit f2c8572d8490544496934612854a86fecbaf99ba
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:07:22 2009 -0400

    Remmove a dead assignment.

    Spotted by clang.

 gio/gbufferedinputstream.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 1ec32c403bac36ca9f72e82c23b14045bc323931
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:02:58 2009 -0400

    Move a assignment to the relevant #ifdef branch

    Dead code spotted by clang.

 gio/gcancellable.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit e67c3cf2b0251acfca74d680d9b4c2b7547c61a7
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 03:01:02 2009 -0400

    Remove dead code

 gio/gvolumemonitor.c | 4 ----
 1 file changed, 4 deletions(-)

commit 80fd5ed402bf57a3c5cbd90eecc3f58f3f06bc08
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Sep 7 02:50:51 2009 -0400

    Don't evaluate an uninitialized value

    Bug found by clang.

 gio/gdesktopappinfo.c | 1 +
 1 file changed, 1 insertion(+)

commit 7ea8a2a86326b6f5f0f62a334fdd307d6526f782
Author: Tomasz Dominikowski <dominikowski@gmail.com>
Date:   Sun Sep 6 14:20:45 2009 +0200

    Updated Polish translation

 po/pl.po | 1346
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 687 insertions(+), 659 deletions(-)

commit 93fbae22d4d6fddf69c2b7276f24fcc3cfcf0403
Author: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
Date:   Sat Sep 5 22:34:58 2009 +0900

    Update Japanese translation

 po/ja.po | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 6b406dda7b3061bd890878823fbafe2c6ffc019a
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sat Sep 5 13:47:41 2009 +0200

    Updated Spanish translation

 po/es.po | 930
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 465 insertions(+), 465 deletions(-)

commit e77b8278841d89f9e2c82e09b844a472496ab43e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 4 21:20:09 2009 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 296d481c7e5de27175e68ff7645975442a449fc5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 4 21:19:02 2009 -0400

    2.21.6

 po/am.po          |   75 +--
 po/ar.po          |   75 +--
 po/as.po          |  957 +++++++++++++++++++-------------------
 po/az.po          |   75 +--
 po/be.po          |   77 ++--
 po/be@latin.po    |   77 ++--
 po/bg.po          |   75 +--
 po/bn.po          |   75 +--
 po/bn_IN.po       |   75 +--
 po/bs.po          |   75 +--
 po/ca.po          |   75 +--
 po/ca@valencia.po |   75 +--
 po/cs.po          |  918 +++++++++++++++++++------------------
 po/cy.po          |   75 +--
 po/da.po          |   75 +--
 po/de.po          |  925 +++++++++++++++++++------------------
 po/dz.po          |   75 +--
 po/el.po          |   76 ++--
 po/en_CA.po       |   75 +--
 po/en_GB.po       |   75 +--
 po/eo.po          |   75 +--
 po/es.po          |   75 +--
 po/et.po          |  464 ++++++++++++++++++-
 po/eu.po          |  978 +++++++++++++++++++--------------------
 po/fa.po          |   75 +--
 po/fi.po          |   75 +--
 po/fr.po          |  920 ++++++++++++++++++-------------------
 po/ga.po          |   75 +--
 po/gl.po          |   75 +--
 po/gu.po          |   75 +--
 po/he.po          |   75 +--
 po/hi.po          |   75 +--
 po/hr.po          |   75 +--
 po/hu.po          |  134 +++---
 po/hy.po          |   75 +--
 po/id.po          |   75 +--
 po/is.po          |   75 +--
 po/it.po          |  923 +++++++++++++++++++------------------
 po/ja.po          |   75 +--
 po/ka.po          |   75 +--
 po/kn.po          |  971 ++++++++++++++++++++-------------------
 po/ko.po          |   75 +--
 po/ku.po          |   75 +--
 po/lt.po          |   75 +--
 po/lv.po          |   75 +--
 po/mai.po         |   75 +--
 po/mg.po          |   75 +--
 po/mk.po          |   75 +--
 po/ml.po          |  974 ++++++++++++++++++++-------------------
 po/mn.po          |   75 +--
 po/mr.po          |  950 +++++++++++++++++++-------------------
 po/ms.po          |   75 +--
 po/nb.po          |  918 +++++++++++++++++++------------------
 po/ne.po          |   75 +--
 po/nl.po          |   75 +--
 po/nn.po          |   75 +--
 po/oc.po          |   74 +--
 po/or.po          |  109 +++--
 po/pa.po          |   75 +--
 po/pl.po          |   75 +--
 po/ps.po          |   75 +--
 po/pt.po          |  925 +++++++++++++++++++------------------
 po/pt_BR.po       |  925 +++++++++++++++++++------------------
 po/ro.po          |   75 +--
 po/ru.po          |   75 +--
 po/rw.po          |   75 +--
 po/si.po          |   75 +--
 po/sk.po          |   75 +--
 po/sl.po          |   75 +--
 po/sq.po          |   76 ++--
 po/sr.po          |   75 +--
 po/sr@ije.po      |   75 +--
 po/sr@latin.po    |   75 +--
 po/sv.po          | 1312
 ++++++++++++++++++++++++++---------------------------
 po/ta.po          |  950 +++++++++++++++++++-------------------
 po/te.po          |  959 ++++++++++++++++++++-------------------
 po/th.po          |   75 +--
 po/tl.po          |   75 +--
 po/tr.po          |  922 ++++++++++++++++++-------------------
 po/tt.po          |   75 +--
 po/uk.po          |   75 +--
 po/vi.po          |   75 +--
 po/wa.po          |   75 +--
 po/xh.po          |   75 +--
 po/yi.po          |   75 +--
 po/zh_CN.po       |   75 +--
 po/zh_HK.po       |   75 +--
 po/zh_TW.po       |   75 +--
 88 files changed, 11117 insertions(+), 10197 deletions(-)

commit 05c2aeaf33ad1ff3447d57a361abdb238b8f822b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 4 20:41:25 2009 -0400

    Add a Since: tag

 glib/gfileutils.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

commit 2ae69f5124022d93dfc0e39964bbf68eb1f61245
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Sep 4 20:26:26 2009 -0400

    Updates

 NEWS | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 4114f1214c65f0a142678bf98b1d8e4da43bf665
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 3 15:39:57 2009 +0200

    Bug 594034 - Use g_mkstemp_full() when creating the replacement file

    Previous code used g_mkstemp(). But when using
    G_FILE_CREATE_REPLACE_DESTINATION, no attempt was made to ensure
    proper
    mode and flags of the created temporary file. The visible issue
    was that
    the file was always created with mode 0600 as opposed to using 0666.
    (The invisible issue was that O_RDWR was used instead of O_WRONLY.)

 docs/reference/glib/tmpl/glib-unused.sgml | 67
 ++++++++++++++++++++++++++++++
 docs/reference/glib/tmpl/macros_misc.sgml |  5 +--
 docs/reference/glib/tmpl/misc_utils.sgml  |  7 ++++
 docs/reference/glib/tmpl/version.sgml     | 68
 -------------------------------
 gio/glocalfileoutputstream.c              |  2 +-
 5 files changed, 77 insertions(+), 72 deletions(-)

commit 24bec5c5bd64eb829a433e4c1e8d34dc25879a64
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Sep 3 15:36:37 2009 +0200

    Bug 594034 - Add g_mkstemp_full()

    This function exposes more variables than g_mkstemp() and therefor
    allows more flexibility when creating temporary files.
    The intended use is gio's code for g_file_replace() (see next patch)

 docs/reference/glib/glib-sections.txt   |  1 +
 docs/reference/glib/tmpl/fileutils.sgml | 11 +++++++++
 glib/gfileutils.c                       | 44
 +++++++++++++++++++++++++--------
 glib/gfileutils.h                       |  3 +++
 glib/glib.symbols                       |  1 +
 5 files changed, 50 insertions(+), 10 deletions(-)

commit 16ddefea15ceeded936c53aa1b867eb53d7d97f3
Author: Ivar Smolin <okul@linux.ee>
Date:   Fri Sep 4 18:58:00 2009 +0300

    Updating Estonian translation

 po/et.po | 472
 ++-------------------------------------------------------------
 1 file changed, 9 insertions(+), 463 deletions(-)

commit c642965b234cdc9959c79d2fd3019f63a0520fad
Author: Christian Kirbach <Christian.Kirbach@googlemail.com>
Date:   Fri Sep 4 15:16:04 2009 +0200

    Updated German translation

 po/de.po | 1185
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 592 insertions(+), 593 deletions(-)

commit c77fd0bb04f612e7d16d48379cc3ec835c8d5fa2
Author: Daniel Nylander <po@danielnylander.se>
Date:   Fri Sep 4 06:31:34 2009 +0200

    Updated Swedish translation

 po/sv.po | 1316
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 672 insertions(+), 644 deletions(-)

commit 7628e1b4773142fc89f2365069c3e5a59ffb15ab
Author: Claude Paroz <claude@2xlibre.net>
Date:   Fri Sep 4 00:07:40 2009 +0200

    Updated French translation

 po/fr.po | 924
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 464 insertions(+), 460 deletions(-)

commit 5a66c4bdb76b853b05baf7b01c8e2be49022c8a6
Author: Fábio Nogueira <fnogueira@gnome.org>
Date:   Wed Sep 2 12:28:59 2009 -0400

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 933
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 472 insertions(+), 461 deletions(-)

commit de125e51a04a5ebdc652fb4e611a5bd1ba57c210
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Wed Sep 2 18:19:27 2009 +0200

    Updated Basque language

 po/eu.po | 982
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 484 insertions(+), 498 deletions(-)

commit ff9b29ce5b7d8bd20d4527e2e364b68ebce01c75
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Wed Sep 2 18:05:23 2009 +0200

    Hungarian translation updated

 po/hu.po | 335
 ++++++++++++++++++++++-----------------------------------------
 1 file changed, 115 insertions(+), 220 deletions(-)

commit f2320a40f1d356ba7f15e592c03018ba2b42c4bd
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Tue Sep 1 23:34:41 2009 +0100

    Updated Portuguese translation

 po/pt.po | 929
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 469 insertions(+), 460 deletions(-)

commit f783515323963d2f9011cab5b6b2e767fe790425
Author: Luca Ferretti <elle.uca@libero.it>
Date:   Tue Sep 1 23:47:14 2009 +0200

    Updated Italian translation

 po/it.po | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

commit 3826963e65d8c4c68bcd3e4066505f63ef734b95
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Sep 1 21:53:35 2009 +0200

    Use lchmod instead of stat + chown if available

    Fallout of the NOFLOOW_SYMLINKS fix from bug 593406

 configure.in         |  2 +-
 gio/glocalfileinfo.c | 10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

commit 48e0af0157f52ac12b904bd92540432a18b139c7
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Sep 1 21:26:08 2009 +0200

    Bug 593406 - Permissions set to 777 after copying via Nautilus

    Only fail to set the permissions when the actual file is a symlink.
    The previous fix failed for every file when NOFOLLOW_SYMLINKS was set.

 gio/glocalfileinfo.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

commit bb7852e34b1845e516290e1b45a960a345ee8a43
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Sep 1 20:36:31 2009 +0200

    Only do the chmod NOFOLLOW_SYMLINK checks with HAVE_SYMLINK

 gio/glocalfileinfo.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 8212aadac79d70153d880fe1f21914a2b491dca3
Author: Dan Winship <danw@gnome.org>
Date:   Tue Sep 1 09:37:48 2009 -0400

    g_time_val_from_iso8601: handle timezoneless dates

    per ISO 8601:2004 4.2.5.2

    Based on a patch from Andy Shevchenko
    http://bugzilla.gnome.org/show_bug.cgi?id=589491

 glib/gtimer.c    | 18 +++++++++++++-----
 tests/testglib.c | 21 +++++++++++++++++++++
 2 files changed, 34 insertions(+), 5 deletions(-)

commit fc44bf40a4eff8e122b223e97ee5efcbc548be03
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Sep 1 12:48:55 2009 +0200

    Fix gtk-doc syntax

 gio/gcancellable.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit e695c0932f5d02f3b222f0b7a3de1f8c00ba7b81
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Sep 1 11:54:48 2009 +0200

    Bug 593406 - Permissions set to 777 after copying via Nautilus

    When doing a g_file_copy() with nofollow-symlinks (to copy a link for
    example), the later copying of the file attributes copies the source
    links 777 attributes to the target's attributes. As chmod affects the
    symlink target, this would cause such copies to always set the
    target to
    777 mode.

    This patch makes setting the mode with nofollow-symlinks fail with
    NOT_SUPPORTED.

    The aforementioned g_file_copy() will still succeed, because it
    ignores
    errors of the attribute copy.

 gio/glocalfileinfo.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

commit e967a47117d3b8fdb3e5c786e9069872d8e787c4
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Sep 1 10:52:07 2009 +0200

    Update Norwegian bokmål translation.

 po/nb.po | 920
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 464 insertions(+), 456 deletions(-)

commit c433158e8676424ede4e396b6d4bf22d5210634b
Author: Sandeep Shedmake <sshedmak@redhat.com>
Date:   Mon Aug 31 20:47:13 2009 +0530

    Updated Marathi Translations

 po/mr.po | 68
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 34 insertions(+), 34 deletions(-)

commit c59dbb4ddfb824c022087d15d75d3f5de1c032cc
Author: Sandeep Shedmake <sshedmak@redhat.com>
Date:   Mon Aug 31 20:29:16 2009 +0530

    Updated Marathi Translations

 po/mr.po | 1145
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 528 insertions(+), 617 deletions(-)

commit ee8e145472c9b90e89d568710b9672bb20ada524
Author: krishnababu k <kkrothap@redhat.ocm>
Date:   Mon Aug 31 19:41:54 2009 +0530

    Updated Telugu Translations

 po/te.po | 1185
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 547 insertions(+), 638 deletions(-)

commit 3a7560b00a8846150be4d9d2113f352ff1ebcc7a
Author: Shankar Prasad <svenkate@redhat.com>
Date:   Mon Aug 31 13:34:44 2009 +0530

    Updated Kannada(kn) translation

 po/kn.po | 1188
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 546 insertions(+), 642 deletions(-)

commit 31924b19806e31f38eff86d4e43248bec989fd3a
Author: Rodrigo L. M. Flores <rlmflores@src.gnome.org>
Date:   Sun Aug 30 19:41:47 2009 -0300

    Updated Brazilian Portuguese mailing list address.

 po/pt_BR.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f2b8b6911235358d25b79d75f98d81b5062afe33
Author: Petr Kovar <pknbe@volny.cz>
Date:   Sat Aug 29 21:05:19 2009 +0200

    Updated Czech translation

 po/cs.po | 1141
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 532 insertions(+), 609 deletions(-)

commit c47dca4cfe51b9376c364ae13a444a6529afed8f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 27 23:40:16 2009 -0400

    Re-commit 30b8774f7f3f7f329af6b041b6c86bad14717534

    Turns out Alex had agreed to this.

 gio/giomodule.c | 3 +++
 1 file changed, 3 insertions(+)

commit 2889f1b8a322b0657f3c08a4f7e235e4c2c0f348
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 27 23:02:08 2009 -0400

    Use the saved errno value

    Bug 591995

 gio/glocalfileoutputstream.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3ba64e72cf40b81f472aa784498c3a97ef434c94
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 27 22:59:05 2009 -0400

    Read /dev/urandom unbuffered

    To avoid wasting entropy. Bug 593232.

 glib/grand.c | 1 +
 1 file changed, 1 insertion(+)

commit 3a47f48311d44e690c381f816fd1fa71eed20189
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Aug 27 22:51:53 2009 -0400

    Revert "add a "gsettings-backend" extension point to GIO"

    This reverts commit 30b8774f7f3f7f329af6b041b6c86bad14717534.

 gio/giomodule.c | 3 ---
 1 file changed, 3 deletions(-)

commit 30b8774f7f3f7f329af6b041b6c86bad14717534
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Aug 27 13:45:48 2009 -0400

    add a "gsettings-backend" extension point to GIO

 gio/giomodule.c | 3 +++
 1 file changed, 3 insertions(+)

commit df981f82a097f9a2f2739ec410fa928168b749f6
Author: Luca Ferretti <elle.uca@libero.it>
Date:   Wed Aug 26 22:04:58 2009 +0200

    Updated Italian translation

 po/it.po | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 71b684b9cfe76d522a306993dba13fbcc52d0d73
Author: Luca Ferretti <elle.uca@libero.it>
Date:   Wed Aug 26 15:32:23 2009 +0200

    Updated Italian translation

 po/it.po | 963
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 482 insertions(+), 481 deletions(-)

commit 884c789ef5e074a2241d1b813847156db1cecdb0
Author: Amitakhya Phukan <aphukan@fedoraproject.org>
Date:   Wed Aug 26 17:34:17 2009 +0530

    Updating Assamese translations

 po/as.po | 1105
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 542 insertions(+), 563 deletions(-)

commit 195abb97ff019d0fe7b50a9635830835933be7ae
Author: Ani <peter.ani@gmail.com>
Date:   Wed Aug 26 15:18:57 2009 +0530

    Updated Malayalam Translations

 po/ml.po | 1196
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 550 insertions(+), 646 deletions(-)

commit 6c1466a2d21820f2df189a258b0c124e7144ba12
Author: ifelix <ifelix@redhat.com>
Date:   Tue Aug 25 14:10:56 2009 +0530

    Updated Tamil Translations

 po/ta.po | 1178
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 546 insertions(+), 632 deletions(-)

commit 64b49c9087e8120489a0032d596c8837cbe014f9
Author: Manoj Kumar Giri <mgiri@mgiri.csb>
Date:   Tue Aug 25 12:14:41 2009 +0530

    Updated Oriya Translation

 po/or.po | 176
 ++++++++++++++++++++++++++++-----------------------------------
 1 file changed, 77 insertions(+), 99 deletions(-)

commit 24c31a79e1af916fe195e52c79ff8be558e4e848
Author: Baris Cicek <baris@teamforce.name.tr>
Date:   Tue Aug 25 00:38:34 2009 +0300

    Updated Turkish translation.

 po/tr.po | 1151
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 534 insertions(+), 617 deletions(-)

commit ef5aef582eb33fd29fe5ec427ef5d236656b8046
Author: Luca Ferretti <elle.uca@libero.it>
Date:   Mon Aug 24 21:28:11 2009 +0200

    Fix bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 83d3242d127ca61d94846341ab491bbe988d2b95
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 24 14:15:13 2009 -0400

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 106cd06ff38fef0356961e1d2eaffaa022035b13
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 24 14:13:49 2009 -0400

    2.21.5

 po/am.po          |  120 ++---
 po/ar.po          |  120 ++---
 po/as.po          |  120 ++---
 po/az.po          |  120 ++---
 po/be.po          |  120 ++---
 po/be@latin.po    |  120 ++---
 po/bg.po          |  918 +++++++++++++++++-----------------
 po/bn.po          |  120 ++---
 po/bn_IN.po       |  120 ++---
 po/bs.po          |  120 ++---
 po/ca.po          |  120 ++---
 po/ca@valencia.po |  918 +++++++++++++++++-----------------
 po/cs.po          |  120 ++---
 po/cy.po          |  120 ++---
 po/da.po          |  923 +++++++++++++++++-----------------
 po/de.po          |  120 ++---
 po/dz.po          |  120 ++---
 po/el.po          |  120 ++---
 po/en_CA.po       |  120 ++---
 po/en_GB.po       |  120 ++---
 po/eo.po          |  120 ++---
 po/es.po          |  921 +++++++++++++++++-----------------
 po/et.po          |  463 ++++++++++++++++-
 po/eu.po          |  988 ++++++++++++++++++------------------
 po/fa.po          |  120 ++---
 po/fi.po          |  923 +++++++++++++++++-----------------
 po/fr.po          |  120 ++---
 po/ga.po          |  921 +++++++++++++++++-----------------
 po/gl.po          |  918 +++++++++++++++++-----------------
 po/gu.po          |  945 ++++++++++++++++++-----------------
 po/he.po          |  120 ++---
 po/hi.po          |  942 ++++++++++++++++++-----------------
 po/hr.po          |  120 ++---
 po/hu.po          |  120 ++---
 po/hy.po          |  120 ++---
 po/id.po          |  120 ++---
 po/is.po          |  120 ++---
 po/it.po          |  921 +++++++++++++++++-----------------
 po/ja.po          |   64 +--
 po/ka.po          |  120 ++---
 po/kn.po          |  120 ++---
 po/ko.po          |  931 +++++++++++++++++-----------------
 po/ku.po          |  120 ++---
 po/lt.po          |  120 ++---
 po/lv.po          |  120 ++---
 po/mai.po         |  120 ++---
 po/mg.po          |  120 ++---
 po/mk.po          |  120 ++---
 po/ml.po          |  120 ++---
 po/mn.po          |  120 ++---
 po/mr.po          |  120 ++---
 po/ms.po          |  120 ++---
 po/nb.po          |  920 +++++++++++++++++-----------------
 po/ne.po          |  120 ++---
 po/nl.po          |  120 ++---
 po/nn.po          |  120 ++---
 po/oc.po          |  120 ++---
 po/or.po          |  120 ++---
 po/pa.po          |  961 ++++++++++++++++++-----------------
 po/pl.po          |  919 +++++++++++++++++-----------------
 po/ps.po          |  120 ++---
 po/pt.po          |  927 +++++++++++++++++-----------------
 po/pt_BR.po       |  923 +++++++++++++++++-----------------
 po/ro.po          |  120 ++---
 po/ru.po          |  120 ++---
 po/rw.po          |  120 ++---
 po/si.po          |  120 ++---
 po/sk.po          |  120 ++---
 po/sl.po          |  120 ++---
 po/sq.po          |  120 ++---
 po/sr.po          |  120 ++---
 po/sr@ije.po      |  120 ++---
 po/sr@latin.po    |  120 ++---
 po/sv.po          | 1436
 ++++++++++++++++++++++++++---------------------------
 po/ta.po          |  120 ++---
 po/te.po          |  921 +++++++++++++++++-----------------
 po/th.po          |  120 ++---
 po/tl.po          |  120 ++---
 po/tr.po          |  120 ++---
 po/tt.po          |  120 ++---
 po/uk.po          |  120 ++---
 po/vi.po          |  120 ++---
 po/wa.po          |  120 ++---
 po/xh.po          |  120 ++---
 po/yi.po          |  120 ++---
 po/zh_CN.po       |  120 ++---
 po/zh_HK.po       |  936 +++++++++++++++++-----------------
 po/zh_TW.po       |  921 +++++++++++++++++-----------------
 88 files changed, 14418 insertions(+), 13942 deletions(-)

commit eadef0325aefb68ae0747a7dbca7d6fca4130da2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 24 13:34:06 2009 -0400

    Documentation fixes

 docs/reference/gio/gio-sections.txt   | 5 +++++
 docs/reference/glib/glib-sections.txt | 1 +
 gio/gfileinfo.c                       | 2 ++
 3 files changed, 8 insertions(+)

commit d1cbb96428f316b77bd31686c7d9b0b96a40bc6e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 24 12:21:08 2009 -0400

    Updates

 NEWS | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

commit 002da02df8927e1aa5979347402a6fc378dd172f
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Mon Aug 24 18:38:33 2009 +0200

    Minor update to Catalan (Valencian) translation

 po/ca@valencia.po | 1005
 ++++++++++++++++++++++++++---------------------------
 1 file changed, 488 insertions(+), 517 deletions(-)

commit 2e0656063b2c2633ca0caaa9b2e119c3eaee37cf
Author: Rajesh Ranjan <rranjan@rranjan.csb>
Date:   Mon Aug 24 16:52:25 2009 +0530

    hindi updated by Rajesh Ranjan

 po/hi.po | 1176
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 545 insertions(+), 631 deletions(-)

commit 4a5e71b847729341243df2f2a2cd0a8284f4b099
Author: Sweta Kothari <swkothar@redhat.com>
Date:   Mon Aug 24 14:23:56 2009 +0530

    Updated Gujarati Translations

 po/gu.po | 1175
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 543 insertions(+), 632 deletions(-)

commit 90f9eb6e40b6d8c37ca51467f915507ed6ceddc2
Author: Duarte Loreto <happyguy_pt@hotmail.com>
Date:   Sun Aug 23 14:59:14 2009 +0100

    Updated Portuguese translation

 po/pt.po | 1088
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 540 insertions(+), 548 deletions(-)

commit feedeb1d12fa490a8685fd00b492fdc054e07883
Author: Changwoo Ryu <cwryu@debian.org>
Date:   Sun Aug 23 00:50:28 2009 +0900

    Update Korean translation

 po/ko.po | 1126
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 558 insertions(+), 568 deletions(-)

commit 8ef30758d56b21aa20c23e5c90a78142183003ed
Author: Christian Persch <chpe@gnome.org>
Date:   Thu Aug 20 15:13:43 2009 +0200

    Preserve errno

    When using errno in g_set_error with _(), preserve errno. Bug #592457.

 glib/gconvert.c     | 22 +++++++++++++++-------
 glib/gdir.c         | 13 +++++++++----
 glib/gspawn-win32.c |  9 ++++++---
 glib/gspawn.c       | 27 +++++++++++++++++++--------
 4 files changed, 49 insertions(+), 22 deletions(-)

commit feff29aefc75459bc1b39235cb0e842fbf0fa2b4
Author: A S Alam <aalam@users.sf.net>
Date:   Sat Aug 22 06:15:29 2009 +0530

    Update Punjabi after Review

 po/pa.po | 1094
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 527 insertions(+), 567 deletions(-)

commit a568b054adf4abadfaa1bad293d484771d57f333
Author: Tommi Vainikainen <thv@iki.fi>
Date:   Fri Aug 21 23:43:53 2009 +0300

    Updated Finnish translation

 po/fi.po | 1278
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 635 insertions(+), 643 deletions(-)

commit 956996ddaa82ca5cfeb8e70191ef6b7716186a7c
Author: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>
Date:   Fri Aug 21 00:15:12 2009 +0900

    Update Japanese translation.

 po/ja.po | 233
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 115 insertions(+), 118 deletions(-)

commit 2a880831edc4c22ed5ada05a31ab8a4f24b7d3e1
Author: Tomasz Dominikowski <dominikowski@gmail.com>
Date:   Thu Aug 20 11:55:03 2009 +0200

    Updated Polish translation

 po/pl.po | 1421
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 659 insertions(+), 762 deletions(-)

commit cd5bd15987b573a436e715e59b0c651e50534bc1
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 19 12:12:06 2009 -0400

    Use MSG_NOSIGNAL in GSocket if it's available

    Even though we ignore SIGPIPE, gdb will still stop when the process
    receives one, which sometimes confuses people into thinking the app
    has crashed (eg, bug 578984, bug 590420), and is annoying anyway. So
    use MSG_NOSIGNAL if it's there.

    http://bugzilla.gnome.org/show_bug.cgi?id=591378

 gio/gsocket.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit 021dd960cf9c02b0ea59cbfa1db603d3f9a467f0
Author: Dan Winship <danw@gnome.org>
Date:   Wed Aug 19 12:07:53 2009 -0400

    Re-run res_init() when resolv.conf changes

    libc caches the contents of resolv.conf, so if it changes (eg, because
    the network state changed), we need re-run res_init().

    http://bugzilla.gnome.org/show_bug.cgi?id=584246

 gio/gnetworkingprivate.h |  4 +++
 gio/gresolver.c          | 68
 +++++++++++++++++++++++++++++++++++++++++++++
 gio/gresolver.h          |  9 +++++-
 gio/gunixresolver.c      | 72
 ++++++++++++++++++++++++++++++++----------------
 gio/tests/resolver.c     |  3 ++
 5 files changed, 132 insertions(+), 24 deletions(-)

commit 6db03d73a45bc0acae0bb96849733bf0ab7ad454
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Aug 11 18:50:28 2009 +0200

    When creating a pipe for a cancelled cancellable, write to it

    Includes (untested) fix for win32 that calls SetEvent() in that case.

 gio/gcancellable.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit faae032ad0579acf756e8848ebedbfda69d5b3be
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Aug 11 15:12:20 2009 +0200

    Use g_cancellable_release_fd()

    Part of: Bug 591388 - number of GCancellables available is too
    limited

 gio/gsocket.c           | 10 +++++++++-
 gio/gunixinputstream.c  |  3 ++-
 gio/gunixoutputstream.c |  1 +
 3 files changed, 12 insertions(+), 2 deletions(-)

commit e2c97292c21dbb57d34d812cf48b331ca5cf0d60
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Aug 11 15:04:43 2009 +0200

    Implement g_cancellable_release_fd()

    Part of: Bug 591388 - number of GCancellables available is too
    limited

 gio/gcancellable.c | 77
 ++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 58 insertions(+), 19 deletions(-)

commit 63426886ff4066fefbeaf2e6b08a6c04b39a7890
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Aug 11 14:52:56 2009 +0200

    Add g_cancellable_release_fd()

    This patch only adds the function. The function is a NOP.
    See the API documentation for a rationale.

    Part of: Bug 591388 - number of GCancellables available is too
    limited

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gcancellable.c                  | 30 ++++++++++++++++++++++++++++++
 gio/gcancellable.h                  |  1 +
 gio/ginputstream.c                  |  2 +-
 gio/gio.symbols                     |  1 +
 5 files changed, 34 insertions(+), 1 deletion(-)

commit bb8e4f06ab1a0ada2c8835284ec5f853378694e2
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Aug 13 20:19:15 2009 +0200

    Bug 591714 – Figure out failure handling for
    g_cancellable_make_pollfd()

    Make g_cancellable_make_pollfd() return a gboolean that indicates
    its error
    status. Update the code that calls this function accordingly.

 gio/gcancellable.c      | 38 +++++++++++++++++++++++++-------------
 gio/gcancellable.h      |  2 +-
 gio/gsocket.c           | 19 ++++++-------------
 gio/gunixinputstream.c  |  3 +--
 gio/gunixoutputstream.c |  3 +--
 5 files changed, 34 insertions(+), 31 deletions(-)

commit a0e3b4ae8447f0831397384a54f4be276e84764b
Author: Og B. Maciel <ogmaciel@gnome.org>
Date:   Tue Aug 18 23:09:12 2009 -0400

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

commit 981d14e85ccf8d1dc721bd44e030728eff9b2501
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Aug 6 18:17:32 2009 +0200

    Improve documentation for g_error_matches()

 glib/gerror.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit a6ac4e90d5ab6a311aab545745ceb3e375bf65a4
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jul 27 18:48:11 2009 +0200

    Fix multiple returns in gtk-doc comment

 gio/gsocketservice.c | 1 -
 1 file changed, 1 deletion(-)

commit 8f6d26e9647db4e5f2336319e1b0ae439f54b75d
Author: Dan Winship <danw@gnome.org>
Date:   Mon Aug 17 13:20:49 2009 -0400

    g_inet_socket_address_to_native: properly zero out sockaddr_in6

 gio/ginetsocketaddress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aa5293612f2eb0a6a02fbf74eb56bbf05faba8df
Author: Ask H. Larsen <asklarsen@gmail.com>
Date:   Sun Aug 16 19:10:50 2009 +0200

    Updated Danish translation

 po/da.po | 1090
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 544 insertions(+), 546 deletions(-)

commit 2db41f3df58a3d926da2a4afa7014118db2913e2
Author: Mattias Põldaru <mahfiaz gmail com>
Date:   Sat Aug 15 08:21:01 2009 +0300

    Updating Estonian translation

 po/et.po | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

commit 406c3aa019a6ce51534f170fd5b82108382a4c6f
Author: Shixin Zeng <zeng.shixin@gmail.com>
Date:   Fri Aug 14 23:21:12 2009 +0300

    [Win32] Avoid superfluous '/' from g_file_resolve_relative_path()

    Patch from bug #591532.

 gio/win32/gwinhttpfile.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 1b298d6a1bc3b4e5c1c701f26e3981cdae4b89eb
Author: Tor Lillqvist <tml@iki.fi>
Date:   Fri Aug 14 22:59:47 2009 +0300

    Avoid gcc warning on Windows

    Avoid "function declaration isn't a prototype" warnings from gcc 4.4
    in the Windows-specific code.

 glib/gutils.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c24f6e55276fac68b08df34b0d350f65afe994d9
Author: Frédéric Péters <fpeters@0d.be>
Date:   Fri Aug 14 21:00:41 2009 +0200

    Update GLIB_CHECK_COMPILE_WARNINGS macro to work with Autoconf 2.64

    Quoting its NEWS file: "The m4sh macros AS_IF and AS_CASE can now be
    used in shell lists.  The responsibility for supplying a trailing
    newline now belongs to the call site, but since most users did not add
    dnl, this generally results in fewer empty lines in configure."

    http://bugzilla.gnome.org/show_bug.cgi?id=591840

 acglib.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eae6bdd397ef94a6f7c1a3e42c750b948a659fd2
Author: Priit Laes <plaes plaes org>
Date:   Fri Aug 14 22:09:18 2009 +0300

    Updating Estonian translation

 po/et.po | 118
 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 56 insertions(+), 62 deletions(-)

commit 37dbffe7d8b0f0985f9c4d37d5df604d81ff0bd0
Author: krishnababu k <kkrothap@redhat.ocm>
Date:   Fri Aug 14 16:56:09 2009 +0530

    Updated Telugu Translations

 po/te.po | 921
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 461 insertions(+), 460 deletions(-)

commit 8b117b225e426b73c8fb2abc2ac5e56ed739ac96
Author: Alexander Shopov <ash@contact.bg>
Date:   Thu Aug 13 07:12:29 2009 +0300

    Updated Bulgarian translation

 po/bg.po | 1140
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 529 insertions(+), 611 deletions(-)

commit 4f8dfc6282cc29430775e1ebd2652d67c08b1a6c
Author: Henrique P Machado <zehrique@gmail.com>
Date:   Tue Aug 11 23:40:09 2009 -0300

    Updated Brazilian Portuguese translation.

 po/pt_BR.po | 1087
 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 542 insertions(+), 545 deletions(-)

commit d20a188b1250ab3cf211d684429127d99378e886
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Aug 11 20:22:51 2009 +0200

    Only fsync if the existing file is > 0 bytes

    This means we don't sync in the case where we created an (empty)
    temp file and now replace it with the data.

    This fixes (among other things) the performance of trashing files.

 glib/gfileutils.c | 49 +++++++++++++++++++++++++++----------------------
 1 file changed, 27 insertions(+), 22 deletions(-)

commit 79a70dc80056859f10b39c711ee43389e8c32a7f
Author: Luca Ferretti <elle.uca@libero.it>
Date:   Tue Aug 11 01:27:08 2009 +0200

    Updated Italian translation

 po/it.po | 1079
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 536 insertions(+), 543 deletions(-)

commit c18bcd6e8e385628e55166eabbd93d5c87c82da0
Author: Antón Méixome <meixome@mancomun.org>
Date:   Mon Aug 10 16:26:46 2009 +0200

    Updated Galician translation

 po/gl.po | 129
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 60 insertions(+), 69 deletions(-)

commit a465508e2d3d52b919ccbf9f2c5bd90395922904
Author: Craig Loftus <talk@craigloftus.net>
Date:   Thu Jul 23 20:24:22 2009 +0100

    Migrate gbase64 docs from SGML template to inline comments

    Fixes bug #589649.

    Signed-off-by: David King <davidk@openismus.com>

 docs/reference/glib/tmpl/base64.sgml | 105
 -----------------------------------
 glib/gbase64.c                       |  20 +++++++
 2 files changed, 20 insertions(+), 105 deletions(-)

commit 32c84729f5dac30170cf20aa44e6857a44e5349f
Author: Inaki Larranaga Murgoitio <dooteo@zundan.com>
Date:   Mon Aug 10 13:57:21 2009 +0200

    Updated Basque language

 po/eu.po | 1209
 ++++++++++++++++++++++++++++----------------------------------
 1 file changed, 551 insertions(+), 658 deletions(-)

commit f2d779aa0f5ba676fa8715710cebd2607cb339a3
Author: Antón Méixome <meixome@mancomun.org>
Date:   Sun Aug 9 16:35:09 2009 +0200

    Updated Galician Translation

 po/gl.po | 1105
 +++++++++++++++++++++++++++++---------------------------------
 1 file changed, 514 insertions(+), 591 deletions(-)

commit f04a35e43bece5e51061dcef2ebc6dd6204a1c1b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 17 20:34:16 2009 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5827f6674282d627efbb9c68d32577470d722192
Author: Seán de Búrca <leftmostcat@gmail.com>
Date:   Sat Aug 8 01:53:34 2009 -0600

    Updated Irish translation

 po/ga.po | 1125
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 545 insertions(+), 580 deletions(-)

commit 93d40918c59981f863d31a10d9f66a2a9b3177ff
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Aug 1 16:46:02 2009 +0100

    Added clarification to mutex free functions

    Clarified that it is A Bad Idea to free a mutex when it's locked.

 docs/reference/glib/tmpl/threads.sgml | 12 ++++++++++++
 1 file changed, 12 insertions(+)

commit faccd7fdf3edb8416aacc0191fdb6c5b2965ac6d
Author: Ivar Smolin <okul@linux.ee>
Date:   Wed Aug 5 13:29:26 2009 +0300

    Updating Estonian translation

 po/et.po | 513
 ++++-----------------------------------------------------------
 1 file changed, 27 insertions(+), 486 deletions(-)

commit 405823aeea24fb2ce8d47e0c09e46607117fd27f
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Aug 3 00:16:54 2009 +0200

    Updated Norwegian bokmål translation.

 po/nb.po | 54 +++++++++++++++++++++++++-----------------------------
 1 file changed, 25 insertions(+), 29 deletions(-)

commit 882e36106d7a5d04c29af87e4e9f7aa4bc3d5e08
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jul 30 11:18:35 2009 -0400

    Fix a bad void return. #588901

 gio/gtcpconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f34b1f024feb57e6eb78728d46ff2bbf2ca19453
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 29 22:35:07 2009 -0400

    Conditionalize portability #includes in g-asyncns.h

    http://bugzilla.gnome.org/show_bug.cgi?id=589988

 gio/libasyncns/g-asyncns.h | 6 ++++++
 1 file changed, 6 insertions(+)

commit 81de534cf73b63add07ff93d851824da80eb4280
Author: Daniel Nylander <po@danielnylander.se>
Date:   Tue Jul 28 01:59:05 2009 +0200

    Updated Swedish translation

 po/sv.po | 1547
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 782 insertions(+), 765 deletions(-)

commit 45067ab9e97de0992acd4004d6e4de957d6c28f4
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jul 23 16:27:01 2009 -0400

    Fix leaks in GSocketClient and GThreadedResolver

    Also update gio/tests/send-data.c to test async connection, and free
    more stuff in several tests to make leaks easier to see.

 gio/gsocketclient.c       |  3 +++
 gio/gthreadedresolver.c   |  6 +++++-
 gio/tests/send-data.c     | 25 +++++++++++++++++++++----
 gio/tests/socket-client.c |  2 ++
 gio/tests/socket-server.c |  1 +
 5 files changed, 32 insertions(+), 5 deletions(-)

commit 66ff2542d32c93226a28ad1d0a60e83884b26910
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Jul 22 18:58:57 2009 +0200

    Updated Norwegian bokmål translation.

 po/nb.po | 987
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 492 insertions(+), 495 deletions(-)

commit aac978ec7240cdab768c1d66c0e9a94c714dff43
Author: Tristan Van Berkom <tristan.van.berkom@gmail.com>
Date:   Tue Jul 21 12:58:39 2009 -0400

    Added clarification to GArray->len documentation

    Clarify that GArray->len does not include the possible
    terminating zero element.

 docs/reference/glib/tmpl/arrays.sgml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4654a7d593aed9ab0e131abe250e7e488283c24f
Author: Lin Ma <lin.ma@sun.com>
Date:   Tue Jul 21 10:45:25 2009 +0800

    Fixed a missing head which will cause crashes for 64bit applications

    Without that head, the returned pointer will be truncated to 32bit,
    then
    causes crashes for 64bit applications.

 gio/fen/fen-helper.c | 1 +
 1 file changed, 1 insertion(+)

commit ba6be2035d9bd43b1a873492e189d0bccbd20178
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Jun 5 23:24:28 2009 -0400

    [gbsearcharray] Use malloc() instead of realloc(NULL,...)

 glib/gbsearcharray.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit dfda26d1a980e6e096d93ecfec8f59872b80dee4
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jul 20 14:29:32 2009 +0200

    Propagate the right error

 gio/gsocketclient.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2cf3e2ed275f8502e1a20195290fa18ebe489216
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Sun Jul 19 13:15:06 2009 +0200

    Updated Spanish translation

 po/es.po | 1035
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 515 insertions(+), 520 deletions(-)

commit 555aa2d28db4f72373d9cfec4045ea1d0f45bb46
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Sun Jul 19 16:33:06 2009 +0700

    Updated Thai translation.

 po/th.po | 169
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 78 insertions(+), 91 deletions(-)

commit f8d1201248cceab59bb971f4906a73f2b0eb0b96
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sat Jul 18 21:09:14 2009 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 1051
 +++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 1036
 +++++++++++++++++++++++++++++-----------------------------
 2 files changed, 1038 insertions(+), 1049 deletions(-)

commit 9c278ded7d9a4db91dbe96aeb13b6cbb7841525b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 17 20:31:28 2009 -0400

    2.21.4

 docs/reference/glib/tmpl/trees-binary.sgml |   17 +
 po/am.po                                   |  228 ++++-
 po/ar.po                                   |  234 ++++-
 po/as.po                                   |  234 ++++-
 po/az.po                                   |  233 ++++-
 po/be.po                                   |  250 ++++-
 po/be@latin.po                             |  250 ++++-
 po/bg.po                                   |  234 ++++-
 po/bn.po                                   |  232 ++++-
 po/bn_IN.po                                |  234 ++++-
 po/bs.po                                   |  233 ++++-
 po/ca.po                                   |  237 ++++-
 po/ca@valencia.po                          |  237 ++++-
 po/cs.po                                   |  234 ++++-
 po/cy.po                                   |  232 ++++-
 po/da.po                                   |  237 ++++-
 po/de.po                                   |  234 ++++-
 po/dz.po                                   |  232 ++++-
 po/el.po                                   |  240 ++++-
 po/en_CA.po                                |  234 ++++-
 po/en_GB.po                                |  237 ++++-
 po/eo.po                                   |  232 ++++-
 po/es.po                                   | 1026 +++++++++++---------
 po/et.po                                   |  234 ++++-
 po/eu.po                                   |  234 ++++-
 po/fa.po                                   |  233 ++++-
 po/fi.po                                   |  234 ++++-
 po/fr.po                                   |  939 ++++++++++---------
 po/ga.po                                   |  229 ++++-
 po/gl.po                                   |  234 ++++-
 po/gu.po                                   |  234 ++++-
 po/he.po                                   |  948 +++++++++----------
 po/hi.po                                   |  234 ++++-
 po/hr.po                                   |  229 ++++-
 po/hu.po                                   |  234 ++++-
 po/hy.po                                   |  229 ++++-
 po/id.po                                   |  232 ++++-
 po/is.po                                   |  233 ++++-
 po/it.po                                   |  234 ++++-
 po/ja.po                                   |  234 ++++-
 po/ka.po                                   |  230 ++++-
 po/kn.po                                   |  234 ++++-
 po/ko.po                                   |  234 ++++-
 po/ku.po                                   |  228 ++++-
 po/lt.po                                   |  234 ++++-
 po/lv.po                                   |  232 ++++-
 po/mai.po                                  |  233 ++++-
 po/mg.po                                   |  229 ++++-
 po/mk.po                                   |  234 ++++-
 po/ml.po                                   |  234 ++++-
 po/mn.po                                   |  233 ++++-
 po/mr.po                                   |  234 ++++-
 po/ms.po                                   |  233 ++++-
 po/nb.po                                   | 1026 +++++++++++---------
 po/ne.po                                   |  229 ++++-
 po/nl.po                                   |  242 ++++-
 po/nn.po                                   |  234 ++++-
 po/oc.po                                   |  228 ++++-
 po/or.po                                   |  234 ++++-
 po/pa.po                                   |  234 ++++-
 po/pl.po                                   |  234 ++++-
 po/ps.po                                   |  230 ++++-
 po/pt.po                                   |  237 ++++-
 po/pt_BR.po                                |  234 ++++-
 po/ro.po                                   |  234 ++++-
 po/ru.po                                   |  234 ++++-
 po/rw.po                                   |  245 ++++-
 po/si.po                                   |  230 ++++-
 po/sk.po                                   |  231 ++++-
 po/sl.po                                   |  234 ++++-
 po/sq.po                                   |  285 +++++-
 po/sr.po                                   |  233 ++++-
 po/sr@ije.po                               |  235 ++++-
 po/sr@latin.po                             |  233 ++++-
 po/sv.po                                   | 1406
 ++++++++++++++++------------
 po/ta.po                                   |  234 ++++-
 po/te.po                                   |  234 ++++-
 po/th.po                                   |  237 ++++-
 po/tl.po                                   |  232 ++++-
 po/tr.po                                   |  234 ++++-
 po/tt.po                                   |  231 ++++-
 po/uk.po                                   | 1024 ++++++++++++--------
 po/vi.po                                   |  234 ++++-
 po/wa.po                                   |  233 ++++-
 po/xh.po                                   |  233 ++++-
 po/yi.po                                   |  232 ++++-
 po/zh_CN.po                                |  234 ++++-
 po/zh_HK.po                                | 1041 +++++++++++---------
 po/zh_TW.po                                | 1026 +++++++++++---------
 89 files changed, 21688 insertions(+), 5524 deletions(-)

commit 4e273d4650621ea095dda5a5e3f1bac4ee8299ae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 17 19:01:47 2009 -0400

    Updates

 NEWS | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit e845e09524fb3be058688050e97f976b11a247dc
Author: Yair Hershkovitz <yairhr@gmail.com>
Date:   Fri Jul 17 22:53:56 2009 +0300

    Updated Hebrew translation

 po/he.po | 1062
 +++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 633 insertions(+), 429 deletions(-)

commit e4bf2ac41d605a2bd3c858790a0fe36b86bcf7d9
Author: Martin Nordholts <martinn@src.gnome.org>
Date:   Fri Jul 17 16:49:53 2009 +0200

    Support silent build rules with automake 1.11

    Support silent build rules, requires at least automake-1.11. Enable by
    either passing --enable-silent-rules to configure or passing V=0 to
    make. Bug #588863.

 configure.in | 4 ++++
 1 file changed, 4 insertions(+)

commit ad0c04c6e9e2ef16dce2e29aeba51f9a7ae8477c
Author: Claude Paroz <claude@2xlibre.net>
Date:   Tue Jul 14 22:39:31 2009 +0200

    Updated French translation

 po/fr.po | 1134
 ++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 620 insertions(+), 514 deletions(-)

commit 9bc208835760823f2fac4e406973d6387805416e
Author: Claude Paroz <claude@2xlibre.net>
Date:   Tue Jul 14 18:54:58 2009 +0200

    Add missing files in POTFILES.in

 po/POTFILES.in | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit d439c22e0ff7cec437cdc4037f7621c762ea3181
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Mon Jul 13 11:20:09 2009 +0200

    Updated Norwegian bokmål translation.

 po/nb.po | 855
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 424 insertions(+), 431 deletions(-)

commit e2844da68adb626f20ff9d02d51ca4259f56d55d
Author: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
Date:   Sun Jul 12 15:19:23 2009 +0800

    Updated Traditional Chinese translation(Hong Kong and Taiwan)

 po/zh_HK.po | 917
 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 890
 +++++++++++++++++++++++++++++-----------------------------
 2 files changed, 898 insertions(+), 909 deletions(-)

commit f7f16dc3a2da52183053c5cc0967f7fa6547f65a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 10 22:33:03 2009 -0400

    Remove outdated paragraph

    We no longer use PATCH or API keywords.

 README.in | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

commit 7ba9674d719af6eaa4e7e661be34732215bdfe38
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 10 13:13:18 2009 -0400

    Avoid some compiler warnings.

 gobject/gtype.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 91925d2cf040730f89935a39c0d7aef3b4eb59dd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 10 13:11:28 2009 -0400

    Another possible error code clash, yay

 glib/gstrfuncs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c23536cefeacc72d03ad8a83f315758d751cb127
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 10 11:18:31 2009 -0400

    Improve g_str_equal docs

    Add a reference to g_strcmp0(), cf. bug 587938.

 glib/gstring.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 6f48065958e24927c84f2983f746e39a3212998c
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Jul 9 15:34:00 2009 +0200

    Fix a typo in GRegex documentation

 docs/reference/glib/tmpl/gregex.sgml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit c6884a7ec9999b6041dcad8ff3f7c7d93c55c0d2
Author: Maxim V. Dziumanenko <dziumanenko@gmail.com>
Date:   Thu Jul 9 10:51:15 2009 +0300

    Updated Ukrainian translation

 po/uk.po | 912
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 454 insertions(+), 458 deletions(-)

commit 4cecb335f4b1d8e39c9402788fb37b7173187dd0
Author: Jorge González <jorgegonz@svn.gnome.org>
Date:   Tue Jul 7 22:34:35 2009 +0200

    Updated Spanish translation

 po/es.po | 852
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 425 insertions(+), 427 deletions(-)

commit 593ea5f6b08c6fb297c1faffed3ada8fb2d95c66
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 7 21:29:46 2009 +0100

    Ensure GTree is consistent after _destroy()

    See comment #9 on bug 587773

 glib/gtree.c | 2 ++
 1 file changed, 2 insertions(+)

commit 7d2bb5f1b1ce0289628b12d98369f3fca92cde24
Author: Daniel Nylander <po@danielnylander.se>
Date:   Tue Jul 7 19:46:59 2009 +0200

    Updated Swedish translation

 po/sv.po | 1263
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 635 insertions(+), 628 deletions(-)

commit 474ba7dbc37e352d39c0057bd2a31504828dde36
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Jul 7 14:37:45 2009 +0300

    Make it compile on Windows.

    Surround a symlink-related code snippet with ifdef S_ISLNK.

 gio/glocalfileinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 10ba0c2e5c6ed069420ec926c1094331c44fb71e
Merge: eff73c9 8792d86
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Tue Jul 7 09:45:31 2009 +0100

    Merge branch 'tree-refcount'

commit eff73c95e8bb971ccc134e79c15f73ea5a237d30
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 6 00:33:49 2009 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 400959ddbdddaed22cfd7e898a4414730ecb3ec4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 6 00:31:47 2009 -0400

    2.21.3

 docs/reference/glib/tmpl/conversions.sgml |    9 -
 docs/reference/glib/tmpl/gurifuncs.sgml   |    9 +
 docs/reference/gobject/glib-mkenums.1     |   11 +-
 po/am.po                                  |  195 +++--
 po/ar.po                                  |  199 +++--
 po/as.po                                  |  199 +++--
 po/az.po                                  |  195 +++--
 po/be.po                                  |  195 +++--
 po/be@latin.po                            |  199 +++--
 po/bg.po                                  |  199 +++--
 po/bn.po                                  |  195 +++--
 po/bn_IN.po                               |  199 +++--
 po/bs.po                                  |  195 +++--
 po/ca.po                                  |  199 +++--
 po/ca@valencia.po                         |  199 +++--
 po/cs.po                                  |  199 +++--
 po/cy.po                                  |  195 +++--
 po/da.po                                  |  199 +++--
 po/de.po                                  |  199 +++--
 po/dz.po                                  |  195 +++--
 po/el.po                                  |  199 +++--
 po/en_CA.po                               |  199 +++--
 po/en_GB.po                               |  199 +++--
 po/eo.po                                  |  195 +++--
 po/es.po                                  |  859 +++++++++++----------
 po/et.po                                  |  447 ++++++++++-
 po/eu.po                                  |  199 +++--
 po/fa.po                                  |  195 +++--
 po/fi.po                                  |  199 +++--
 po/fr.po                                  |  199 +++--
 po/ga.po                                  |  195 +++--
 po/gl.po                                  |  199 +++--
 po/gu.po                                  |  199 +++--
 po/he.po                                  | 1182
 ++++++++++++++---------------
 po/hi.po                                  |  199 +++--
 po/hr.po                                  |  195 +++--
 po/hu.po                                  |  199 +++--
 po/hy.po                                  |  195 +++--
 po/id.po                                  |  195 +++--
 po/is.po                                  |  195 +++--
 po/it.po                                  |  199 +++--
 po/ja.po                                  |  199 +++--
 po/ka.po                                  |  195 +++--
 po/kn.po                                  |  199 +++--
 po/ko.po                                  |  199 +++--
 po/ku.po                                  |  195 +++--
 po/lt.po                                  |  199 +++--
 po/lv.po                                  |  195 +++--
 po/mai.po                                 |  199 +++--
 po/mg.po                                  |  195 +++--
 po/mk.po                                  |  199 +++--
 po/ml.po                                  |  199 +++--
 po/mn.po                                  |  195 +++--
 po/mr.po                                  |  199 +++--
 po/ms.po                                  |  195 +++--
 po/nb.po                                  |  199 +++--
 po/ne.po                                  |  195 +++--
 po/nl.po                                  |  204 +++--
 po/nn.po                                  |  199 +++--
 po/oc.po                                  |  195 +++--
 po/or.po                                  |  199 +++--
 po/pa.po                                  |  199 +++--
 po/pl.po                                  |  199 +++--
 po/ps.po                                  |  195 +++--
 po/pt.po                                  |  199 +++--
 po/pt_BR.po                               |  199 +++--
 po/ro.po                                  |  199 +++--
 po/ru.po                                  |  199 +++--
 po/rw.po                                  |  195 +++--
 po/si.po                                  |  195 +++--
 po/sk.po                                  |  199 +++--
 po/sl.po                                  |  199 +++--
 po/sq.po                                  |  203 +++--
 po/sr.po                                  |  195 +++--
 po/sr@ije.po                              |  195 +++--
 po/sr@latin.po                            |  195 +++--
 po/sv.po                                  |  199 +++--
 po/ta.po                                  |  199 +++--
 po/te.po                                  |  199 +++--
 po/th.po                                  |  199 +++--
 po/tl.po                                  |  195 +++--
 po/tr.po                                  |  199 +++--
 po/tt.po                                  |  195 +++--
 po/uk.po                                  |  199 +++--
 po/vi.po                                  |  199 +++--
 po/wa.po                                  |  195 +++--
 po/xh.po                                  |  195 +++--
 po/yi.po                                  |  195 +++--
 po/zh_CN.po                               |  199 +++--
 po/zh_HK.po                               |  199 +++--
 po/zh_TW.po                               |  199 +++--
 91 files changed, 11231 insertions(+), 8078 deletions(-)

commit 3d1e8127788d8d406dd7e5d7feaae6d47110f087
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jul 6 00:00:42 2009 -0400

    Document support_thread_contexts

 gio/gfile.h | 1 +
 1 file changed, 1 insertion(+)

commit d5a51305196ac44b1c9f9edcb93aa688821f60f2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 23:55:00 2009 -0400

    Minor doc fix

 glib/gerror.c | 107
 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 53 insertions(+), 54 deletions(-)

commit 563c55bb7176e3fad5ea39061feb8406e5968ef3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 23:38:09 2009 -0400

    Fix a segfault in g_cancellable_cancel

 gio/gcancellable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 66e9b50b2ccf7498a55f0608cca31bc8cfad741d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 22:55:26 2009 -0400

    Updates

 NEWS | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit 5694ab7642c9ba6fbb85424e71d1c42c17661dd1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 22:49:24 2009 -0400

    Revert "Move gio tests from gio/tests/ to tests/gio/"

    This reverts commit 2262d76b33094304ece0d0d9cd5920682599a49b.

    Move GIO tests back to where they belong.

 configure.in                                     | 2 +-
 gio/Makefile.am                                  | 2 ++
 {tests/gio => gio/tests}/.gitignore              | 0
 {tests/gio => gio/tests}/Makefile.am             | 0
 {tests/gio => gio/tests}/buffered-input-stream.c | 0
 {tests/gio => gio/tests}/contexts.c              | 0
 {tests/gio => gio/tests}/data-input-stream.c     | 0
 {tests/gio => gio/tests}/data-output-stream.c    | 0
 {tests/gio => gio/tests}/desktop-app-info.c      | 0
 {tests/gio => gio/tests}/echo-server.c           | 0
 {tests/gio => gio/tests}/filter-streams.c        | 0
 {tests/gio => gio/tests}/g-file-info.c           | 0
 {tests/gio => gio/tests}/g-file.c                | 0
 {tests/gio => gio/tests}/g-icon.c                | 0
 {tests/gio => gio/tests}/httpd.c                 | 0
 {tests/gio => gio/tests}/live-g-file.c           | 0
 {tests/gio => gio/tests}/live-g-file.txt         | 0
 {tests/gio => gio/tests}/memory-input-stream.c   | 0
 {tests/gio => gio/tests}/memory-output-stream.c  | 0
 {tests/gio => gio/tests}/readwrite.c             | 0
 {tests/gio => gio/tests}/resolver.c              | 0
 {tests/gio => gio/tests}/send-data.c             | 0
 {tests/gio => gio/tests}/simple-async-result.c   | 0
 {tests/gio => gio/tests}/sleepy-stream.c         | 0
 {tests/gio => gio/tests}/socket-client.c         | 0
 {tests/gio => gio/tests}/socket-server.c         | 0
 {tests/gio => gio/tests}/srvtarget.c             | 0
 {tests/gio => gio/tests}/unix-streams.c          | 0
 tests/Makefile.am                                | 2 +-
 29 files changed, 4 insertions(+), 2 deletions(-)

commit 8de4be69a9013e3bce57c0a004e1eada4155f623
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 22:35:55 2009 -0400

    Move comment to the right place

 gio/gvfs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aa065346d3230d5facd45ad1e4d50ceae206773f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 22:26:11 2009 -0400

    Register ids for new file attributes

 gio/gfileinfo-priv.h | 12 ++++++++----
 gio/gfileinfo.c      |  4 ++++
 2 files changed, 12 insertions(+), 4 deletions(-)

commit f043439d7897d3f538dcb2a2d9be9fd7a34ec948
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 22:24:14 2009 -0400

    Ignore gfileinfo-priv.h

 docs/reference/gio/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 99a1c47343d09ab0485c2377e5c8c53e847d84dd
Author: David Zeuthen <davidz@redhat.com>
Date:   Sun Jul 5 21:59:38 2009 -0400

    Allow interaction when unmounting mounts

    For details, see bug 587482. The new api:

     - Provide new _with_operation() variants of all unmount and eject
     methods

     - Add GMountOperation::show-processes signal
       - this can be used to show processes blocking an unmount operation

     - Deprecate all unmount and eject methods

     - Add g_drive_can_start_degraded() method
       - this is to avoid auto-starting degraded drives

     - Make g_drive_stop() resp. g_file_stop_mountable() take a
     GMountOperation
       - these ops were recently added and not yet public API so it's fine
         to change how they work

     - Provide a way to poll mountable files, e.g. g_file_poll_mountable()

     - Add some missing file attributes for mountable files
      - G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE
        - needed for the GDU Nautilus extensions to format a volume
      - G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED:
        - mimics g_drive_can_start_degraded()
      - G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL:
        - mimics g_drive_can_poll_for_media()
      - G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC
        - mimics g_drive_is_media_check_automatic()

 docs/reference/gio/Makefile.am      |   2 +
 docs/reference/gio/gio-docs.xml     |   5 +-
 docs/reference/gio/gio-sections.txt |  19 +++
 gio/gdrive.c                        | 124 ++++++++++++++-
 gio/gdrive.h                        |  32 +++-
 gio/gfile.c                         | 305
 +++++++++++++++++++++++++++++++++++-
 gio/gfile.h                         |  66 ++++++++
 gio/gfileinfo.h                     |  43 ++++-
 gio/gio-marshal.list                |   1 +
 gio/gio.symbols                     |  47 ++++--
 gio/gmount.c                        | 186 +++++++++++++++++++++-
 gio/gmount.h                        |  48 +++++-
 gio/gmountoperation.c               |  76 +++++++--
 gio/gmountoperation.h               |   6 +-
 gio/gvolume.c                       |  89 +++++++++++
 gio/gvolume.h                       |  23 +++
 16 files changed, 1027 insertions(+), 45 deletions(-)

commit c85ff0c75004736d5c8798e3b47a47e0fc67ac70
Author: Benjamin Otte <otte@gnome.org>
Date:   Sun Jul 5 21:34:39 2009 +0200

    [gio] minor improvements to g_cancellable_cancel()

    - make this function not crash when cancellable is NULL
    - avoid locking when the cancellable has already been cancelled

 gio/gcancellable.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

commit 8a2e617e41e3f605ea0206832f0c2f346bfe008e
Author: Yaron Shahrabani <sh.yaron@gmail.com>
Date:   Sun Jul 5 18:06:57 2009 +0300

    Updated Hebrew translation

 po/he.po | 1186
 ++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 613 insertions(+), 573 deletions(-)

commit 8792d862db4f61317a45dfe07f7b51e5ccf6741b
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jul 5 12:30:54 2009 +0100

    GTree: switch to GSlice, add refcounts (#587773)

 docs/reference/glib/glib-sections.txt |  2 +
 glib/glib.symbols                     |  2 +
 glib/gtree.c                          | 88
 +++++++++++++++++++++++++++++------
 glib/gtree.h                          |  2 +
 4 files changed, 79 insertions(+), 15 deletions(-)

commit 18e0bcf02f99a2d4bb35f46369cf4b9237291ef1
Author: Christian Persch <chpe@gnome.org>
Date:   Fri Jul 3 21:20:11 2009 +0200

    Add @basename@ substitution to glib-mkenums

    Move man page addition to the right place. Bug #587307.

 docs/reference/gobject/glib-mkenums.xml | 7 +++++++
 1 file changed, 7 insertions(+)

commit 6d1474e7f1f6e964d8db377fe732b9273cf17a84
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Jun 29 15:28:22 2009 +0200

    Add @basename@ substitution to glib-mkenums

    Since @filename@ contains the full filename as given to the
    glib-mkenum
    command, possibly including path elements (e.g. when using a
    non-srcdir
    build), it is unsuitable to use in a #include statement in the
    generated
    file if one wants to distribute it. This patch adds @basename@ which
    expands to the base name of the input filename. Bug #587307.

 gobject/glib-mkenums.1  | 3 +++
 gobject/glib-mkenums.in | 9 +++++++++
 2 files changed, 12 insertions(+)

commit dfd83f419c30d7d97c0e223e428c2e12c58199d3
Author: Mattias Põldaru <mahfiaz gmail com>
Date:   Thu Jul 2 05:23:26 2009 +0300

    Updating Estonian translation

 po/et.po | 94
 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 47 insertions(+), 47 deletions(-)

commit 29e6525b1e5b51323681af156a0641d69fc9fa87
Author: Dan Winship <danw@gnome.org>
Date:   Wed Jul 1 13:52:49 2009 -0400

    Two "make check" fixes for late changes to the thread-context patch

    g_simple_async_result_complete() now checks that it's being run from
    the correct main loop, so tests/gio/simple-async-result was failing,
    because it called it from outside any main loop. (And gio's pltcheck
    was failing because I hadn't added g_main_current_source() to it.)

 gio/pltcheck.sh                 |  2 +-
 tests/gio/simple-async-result.c | 37
 ++++++++++++++++++++++++++++++-------
 2 files changed, 31 insertions(+), 8 deletions(-)

commit 2262d76b33094304ece0d0d9cd5920682599a49b
Author: Benjamin Otte <otte@gnome.org>
Date:   Wed Jul 1 19:03:19 2009 +0200

    Move gio tests from gio/tests/ to tests/gio/

    This avoids getting tests built every time when working on libgio and
    running make in the gio/ directory.

 configure.in                                     | 2 +-
 gio/Makefile.am                                  | 2 --
 tests/Makefile.am                                | 2 +-
 {gio/tests => tests/gio}/.gitignore              | 0
 {gio/tests => tests/gio}/Makefile.am             | 0
 {gio/tests => tests/gio}/buffered-input-stream.c | 0
 {gio/tests => tests/gio}/contexts.c              | 0
 {gio/tests => tests/gio}/data-input-stream.c     | 0
 {gio/tests => tests/gio}/data-output-stream.c    | 0
 {gio/tests => tests/gio}/desktop-app-info.c      | 0
 {gio/tests => tests/gio}/echo-server.c           | 0
 {gio/tests => tests/gio}/filter-streams.c        | 0
 {gio/tests => tests/gio}/g-file-info.c           | 0
 {gio/tests => tests/gio}/g-file.c                | 0
 {gio/tests => tests/gio}/g-icon.c                | 0
 {gio/tests => tests/gio}/httpd.c                 | 0
 {gio/tests => tests/gio}/live-g-file.c           | 0
 {gio/tests => tests/gio}/live-g-file.txt         | 0
 {gio/tests => tests/gio}/memory-input-stream.c   | 0
 {gio/tests => tests/gio}/memory-output-stream.c  | 0
 {gio/tests => tests/gio}/readwrite.c             | 0
 {gio/tests => tests/gio}/resolver.c              | 0
 {gio/tests => tests/gio}/send-data.c             | 0
 {gio/tests => tests/gio}/simple-async-result.c   | 0
 {gio/tests => tests/gio}/sleepy-stream.c         | 0
 {gio/tests => tests/gio}/socket-client.c         | 0
 {gio/tests => tests/gio}/socket-server.c         | 0
 {gio/tests => tests/gio}/srvtarget.c             | 0
 {gio/tests => tests/gio}/unix-streams.c          | 0
 29 files changed, 2 insertions(+), 4 deletions(-)

commit 65cc5d895ae125b09f2403761f434fd78ef05af7
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 16 20:22:58 2009 -0400

    Support g_main_context_push_thread_default() in gio

    GFile allows for the possibility that external implementations may not
    support thread-default contexts yet, via
    g_file_supports_thread_contexts(). GVolumeMonitor is not yet
    thread-default-context aware.

    Add a test program to verify that basic gio async ops work correctly
    in non-default contexts.

    http://bugzilla.gnome.org/show_bug.cgi?id=579984

 gio/gdummyfile.c          |   2 +
 gio/gfile.c               |  25 ++++++
 gio/gfile.h               |   3 +
 gio/gfilemonitor.c        |  26 ++++--
 gio/gio.symbols           |   1 +
 gio/gioscheduler.c        |  29 ++++---
 gio/glocalfile.c          |   2 +
 gio/gsimpleasyncresult.c  |  62 ++++++++++----
 gio/gsocketclient.c       |   2 +-
 gio/gsocketinputstream.c  |   2 +-
 gio/gsocketlistener.c     |   2 +-
 gio/gsocketoutputstream.c |   2 +-
 gio/gtcpconnection.c      |   2 +-
 gio/gunixinputstream.c    |   4 +-
 gio/gunixmount.c          |   4 +-
 gio/gunixoutputstream.c   |   4 +-
 gio/gunixresolver.c       | 207
 ++++++++++++++++++++++++++++++----------------
 gio/gunixvolume.c         |   4 +-
 gio/gvolumemonitor.c      |   7 +-
 gio/gwin32resolver.c      |   4 +-
 gio/tests/.gitignore      |   1 +
 gio/tests/Makefile.am     |  10 ++-
 gio/tests/contexts.c      | 190
 ++++++++++++++++++++++++++++++++++++++++++
 23 files changed, 474 insertions(+), 121 deletions(-)

commit 4363f1932f1be4474a81d5b9cf8a58c91b682868
Author: Dan Winship <danw@gnome.org>
Date:   Thu Jun 4 21:59:15 2009 -0400

    Add g_main_context_push_thread_default() etc

    This allows applications to use async methods from other threads, or
    in multiple independent main loops.

    http://bugzilla.gnome.org/show_bug.cgi?id=579984

 docs/reference/glib/glib-sections.txt |   5 ++
 docs/reference/glib/tmpl/main.sgml    |  24 ++++++
 glib/glib.symbols                     |   3 +
 glib/gmain.c                          | 144
 +++++++++++++++++++++++++++++++++-
 glib/gmain.h                          |   5 ++
 5 files changed, 177 insertions(+), 4 deletions(-)

commit 90381ecdbd73197ebdfaf58fdeccf267454d53d7
Author: Dan Winship <danw@gnome.org>
Date:   Fri Jun 19 10:30:14 2009 -0400

    Use low-level GSource methods in a few more places

    (in preparation for thread-default context support)

 gio/gfilemonitor.c   | 23 ++++++++++++++---------
 gio/gunixmount.c     | 26 ++++++++++++++++++++++----
 gio/gunixvolume.c    | 26 ++++++++++++++++++++++----
 gio/gwin32resolver.c | 18 ++++++++++++------
 gio/pltcheck.sh      |  2 +-
 5 files changed, 71 insertions(+), 24 deletions(-)

commit 28a39fab5ac720daf5927c85c3eba2e23f5ac38c
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 16 20:21:29 2009 -0400

    Remove some unused code

 gio/gasynchelper.c | 35 -----------------------------------
 1 file changed, 35 deletions(-)

commit 70e8eed6acfa33f74d7772f3ec54997daf102be4
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 23 12:01:34 2009 -0400

    Fix GResolver for g_simple_async_result_set_op_res_gpointer change

    Previously, re-setting the pointer value would cause the old
    GDestroyNotify to be lost; now it causes it to be run.

    http://bugzilla.gnome.org/show_bug.cgi?id=587415

 gio/gresolver.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

commit d589da7e86947542790aa0137dc12499a4fe1a3b
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jun 30 20:33:19 2009 +0200

    Bug 587434 – regression tests fail

    make this test not only compile, but also run successfully with mad
    CFLAGS.

 gio/tests/data-output-stream.c | 138
 ++++++++++++++++++++---------------------
 1 file changed, 67 insertions(+), 71 deletions(-)

commit 80561f9718873bf02d5c938d92672bc20d99b82d
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jun 30 19:08:46 2009 +0200

    Bug 587434 – regression tests fail

    I missed one s/tmpfile/tmp_file/ which caused crashes.

 gio/tests/readwrite.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 53beca955e016fb9ef4e80d223d059bc5e51dd41
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 23 17:42:01 2009 -0400

    Add GCancellables to GSocket ops

    Currently, to implement cancellability correctly, all synchronous
    calls to GSocket must be preceded by a g_socket_condition_wait() call,
    (even though GSocket does this internally as well) and all
    asynchronous calls must do occasional manual
    g_cancellable_is_cancelled() checks. Since it's trivial to do these
    checks inside GSocket instead, and we don't particularly want to
    encourage people to use the APIs non-cancellably, move the
    cancellation support into GSocket and simplify the existing callers.

    http://bugzilla.gnome.org/show_bug.cgi?id=586797

 gio/gsocket.c             | 74
 +++++++++++++++++++++++++++++++++--------------
 gio/gsocket.h             |  8 +++++
 gio/gsocketclient.c       |  4 +--
 gio/gsocketinputstream.c  | 27 +++++++----------
 gio/gsocketlistener.c     | 32 +++++++++-----------
 gio/gsocketoutputstream.c | 27 +++++++----------
 gio/gtcpconnection.c      | 21 ++------------
 gio/gunixconnection.c     |  8 ++---
 gio/tests/socket-client.c | 14 +++++----
 gio/tests/socket-server.c | 13 +++++----
 10 files changed, 119 insertions(+), 109 deletions(-)

commit fc2b3ee560e29b4ef6e70928b0be75d833d75aec
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 29 18:32:09 2009 +0200

    remove unused label

    complained about by -Wall

 gio/gtcpconnection.c | 3 ---
 1 file changed, 3 deletions(-)

commit afd63c32814869489f812d6738de027ce113957d
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 29 18:24:08 2009 +0200

    fix warnings from gcc compilation with my mad CFLAGS

 gio/tests/data-input-stream.c  | 32 +++++++++++---------
 gio/tests/data-output-stream.c | 66
 +++++++++++++++++++++---------------------
 gio/tests/desktop-app-info.c   |  4 +--
 gio/tests/g-file.c             | 16 +++++-----
 gio/tests/httpd.c              |  2 +-
 gio/tests/live-g-file.c        | 22 ++++++++------
 gio/tests/readwrite.c          | 40 ++++++++++++-------------
 gio/tests/resolver.c           |  6 ++--
 gio/tests/sleepy-stream.c      | 24 ++++++++-------
 gio/tests/socket-server.c      |  6 ++--
 gio/tests/srvtarget.c          |  3 +-
 gio/tests/unix-streams.c       |  4 +--
 12 files changed, 119 insertions(+), 106 deletions(-)

commit 4b8ad50fc4463d72862d29a8802b5982e66c0fc2
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 29 15:28:08 2009 +0200

    add g_file_attribute_set_*_by_id() and use them

    This patch and the previous ones fixes the performance issues noted in
    Bug 587089 – lookup_attribute() takes too much CPU
    It increases performance for querying attributes by ~15% in my tests.

 gio/gfileinfo-priv.h |  36 +++++++++-
 gio/gfileinfo.c      | 183
 +++++++++++++++++++++++++++++++++++++--------------
 gio/glocalfileinfo.c |  96 +++++++++++++--------------
 3 files changed, 217 insertions(+), 98 deletions(-)

commit bd198e5e45282886ea2bad14e987c7c01b163cb3
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 29 14:13:14 2009 +0200

    export and use _g_file_attribute_matcher_matches_id()

 gio/gfileinfo-priv.h |  5 +++
 gio/gfileinfo.c      | 13 +++----
 gio/glocalfileinfo.c | 95
 ++++++++++++++++++++++++++--------------------------
 3 files changed, 58 insertions(+), 55 deletions(-)

commit ceba40c27d5166a07a0925d2e158ca1809cc1ce3
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 29 13:55:22 2009 +0200

    add private header with attribute ids

    attribute ids are generated when the attribute hash is
    initialized. This
    way we can guarantee that the ids match every time.

 gio/Makefile.am      |  1 +
 gio/gfileinfo-priv.h | 99
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gfileinfo.c      | 79 ++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 178 insertions(+), 1 deletion(-)

commit 2620c23577a73fa454298014680f4de46a69e7bb
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 29 13:33:50 2009 +0200

    split lookup_attribute() into two functions

 gio/gfileinfo.c | 65
 ++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 37 insertions(+), 28 deletions(-)

commit 66cebd72925406910f99c0fd826b8307c2a4814c
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 29 13:21:08 2009 +0200

    split attribute hash initialization into its own function

 gio/gfileinfo.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

commit 49172a71aacdd855918b614f3d61fa5b9248fb85
Author: Christian Dywan <christian@twotoasts.de>
Date:   Sun Jun 28 02:45:50 2009 +0200

    Display '-h' in --help output and accept '-h' and -?'

    '-h' is the preferred short version of '--help' now and displayed
    in '--help' but for backwards compatibility '-?' is still supported.

    If existing code uses '-h' for something else, GOptionContext will
    not override it.

    Fixes bug 556706.

 glib/goption.c | 49 ++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 42 insertions(+), 7 deletions(-)

commit 09c3f6dd4b456adbbda6818e5bb1227af045e8d8
Author: Jani Monoses <jani@ubuntu.com>
Date:   Sat Jun 27 11:03:47 2009 +0300

    Fix C++ warnings in g_error() code

    Put space before ending semicolon in for(;;) ; to avoid C++ build
    warnings.
    Closes bug 586928.

 glib/gmessages.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 160c39a9af8f7b6a475c1b005a807ccefc2ff7c1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 26 23:18:17 2009 -0400

    Move some uri functions to a better place

 docs/reference/glib/glib-sections.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 35911ae00f5348ea4a60d66db25d70a1c45c9c43
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 26 23:09:35 2009 -0400

    Fix  a typo

 docs/reference/glib/building.sgml | 84
 +++++++++++++++++++--------------------
 1 file changed, 42 insertions(+), 42 deletions(-)

commit e7a258692c7ae3d9075d9ae1926c08c7ec771f04
Author: Tom Parker <palfrey@tevp.net>
Date:   Fri Jun 26 22:43:31 2009 -0400

    Add NULL to end of g_filename_complete_get_completions() return value

    g_filename_complete_get_completions() return value is meant to be a
    g_strfreev-compatible array i.e. NULL-terminated. However, pointer
    arrays
    aren't automagically NULL-terminated. This fixes bug 586868

 gio/gfilenamecompleter.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 657d0ad9183fe4410e736d20a17a70fb7d6ad6c0
Author: Ivar Smolin <okul@linux.ee>
Date:   Fri Jun 26 10:39:25 2009 +0300

    Updating Estonian translation

 po/et.po | 446
 +++------------------------------------------------------------
 1 file changed, 17 insertions(+), 429 deletions(-)

commit d884e509db1ab6a6d388313d28b7b07cebb3dfc0
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jun 25 09:18:01 2009 +0200

    Allow setting G_FILE_ATTRIBUTE_TYPE_INVALID attributes in GFileInfo

    This is used to unset an attribute in g_file_set_attributes_from_info.

 gio/gfileattribute.c | 7 +++++++
 gio/gfileinfo.c      | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

commit 019e8c808f48e93f81fcb8e9e8d73a43b087cc87
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 24 23:07:15 2009 -0400

    Add a note about g_simple_async_result_set_op_res_pointer change

 README.in | 7 +++++++
 1 file changed, 7 insertions(+)

commit b0dc7afd2ace91f5dca37af8de7b40ba45993ed0
Author: Richard Hughes <richard@hughsie.com>
Date:   Fri Jun 19 10:16:22 2009 +0100

    Allow GCancellable to be subclassed by adding a private structure

 gio/gcancellable.c | 114
 +++++++++++++++++++++++++++++++++--------------------
 gio/gcancellable.h |   9 +++++
 2 files changed, 81 insertions(+), 42 deletions(-)

commit 0ccd18bc83c5e6eff77940a61cc9b31a88dd1851
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jun 22 15:33:41 2009 -0400

    Bug 586675 – Runtime library location

    Introduce an option to specify the runtime location for libraries via
    a relative path to libdir.

    Signed-off-by: David Zeuthen <davidz@redhat.com>

 configure.in                            | 11 +++++++++++
 docs/reference/glib/building.sgml       | 21 +++++++++++++++++++++
 docs/reference/glib/tmpl/fileutils.sgml | 17 +++++++++++++++++
 gio/Makefile.am                         |  9 +++++++++
 glib/Makefile.am                        |  9 +++++++++
 gmodule/Makefile.am                     |  9 +++++++++
 gobject/Makefile.am                     |  9 +++++++++
 gthread/Makefile.am                     |  8 ++++++++
 8 files changed, 93 insertions(+)

commit 7662c86611bf44175f18ec6eb66f159040ac73c5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jun 18 09:05:27 2009 +0200

    Add extension point for adding metadata for local files

    This adds a local_file_add_info vfunc to GVfs that vfs implementations
    can override to add metadata for local files.

 gio/glocalfile.c           |  75 +++++++++++++++++++++----------
 gio/glocalfileenumerator.c |   2 +
 gio/glocalfileinfo.c       | 108
 ++++++++++++++++++++++++++++++++++++++++-----
 gio/glocalfileinfo.h       |   3 ++
 gio/gvfs.h                 |  26 ++++++++---
 5 files changed, 175 insertions(+), 39 deletions(-)

commit 9a6146f54cdc085a42095b930066853dbb4e0c67
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jun 23 11:30:14 2009 +0200

    Add g_file_info_set_attribute_status

    Required for gvfs implementation for set_attribures_from_info.

 gio/gfileinfo.c | 36 ++++++++++++++++++++++++++++++++++++
 gio/gfileinfo.h |  3 +++
 gio/gio.symbols |  1 +
 3 files changed, 40 insertions(+)

commit becf4186e6289c0ab5d762f1cdf88517f4adc9f5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jun 23 11:29:16 2009 +0200

    Add g_file_info_has_namespace

    Need this to quickly see if we should set attributes from
    this GFileInfo in metadata extension.

 gio/gfileinfo.c | 36 ++++++++++++++++++++++++++++++++++++
 gio/gfileinfo.h |  2 ++
 gio/gio.symbols |  1 +
 3 files changed, 39 insertions(+)

commit 0ed9201ad2051c33f5d049754bd8a1644d19ab7c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 22 19:25:32 2009 +0200

    Add string vector attribute type to GFileInfo

    This is needed for the new metadata backend since nautilus has a
    string-list metadata type, and we want to use this for nautilus.

 gio/gfileattribute-priv.h |  4 ++++
 gio/gfileattribute.c      | 52
 +++++++++++++++++++++++++++++++++++++++++++++++
 gio/gfileinfo.c           | 51
 ++++++++++++++++++++++++++++++++++++++++++++++
 gio/gfileinfo.h           |  5 +++++
 gio/gio.symbols           |  2 ++
 gio/gioenums.h            |  4 +++-
 6 files changed, 117 insertions(+), 1 deletion(-)

commit c1ab6454feb4447b8ef7ce6a0eb0fb38bae186df
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Jun 23 15:07:00 2009 +0200

    Copy namespaces correctly in g_file_copy_attributes

    File attribute namespaces are delimited with "::", but
    build_attribute_list_for_copy only used ":", so we didn't copy
    any writable namespaces.

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e9b4f7a3bcfefc266fc575e401f07a2a4c2ce8f6
Author: Jorge Gonzalez <jorgegonz@svn.gnome.org>
Date:   Sun Jun 21 11:13:20 2009 +0200

    Updated Spanish translation

 po/es.po | 836
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 417 insertions(+), 419 deletions(-)

commit 440bf5bee50a0abca990d69ce12fc2a844bda95c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 19 23:44:29 2009 -0400

    Use pipe2 when available

    This avoids a small window for races between pipe and fdset.
    Reported in bug 579933 by Thiago Macieira.

 configure.in | 11 ++---------
 glib/gmain.c | 20 +++++++++++++++-----
 2 files changed, 17 insertions(+), 14 deletions(-)

commit 854a43a3cd5cb8cc97b66d6f8f661e2a7096acda
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jun 19 23:18:09 2009 -0400

    Fix build on mingw

    Mingw does not have sys/uio.h. This was reported in bug 585937.

    Author:    Matthias Clasen <mclasen@redhat.com>

 configure.in  | 1 +
 gio/gsocket.c | 2 ++
 2 files changed, 3 insertions(+)

commit 4c791f49e58688d1b8948d083c1780cab9d26e93
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Jun 18 15:00:01 2009 -0400

    GMappedFile: add refcounting, switch to GSlice

      - add g_mapped_file_ref() and g_mapped_file_unref().
      - deprecate g_mapped_file_free().
      - move to GSlice for allocating the GMappedFile struct.

 docs/reference/glib/glib-sections.txt |  2 +
 glib/glib.symbols                     |  4 ++
 glib/gmappedfile.c                    | 73
 ++++++++++++++++++++++++++++-------
 glib/gmappedfile.h                    |  5 +++
 4 files changed, 71 insertions(+), 13 deletions(-)

commit 8cb481fd5ff44c7e82f59948567ad0b417297555
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Jun 18 19:43:46 2009 +0200

    Use io_prio as mainloop prio for async-emulation (#579449)

    I'm not sure why we used the elaborate formula to convert the
    io-priority
    to the priority of the mainloop idle when emulating async i/o
    with idles.
    However, it causes the default io priority to be less than the normal
    idle prio, so the i/o won't be scheduled if there is an idle
    outstanding.

    There is really no great mapping to use here, doing blocking i/o in an
    idle of any prio is generally bad and apps doing a lot of async
    i/o should
    initialize threads. However, if we use the io-priority directly we
    at least
    avoid the starvation problem above and make things easier to
    understand.

 gio/gioscheduler.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9fba81288424cd7ef45e28565fa878c93a962c17
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Jun 18 15:28:41 2009 +0200

    Revert "clarify documentation"

    This reverts commit d218cf0f670e4c40acb47ab5b5761ea0c68e0594.
    This has been fixed in the code, so no need to keep the updated docs.

 gio/gsocketlistener.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 835c03a5c1c980490543ad5d1fe426a1e5a62af9
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Jun 18 15:27:12 2009 +0200

    syntax fix in documentation

 gio/gfileenumerator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cf95d07691ec2202400f340f1c63aca11f0790c1
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jun 16 15:18:11 2009 +0200

    fix typo in documentation

 gio/gfileenumerator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d218cf0f670e4c40acb47ab5b5761ea0c68e0594
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Jun 12 17:45:27 2009 +0200

    clarify documentation

 gio/gsocketlistener.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f4a64cb068cfe309e968d1db9fae4fade6d87e8a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 13:27:40 2009 -0400

    Bump version to 2.21.3

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 785787fd6cd4b7c0120ae64ec839cfb0353c4af2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 13:25:43 2009 -0400

    2.21.2

 po/am.po          | 180 ++++++------
 po/ar.po          | 186 ++++++------
 po/as.po          | 182 ++++++------
 po/az.po          | 180 ++++++------
 po/be.po          | 180 ++++++------
 po/be@latin.po    | 189 ++++++------
 po/bg.po          | 182 ++++++------
 po/bn.po          | 180 ++++++------
 po/bn_IN.po       | 867
 ++++++++++++++++++++++++++++--------------------------
 po/bs.po          | 180 ++++++------
 po/ca.po          | 187 ++++++------
 po/ca@valencia.po | 187 ++++++------
 po/cs.po          | 183 ++++++------
 po/cy.po          | 180 ++++++------
 po/da.po          | 187 ++++++------
 po/de.po          | 187 ++++++------
 po/dz.po          | 180 ++++++------
 po/el.po          | 182 ++++++------
 po/en_CA.po       | 187 ++++++------
 po/en_GB.po       | 187 ++++++------
 po/eo.po          | 180 ++++++------
 po/es.po          | 182 ++++++------
 po/et.po          | 182 ++++++------
 po/eu.po          | 182 ++++++------
 po/fa.po          | 180 ++++++------
 po/fi.po          | 187 ++++++------
 po/fr.po          | 182 ++++++------
 po/ga.po          | 191 ++++++------
 po/gl.po          | 187 ++++++------
 po/gu.po          | 182 ++++++------
 po/he.po          | 187 ++++++------
 po/hi.po          | 182 ++++++------
 po/hr.po          | 181 ++++++------
 po/hu.po          | 182 ++++++------
 po/hy.po          | 180 ++++++------
 po/id.po          | 180 ++++++------
 po/is.po          | 180 ++++++------
 po/it.po          | 182 ++++++------
 po/ja.po          | 182 ++++++------
 po/ka.po          | 179 +++++------
 po/kn.po          | 182 ++++++------
 po/ko.po          | 185 ++++++------
 po/ku.po          | 180 ++++++------
 po/lt.po          | 189 ++++++------
 po/lv.po          | 180 ++++++------
 po/mai.po         | 182 ++++++------
 po/mg.po          | 180 ++++++------
 po/mk.po          | 189 ++++++------
 po/ml.po          | 182 ++++++------
 po/mn.po          | 180 ++++++------
 po/mr.po          | 182 ++++++------
 po/ms.po          | 180 ++++++------
 po/nb.po          | 831
 +++++++++++++++++++++++++--------------------------
 po/ne.po          | 180 ++++++------
 po/nl.po          | 189 ++++++------
 po/nn.po          | 187 ++++++------
 po/oc.po          | 185 ++++++------
 po/or.po          | 182 ++++++------
 po/pa.po          | 182 ++++++------
 po/pl.po          | 183 ++++++------
 po/ps.po          | 180 ++++++------
 po/pt.po          | 187 ++++++------
 po/pt_BR.po       | 187 ++++++------
 po/ro.po          | 183 ++++++------
 po/ru.po          | 189 ++++++------
 po/rw.po          | 180 ++++++------
 po/si.po          | 180 ++++++------
 po/sk.po          | 189 ++++++------
 po/sl.po          | 191 ++++++------
 po/sq.po          | 191 ++++++------
 po/sr.po          | 180 ++++++------
 po/sr@ije.po      | 180 ++++++------
 po/sr@latin.po    | 180 ++++++------
 po/sv.po          | 187 ++++++------
 po/ta.po          | 182 ++++++------
 po/te.po          | 182 ++++++------
 po/th.po          | 185 ++++++------
 po/tl.po          | 180 ++++++------
 po/tr.po          | 185 ++++++------
 po/tt.po          | 180 ++++++------
 po/uk.po          | 183 ++++++------
 po/vi.po          | 181 ++++++------
 po/wa.po          | 180 ++++++------
 po/xh.po          | 180 ++++++------
 po/yi.po          | 180 ++++++------
 po/zh_CN.po       | 185 ++++++------
 po/zh_HK.po       | 185 ++++++------
 po/zh_TW.po       | 185 ++++++------
 88 files changed, 9416 insertions(+), 8034 deletions(-)

commit 0fbeab452072cdf2dc7d1dd0356fa0d9f71fa0ac
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 12:57:21 2009 -0400

    Add g_setenv

 gio/pltcheck.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 90229908a13c02a024a86e4eaf96a6ba8dac57af
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 12:26:41 2009 -0400

    Update for 2.21.2

 NEWS | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

commit fae755e0568472a2c37e6a9d0ad0fde809749a1f
Author: David Zeuthen <davidz@redhat.com>
Date:   Mon Jun 15 10:53:41 2009 -0400

    Bug 585591 – Starting/stopping drives

    Add API for starting/stopping drives. This new API will enable
    GVolumeMonitor and GVfs implementations to add support for the
    following features

     1. Powering down external hard disk enclosures / drives

     2. Starting/stopping multi-disk devices (such as RAID/btrfs/ZFS)

     3. Connecting/disconnecting iSCSI devices

     4. Reacting to the user pressing e.g. the "remove drive" button on
        a IBM/Lenovo Ultrabay: http://www.thinkwiki.org/wiki/Ultrabay

    See the bug for the corresponding GVfs and Nautilus changes.

 docs/reference/gio/gio-sections.txt |  16 +++
 gio/gdrive.c                        | 259
 +++++++++++++++++++++++++++++++++++-
 gio/gdrive.h                        |  57 ++++++++
 gio/gfile.c                         | 179 +++++++++++++++++++++++++
 gio/gfile.h                         |  41 ++++++
 gio/gfileinfo.h                     |  31 +++++
 gio/gio.symbols                     |  13 ++
 gio/gioenums.h                      |  39 ++++++
 gio/gunionvolumemonitor.c           |  12 ++
 gio/gvolumemonitor.c                |  18 +++
 gio/gvolumemonitor.h                |   5 +-
 11 files changed, 666 insertions(+), 4 deletions(-)

commit bb4f7c48f9510c1fd96de067cd8f18cd41b1a1f0
Author: Ondrej Jirman <megous@megous.com>
Date:   Sat May 30 08:23:46 2009 +0200

    Fix incorrect freeing of thread pool in GThreadedSocketService
    (#584255)

 gio/gthreadedsocketservice.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 31cb0bdcb0f334ad904e088acb3a417452a4d67f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 15 15:43:39 2009 +0200

    Emit changed in g_socket_listener_add_socket, not in add_address

    This way we emit this signal when add_socket is called from another
    place than add_address too.

 gio/gsocketlistener.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit a640695f1609805a0fe745d35c2055a984410bb5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 15 15:42:38 2009 +0200

    Ref the passed in socket in g_socket_listener_add_socket (#585599)

 gio/gsocketlistener.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

commit 67de6cba508d7f2e0c310527667df2efcf4a543a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 15 14:23:57 2009 +0200

    Add bound address out-argument to g_socket_listener_add_address
    (#585566)

    This is very useful when binding to "any" port.

 gio/gsocketlistener.c | 20 ++++++++++++++++++++
 gio/gsocketlistener.h |  1 +
 2 files changed, 21 insertions(+)

commit 91bdccff7544ee19d329ec73db02fd5f11c617fd
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 15 13:18:22 2009 +0200

    Add g_reload_user_special_dirs_cache (#541276)

    This is useful for nautilus that changes the xdg-user-dirs files.

 glib/glib.symbols |  1 +
 glib/gutils.c     | 53
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 glib/gutils.h     |  1 +
 3 files changed, 55 insertions(+)

commit 740ae3aa29cc50f588fb3ac47f6125acbccd20b6
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 15 12:25:43 2009 +0200

    Avoid unnecessary work if mount watching not specified (#585360)

    If G_FILE_MONITOR_WATCH_MOUNTS isn't specified, don't do all the work
    when the mtab changes.

 gio/glocaldirectorymonitor.c | 29 +++++++++++++++++++++++++----
 gio/glocaldirectorymonitor.h |  1 +
 2 files changed, 26 insertions(+), 4 deletions(-)

commit 129eb074823101102611690f053ffa246bb7784d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 01:45:34 2009 -0400

    Support special icons for xdg user dirs

    The icon names are folder-documents, folder-download, folder-music,
    folder-pictures, folder-publicshare, folder-templates, folder-videos.
    See bug 541276.

 gio/glocalfileinfo.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

commit 50a7f530557e35c6dfc543d969c0369d53d45a87
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 01:12:50 2009 -0400

    Don't use deprecated GLib api

    Fixes bug 585673.

 gio/tests/resolver.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2553df615d21e68d52f1e0b45ac8b70622d2881e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 01:09:25 2009 -0400

    Refer to the correct gcc deprecation options

    This oversight was pointed out in bug 585520.

 docs/reference/glib/tmpl/macros_misc.sgml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2c5ac901d95f28db1edad2807f842396c594a49e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 01:03:54 2009 -0400

    Fix some typos in list documentation

    This fixes bug 585726.

 docs/reference/glib/tmpl/linked_lists_double.sgml | 4 ++--
 docs/reference/glib/tmpl/linked_lists_single.sgml | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit b0bba8520acd423785075ba67e6e4b644fce765f
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 00:52:43 2009 -0400

    Extract strings from g_dngettext too

    There is one occurrence of this in glib, which we currently miss.
    See bug 585717.

 po/Makefile.in.in | 7 +++++++
 1 file changed, 7 insertions(+)

commit 642e9c75400cc12f0fad26e3f3df5ac6a39e0822
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 00:45:55 2009 -0400

    Fix the icon property implementation

    Turns out both the setter and the getter were broken...
    Fixes bug 585676.

 gio/gemblem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit b533a944ffc83ad90cd8b6fba00f4e0bebcd0741
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jun 15 00:38:34 2009 -0400

    Trivial formatting fixes

 gio/gemblem.c | 63
 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 31 insertions(+), 32 deletions(-)

commit ce4aa6253eea2b24c0e4a99f9a1d7f31b9cec979
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 14 23:55:12 2009 -0400

    Include sys/uio.h for struct iovec

    This fixes the build on OS X, bug 585280.

 gio/gsocket.c | 2 ++
 1 file changed, 2 insertions(+)

commit 8a3a3d797e7ef3b66c917c1c0a2ec47300bbf661
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jun 14 22:26:52 2009 -0400

    Use inotify_init1 when available

    To avoid leaking the inotify fd. Fixes bug 585478.

 configure.in                 | 1 +
 gio/inotify/inotify-kernel.c | 9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

commit 4dbc2074bc857464e64549fac2b7403c4e9566c1
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Sun Jun 14 13:58:35 2009 -0400

    Add GNIO test cases to .gitignore

 gio/tests/.gitignore | 7 +++++++
 1 file changed, 7 insertions(+)

commit cb1a6092405b2f6d9b82e7c1b757951d695c5fe6
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 12 13:01:04 2009 -0400

    Bug 585575 – g_socket_listener_add_inet_port()

    Change the logic in g_socket_listener_add_inet_port() as per the
    reasoning in the bug report.

      - If the OS supports neither IPv6 or IPv4, fail.
      - If the OS supports only IPv6, do that.
      - If the OS supports only IPv4, do that.
      - If the OS supports IPv6 and IPv6 "speaks" IPv4 then bind it
        and be done.
      - If the OS supports IPv6 and IPv6 doesn't "speak" IPv4 then
        create an additional socket for IPv4.
      - If binding any socket fails then fail the entire call.

    Also, remove the ability to call this function with port == 0.  This
    is a useless thing to do anyway since you have no way to know what
    port number was actually allocated.  We should have a separate
    function to deal with this.

 gio/gsocketlistener.c | 164
 ++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 126 insertions(+), 38 deletions(-)

commit f7d756f5b6c9975452e57ac6f41ff69d9f456739
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Fri Jun 12 12:21:07 2009 -0400

    add g_socket_speaks_ipv4()

    Partial fix for Bug 585575.

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gsocket.c                       | 48
 +++++++++++++++++++++++++++++++++++++
 gio/gsocket.h                       |  1 +
 4 files changed, 51 insertions(+)

commit fd22781b184529c2a838272b76d71b4b498366ba
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Jun 12 15:57:51 2009 +0200

    make all APIs that take inet port arguments take a guint16

 gio/gsocketclient.c   | 4 ++--
 gio/gsocketclient.h   | 4 ++--
 gio/gsocketlistener.c | 2 +-
 gio/gsocketlistener.h | 6 +++---
 4 files changed, 8 insertions(+), 8 deletions(-)

commit 3e3e3c29469f03ec7f141b2522accdb7c2acd59d
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Jun 12 15:57:12 2009 +0200

    don't make strings const when they are not

    gets rid of compiler warnings

 gio/gdesktopappinfo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit a402875de1d8956c90a940f8309733040cda5afb
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jun 11 12:41:16 2009 -0400

    Fix an oversight in the previous commit

    We don't want to unset DISPLAY etc, if none is specified in the
    app launch context.

 gio/gdesktopappinfo.c | 4 ----
 1 file changed, 4 deletions(-)

commit 6224d3d2ecdbc3cacfdb8213de3cf53d6dfc8580
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 10 23:50:45 2009 -0400

    Fix g_string_chunk_insert_len to accept nuls

    Contrary to what the documentation says, g_string_chunk_insert_len
    was stopping at the first nul. Also add a test. Fixes bug 585088.

 glib/gstring.c      | 54
 ++++++++++++++++++++++++++---------------------------
 glib/tests/string.c | 23 +++++++++++++++++++++++
 2 files changed, 49 insertions(+), 28 deletions(-)

commit 9e43937d03443d6e8f63ea2c75c0fd54aaa124b3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 10 23:28:32 2009 -0400

    Include sys/types.h in gunixfdmessage.c

    As recommended in 'man socket'. Fixes bug 585281.

 gio/gunixfdmessage.c | 1 +
 1 file changed, 1 insertion(+)

commit d3d81f74c5c227fb17494c0388ede1e83557a7e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 10 16:20:51 2009 -0400

    Make setting DISPLAY work

    And remove a bunch of grotty code to manipulate an environment
    array at the same time. Instead, simply call setenv in the child_setup
    function.

 gio/gdesktopappinfo.c | 232
 +++++++++++---------------------------------------
 1 file changed, 49 insertions(+), 183 deletions(-)

commit 83ae249a2efc6f6445b5655cc16841ee2f9d3f75
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Jun 10 16:20:38 2009 -0400

    Support automake 1.11

 autogen.sh | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit ff2532aead7a73ca92d0b8a964d143c69e78c6cd
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Wed Jun 10 09:43:33 2009 +0200

    Updated Norwegian bokmål translation.

 po/nb.po | 903
 +++++++++++++++++++++++++++++----------------------------------
 1 file changed, 419 insertions(+), 484 deletions(-)

commit 74a3c71dcfb8f15692efd572670d28cb04caa868
Author: Dan Winship <danw@gnome.org>
Date:   Tue Jun 9 09:32:43 2009 -0400

    Revert part of fix for old OS X that broke the compile on current OS X

    http://bugzilla.gnome.org/show_bug.cgi?id=584574

 gio/libasyncns/g-asyncns.h | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

commit 059ec81c9e88ee5ec67aafd135714754ea5b9552
Author: Michael Meeks <michael.meeks@novell.com>
Date:   Tue Jun 9 11:31:42 2009 +0100

    move start_element emission out into a new (inlined) function, so
    the alloca'd memory is released on return, rather than slowly blowing
    the stack.

 glib/gmarkup.c | 76
 ++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 42 insertions(+), 34 deletions(-)

commit ced88fd0de4aedb537552561582875b427081eeb
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jun 9 10:54:22 2009 +0200

    Bug 585189 – g_cancellable_reset() must be called in same thread ...

    ... as g_cancellable_cancel()
    Rework a g_critical() that would (rarely) trigger when _reset() was
    called in a thread different from _cancel() by making _reset()
    wait for
    the cancel function to be finished the same way
    g_cancellable_disconnect() uses.

 gio/gcancellable.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

commit 7d4b7063057a9473491141e4d26fbcec17bb83ec
Author: Runa Bhattacharjee <runab@redhat.com>
Date:   Tue Jun 9 11:48:53 2009 +0530

    Updated Bengali India Translations

 po/bn_IN.po | 982
 ++++++++++++++++++++++++++++--------------------------------
 1 file changed, 457 insertions(+), 525 deletions(-)

commit 139af6f70032cad02b3cd965521c0c0cdb0dc8cf
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 8 17:29:22 2009 +0200

    update the overview image of the gio docs

    The old image was confusing and after some discussions in #nautilus we
    made a new one.

 docs/reference/gio/gvfs-overview.odg | Bin 10542 -> 17772 bytes
 docs/reference/gio/gvfs-overview.png | Bin 49138 -> 48474 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)

commit 74fd3e734f3b6e7702ee1a859855ef6bd1c28ef9
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 8 15:29:57 2009 +0200

    typo in documentation

 gio/gsocketconnection.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 29a4a0a44dc09dabe071a989da2500b2bc143cbd
Author: Benjamin Otte <otte@gnome.org>
Date:   Mon Jun 8 15:27:12 2009 +0200

    only query file info in g_file_copy() when we need it

    The default implementation of g_file_copy() checked the size of
    the file
    to copy to give useful progress updates unconditionally. This
    can cause
    long delays on 1-connection FTP servers while it tries to open
    a second
    connection before it returns EBUSY. This patch makes this query only
    happen when we actually send progress updates.

 gio/gfile.c | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

commit 0bb5739f323396b40bbe6470c505606ea265afa0
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Jun 1 22:09:21 2009 +0200

    Reformat g_themed_icon_get_names return type to make gtk-doc work

    Seems the gtk-doc scanner needs "const gchar* const *" to work,
    so switching
    to that.

 gio/gthemedicon.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce6fbd623115c88cfdf0f5ed36b01cca201ba78e
Author: Dan Winship <danw@gnome.org>
Date:   Thu May 28 15:27:04 2009 -0400

    Fix multiple bugs in g_srv_target_list_sort()

    In particular, targets with weight 0 should be very UNlikely to be
    selected, not very likely, as they were before. However, even ignoring
    that bug in the logic, there was an additional bug (swapping list
    items would cause the 0-weight items to get re-ordered incorrectly
    anyway), and the code contained several fencepost errors.

    This patch also adds gio/tests/srvtarget.c, which confirms that for a
    sample list of targets, we now generate all possible correct random
    sortings and no incorrect sortings, and the correct sortings occur in
    roughly the expected proportions (though if the current code is
    still wrong, those proportions may be wrong as well).

    http://bugzilla.gnome.org/show_bug.cgi?id=583398

 gio/gsrvtarget.c      |  92 ++++++++++++++---------------
 gio/tests/Makefile.am |   6 +-
 gio/tests/srvtarget.c | 157
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 205 insertions(+), 50 deletions(-)

commit 1ca91a212503e64a150c78cdb9ce0489efaa7a59
Author: Dan Winship <danw@gnome.org>
Date:   Sat May 23 21:49:47 2009 -0300

    Clarify some GSocket docs

 gio/gsocket.c | 218
 ++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 120 insertions(+), 98 deletions(-)

commit 5b3d62a7a6d4354b1588dd94f477c44bd15f1753
Author: Dan Winship <danw@gnome.org>
Date:   Mon Apr 27 17:35:04 2009 -0400

    Misc networking build fixes

    http://bugzilla.gnome.org/show_bug.cgi?id=580301
    http://bugzilla.gnome.org/show_bug.cgi?id=584176

 gio/gnetworkaddress.c       |  8 +-------
 gio/gnetworkingprivate.h    |  8 +++++++-
 gio/gresolver.c             |  2 +-
 gio/gsocket.c               |  8 +-------
 gio/gsocketcontrolmessage.c |  5 +----
 gio/gunixresolver.c         |  1 -
 gio/gunixsocketaddress.c    |  2 --
 gio/libasyncns/g-asyncns.h  | 17 +++++++++++++++++
 8 files changed, 28 insertions(+), 23 deletions(-)

commit 85816117e3da8c8751bb9c12f93580c9910ec8da
Author: Tor Lillqvist <tml@iki.fi>
Date:   Mon Jun 1 14:04:49 2009 +0300

    Bump _WIN32_WINNT to 0x0501

    Needed to get prototypes for getaddrinfo() and friends on mingw.

 gio/gnetworkingprivate.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4a50bab276cdbde6387c0dd07666de1879e2d6c9
Author: Hans Breuer <hans@breuer.org>
Date:   Sat May 30 15:33:14 2009 +0200

    Define fstat() for msvc build

 glib/giowin32.c    | 4 ++++
 glib/gkeyfile.c    | 4 ++++
 glib/gmappedfile.c | 5 +++++
 3 files changed, 13 insertions(+)

commit 75ef01824803c70f42d412c19d4e61904702e461
Author: Hans Breuer <hans@breuer.org>
Date:   Sat May 30 15:29:23 2009 +0200

    Updated msvc build files

 README.win32           |  13 ++++--
 config.h.win32.in      |   3 ++
 gio/makefile.msc       |  82 +++++++++++++++++------------------
 gio/win32/makefile.msc |  35 +++++++++++++++
 glib/makefile.msc.in   | 114
 +++++++++++++++++++++++++++----------------------
 glibconfig.h.win32.in  |   5 +++
 tests/makefile.msc.in  |  39 +++++++++--------
 7 files changed, 172 insertions(+), 119 deletions(-)

commit 780185449fadcbc5d79d9dea245067c16f475a92
Author: Hans Breuer <hans@breuer.org>
Date:   Sat May 30 15:24:06 2009 +0200

    Version resource template for gio

 gio/gio.rc.in | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

commit 73dbe591fb9ae98aab6902cf213132e2ad99c88c
Author: Hans Breuer <hans@breuer.org>
Date:   Sat May 30 15:18:02 2009 +0200

    Handle EAI_NODATA==EAI_NONAME in win32 SDK

 gio/gresolver.c | 2 ++
 1 file changed, 2 insertions(+)

commit cbca0ac5d92df015902b3fd8a9086a29b20bc6f9
Author: Hans Breuer <hans@breuer.org>
Date:   Sat May 30 15:14:01 2009 +0200

    Include io.h for write() on win32

 gio/gcancellable.c | 1 +
 1 file changed, 1 insertion(+)

commit 136793cc5e5e808c82d21664c0ba96c95c8f7075
Author: Hans Breuer <hans@breuer.org>
Date:   Sat May 30 15:08:29 2009 +0200

    Simplified for pre-built package use

 build/win32/make.msc    | 120
 +++++++++++++++++++++++++++++++++++-------------
 build/win32/module.defs |  29 ++++++++----
 2 files changed, 108 insertions(+), 41 deletions(-)

commit f4e89ab87702d220babc4d18ec8450e351d3c06e
Author: Hans Breuer <hans@breuer.org>
Date:   Sat May 30 15:02:14 2009 +0200

    Replace FIXME with proper SDK version define

 gio/gnetworkingprivate.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 661bb521d126480606e12a15f722069eeddfc306
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 28 23:50:48 2009 -0400

    Bump version

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 33a2f5a21212a62e96ba8f5691a51d512a8925bd
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 28 23:44:48 2009 -0400

    Release 2.21.1

 docs/reference/glib/tmpl/glib-unused.sgml |  67 ---
 docs/reference/glib/tmpl/macros_misc.sgml |   6 +-
 docs/reference/glib/tmpl/types.sgml       |   2 +
 docs/reference/glib/tmpl/version.sgml     |  68 +++
 po/am.po                                  | 203 ++++----
 po/ar.po                                  | 203 ++++----
 po/as.po                                  | 203 ++++----
 po/az.po                                  | 203 ++++----
 po/be.po                                  | 207 ++++----
 po/be@latin.po                            | 206 ++++----
 po/bg.po                                  | 205 ++++----
 po/bn.po                                  | 203 ++++----
 po/bn_IN.po                               | 203 ++++----
 po/bs.po                                  | 203 ++++----
 po/ca.po                                  | 204 ++++----
 po/ca@valencia.po                         | 815
 +++++++++++++++---------------
 po/cs.po                                  | 204 ++++----
 po/cy.po                                  | 204 ++++----
 po/da.po                                  | 204 ++++----
 po/de.po                                  | 205 ++++----
 po/dz.po                                  | 203 ++++----
 po/el.po                                  | 204 ++++----
 po/en_CA.po                               | 203 ++++----
 po/en_GB.po                               | 203 ++++----
 po/eo.po                                  | 203 ++++----
 po/es.po                                  | 815
 +++++++++++++++---------------
 po/et.po                                  | 203 ++++----
 po/eu.po                                  | 205 ++++----
 po/fa.po                                  | 203 ++++----
 po/fi.po                                  | 203 ++++----
 po/fr.po                                  | 205 ++++----
 po/ga.po                                  | 203 ++++----
 po/gl.po                                  | 205 ++++----
 po/gu.po                                  | 203 ++++----
 po/he.po                                  | 203 ++++----
 po/hi.po                                  | 203 ++++----
 po/hr.po                                  | 204 ++++----
 po/hu.po                                  | 205 ++++----
 po/hy.po                                  | 203 ++++----
 po/id.po                                  | 205 ++++----
 po/is.po                                  | 203 ++++----
 po/it.po                                  | 205 ++++----
 po/ja.po                                  | 203 ++++----
 po/ka.po                                  | 203 ++++----
 po/kn.po                                  | 203 ++++----
 po/ko.po                                  | 203 ++++----
 po/ku.po                                  | 203 ++++----
 po/lt.po                                  | 204 ++++----
 po/lv.po                                  | 203 ++++----
 po/mai.po                                 | 203 ++++----
 po/mg.po                                  | 205 ++++----
 po/mk.po                                  | 205 ++++----
 po/ml.po                                  | 203 ++++----
 po/mn.po                                  | 203 ++++----
 po/mr.po                                  | 204 ++++----
 po/ms.po                                  | 203 ++++----
 po/nb.po                                  | 204 ++++----
 po/ne.po                                  | 203 ++++----
 po/nl.po                                  | 205 ++++----
 po/nn.po                                  | 203 ++++----
 po/oc.po                                  | 203 ++++----
 po/or.po                                  | 234 +++++----
 po/pa.po                                  | 203 ++++----
 po/pl.po                                  | 205 ++++----
 po/ps.po                                  | 203 ++++----
 po/pt.po                                  | 203 ++++----
 po/pt_BR.po                               | 205 ++++----
 po/ro.po                                  | 203 ++++----
 po/ru.po                                  | 204 ++++----
 po/rw.po                                  | 203 ++++----
 po/si.po                                  | 203 ++++----
 po/sk.po                                  | 205 ++++----
 po/sl.po                                  | 205 ++++----
 po/sq.po                                  | 204 ++++----
 po/sr.po                                  | 203 ++++----
 po/sr@ije.po                              | 203 ++++----
 po/sr@latin.po                            | 203 ++++----
 po/sv.po                                  | 204 ++++----
 po/ta.po                                  | 203 ++++----
 po/te.po                                  | 203 ++++----
 po/th.po                                  | 203 ++++----
 po/tl.po                                  | 204 ++++----
 po/tr.po                                  | 203 ++++----
 po/tt.po                                  | 203 ++++----
 po/uk.po                                  | 204 ++++----
 po/vi.po                                  | 204 ++++----
 po/wa.po                                  | 203 ++++----
 po/xh.po                                  | 204 ++++----
 po/yi.po                                  | 203 ++++----
 po/zh_CN.po                               | 203 ++++----
 po/zh_HK.po                               | 203 ++++----
 po/zh_TW.po                               | 203 ++++----
 92 files changed, 10246 insertions(+), 9069 deletions(-)

commit 479c45564a7010dad0742912506e1dff9b61fdd5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 28 23:06:24 2009 -0400

    Update NEWS once more

 NEWS | 1 +
 1 file changed, 1 insertion(+)

commit 62abf79be2f7133d4c14aa89a04ac7261e00b9f0
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 28 14:40:04 2009 -0400

    Another pedantic docs fix

 gio/gsocket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d32226da6d4ff565aebd41b5f126d625dc42816b
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 28 15:34:07 2009 +0200

    Ref the right type in g_socket_control_message_deserialize

    We were not looking at the right type at all due to a typo.

 gio/gsocketcontrolmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 390549f6c4968b14ce4a141781f1131f6a09eafe
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 28 15:33:52 2009 +0200

    Document g_socket_control_message_deserialize

 gio/gsocketcontrolmessage.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit dbe7408a5c06b4e88cf2605a24b0949adc02446c
Author: Shixin Zeng <zeng.shixin@gmail.com>
Date:   Thu May 28 12:52:23 2009 +0300

    Fix string length bugs in GWinHttpFile (#580347)

 gio/win32/gwinhttpfile.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit a859f883cf939b1010c3783ad34879b2ba897bfe
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 28 00:30:21 2009 -0400

    Fix make check

 gio/ginetsocketaddress.c     | 2 +-
 gio/gnetworkaddress.c        | 2 +-
 gio/gnetworkservice.c        | 2 +-
 gio/gsocketconnectable.c     | 2 +-
 gio/gsocketcontrolmessage.c  | 2 +-
 gio/gsocketinputstream.c     | 5 +++++
 gio/gsocketoutputstream.c    | 7 +++++++
 gio/gthreadedsocketservice.c | 2 +-
 gio/gunixfdmessage.c         | 2 +-
 gio/gunixsocketaddress.c     | 2 +-
 gio/pltcheck.sh              | 2 +-
 11 files changed, 21 insertions(+), 9 deletions(-)

commit a39670dade8d68062a9ed2a3695b68945f34c5a5
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 28 00:08:42 2009 -0400

    Update for 2.21.1

 NEWS | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

commit 576839adbe9a72903fd435d24dbbb7826c691fcc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 27 22:44:31 2009 -0400

    Fix references to nonexisting functions

 gio/gasyncinitable.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 06144900ec87effb99c94e2d8369ca270d024bf1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 27 18:20:08 2009 -0400

    Documentation and coding style fixups

    Lots of pedanic changes.

 docs/reference/gio/gio-sections.txt |  18 +--
 docs/reference/gio/gio.types        |   1 +
 gio/gasyncinitable.c                | 165 ++++++++++++------------
 gio/gfile.c                         | 155 +++++++++++-----------
 gio/ginetaddress.c                  | 165 +++++++++++++++++++-----
 gio/ginetsocketaddress.c            |  28 ++--
 gio/ginitable.c                     |  22 ++--
 gio/ginitable.h                     |   3 +-
 gio/gioenums.h                      |  48 ++++---
 gio/giostream.c                     | 132 +++++++++----------
 gio/giotypes.h                      |  15 ++-
 gio/gnetworkaddress.c               |  44 ++++---
 gio/gnetworkaddress.h               |  16 +--
 gio/gnetworkservice.c               |  32 +++--
 gio/gresolver.c                     |   6 +-
 gio/gresolver.h                     |   2 +-
 gio/gsocket.c                       | 247
 +++++++++++++++++++-----------------
 gio/gsocketaddress.c                |  17 +--
 gio/gsocketaddressenumerator.c      |  34 ++---
 gio/gsocketaddressenumerator.h      |   2 +-
 gio/gsocketclient.c                 | 106 +++++++++-------
 gio/gsocketclient.h                 |  16 +--
 gio/gsocketconnectable.c            |   4 +-
 gio/gsocketconnectable.h            |   4 +-
 gio/gsocketconnection.c             | 102 ++++++++-------
 gio/gsocketconnection.h             |  26 ++--
 gio/gsocketcontrolmessage.c         |  39 ++++--
 gio/gsocketlistener.c               | 116 ++++++++---------
 gio/gsocketservice.c                |  35 ++---
 gio/gsocketservice.h                |   2 +-
 gio/gsrvtarget.c                    |   4 +-
 gio/gtcpconnection.c                |  30 +++--
 gio/gthreadedsocketservice.c        |  24 ++--
 gio/gunixconnection.c               |  20 +--
 gio/gunixconnection.h               |   2 +-
 gio/gunixfdmessage.c                |  43 ++++---
 gio/gunixfdmessage.h                |   6 +-
 gio/gunixsocketaddress.c            |   4 +-
 38 files changed, 964 insertions(+), 771 deletions(-)

commit eecbbb0a20a114b4a2c6759aa108940902c8961c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 27 12:07:13 2009 -0400

    Fix the an index title

 docs/reference/gio/gio-docs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 00151ec0e1ea5c6b8be13c70a8808bc0ff380e3b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 27 12:01:14 2009 -0400

    Fix a locking problem in g_main_context_iterate()

    We failed to ensure that the context is locked on every exit of
    the function. This fixes bug 583324.

 glib/gmain.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

commit 209a662c2fb664bed2bf4e26bbda784ca7c0739d
Author: Hans Breuer <hans@breuer.org>
Date:   Wed May 27 15:12:31 2009 +0300

    Correct reference and implement close_fn (#578769)

    Do proper referencing and unreferencing of
    GWinHttpFileInputStream::file and
    GWinHttpFileInputStream::file::vfs. Implement
    GWinHttpFileInputStream::close_fn.

 gio/win32/gwinhttpfile.c            |  5 ++++-
 gio/win32/gwinhttpfileinputstream.c | 23 ++++++++++++++++++++++-
 2 files changed, 26 insertions(+), 2 deletions(-)

commit 623f99dc3dee7712da4ac209ba445b2199b2963c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 27 11:11:37 2009 +0200

    Add required defines on solaris for GSocket to build (#582856)

    Turns out that the msg_control and related things are not defined
    in the
    system headers unless you define some _XOPEN_SOURCE things.

 configure.in | 8 ++++++++
 1 file changed, 8 insertions(+)

commit f99be75ff9d62f8e8e4e8850e34fe1020e58cb8c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 25 15:46:35 2009 +0200

    Remove mention of non-existing calls from docs

    The docs mentions a separate seekable API for the various file streams
    which don't actually exists. Change this to refer to the generic
    GSeekable calls.

 gio/gfileinputstream.c  | 10 ++++------
 gio/gfileiostream.c     | 14 +++++++-------
 gio/gfileoutputstream.c | 17 ++++++++---------
 3 files changed, 19 insertions(+), 22 deletions(-)

commit 3c0feca7f109c68e8c2a278875e576b18966d299
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 25 12:47:12 2009 +0200

    Don't end enum with comma (#583663)

    This is valid C but breaks C++, so don't put it in headers.

 gio/gioenums.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c93c98732aefb8472c94e75fea36f4924c7c746c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 25 12:46:03 2009 +0200

    Don't return something from a void function (#583408)

 gio/gsocketcontrolmessage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce171195d99c57e895bb02c7b324c811f958a91f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 25 11:33:56 2009 +0200

    Add g_inet_address_get_native_size (#583205)

    This can be used to get the size of g_inet_address_to_bytes().

 docs/reference/gio/gio-sections.txt |  1 +
 gio/ginetaddress.c                  | 22 +++++++++++++++++++++-
 gio/ginetaddress.h                  |  2 ++
 gio/gio.symbols                     |  1 +
 4 files changed, 25 insertions(+), 1 deletion(-)

commit fb70c6420b63a17bed11b594dd7255df08424fec
Author: Miquel Esplà <miquelespla@gmail.com>
Date:   Mon May 25 00:23:58 2009 +0200

    Added Valencian-Catalan translation

 po/LINGUAS        |    1 +
 po/ca@valencia.po | 1939
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1940 insertions(+)

commit bde3e9c3549bc74bdd2061945f2647fdd8aa3b77
Author: Jorge Gonzalez <jorgegonz@svn.gnome.org>
Date:   Sat May 23 20:00:22 2009 +0200

    Updated Spanish translation

 po/es.po | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

commit 37bd225d7b28e12fd78344d07e656cc2ff0d8d75
Author: Christian Persch <chpe@gnome.org>
Date:   Tue May 27 23:45:08 2008 +0200

    Fix grammar in error message

    Bug #583198.

 glib/gkeyfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 76ebe6c069b7fb1d09e6b95172185b325a3bb28e
Author: Christian Persch <chpe@gnome.org>
Date:   Sat May 24 20:51:07 2008 +0200

    Plug a mem leak

    Bug #583196.

 glib/tests/keyfile.c | 1 +
 1 file changed, 1 insertion(+)

commit fc9a888b8cb8b16f093caa5d5faf4057fad1c0ef
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jan 27 20:39:37 2009 +0100

    Add G_G[U]INTPTR_FORMAT and G_GINTPTR_MODIFIER

    Add macros for printf formatting for g[u]intptr. Bug 569376.

 configure.in                              | 16 ++++++++++++++++
 docs/reference/glib/glib-sections.txt     |  3 +++
 docs/reference/glib/tmpl/macros_misc.sgml | 26 ++++++++++++++++++++++++++
 docs/reference/glib/tmpl/types.sgml       | 12 ++++++++++++
 4 files changed, 57 insertions(+)

commit d046bfe577f71b45b40d8b0592409c88945bb934
Author: Christian Persch <chpe@gnome.org>
Date:   Tue Jan 27 19:54:27 2009 +0100

    Document g[u]intptr

    Bug 569375.

 docs/reference/glib/glib-sections.txt |  4 ++++
 docs/reference/glib/tmpl/types.sgml   | 19 ++++++++++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

commit 54b43229f4d6c3bf456f7b910bc00722a4f956d8
Author: Christian Persch <chpe@gnome.org>
Date:   Mon Apr 20 13:46:09 2009 +0200

    Use g_error_new_valist instead of a private copy of it

 gio/gsimpleasyncresult.c | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

commit 01b79d67ef0294dd633ccb0998a6d9053772da05
Author: Yeti <yeti@physics.muni.cz>
Date:   Mon Apr 20 13:22:17 2009 +0200

    Make g_error_new_valist public

    Bug #569024.

 docs/reference/glib/glib-sections.txt         |  1 +
 docs/reference/glib/tmpl/error_reporting.sgml | 12 ++++++++++++
 glib/gerror.c                                 | 16 +++++++++++++++-
 glib/gerror.h                                 |  6 ++++++
 glib/glib.symbols                             |  1 +
 5 files changed, 35 insertions(+), 1 deletion(-)

commit 14d53dcfa8a781a79bd61f50bb73c4a1b3b7857e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 16:28:20 2009 +0200

    Fix connect on win32

    We should not wait before calling connect for non-blocking connect.
    Also, use the right error code for the nonblocking pending case
    on win32.

 gio/gsocket.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

commit bb66fdcce32fedb31ddba2a5aaa4cd1c8f0cdc9e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 15:59:11 2009 +0200

    Fix build on win32

 gio/gsocket.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

commit c897cca601fdf9a91f214a33af33a812680b983e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 15:58:28 2009 +0200

    Don't add unix specific APIs on win32

 gio/gio.symbols | 4 ++++
 1 file changed, 4 insertions(+)

commit 5a46e4d1406da1a319e421e908aec768760ef139
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 14:55:14 2009 +0200

    Clarify g_cancellable_push_current docs wrt cancellable being NULL
    (#575013)

 gio/gcancellable.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit ab29e09dac547c501892cac8cd64721c3f157f00
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 14:46:51 2009 +0200

    Don't dereference identifier_type if it is NULL (#579558)

 gio/gunixvolume.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d0d10e847f3ea347d651714050a8bafd5332e2cb
Author: Robert Bragg <robert@linux.intel.com>
Date:   Wed May 6 09:20:43 2009 +0100

    Take a reference on the gio file monitors while signaling pending
    file changes

    It was possible for a signal handler to remove the last reference and
    dispose the monitor.  If there were remaining pending_file_changes
    they
    tried to dereference the disposed monitor.

    This patch simply calls g_object_{ref,unref} around the loop that
    signals
    the changes.

 gio/gfilemonitor.c | 3 +++
 1 file changed, 3 insertions(+)

commit 6a9df8256aaccd717aaa7582c704093d727699fe
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 14:17:27 2009 +0200

    Use G_GSSIZE_FORMAT where needed (#577884)

 gio/tests/live-g-file.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 7498049a1683db50805b9a9a580b62bb748918f4
Author: Sjoerd Simons <sjoerd@luon.net>
Date:   Wed May 20 13:59:50 2009 +0200

    Propagate errors from g_network_service_address_enumerator_next_async
    in its _finish function

 gio/gnetworkservice.c | 3 +++
 1 file changed, 3 insertions(+)

commit 2be66c0458aca37fef8337692fe5b5fe20bc5ccb
Author: Jonathon Jongsma <jonathon@quotidian.org>
Date:   Tue May 19 00:10:57 2009 -0500

    Typedef GResolverClass in the standard way

    It's a bit lame, but some of our C++ wrapping scripts expect objects
    to be
    typedefed like:
        typedef struct _FooClass FooClass;
        struct {} _FooClass;

    Rather than:
        typedef struct {} FooClass;

    Functionally they're the same, but the former makes our lives easier
    in the
    short term

 gio/gresolver.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit cb7a300e3136c9d1ee397a4c740513b8a0f21968
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 13:49:47 2009 +0200

    Don't return something from void function (#583229)

    g_async_initable_init_async is void, don't return something from it.

 gio/gasyncinitable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1cbdd2495dcc06eb11c3ef9207aae07acb7c4ba7
Author: Christian Persch <chpe@gnome.org>
Date:   Tue May 27 23:44:35 2008 +0200

    Preserve errno when using g_set_error with _() and g_strerror()

 gio/glocalfileoutputstream.c | 2 +-
 glib/gspawn.c                | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

commit 80cfd099f3c9fa23b2a21c77e3698f1c4ac94b06
Author: Christian Persch <chpe@gnome.org>
Date:   Tue May 19 15:03:14 2009 +0200

    Use g_set_error_literal

    Bug #583206.

 gio/gsocket.c         | 20 ++++++++++----------
 gio/gsocketclient.c   |  8 ++++----
 gio/gunixconnection.c |  4 ++--
 3 files changed, 16 insertions(+), 16 deletions(-)

commit c20b8d4d53a4e90f0e822276f6fbd94d52ff3c85
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 13:37:55 2009 +0200

    Check that close_fn is not %NULL before calling (#578499)

    Some streams have no close function, so this caused a crash.

 gio/ginputstream.c  | 13 ++++++++-----
 gio/giostream.c     | 11 +++++++----
 gio/goutputstream.c | 18 +++++++++++-------
 3 files changed, 26 insertions(+), 16 deletions(-)

commit 0a280dadec8394dd198c8cea0bc288d92c9c6ffd
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Tue May 19 14:33:25 2009 +0300

    docs: fix typo

 glib/gsequence.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9033b37589fcdf42d10025ea9e4d0dfc2c018bf4
Author: Sjoerd Simons <sjoerd@luon.net>
Date:   Wed May 20 12:41:50 2009 +0200

    Add helper functions for connecting to service (#583061)

 docs/reference/gio/gio-sections.txt |  3 ++
 gio/gio.symbols                     |  3 ++
 gio/gsocketclient.c                 | 93
 +++++++++++++++++++++++++++++++++++++
 gio/gsocketclient.h                 | 15 ++++++
 4 files changed, 114 insertions(+)

commit 25800ed4a393f7edbea179aa86907079a58fd097
Author: Dan Winship <danw@gnome.org>
Date:   Sun May 17 20:44:54 2009 -0400

    Ignore SIGPIPE when using GSocket

    http://bugzilla.gnome.org/show_bug.cgi?id=583001

 gio/gsocket.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 2ea22d8f46c21de6fc1eb012f258a3cfcda36752
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 12:14:04 2009 +0200

    Remove non-existing parameter from docs

    g_unix_socket_address_abstract_names_supported has no address argument

 gio/gunixsocketaddress.c | 1 -
 1 file changed, 1 deletion(-)

commit 9d36c86f8a0c759625753c4a9a02e0cfbf123a4b
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 12:10:33 2009 +0200

    Add missing symbols to gio.symbols

 gio/gio.symbols | 6 ++++++
 1 file changed, 6 insertions(+)

commit 9346f461f32375a34d2829d949dce8284c21654f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 12:07:30 2009 +0200

    Add missing types to gio.types

 docs/reference/gio/gio.types | 6 ++++++
 1 file changed, 6 insertions(+)

commit 5cd86fbda662defa03709a9277b25784d953541e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 12:01:29 2009 +0200

    Remove protocol names, instead use an enum with common protocols

    The whole protocol name thing is pretty weird. The getprotobyname
    functions
    seem to only specify one mapping for name <-> ids, so all
    families/types
    must use the same values. Plus the values used for the protocols are
    standardized by IANA, so are always the same.

    So, we drop using names for protocols, intead introducing an enum with
    a few commonly availible and used protocols.

 docs/reference/gio/#gio-unused.txt# | 100 ++++++++++++++++++++++++
 docs/reference/gio/aa               |  74 ++++++++++++++++++
 docs/reference/gio/b                |  77 +++++++++++++++++++
 docs/reference/gio/bb               |  77 +++++++++++++++++++
 docs/reference/gio/gio-sections.txt |   5 +-
 gio/gio.symbols                     |   4 +-
 gio/gioenums.h                      |  24 ++++++
 gio/gsocket.c                       | 148
 +++++++-----------------------------
 gio/gsocket.h                       |   7 +-
 gio/gsocketclient.c                 |  40 +++++-----
 gio/gsocketclient.h                 |   4 +-
 gio/gsocketconnection.c             |   2 +-
 gio/gsocketlistener.c               |  15 ++--
 gio/gsocketlistener.h               |   2 +-
 gio/gtcpconnection.c                |   8 +-
 gio/gunixconnection.c               |   2 +-
 16 files changed, 417 insertions(+), 172 deletions(-)

commit 6d01593b061afb52d22891a371fb29f42d4d62cc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 11:30:43 2009 +0200

    Clarify "current condition" in g_socket_create_source docs

 gio/gsocket.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit 80881826447a10b5ae3c08c9a88440eba75bcd05
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 11:28:27 2009 +0200

    Actually implement max_threads for GThreadedSocketService

 gio/gthreadedsocketservice.c | 73
 +++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 66 insertions(+), 7 deletions(-)

commit 053f9e72b12b9b5ab5571da9f4cd0b9b13f41e62
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 11:19:47 2009 +0200

    Add support for graceful disconnect to GTcpConnection

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gio.symbols                     |   2 +
 gio/gtcpconnection.c                | 331
 ++++++++++++++++++++++++++++++++++++
 gio/gtcpconnection.h                |   6 +-
 gio/tests/send-data.c               |  49 +++++-
 5 files changed, 386 insertions(+), 4 deletions(-)

commit f061765e54b81a92f4ce901016964ea4c31d77e0
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 20 11:18:34 2009 +0200

    Call sync close function directly in async implementation

    The g_io_stream_wrapper fails since there is already an outstanding
    operation (the async close).

 gio/gsocketconnection.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit fdfdec36d0d0044513db25872132bd42d392f748
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 13:44:11 2009 +0200

    Add send-data, a g_socket_client test case

 gio/tests/Makefile.am |   6 ++-
 gio/tests/send-data.c | 120
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+), 1 deletion(-)

commit 18373cfbe85dc8398ae1e66748721400a08b32a8
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 12:06:29 2009 +0200

    Set the listen backlog before calling listen.

    If we set it after it won't be used.

 gio/gsocketlistener.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 64383fa3d92b636e8fc977743de1c8f513d08dd2
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 11:53:42 2009 +0200

    Fix g_unix_socket_address_abstract_names_supported docs

    The previous description was a cut-n-paste from another function.

 gio/gunixsocketaddress.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0ffe7221934623f60e07d3b733d170ce94d26dd5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 11:52:33 2009 +0200

    Add g_socket_shutdown

 docs/reference/gio/gio-sections.txt |  1 +
 gio/gio.symbols                     |  1 +
 gio/gsocket.c                       | 73
 +++++++++++++++++++++++++++++++++++++
 gio/gsocket.h                       |  4 ++
 4 files changed, 79 insertions(+)

commit 03441e724a6b6d0b115fa5b2d9fbeefaa1fd2faa
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 11:27:07 2009 +0200

    Document GOutputVector and GInputVector

 docs/reference/gio/gio-sections.txt |  2 ++
 gio/giotypes.h                      | 23 +++++++++++++++++------
 2 files changed, 19 insertions(+), 6 deletions(-)

commit e1a4389cbc549b0db39ec692f2fde5c20579362c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 10:57:58 2009 +0200

    Rename g_socket_check_pending_error to g_socket_check_connect_result

    This is only used for connect anyway, and this describes the operation
    better.

 docs/reference/gio/gio-sections.txt |  2 +-
 gio/gio.symbols                     |  2 +-
 gio/gsocket.c                       | 12 ++++++------
 gio/gsocket.h                       |  2 +-
 gio/gsocketclient.c                 |  2 +-
 5 files changed, 10 insertions(+), 10 deletions(-)

commit bcba61c951c0a81326e2065ae81352ae2cbca6bb
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 10:47:55 2009 +0200

    Update docs on listen backlog

    Mention g_socket_set_listen_backlog in g_socket_listen.
    Explain that listen backlock needs to be set before calling
    listen. Also verify this with a g_return_if_fail.

 gio/gsocket.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 69130db81a0b174bb072f458e8c1b1cd6bc1a0c9
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 10:40:27 2009 +0200

    Read socket state in g_socket_get_local/remote_address

    Previously we saved the location in various places which is
    unnecessary
    and sometimes even wrong. For instance, we saved the address we
    bound to
    which may not have the final port set.

 gio/gsocket.c             | 88
 +++++++++++++++--------------------------------
 gio/gsocketconnection.c   |  2 ++
 gio/tests/socket-server.c |  1 +
 3 files changed, 31 insertions(+), 60 deletions(-)

commit f8cd1c530488c0b56634fab049ac775d094e9e58
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 19 10:16:32 2009 +0200

    Clean up refereces to @protocol_id in g_socket_new docs

    This was not fully updated from the protocol to protocol_id change.

 gio/gsocket.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3756ddb0eea8cef31e9aaad53eb6aa7d24a80fde
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 23:24:13 2009 +0200

    Ignore error when setting SO_REUSEADDR

    The main error would be "not supported" which could happen for e.g.
    unix domain sockets, we don't really care, as this is mainly something
    for TCP to help out a bit.

 gio/gsocket.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

commit f24c7fa9cbf2e0caa08a48ef64141d7ea50105aa
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 21:30:33 2009 +0200

    Add support for abstract unix socket addresses

 docs/reference/gio/gio-sections.txt |   5 +
 gio/gsocketaddress.c                |   3 +
 gio/gunixsocketaddress.c            | 300
 +++++++++++++++++++++++++++++-------
 gio/gunixsocketaddress.h            |   9 +-
 4 files changed, 262 insertions(+), 55 deletions(-)

commit d8bdc3e5678498996efe618bec32b8ae43ca8b39
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 14:10:07 2009 +0200

    Add GError to g_socket_address_to_native

    This is nice for some callers so they can report an error.
    It is also required to support opional address types like
    abstract paths for unix domain sockets.

 gio/ginetsocketaddress.c | 23 +++++++++++++++++++----
 gio/gresolver.c          |  2 +-
 gio/gsocket.c            | 11 +++++++----
 gio/gsocketaddress.c     | 13 +++++++++----
 gio/gsocketaddress.h     |  6 ++++--
 gio/gunixsocketaddress.c |  9 +++++++--
 6 files changed, 47 insertions(+), 17 deletions(-)

commit eefd7cd8db5c7749212e7c9861a84eb3e34be1ee
Author: Jorge Gonzalez <jorgegonz@svn.gnome.org>
Date:   Mon May 18 20:19:05 2009 +0200

    Updated Spanish translation

 po/es.po | 815
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 415 insertions(+), 400 deletions(-)

commit 6ea86cc57f1b8b8c7acc4e08ece8baef5f28a53a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 13:02:11 2009 +0200

    Update the docs for the new network APIs

    This imports the network APIs into the gio reference docs, and cleans
    up a bunch of gtk-doc warnings and documentation issues.

 docs/reference/gio/gio-docs.xml           |  43 +++-
 docs/reference/gio/gio-sections.txt       | 350
 +++++++++++++++++++++++++++++-
 docs/reference/gio/gio.types              |  20 +-
 docs/reference/gio/overview.xml           |  28 +++
 docs/reference/glib/tmpl/glib-unused.sgml |  67 ++++++
 docs/reference/glib/tmpl/macros_misc.sgml |   5 +-
 docs/reference/glib/tmpl/version.sgml     |  68 ------
 gio/gasyncinitable.c                      |   7 +-
 gio/gfile.c                               |   2 +-
 gio/gfile.h                               |   9 +
 gio/gfileenumerator.c                     |   2 +-
 gio/gfileiostream.c                       |  10 +-
 gio/ginetsocketaddress.c                  |   2 +-
 gio/ginitable.c                           |   9 +-
 gio/gioenums.h                            |   5 +-
 gio/giostream.c                           |   9 +-
 gio/giotypes.h                            |   2 +
 gio/gmount.c                              |   2 +-
 gio/gmount.h                              |   1 +
 gio/gsocket.c                             |   4 +-
 gio/gsocket.h                             |   5 -
 gio/gsocketclient.c                       |  25 +--
 gio/gsocketclient.h                       |   8 +-
 gio/gsocketconnection.c                   |  17 +-
 gio/gsocketconnection.h                   |   2 +-
 gio/gsocketlistener.c                     |  10 +-
 gio/gsocketservice.c                      |   3 +-
 gio/gthemedicon.c                         |   6 +-
 gio/gunixconnection.c                     |   2 +-
 gio/gunixsocketaddress.c                  |   2 +-
 30 files changed, 575 insertions(+), 150 deletions(-)

commit e1afc6e79b9526d68eff0f218ac98a6f0e323513
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 11:30:48 2009 +0200

    Remove gtk-doc warnings

    Some code was using gtk-doc comment blocks for non-gtk-doc contents,
    just
    turn it into ordinary comments.

 gio/fen/fen-kernel.c         | 2 +-
 gio/inotify/inotify-helper.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

commit 822abda451c9999ac4e1cf3b8d5649ebebbb5ee4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 11:29:11 2009 +0200

    Add more internal headers for gtk-doc to ignore

    This gives less bogus output in gio-unused.txt

 docs/reference/gio/Makefile.am | 38
 +++++++++++++++++++++++---------------
 1 file changed, 23 insertions(+), 15 deletions(-)

commit c3f4e0162714f4712edcf51fa1502c8187faf5c0
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 11:27:49 2009 +0200

    Make all non-static functions start with underscore

    We don't want to export a lot of non-namespaced internal symbols.

 gio/fen/fen-data.c             | 158
 ++++++++++++++++++++---------------------
 gio/fen/fen-data.h             |  28 ++++----
 gio/fen/fen-dump.c             |   2 +-
 gio/fen/fen-helper.c           |  76 ++++++++++----------
 gio/fen/fen-helper.h           |   6 +-
 gio/fen/fen-kernel.c           |  22 +++---
 gio/fen/fen-kernel.h           |  14 ++--
 gio/fen/fen-missing.c          |  10 +--
 gio/fen/fen-missing.h          |   4 +-
 gio/fen/fen-node.c             |  38 +++++-----
 gio/fen/fen-node.h             |  22 +++---
 gio/fen/fen-sub.c              |   4 +-
 gio/fen/fen-sub.h              |   4 +-
 gio/fen/gfendirectorymonitor.c |  16 ++---
 gio/fen/gfenfilemonitor.c      |  16 ++---
 gio/fen/libfen_la-fen-dump.loT |   7 ++
 16 files changed, 217 insertions(+), 210 deletions(-)

commit 66d49b8bdeed9bac71acda847d8cbe0203dd5ba4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 09:28:26 2009 +0200

    Remove g_socket_set/get_reuse_address from header

    These functions have been removed.

 gio/gsocket.h | 3 ---
 1 file changed, 3 deletions(-)

commit 13cb01176291a8baa171da8dcb9f679b274af450
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon May 18 08:47:10 2009 +0200

    Add max_threads argument to g_threaded_socket_service_new

 gio/gthreadedsocketservice.c | 4 +++-
 gio/gthreadedsocketservice.h | 2 +-
 gio/tests/echo-server.c      | 2 +-
 gio/tests/httpd.c            | 2 +-
 4 files changed, 6 insertions(+), 4 deletions(-)

commit 5b683af237f1c5dac62c83e11459d46799ba6ecf
Author: Paul Pogonyshev <pogonyshev@gmx.net>
Date:   Sun May 17 15:17:57 2009 +0300

    Fix error message in set_mtime_atime()

    Bug #578786.

 gio/glocalfileinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 34e74378c9fc99a3dc75eb9680bb00cb784029bb
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 21:34:14 2009 +0200

    Add test apps for highlevel socket classes

    echo-server - simple echo server
    httpd - simple http server

 gio/tests/Makefile.am   |  10 ++-
 gio/tests/echo-server.c |  73 +++++++++++++++++++
 gio/tests/httpd.c       | 183
 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 265 insertions(+), 1 deletion(-)

commit 67df7d43e926702290280578cd6b89fee7302d72
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 21:27:54 2009 +0200

    Add references to highlevel classes in GSocket docs

 gio/gsocket.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

commit ce8361217c1c9bd458eab55554a77d24210235cc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 21:26:24 2009 +0200

    Import all the highlevel socket classes from gnio

 gio/Makefile.am              |  22 +-
 gio/gio-marshal.list         |   1 +
 gio/gio.h                    |   8 +-
 gio/gio.symbols              |  82 ++++
 gio/giotypes.h               |  50 +++
 gio/gsocketclient.c          | 912
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gsocketclient.h          | 115 ++++++
 gio/gsocketconnection.c      | 474 ++++++++++++++++++++++
 gio/gsocketconnection.h      |  91 +++++
 gio/gsocketinputstream.c     | 259 ++++++++++++
 gio/gsocketinputstream.h     |  58 +++
 gio/gsocketlistener.c        | 815 ++++++++++++++++++++++++++++++++++++++
 gio/gsocketlistener.h        | 134 +++++++
 gio/gsocketoutputstream.c    | 259 ++++++++++++
 gio/gsocketoutputstream.h    |  58 +++
 gio/gsocketservice.c         | 330 ++++++++++++++++
 gio/gsocketservice.h         |  88 +++++
 gio/gtcpconnection.c         |  67 ++++
 gio/gtcpconnection.h         |  64 +++
 gio/gthreadedsocketservice.c | 215 ++++++++++
 gio/gthreadedsocketservice.h |  81 ++++
 gio/gunixconnection.c        | 293 ++++++++++++++
 gio/gunixconnection.h        |  77 ++++
 23 files changed, 4550 insertions(+), 3 deletions(-)

commit 2597e3adc37ce342972e995444f4417e0aa6fb5d
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 20:58:27 2009 +0200

    Remove unused variable

 gio/glocalfileoutputstream.c | 1 -
 1 file changed, 1 deletion(-)

commit 4ade78fc3d242b58d57d92944c16ba7ef4614b2c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 20:43:02 2009 +0200

    Include stdlib.h to avoid warning

    Fixes a "implicit declaration of function ‘strtol’" warning

 gio/gnetworkaddress.c | 1 +
 1 file changed, 1 insertion(+)

commit d3a2c457cb55730181c04c8d6d1f611ee555c250
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 20:42:04 2009 +0200

    Forgot to return the allocated data in async_op_wrapper_new

 gio/gfileiostream.c | 2 ++
 1 file changed, 2 insertions(+)

commit a48fc532519b849498c8b75dde578caf0c270b23
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 10:42:28 2009 +0200

    Make cancellable pipe fds close-on-exec

    GCancellable is purely an in-process thing, so ensure that no
    cancellable
    fds accidentally leak to child processes.

 gio/gcancellable.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

commit 23424e7bcb93abe805394d11e8b32beb7571e87c
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 10:28:30 2009 +0200

    Add padding to new classes

 gio/gsocketcontrolmessage.h | 9 +++++++++
 gio/gunixfdmessage.h        | 6 ++++++
 2 files changed, 15 insertions(+)

commit 8f67f47e05a9244d86d9661caa73e5a2fc573e55
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 10:08:18 2009 +0200

    Add test apps for GSocket API

 gio/tests/Makefile.am     |  10 +-
 gio/tests/socket-client.c | 294
 ++++++++++++++++++++++++++++++++++++++++++++
 gio/tests/socket-server.c | 304
 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 607 insertions(+), 1 deletion(-)

commit a258ec3b5bf0a0b2ab1cb1dce8ce715c3895bdaa
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 10:05:55 2009 +0200

    Fix deadlock in threaded resolver

    When you're using the threaded resolver and using a sync call
    without a cancellable the resolve_sync forgot to unlock the
    initial req->mutex lock, leading to a deadlock when unrefing
    the request.

 gio/gthreadedresolver.c | 1 +
 1 file changed, 1 insertion(+)

commit f662e7e86bc27102948683c0925815efefb43bbc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri May 15 09:10:23 2009 +0200

    Store protocol by id, add lookup function for name

    We want to use the protocol id for lookup in the GSocketConnection
    code, so we expose it. We also make GSocket store the protocol
    as an int for less memory use and to allow platform specific protocols
    to be specified.

    Also added g_socket_protocol_id_lookup_by_name() to allow the higher
    level code to specify the name by string, and
    g_socket_get_protocol_name()
    to get it.

 gio/gio.symbols |   4 +-
 gio/gsocket.c   | 178
 ++++++++++++++++++++++++++++++++++++++++++--------------
 gio/gsocket.h   |   6 +-
 3 files changed, 141 insertions(+), 47 deletions(-)

commit bd87df9e73272c72a1f45cc606d010e8c4961363
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 14 16:58:47 2009 +0200

    Make GSocketSourceFunc return the GSocket

    This is very useful when you have multiple sockets with sources.

 gio/gasynchelper.c | 38 +++++++++++++++++++++++++++++---------
 gio/gasynchelper.h | 14 +++++++++++---
 gio/giotypes.h     |  8 +++++---
 gio/gsocket.c      |  8 +++++---
 4 files changed, 50 insertions(+), 18 deletions(-)

commit 7ffdc91f513d6b91d060df6e3ad3401ef23e968d
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 14 16:19:07 2009 +0200

    Set optlen before calling getsockopt

    We were sometimes failing in g_socket_check_pending_error because
    we were not setting optlen on input and it was sometimes randomly
    less than sizeof(int).

 gio/gsocket.c | 1 +
 1 file changed, 1 insertion(+)

commit 145cec3c93d5ba0c22d35aaf341b3713cadc0e14
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 14 15:26:37 2009 +0200

    Import GInitable, GSocket and dependencies from gnio

    This adds:
    GInitable - failable object constructor interface
    GAsyncInitable - async failable object constructor interface
    GSocket - Platform independent lowlevel berkely socket style object
    GSocketControlMessage - For passing control messages over GSocket
    GUnixFDMessage - unix fd passing socket control message

    Some changes were done during the import from gnio to make things
    work in glib. For instance, types were moved to other headers, header
    file boiler plate were updated to glib style and gio.symbols stuff
    was added.

 configure.in                |   16 +
 gio/Makefile.am             |   10 +
 gio/gasyncinitable.c        |  383 ++++++
 gio/gasyncinitable.h        |  119 ++
 gio/ginitable.c             |  251 ++++
 gio/ginitable.h             |   95 ++
 gio/gio.h                   |    4 +
 gio/gio.symbols             |   81 ++
 gio/gioenums.h              |   46 +-
 gio/gioerror.c              |    6 +
 gio/giotypes.h              |   59 +
 gio/gsocket.c               | 2970
 +++++++++++++++++++++++++++++++++++++++++++
 gio/gsocket.h               |  172 +++
 gio/gsocketcontrolmessage.c |  200 +++
 gio/gsocketcontrolmessage.h |   96 ++
 gio/gunixfdmessage.c        |  259 ++++
 gio/gunixfdmessage.h        |   67 +
 17 files changed, 4833 insertions(+), 1 deletion(-)

commit 33c00e5c33dfe612e5d8757dd07e4c3acae30acc
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 14 10:53:53 2009 +0200

    Add g_network_address_parse

    This is useful if you want to allow users to specify
    the hostname and optionally a port.

 configure.in          |   3 +
 gio/gio.symbols       |   1 +
 gio/gnetworkaddress.c | 164
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gnetworkaddress.h |  12 ++--
 4 files changed, 176 insertions(+), 4 deletions(-)

commit 80a484ad2c2495134a87a35f8ac936e8e75c311a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu May 14 15:32:55 2009 +0200

    Add the new GFile ops to gio.symbols

    This adds all the symbols related to GFile GIOStream support that was
    recently added.

 gio/gio.symbols | 9 +++++++++
 1 file changed, 9 insertions(+)

commit ed0821856533e63bee4f7da54f1a9e6e0b1f12e9
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 13 13:06:58 2009 +0200

    Add tests for local GIOStream GFile ops

 gio/tests/Makefile.am |   4 +
 gio/tests/readwrite.c | 293
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 297 insertions(+)

commit 14d58d51a325797aee3b53fb4e0ba76ca0adc3f5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 13 13:03:47 2009 +0200

    Local file implementation of GFileIOStream and ops

    This implements all the GIOStream file ops for local files.
    We use the "fallback to output stream" for all GFileIOStream ops.
    Some helpers stuff was added to the local input and output streams
    so they could be reused.

 gio/Makefile.am              |   2 +
 gio/glocalfile.c             |  67 +++++++++++++++++++++++
 gio/glocalfileinputstream.c  |  12 ++++
 gio/glocalfileinputstream.h  |   5 +-
 gio/glocalfileiostream.c     | 114 ++++++++++++++++++++++++++++++++++++++
 gio/glocalfileiostream.h     |  60 ++++++++++++++++++++
 gio/glocalfileoutputstream.c | 127
 ++++++++++++++++++++++++++++++++++++++-----
 gio/glocalfileoutputstream.h |  14 +++++
 8 files changed, 385 insertions(+), 16 deletions(-)

commit 7a2d4889b50c5edd3f483c6e037faec1e093ab13
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 13 13:00:26 2009 +0200

    Add GIOStream operations to GFile

    g_file_open_readwrite, g_file_create_readwrite,
    g_file_replace_readwrite
    and async variants, with default implementations using threads.

 gio/gfile.c | 666
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gfile.h |  83 ++++++++
 2 files changed, 749 insertions(+)

commit bd0b8c60c231c72588d69dfb2018d2e418517f7f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 12 16:59:36 2009 +0200

    Add GFileIOStream class

    This is similar to GFileInputStream and GFileOutputStream for
    GIOStreams.
    The default implementations chain to the Output stream.

 gio/Makefile.am     |   2 +
 gio/gfileiostream.c | 671
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/gfileiostream.h | 118 +++++++++
 gio/gio.h           |   1 +
 gio/gio.symbols     |  10 +
 gio/giostream.c     |   3 -
 gio/giotypes.h      |   1 +
 7 files changed, 803 insertions(+), 3 deletions(-)

commit 6d0bebb7df1129bb78cdd526e1b44c91b61321dd
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 12 19:31:19 2009 +0200

    Add comment about lifecycle issues for GIOStreams

 gio/giostream.c | 6 ++++++
 1 file changed, 6 insertions(+)

commit 05f544c59191ea7eab076fbb77a2e3648d52e167
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 12 16:30:15 2009 +0200

    Import GIOStream from gnio

    Based on gnio rev 84516a5f544d8d5f3da368a83844e84eca8ef771

 gio/Makefile.am |   2 +
 gio/gio.h       |   1 +
 gio/gio.symbols |  15 ++
 gio/giostream.c | 607
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gio/giostream.h | 112 +++++++++++
 gio/giotypes.h  |   1 +
 6 files changed, 738 insertions(+)

commit 1ecfae6a71b10cda9b3fa1e8f38bb22db01fb0af
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 12 19:53:24 2009 +0200

    Remove close in finalize, we do it in dispose

    This is not needed, and in fact it may be a bad idea to call
    it from finalize anyway since the object isn't fully alive then.

 gio/ginputstream.c | 3 ---
 1 file changed, 3 deletions(-)

commit 2bbb85633f30da2a7b79b518ca7821cde475cb3a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue May 12 13:57:52 2009 +0200

    Remove not actually used member "cancelled"

 gio/goutputstream.c | 1 -
 1 file changed, 1 deletion(-)

commit 0030935d041f26e461aca6583927ea0cceb166bb
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue May 12 14:54:12 2009 +0300

    Make glibconfig.h.win32.in match the generated one.

    Add G_GOFFSET_MODIFIER, G_GOFFSET_FORMAT and G_GOFFSET_CONSTANT.

 glibconfig.h.win32.in | 5 +++++
 1 file changed, 5 insertions(+)

commit b3e4b761f465a8cb0948bd6381ad832a0a47436a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 6 13:26:17 2009 +0200

    Fix gcancellable.c build on non-win32

    I forgot to add #ifdef G_OS_WIN32 in one place, sorry.

 gio/gcancellable.c | 2 ++
 1 file changed, 2 insertions(+)

commit e10edefff1308cad307d954b17163538a3c7f20a
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed May 6 13:10:58 2009 +0200

    Simplify GCancellable support on win32

    There is no need to have a GIOChannel in the GPollFD in
    g_cancellable_create_pollfd. All we need is an Event object that
    we signal when cancelling and reset when resetting.

    Also, supporting g_cancellable_get_fd on Windows using _pipe is
    useless
    as it doesn't work with any corresponding poll() function, so
    just don't
    support that on win32.

    I tested this with the cancellation support in GSocket from gnio.

 gio/gcancellable.c | 56
 +++++++++++++++++++++++++-----------------------------
 1 file changed, 26 insertions(+), 30 deletions(-)

commit 2fff3026efbaf7e480d1a166c7166c44c6643567
Author: Paul Pogonyshev <pogonyshev@gmx.net>
Date:   Mon May 4 22:32:35 2009 +0300

    Don't try to ref NULL pointer in g_desktop_app_info_dup()

    Fixes bug #573246.

 gio/gdesktopappinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d89cc0d7cbad8b6904931440e579e291ce81780d
Author: Carlos Garnacho <carlos@imendio.com>
Date:   Tue May 5 14:45:18 2009 -0400

    Add a GMount::pre-unmount signal

    This is the per-mount analogon to GVolumeMonitor::mount-pre-unmount.

 gio/gmount.c     | 16 ++++++++++++++++
 gio/gmount.h     |  3 +++
 gio/gunixmount.c |  2 ++
 3 files changed, 21 insertions(+)

commit 4ecec3b1c2d335b1e26b209fc7e2b77013ece795
Author: Manoj Kumar Giri <mgiri@mgiri.csb>
Date:   Tue May 5 12:34:44 2009 +0530

    Updated Oriya Translation.

 po/or.po | 111
 ++++++++++-----------------------------------------------------
 1 file changed, 17 insertions(+), 94 deletions(-)

commit 757f9281d7aac1254a156136440b4df4fa52e3a1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 3 18:08:01 2009 -0400

    Bump version to 2.21.1

 configure.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a28215fa909ef315e596ebd0b41132730aef909d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 3 18:04:31 2009 -0400

    Release 2.21.0

 docs/reference/gio/gio-docs.xml          |   3 +
 docs/reference/glib/glib-docs.sgml       |   3 +
 docs/reference/gobject/gobject-docs.sgml |   3 +
 gio/gcancellable.c                       |  58 +-
 gio/gresolver.c                          |  37 +-
 gio/gsrvtarget.c                         |  16 +-
 gio/gthreadedresolver.c                  |  10 +-
 gio/gunixresolver.c                      |   2 +-
 po/am.po                                 | 226 +++-----
 po/ar.po                                 | 286 +++++-----
 po/as.po                                 | 300 +++++-----
 po/az.po                                 | 276 ++++------
 po/be.po                                 | 302 +++++-----
 po/be@latin.po                           | 306 +++++-----
 po/bg.po                                 | 307 +++++------
 po/bn.po                                 | 271 ++++-----
 po/bn_IN.po                              | 291 +++++-----
 po/bs.po                                 | 276 ++++------
 po/ca.po                                 | 915
 +++++++++++++++---------------
 po/cs.po                                 | 801
 +++++++++++++--------------
 po/cy.po                                 | 274 ++++-----
 po/da.po                                 | 304 +++++-----
 po/de.po                                 | 312 +++++------
 po/dz.po                                 | 272 ++++-----
 po/el.po                                 | 306 +++++-----
 po/en_CA.po                              | 289 +++++-----
 po/en_GB.po                              | 300 +++++-----
 po/eo.po                                 | 270 ++++-----
 po/es.po                                 | 806
 ++++++++++++++-------------
 po/et.po                                 | 402 +++++++++++++-
 po/eu.po                                 | 310 +++++------
 po/fa.po                                 | 276 ++++------
 po/fi.po                                 | 304 +++++-----
 po/fr.po                                 | 312 +++++------
 po/ga.po                                 | 244 ++++----
 po/gl.po                                 | 306 +++++-----
 po/gu.po                                 | 296 +++++-----
 po/he.po                                 | 300 +++++-----
 po/hi.po                                 | 296 +++++-----
 po/hr.po                                 | 272 ++++-----
 po/hu.po                                 | 305 +++++-----
 po/hy.po                                 | 228 +++-----
 po/id.po                                 | 280 ++++------
 po/is.po                                 | 273 ++++-----
 po/it.po                                 | 309 +++++------
 po/ja.po                                 | 305 +++++-----
 po/ka.po                                 | 272 ++++-----
 po/kn.po                                 | 302 +++++-----
 po/ko.po                                 | 308 +++++------
 po/ku.po                                 | 210 +++----
 po/lt.po                                 | 304 +++++-----
 po/lv.po                                 | 276 ++++------
 po/mai.po                                | 286 +++++-----
 po/mg.po                                 | 276 ++++------
 po/mk.po                                 | 281 ++++------
 po/ml.po                                 | 300 +++++-----
 po/mn.po                                 | 276 ++++------
 po/mr.po                                 | 298 +++++-----
 po/ms.po                                 | 276 ++++------
 po/nb.po                                 | 302 +++++-----
 po/ne.po                                 | 274 ++++-----
 po/nl.po                                 | 319 ++++++-----
 po/nn.po                                 | 278 ++++------
 po/oc.po                                 | 209 +++----
 po/or.po                                 | 296 +++++-----
 po/pa.po                                 | 296 +++++-----
 po/pl.po                                 | 304 +++++-----
 po/ps.po                                 | 919
 ++++++++++++++-----------------
 po/pt.po                                 | 305 +++++-----
 po/pt_BR.po                              | 304 +++++-----
 po/ro.po                                 | 307 +++++------
 po/ru.po                                 | 312 +++++------
 po/rw.po                                 | 276 ++++------
 po/si.po                                 | 253 ++++-----
 po/sk.po                                 | 279 ++++------
 po/sl.po                                 | 300 +++++-----
 po/sq.po                                 | 328 +++++------
 po/sr.po                                 | 271 ++++-----
 po/sr@ije.po                             | 282 ++++------
 po/sr@latin.po                           | 271 ++++-----
 po/sv.po                                 | 304 +++++-----
 po/ta.po                                 | 298 +++++-----
 po/te.po                                 | 296 +++++-----
 po/th.po                                 | 296 +++++-----
 po/tl.po                                 | 284 ++++------
 po/tr.po                                 | 304 +++++-----
 po/tt.po                                 | 238 +++-----
 po/uk.po                                 | 300 +++++-----
 po/vi.po                                 | 302 +++++-----
 po/wa.po                                 | 255 ++++-----
 po/xh.po                                 | 278 ++++------
 po/yi.po                                 | 273 ++++-----
 po/zh_CN.po                              | 296 +++++-----
 po/zh_HK.po                              | 296 +++++-----
 po/zh_TW.po                              | 296 +++++-----
 95 files changed, 12758 insertions(+), 14748 deletions(-)

commit 4e694faa332a6ef4c576176b568a7f74e142103a
Author: Paul Pogonyshev <pogonyshev@gmx.net>
Date:   Mon May 4 00:55:35 2009 +0300

    Fix g_input_stream_skip_async() documentation

    Remove mention of inexisting argument.  Spotted in relation to bug
    581229.

 gio/ginputstream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f33a484b4a1a14902dc1789c2e023fbcd4136098
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 3 17:10:16 2009 -0400

    Fix up tests forgotten in Michaels commit

    When Michael cleaned up after my fumbled commit of his gmarkup
    optimizations, he fumbled himself and forgot to fix up the tests...

 tests/markups/fail-36.gmarkup | Bin 13 -> 42 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

commit 008ae16d75b2f6e908258d883d8b1c98a98bd648
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 3 16:58:22 2009 -0400

    Add new functions

 docs/reference/gobject/gobject-sections.txt | 6 ++++++
 1 file changed, 6 insertions(+)

commit d1e6e194cc30744e47067378eb338f7d5a0f1e2b
Author: Petr Kovar <pknbe@volny.cz>
Date:   Sun May 3 18:34:35 2009 +0200

    Updated Czech translation

 po/cs.po | 1013
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 503 insertions(+), 510 deletions(-)

commit b3fc55cc4e5b578acc0a06e164c29fe43d060b10
Author: Ivar Smolin <okul@linux.ee>
Date:   Sun May 3 12:03:46 2009 +0300

    Updating Estonian translation

 po/et.po | 550
 +++++----------------------------------------------------------
 1 file changed, 37 insertions(+), 513 deletions(-)

commit 3f06ddd8cdfa7f4ebf09ef24db7dad5270be36df
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 23:17:29 2009 -0400

    Match up parameter names to help gtk-doc

 gio/gcancellable.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2e4855ec4b611b9a17c466f4d26a694480f80ad6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 23:02:41 2009 -0400

    Add bug references

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit 2e4b51aeb3bd5fa1fda52946e2d43fc8e7a28b4e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 22:59:02 2009 -0400

    Plug a memory leak in g_simple_async_result_set_op_res_gpointer

    Fixes bug 579272.

 gio/gsimpleasyncresult.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit 79ef3d32643519ae9c9710acf0c56b54ff540dc3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 22:44:52 2009 -0400

    Correct g_utf8_to_utf16 docs

    As pointed out in bug 580932, len is counting bytes here.

 glib/gutf8.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 2dfce324220bf7e1ea5ca465a74e58cf8146b808
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 22:41:19 2009 -0400

    Accept NULL as empty string list

    Fixes bug 580656.

 glib/gkeyfile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a4ac1b0552785dfb2d323eb41c6d3875b214989b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 22:36:15 2009 -0400

    Fix reference to g_strtoull

    As pointed out in bug 580546, that function does not exit.

 docs/reference/glib/tmpl/macros_misc.sgml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit fab0506f5f983dcad8f4c44dbef6fbc1f8fd1b3b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 22:30:19 2009 -0400

    Update NEWS

 NEWS | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit ff104337d9e95f6e933f3d77a5a24e462c4713cf
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 21:58:30 2009 -0400

    Bump version to 2.21.0

 configure.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit dc02797c1e386d72ff24268cc23c19352e8cef6f
Author: Jorge Gonzalez <jorgegonz@svn.gnome.org>
Date:   Fri May 1 20:20:01 2009 +0200

    Updated Spanish translation

 po/es.po | 1021
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 509 insertions(+), 512 deletions(-)

commit 92ac8d165eae438164cffce01fe92cdcf6488970
Author: Dan Winship <danw@gnome.org>
Date:   Fri May 1 10:08:52 2009 -0400

    Misc warning fixes

    glib/pcre/pcre_ucp_search_funcs.c, glib/pcre/pcre_valid_utf8.c: add
    back missing config.h includes, and this time add them to the copies
    in glib/update-pcre/ too so they don't get lost again on the next PCRE
    update.

    glib/garray.c, glib/gbase64.c: fix signed/unsigned pointer casts

    gio/xdgmime/xdgmimeglob.c: remove unused variable

    gio/tests/live-g-file.c: fix printf args on x86_64

    tests/Makefile.am, tests/regex-test.c: remove redundant -DENABLE_REGEX

 gio/tests/live-g-file.c                 | 4 ++--
 gio/xdgmime/xdgmimeglob.c               | 1 -
 glib/garray.c                           | 2 +-
 glib/gbase64.c                          | 2 +-
 glib/pcre/pcre_ucp_searchfuncs.c        | 4 ++++
 glib/pcre/pcre_valid_utf8.c             | 1 +
 glib/update-pcre/pcre_ucp_searchfuncs.c | 4 ++++
 glib/update-pcre/pcre_valid_utf8.c      | 1 +
 tests/Makefile.am                       | 9 +--------
 tests/regex-test.c                      | 2 ++
 10 files changed, 17 insertions(+), 13 deletions(-)

commit 36cb01f447b2401195e3c6b577f490e868363630
Author: Dan Winship <danw@gnome.org>
Date:   Fri May 1 10:08:23 2009 -0400

    Add README and INSTALL to .gitignore since they are autogenerated

 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

commit 83699774fa669abfbc5c5c3dc9265308246bd4f6
Author: Michael Meeks <michael.meeks@novell.com>
Date:   Fri May 1 15:23:23 2009 +0100

    Patch originally committed only to the ChangeLog & tests ...

            Bug 572508 – gmarkup speedup ...

            * glib/gmarkup.c: Various optimizations: do less allocations
            by
            keeping a pool of GStrings, do in-place unescaping, avoid
            redundant
            utf-8 validation.

 glib/gmarkup.c | 1129
 +++++++++++++++++++++++---------------------------------
 1 file changed, 455 insertions(+), 674 deletions(-)

commit d8029ca9bc24bcff7f33c973ef13fae7e6fab904
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 30 10:46:37 2009 +0200

    Ensure g_inet_address_get_type() call is not optimized away

    Yet another place where the get_type call can be optimized away due
    to the G_GNUC_CONST attribute. Use a volatile variable to ensure
    its not.

 gio/gresolver.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 97fe421518139dcb3477209d3d3c3b6744f54153
Author: David King <davidk@openismus.com>
Date:   Wed Apr 29 15:58:35 2009 +0200

    Fix ginetaddress.c compile on Linux

    The GType type definition belongs outside the G_OS_WIN32 typedef.

 gio/ginetaddress.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 402847c8878a6bf839facdf7a91f096769ebc609
Author: David Zeuthen <davidz@redhat.com>
Date:   Wed Apr 29 11:15:20 2009 -0400

    Bug 580450 – Reference counting and boxed types for arrays

    Add reference counting and boxed types for GArray, GByteArray and
    GPtrArray.

    Signed-off-by: Matthias Clasen <mclasen@redhat.com>

 docs/reference/glib/glib-sections.txt        |   9 +
 docs/reference/glib/tmpl/arrays.sgml         |  41 ++++-
 docs/reference/glib/tmpl/arrays_byte.sgml    |  23 ++-
 docs/reference/glib/tmpl/arrays_pointer.sgml |  64 ++++++-
 glib/garray.c                                | 253
 +++++++++++++++++++++++++--
 glib/garray.h                                |  10 ++
 glib/glib.symbols                            |   9 +
 glib/tests/array-test.c                      | 172 ++++++++++++++++++
 gobject/gboxed.c                             |  33 ++++
 gobject/gboxed.h                             |  27 +++
 gobject/gobject.symbols                      |   3 +
 11 files changed, 616 insertions(+), 28 deletions(-)

commit d80e12104f139def9bea28a510bf1d7c103e20f9
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Apr 29 12:19:57 2009 +0200

    Ensure we're actually initializing the winsock library

    It turns out that just calling g_inet_address_get_type() isn't
    enough, since its marked G_GNUC_CONST, so the call is optimized
    away. If we assign the return value to a volatile location we ensure
    it is called.

 gio/ginetaddress.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 49dfb50afc9400779c0be02ea3c285780b42c928
Author: David Zeuthen <davidz@redhat.com>
Date:   Sat Apr 25 22:41:07 2009 -0400

    Bug 580453 – Hash and equal functions for gint64 and gdouble

 docs/reference/glib/glib-sections.txt     |  4 ++
 docs/reference/glib/tmpl/hash_tables.sgml | 38 +++++++++++++++
 glib/ghash.c                              | 13 +++---
 glib/ghash.h                              |  8 ++++
 glib/glib.symbols                         |  4 ++
 glib/gutils.c                             | 78
 +++++++++++++++++++++++++++++++
 6 files changed, 139 insertions(+), 6 deletions(-)

commit 5a368d469a2441d7d77d78fe104dc3560093ebac
Author: Jordi Mas i Hernandez <jmas@softcatala.org>
Date:   Sun Apr 26 20:18:38 2009 +0200

    Minor fixes to Catalan translation

 po/ca.po | 922
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 457 insertions(+), 465 deletions(-)

commit 61f130015bbbbc99ce0189cca1c95f7e2e735202
Author: paul <ephraim_owns@hotmail.com>
Date:   Sun Apr 26 13:16:34 2009 -0400

    Fix socket-related configure tests on old platforms

    include <sys/types.h> in case <sys/socket.h> doesn't. #580299

 configure.in | 1 +
 1 file changed, 1 insertion(+)

commit 7c9caecfebf7d15899fe361324c414fbfc7b1317
Author: Dan Winship <danw@gnome.org>
Date:   Sun Apr 26 12:18:42 2009 -0400

    Fix the networking stuff on (current) OS X

    OS X's headers split up the current and old (BIND 4) nameserver stuff
    slightly differently than Linux does, but explicitly including
    arpa/nameser_compat.h does the right thing on both. Part of #580301

 gio/ginetaddress.c       | 3 +++
 gio/gnetworkingprivate.h | 6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

commit 9a15da50e4d10794c35e4b638b7ab521be671a6e
Author: Dan Winship <danw@gnome.org>
Date:   Sun Apr 26 09:59:28 2009 -0400

    Fix ginetaddress.c compile on Solaris

    In glibc, IN6_IS_ADDR_UNSPECIFIED() et al. cast their argument to a
    uint32_t*, so it doesn't matter whether you pass them the in6_addr
    itself (which is what you're supposed to do) or one of its union
    members (which is what we were actually doing). Solaris's macro
    accesses the in6_addr fields directly though, and so only works if you
    pass the actual in6_addr. #580194.

 gio/ginetaddress.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 491a036d8480f4d710ef601a27a57b559b0a46d7
Author: Johan Bilien <jobi@litl.com>
Date:   Wed Apr 22 19:09:34 2009 +0100

    Fix translation from GIO's file attr to xattr attributes

    Bug 579862 – requesting xattr::foo ends up calling getxattr(...,
    user.:foo,...)

    The patch makes sure we escape xattr::, not xattr:, before adding
    user.
    and calling getxattr.

 gio/glocalfileinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a9c33dbd7aeeb715677d619cbddc0d621872cc43
Author: Christian Persch <chpe@gnome.org>
Date:   Wed Apr 22 15:12:37 2009 +0200

    Use P_ for translatable param spec strings

    Translatable param spec strings should be annotated with P_()
    instead of
    plain _(). Bug #579830.

 gio/gfileicon.c          |  4 ++--
 gio/ginetaddress.c       | 48
 ++++++++++++++++++++++++------------------------
 gio/gsocketaddress.c     |  4 ++--
 gio/gthemedicon.c        | 12 ++++++------
 gio/gunixinputstream.c   |  8 ++++----
 gio/gunixoutputstream.c  |  8 ++++----
 gio/gunixsocketaddress.c |  4 ++--
 7 files changed, 44 insertions(+), 44 deletions(-)

commit 9a3d18d2a652f9f1567e09bdb1055e6cb462f710
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 29 13:38:28 2008 -0500

    GResolver wrappers: GNetworkAddress, GNetworkService,
    GSocketConnectable

    Higher-level wrappers around GResolver. GSocketConnectable provides an
    interface for synchronously or asynchronously iterating multiple
    socket addresses, with GNetworkAddress and GNetworkService providing
    interfaces based on hostname and SRV record resolution.
    Part of #548466.

 docs/reference/gio/gio-docs.xml     |   3 +
 docs/reference/gio/gio-sections.txt |  71 ++++
 docs/reference/gio/gio.types        |   4 +
 gio/Makefile.am                     |   8 +
 gio/gio.h                           |   4 +
 gio/gio.symbols                     |  35 ++
 gio/giotypes.h                      |   4 +
 gio/gnetworkaddress.c               | 462 +++++++++++++++++++++++++
 gio/gnetworkaddress.h               |  65 ++++
 gio/gnetworkservice.c               | 658
 ++++++++++++++++++++++++++++++++++++
 gio/gnetworkservice.h               |  69 ++++
 gio/gresolver.c                     |  12 +
 gio/gsocketaddress.c                |  90 ++++-
 gio/gsocketaddressenumerator.c      | 191 +++++++++++
 gio/gsocketaddressenumerator.h      |  89 +++++
 gio/gsocketconnectable.c            | 148 ++++++++
 gio/gsocketconnectable.h            |  68 ++++
 gio/gsrvtarget.c                    |   7 +-
 gio/tests/.gitignore                |   1 +
 gio/tests/resolver.c                | 141 +++++++-
 20 files changed, 2121 insertions(+), 9 deletions(-)

commit c94d3f92885456e1dc9e2fb27b709017f29d04ce
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 29 12:53:47 2008 -0500

    Add GResolver, a glib-ish interface to DNS

    GResolver provides asynchronous (and synchronous-but-cancellable) APIs
    for resolving hostnames, reverse-resolving IP addresses back to
    hostnames, and resolving SRV records. Part of #548466.

 configure.in                        |   25 +
 docs/reference/gio/Makefile.am      |    6 +-
 docs/reference/gio/gio-docs.xml     |    2 +
 docs/reference/gio/gio-sections.txt |   52 ++
 docs/reference/gio/gio.types        |    1 +
 gio/Makefile.am                     |   18 +-
 gio/ginetaddress.c                  |    7 +-
 gio/gio.h                           |    2 +
 gio/gio.symbols                     |   57 ++
 gio/gioenums.h                      |   14 +
 gio/giotypes.h                      |    4 +-
 gio/gnetworkingprivate.h            |   32 +
 gio/gresolver.c                     |  855 ++++++++++++++++++++
 gio/gresolver.h                     |  159 ++++
 gio/gsrvtarget.c                    |  334 ++++++++
 gio/gsrvtarget.h                    |   52 ++
 gio/gthreadedresolver.c             |  617 +++++++++++++++
 gio/gthreadedresolver.h             |   50 ++
 gio/gunixresolver.c                 |  433 ++++++++++
 gio/gunixresolver.h                 |   53 ++
 gio/gwin32resolver.c                |  481 +++++++++++
 gio/gwin32resolver.h                |   49 ++
 gio/libasyncns/Makefile.am          |   15 +
 gio/libasyncns/README               |    7 +
 gio/libasyncns/asyncns.c            | 1498
 +++++++++++++++++++++++++++++++++++
 gio/libasyncns/asyncns.h            |  163 ++++
 gio/libasyncns/g-asyncns.h          |   28 +
 gio/libasyncns/update.sh            |   20 +
 gio/pltcheck.sh                     |    2 +-
 gio/tests/.gitignore                |    1 +
 gio/tests/Makefile.am               |    8 +-
 gio/tests/resolver.c                |  377 +++++++++
 32 files changed, 5412 insertions(+), 10 deletions(-)

commit 68fc0556275edf6e63a3242841f2981a42ee11cb
Author: Dan Winship <danw@gnome.org>
Date:   Fri Dec 12 13:13:55 2008 -0500

    Add network address and socket types

    Types and methods for dealing with IPv4 and IPv6 addresses (and UNIX
    domain socket addresses under UNIX). This does not include code for
    actual socket I/O.

    Originally from "gnio". Much of the code was written by Christian
    Kellner, Samuel Cormier-Iijima, and Ryan Lortie.

    Part of #548466.

 configure.in                        |  28 ++
 docs/reference/gio/gio-docs.xml     |   7 +
 docs/reference/gio/gio-sections.txt |  91 +++++
 docs/reference/gio/gio.types        |   4 +
 gio/Makefile.am                     |  11 +-
 gio/ginetaddress.c                  | 747
 ++++++++++++++++++++++++++++++++++++
 gio/ginetaddress.h                  | 101 +++++
 gio/ginetsocketaddress.c            | 306 +++++++++++++++
 gio/ginetsocketaddress.h            |  69 ++++
 gio/gio.h                           |   3 +
 gio/gio.symbols                     |  51 +++
 gio/gioenums.h                      |  20 +
 gio/giotypes.h                      |   5 +
 gio/gnetworkingprivate.h            |  53 +++
 gio/gsocketaddress.c                | 233 +++++++++++
 gio/gsocketaddress.h                |  77 ++++
 gio/gunixsocketaddress.c            | 206 ++++++++++
 gio/gunixsocketaddress.h            |  61 +++
 glibconfig.h.win32.in               |   3 +
 19 files changed, 2075 insertions(+), 1 deletion(-)

commit 6a3b4fa05ac996566e7b8037edf80d0f06fa2a90
Author: Dan Winship <danw@gnome.org>
Date:   Mon Dec 29 09:00:17 2008 -0500

    Add hostname-related utilities in glib/ghostutils.h

    Functions for converting between UTF-8 IDNs (Internationalized Domain
    Names) and their ASCII-Compatible Encodings, plus a function to
    recognize
    IP addresses. Part of #548466.

 docs/reference/glib/glib-docs.sgml       |   2 +
 docs/reference/glib/glib-sections.txt    |  13 +
 docs/reference/glib/tmpl/ghostutils.sgml |  64 +++
 glib/Makefile.am                         |   2 +
 glib/ghostutils.c                        | 758
 +++++++++++++++++++++++++++++++
 glib/ghostutils.h                        |  40 ++
 glib/glib.h                              |   1 +
 glib/glib.symbols                        |  10 +
 glib/tests/.gitignore                    |   1 +
 glib/tests/Makefile.am                   |   3 +
 glib/tests/hostutils.c                   | 267 +++++++++++
 11 files changed, 1161 insertions(+)

commit dda20bccbfc2a560c13532612382712c17717085
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Tue Apr 21 23:21:28 2009 +0300

    goption: format section docs according to gtk-doc rules and fixes
    broken xml

 glib/goption.c | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

commit 57bd24dc4907e6959f953be0759b946c16c78386
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Tue Apr 14 11:32:59 2009 +0300

    goption: document that some option args need to be freed by the callee

    Option arguments where the result is stored in a string or string
    array need to
    be freed by the owner of the option group. Fixes #578363.

 glib/goption.c | 3 +++
 glib/goption.h | 5 +++++
 2 files changed, 8 insertions(+)

commit 2026c232b3437ff0f1222b6b045379ca273393e8
Author: Stefan Kost <ensonic@users.sf.net>
Date:   Tue Apr 14 11:23:25 2009 +0300

    goption: move docs from tmpl folder to inline comments

 docs/reference/glib/tmpl/.gitignore  |   1 +
 docs/reference/glib/tmpl/option.sgml | 603
 -----------------------------------
 glib/goption.c                       | 113 +++++++
 glib/goption.h                       | 204 +++++++++++-
 glib/gtypes.h                        |  13 +
 5 files changed, 330 insertions(+), 604 deletions(-)

commit 0f48f804b665943a2fd848ab6efbe913003daa82
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Apr 20 13:14:32 2009 +0200

    Use g_cancellable_connect/disconnect

    Use the new cancellable helper functions to avoid races. (#572844)

 gio/gasynchelper.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 0001014c378636e5848f4b3d8f38fc7a84c33b22
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Apr 20 13:12:08 2009 +0200

    Add helpers for connecting/disconnecting to cancelled signal

    There are race conditions when connecting and disconnecting from the
    "cancelled" signal on GCancellable which you need to do when
    implementing cancellable operations. This adds helper functions that
    avoid these races and mentions these races in the docs. (#572844)

 docs/reference/gio/gio-sections.txt |   2 +
 gio/gcancellable.c                  | 214
 +++++++++++++++++++++++++++++-------
 gio/gcancellable.h                  |   6 +
 gio/gio.symbols                     |   2 +
 4 files changed, 183 insertions(+), 41 deletions(-)

commit c17d4dd117db554e501a18a41de53734f7f87003
Author: zabeeh khan <zabeehkhan@gmail.com>
Date:   Fri Apr 17 11:27:38 2009 +0530

    Pashto Translation committed as per the request made by Zabeeh Khan
    on the gnome-i18n list

 po/ps.po | 870
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 437 insertions(+), 433 deletions(-)

commit b85834c22369579d1bea86b392594d0b912a5858
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Apr 11 18:10:24 2009 -0400

    Bump version

 configure.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 2c1dc529e8d9b1ab2d8ccb8abb1efed836584616
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 9 21:34:49 2009 -0400

    Add a note about handling non-hal backends

 gio/gvolume.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

commit 6e11246cc828217fd04a23f16b67db11333523f9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 9 18:47:28 2009 -0400

    Release GLib 2.20.1

 po/am.po       |  154 ++++----
 po/ar.po       |  839 ++++++++++++++++++++-------------------
 po/as.po       |  871 ++++++++++++++++++++--------------------
 po/az.po       |  154 ++++----
 po/be.po       |  156 ++++----
 po/be@latin.po |  156 ++++----
 po/bg.po       |  836 ++++++++++++++++++++-------------------
 po/bn.po       |  154 ++++----
 po/bn_IN.po    |  154 ++++----
 po/bs.po       |  154 ++++----
 po/ca.po       |  836 ++++++++++++++++++++-------------------
 po/cs.po       |  154 ++++----
 po/cy.po       |  154 ++++----
 po/da.po       |  837 ++++++++++++++++++++-------------------
 po/de.po       |  836 ++++++++++++++++++++-------------------
 po/dz.po       |  154 ++++----
 po/el.po       |  863 ++++++++++++++++++++--------------------
 po/en_CA.po    |  154 ++++----
 po/en_GB.po    |  836 ++++++++++++++++++++-------------------
 po/eo.po       |  154 ++++----
 po/es.po       |  841 ++++++++++++++++++++-------------------
 po/et.po       |  154 ++++----
 po/eu.po       |  894 ++++++++++++++++++++---------------------
 po/fa.po       |  154 ++++----
 po/fi.po       |  154 ++++----
 po/fr.po       |  836 ++++++++++++++++++++-------------------
 po/ga.po       |  154 ++++----
 po/gl.po       |  836 ++++++++++++++++++++-------------------
 po/gu.po       |  154 ++++----
 po/he.po       |  154 ++++----
 po/hi.po       |  154 ++++----
 po/hr.po       |  154 ++++----
 po/hu.po       |  905 +++++++++++++++++++++---------------------
 po/hy.po       |  154 ++++----
 po/id.po       |  154 ++++----
 po/is.po       |  154 ++++----
 po/it.po       |  839 ++++++++++++++++++++-------------------
 po/ja.po       |  836 ++++++++++++++++++++-------------------
 po/ka.po       |  154 ++++----
 po/kn.po       |  880 +++++++++++++++++++++--------------------
 po/ko.po       |  154 ++++----
 po/ku.po       |  154 ++++----
 po/lt.po       |  836 ++++++++++++++++++++-------------------
 po/lv.po       |  154 ++++----
 po/mai.po      |  154 ++++----
 po/mg.po       |  154 ++++----
 po/mk.po       |  154 ++++----
 po/ml.po       |  886 ++++++++++++++++++++---------------------
 po/mn.po       |  154 ++++----
 po/mr.po       |  154 ++++----
 po/ms.po       |  154 ++++----
 po/nb.po       |  836 ++++++++++++++++++++-------------------
 po/ne.po       |  154 ++++----
 po/nl.po       |  154 ++++----
 po/nn.po       |  154 ++++----
 po/oc.po       |  154 ++++----
 po/or.po       |  871 ++++++++++++++++++++--------------------
 po/pa.po       |  868 ++++++++++++++++++++--------------------
 po/pl.po       |  836 ++++++++++++++++++++-------------------
 po/ps.po       |  154 ++++----
 po/pt.po       |  154 ++++----
 po/pt_BR.po    |  836 ++++++++++++++++++++-------------------
 po/ro.po       |  154 ++++----
 po/ru.po       |  836 ++++++++++++++++++++-------------------
 po/rw.po       |  154 ++++----
 po/si.po       |  154 ++++----
 po/sk.po       |  154 ++++----
 po/sl.po       | 1165
 ++++++++++++++++++++++++++----------------------------
 po/sq.po       |  156 ++++----
 po/sr.po       |  154 ++++----
 po/sr@ije.po   |  154 ++++----
 po/sr@latin.po |  154 ++++----
 po/sv.po       | 1203
 ++++++++++++++++++++++++++++----------------------------
 po/ta.po       |  888 ++++++++++++++++++++---------------------
 po/te.po       |  154 ++++----
 po/th.po       |  154 ++++----
 po/tl.po       |  154 ++++----
 po/tr.po       |  154 ++++----
 po/tt.po       |  154 ++++----
 po/uk.po       |  154 ++++----
 po/vi.po       |  154 ++++----
 po/wa.po       |  154 ++++----
 po/xh.po       |  154 ++++----
 po/yi.po       |  154 ++++----
 po/zh_CN.po    |  839 ++++++++++++++++++++-------------------
 po/zh_HK.po    |  154 ++++----
 po/zh_TW.po    |  154 ++++----
 87 files changed, 17103 insertions(+), 16510 deletions(-)

commit 009689e09b0cd9cc0a322d1361940183330bada6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 9 17:43:59 2009 -0400

    Update for 2.20.1

 NEWS | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

commit e68a35689fbcbab965b6631882381309cb0a20d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 9 14:56:49 2009 -0400

    Fix G_DEFINE_TYPE_EXTENDED docs

    Make the docs for G_DEFINE_TYPE_EXTENDED match the actual
    definition of the macro.  (#577985)

 gobject/gtype.h | 71
 +++++++++++++++++++++++++++------------------------------
 1 file changed, 34 insertions(+), 37 deletions(-)

commit 856632c496d15f3f273d567b521a2b06afc32721
Author: Gian Mario Tagliaretti <gianmt@gnome.org>
Date:   Thu Apr 9 14:35:36 2009 -0400

    Fix a typo in GFile docs

    Fixed function name in GFile docs from g_set_display_name to
    g_file_set_display_name so that gtk-doc can link correctly.  (#578002)

 gio/gfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 950de29d0e9720ce0979a84530130e27a3a59f74
Author: Kenneth Nielsen <k.nielsen81@gmail.com>
Date:   Thu Apr 9 13:49:00 2009 +0200

    Updated Danish translation\n\nUpdated Danish translation by Kenneth
    Nielsen.

 po/da.po | 156
 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 84 insertions(+), 72 deletions(-)

commit efc2cdbfc981754db361f49c30c8ee24ac0c769e
Author: Peter Kjellerstedt <pkj@axis.com>
Date:   Wed Apr 8 10:26:11 2009 -0400

    Fix parsing of timezones

    Make g_time_val_from_iso8601 handle timezones with minutes correctly;
    also accept comma as a fraction separator.  (#578369)

 glib/gtimer.c    |  6 +++---
 tests/testglib.c | 18 +++++++++++++++++-
 2 files changed, 20 insertions(+), 4 deletions(-)

commit d0cf7b38780b0832fc904f75eb387aa61eb2f76e
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Apr 8 09:12:02 2009 +0200

    Only mark regular files as backup files

    Apps don't generally create backup directories, etc. So, if the file
    ends with ~ but is not a regular file shouldn't be considered a backup
    file. (#573673)

 gio/glocalfileinfo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 85a795b9bae44b973de1443f98728b21b78c68ae
Author: Funda Wang <fundawang@gmail.com>
Date:   Sun Apr 5 11:05:47 2009 +0800

    Updated Simplified Chinese translation from Ray Wang
    <wanglei1123@gmail.com>

 po/zh_CN.po | 87
 +++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 50 insertions(+), 37 deletions(-)

commit 7fd870830806def730341a328389f8b5df49fab4
Author: Thanos Lefteris <alefteris@gmail.com>
Date:   Fri Apr 3 20:12:27 2009 +0100

    Updated Greek translation

    Signed-off-by: Simos Xenitellis <simos@gnome.org>

 po/el.po | 238
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 125 insertions(+), 113 deletions(-)

commit e6e82c51a64ca263877f730cc7531454d5430b77
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 3 00:35:43 2009 -0400

    Move hex_digits to rodata

    Turn a string into a constant array.

 gio/gfileattribute.c | 260
 +++++++++++++++++++++++++--------------------------
 1 file changed, 126 insertions(+), 134 deletions(-)

commit 25ff8ee7486c7bdf1612d3554fc1d7d91daedfa6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Apr 3 00:23:54 2009 -0400

    Don't lie about ext4 filesystems

    When returning a filesystem type id, say "ext3/ext4" instead of
    "ext3",
    since both use the same superblock magic, so we can't discriminate
    them without more work.

 gio/glocalfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e8a42bb81c46204a86259e44aa9698658487e64a
Author: Paolo Borelli <pborelli@katamail.com>
Date:   Fri Apr 3 00:04:39 2009 -0400

    Regex leak on error path

    Don't leak the GRegex struct when g_regex_new() fails.

 glib/gregex.c | 2 ++
 1 file changed, 2 insertions(+)

commit 82a5f787d68fd7d6ae973634694cebd43f126552
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 2 23:57:59 2009 -0400

    Update requirements

    Mention that the mimetype-functionality of GIO reqires
    update-mime-database
    and update-desktop-database at runtime. (#577128)

 INSTALL.in | 32 ++++++++++++++++-----------
 README.in  | 74
 +++++++++++++++++++++++++++++++-------------------------------
 2 files changed, 56 insertions(+), 50 deletions(-)

commit 20774c566393af28e5123322abb8e35840ff0e5a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 2 23:42:29 2009 -0400

    Add a rule to generate ChangeLog

    We use the same rule pango uses to create a ChangeLog file with
    the help of git-log. The format is somewhat different from traditional
    ChangeLog, but it contains the relevant information.

 Makefile.am | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit b7f9a1ac8337c546f9db9b7ee9ff437b256c75d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 2 23:14:54 2009 -0400

    Rename ChangeLog to ChangeLog.pre-2-20

    Rename ChangeLog to prevent old habits from luring me into adding
    entries there. Also, this makes room for autogenerating a ChangeLog
    at make dist.

 ChangeLog => ChangeLog.pre-2-20 | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

commit b160405aa0a66f3eb771af43b6d0000d076d045b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Apr 2 23:13:35 2009 -0400

    remove generated files

    README and INSTALL are generated files, no need to keep them
    under source control.

 INSTALL | 116 -------------------------------------
 README  | 199
 ----------------------------------------------------------------
 2 files changed, 315 deletions(-)

commit 1ce74b0dd34222b201369e5aff53b27182db7b66
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Apr 2 19:01:56 2009 +0200

    On trash, if rename fails with EXDEV, return G_IO_ERROR_NOT_SUPPORTED

    Sometimes it seems like the trash dir and the file are on the same
    filesystem but the rename fails with EXDEV anyway (can happen
    e.g. with bind mounts or multiple mounts of the same device). In this
    case we want to return the right error so that apps can fallback to
    regular delete.

 gio/glocalfile.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

commit 20df6b6e888a1aed596c8c60ed7427708a56a453
Author: Tobias Mueller <gnome-bugs@auftrags-killer.org>
Date:   Wed Apr 1 21:51:00 2009 -0400

    Mark glib_gettext as string translation function

    Make glib_gettext with G_GNUC_FORMAT to avoid warnings with
    -Wformat -Wformat-nonliteral.
    Signed-off-by: Matthias Clasen <mclasen@redhat.com>

 glib/glib.symbols | 2 +-
 glib/glibintl.h   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 86aa49594feac9797ab87b83e198147aff4171fa
Author: Hagen Schink <troja84@gmail.com>
Date:   Wed Apr 1 21:30:51 2009 -0400

    fix a typo in g_io_channel_flush docs

    Refer to the correct return values.

    Signed-off-by: Matthias Clasen <mclasen@redhat.com>

 glib/giochannel.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 785bed2e18c18842f07ada42af2ec80cf18aca70
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Mar 31 19:39:16 2009 -0400

    Update README files to refer to git

    Update various README files to refer to git instead of svn.
    Add a README.commits that is pretty much a copy of the same file
    in GTK+. Also discontinue ChangeLog files.

 ChangeLog                |  6 ++++
 HACKING                  |  8 ++---
 Makefile.am              |  1 +
 README                   | 76
 ++++++++++++++++++++++++------------------------
 README.commits           | 72
 +++++++++++++++++++++++++++++++++++++++++++++
 docs/reference/ChangeLog |  6 ++++
 gio/ChangeLog            |  6 ++++
 gmodule/ChangeLog        |  6 ++++
 gobject/ChangeLog        |  6 ++++
 gthread/ChangeLog        |  6 ++++
 po/ChangeLog             |  6 ++++
 11 files changed, 157 insertions(+), 42 deletions(-)

commit b5ef6da3c31ad1067b88f7edd53c5d48fe7f73c1
Author: Manoj Kumar Giri <mgiri@src.gnome.org>
Date:   Mon Mar 30 08:53:32 2009 +0000

    Added entries for Oriya language Translation updation.

    svn path=/trunk/; revision=8023

 po/ChangeLog | 4 ++++
 1 file changed, 4 insertions(+)

commit b6a7cd609a1d0012ff07d62e04115830c68972e0
Author: Manoj Kumar Giri <mgiri@src.gnome.org>
Date:   Mon Mar 30 08:52:25 2009 +0000

    Updated Oriya Translation.

    svn path=/trunk/; revision=8022

 po/or.po | 876
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 443 insertions(+), 433 deletions(-)

commit a6ebda3d690098e28319dc391fb82a281f9113e8
Author: Matthias Clasen <matthiasc@src.gnome.org>
Date:   Sun Mar 29 19:08:57 2009 +0000

    Copy a va_list when using it multiple times. Reported by Wim Lewis.

            * glib/gmessages.c (g_logv): Copy a va_list when using it
            multiple times. Reported by Wim Lewis.


    svn path=/trunk/; revision=8021

 ChangeLog        |  8 ++++++++
 glib/gmessages.c | 15 ++++++++++++---
 2 files changed, 20 insertions(+), 3 deletions(-)

commit dabbea65c61c402ed63fba0c36a419e4d4abdf46
Author: Carlos Garnacho <carlosg@gnome.org>
Date:   Thu Mar 26 13:59:02 2009 +0000

    Bug 575270 – GVolumeMonitor::mount-pre-unmount not being emitted

    2009-03-26  Carlos Garnacho  <carlosg@gnome.org>

            Bug 575270 – GVolumeMonitor::mount-pre-unmount not being
            emitted

            * gunixmount.c (eject_unmount_cb) (eject_unmount_do_cb)
            (eject_unmount_do): Emit ::mount-pre-unmount and wait
            500msec before
            actually trying to unmount.


    svn path=/trunk/; revision=8020

 gio/ChangeLog    |  8 ++++++++
 gio/gunixmount.c | 52
 ++++++++++++++++++++++++++++++++++------------------
 2 files changed, 42 insertions(+), 18 deletions(-)

commit 3476bfe846b663049b393e43d272a06883b3fe7d
Author: Gintautas Miliauskas <gintautas@miliauskas.lt>
Date:   Thu Mar 26 13:52:46 2009 +0000

    Updated Lithuanian translation.

    2009-03-26  Gintautas Miliauskas  <gintautas@miliauskas.lt>

            * lt.po: Updated Lithuanian translation.



    svn path=/trunk/; revision=8019

 po/ChangeLog |   4 +
 po/lt.po     | 842
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 433 insertions(+), 413 deletions(-)

commit 618617acfcc8bbbb0b563e5744218be213660cbb
Author: Shankar Prasad <sprasad@src.gnome.org>
Date:   Thu Mar 26 05:35:36 2009 +0000

    updated kn.po

    svn path=/trunk/; revision=8018

 po/kn.po | 90
 ++++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 53 insertions(+), 37 deletions(-)

commit 32f7e122b1c80171db3ce84ff8947a24d50e0e5a
Author: Shankar Prasad <sprasad@src.gnome.org>
Date:   Thu Mar 26 05:31:33 2009 +0000

    updated kn.po

    svn path=/trunk/; revision=8017

 po/ChangeLog | 4 ++++
 1 file changed, 4 insertions(+)

commit d487ef7c2f13c66d2784a2d5371021c3c3043e12
Author: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
Date:   Fri Mar 20 22:29:22 2009 +0000

    Updated Russian translation.

    2009-03-21  Nickolay V. Shmyrev <nshmyrev@yandex.ru>

            * ru.po: Updated Russian translation.


    svn path=/trunk/; revision=8016

 po/ChangeLog |  4 ++++
 po/ru.po     | 77
 ++++++++++++++++++++++++++++++++++--------------------------
 2 files changed, 48 insertions(+), 33 deletions(-)

commit edfe4405e05d832ff2449a54bf4938d964d3ae44
Author: Kostas Papadimas <pkst@src.gnome.org>
Date:   Wed Mar 18 15:49:52 2009 +0000

    Updated Greek Translation by Fotis Tsamis.

    svn path=/trunk/; revision=8015

 po/ChangeLog |   4 ++
 po/el.po     | 145
 +++++++++++++++++++++++++++++------------------------------
 2 files changed, 75 insertions(+), 74 deletions(-)

commit fdcaf9381e3f084d9ddf1ffd0c35873602950151
Author: Djihed Afifi <djihed@src.gnome.org>
Date:   Wed Mar 18 09:20:03 2009 +0000

    Updated Arabic translation

    svn path=/trunk/; revision=8014

 po/ChangeLog |   4 +
 po/ar.po     | 843
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 434 insertions(+), 413 deletions(-)

commit 11554d40ca7b0d8691a0a0d93b34bffef29276f0
Author: Amitakhya Phukan <amitakhya@src.gnome.org>
Date:   Wed Mar 18 06:31:05 2009 +0000

    Updated assamese translations

    svn path=/trunk/; revision=8013

 po/ChangeLog |   4 +
 po/as.po     | 873
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 445 insertions(+), 432 deletions(-)

commit 07b2a7a5ad6818a692e41e9003f2a849f7220b66
Author: Gabor Kelemen <kelemeng@gnome.hu>
Date:   Wed Mar 18 00:05:58 2009 +0000

    Translation updated.

    2009-03-18  Gabor Kelemen  <kelemeng@gnome.hu>

            * hu.po: Translation updated.


    svn path=/trunk/; revision=8012

 po/ChangeLog |   4 +
 po/hu.po     | 911
 +++++++++++++++++++++++++++++------------------------------
 2 files changed, 457 insertions(+), 458 deletions(-)

commit 8df23d2283b56b181c4ebac9a74d9ea980efb1ba
Author: Ryan Lortie <ryanl@src.gnome.org>
Date:   Tue Mar 17 23:03:33 2009 +0000

    trivial spelling/whitespace fixes

    svn path=/trunk/; revision=8011

 ChangeLog    | 18 +++++++++---------
 glib/gmain.c |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 1d1fba442fd7e605288fe92809c59d58b0b8f186
Author: Colin Walters <walters@redhat.com>
Date:   Tue Mar 17 21:59:18 2009 +0000

    Bug 575708 - runaway inotify madness ...

    2009-03-17  Colin Walters  <walters@redhat.com>

            Bug 575708 - runaway inotify madness ...

            * gfilemonitor.c: Queue up events in a local list and
            fire one idle, instead of queuing lots of individual
            idles which has bad performance behavior.


    svn path=/trunk/; revision=8010

 gio/ChangeLog      |  8 ++++++
 gio/gfilemonitor.c | 78
 ++++++++++++++++++++++++++++++++++++++++--------------
 2 files changed, 66 insertions(+), 20 deletions(-)

commit 044733e2a0d5b3192c38b35611b9de4364c6c810
Author: Tomasz Dominikowski <tdominikowski@aviary.pl>
Date:   Tue Mar 17 17:02:00 2009 +0000

    Updated Polish translation

    2009-03-17  Tomasz Dominikowski  <tdominikowski@aviary.pl>

            * pl.po: Updated Polish translation

    svn path=/trunk/; revision=8009

 po/ChangeLog |   4 +
 po/pl.po     | 844
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 434 insertions(+), 414 deletions(-)

commit bbb1d85d7233bff2dae91a5cf06600a28e91cec0
Author: Inaki Larranaga Murgoitio <dooteo@euskalgnu.org>
Date:   Tue Mar 17 16:49:22 2009 +0000

    Updated Basque translation.

    2009-03-17  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>

            * eu.po: Updated Basque translation.


    svn path=/trunk/; revision=8008

 po/ChangeLog |   4 +
 po/eu.po     | 894
 +++++++++++++++++++++++++++++------------------------------
 2 files changed, 451 insertions(+), 447 deletions(-)

commit 2ff422d461faec17797f498afd82d23bd3ea8f2e
Author: Ani Peter <anipeter@src.gnome.org>
Date:   Tue Mar 17 15:41:14 2009 +0000

    Updated Malayalam Translation

    svn path=/trunk/; revision=8007

 po/ChangeLog | 4 ++++
 1 file changed, 4 insertions(+)

commit ad9afec76fa198fd2edc56d5fcb834fd2c9577bc
Author: Ani Peter <anipeter@src.gnome.org>
Date:   Tue Mar 17 15:41:04 2009 +0000

    Updated Malayalam Translation

    svn path=/trunk/; revision=8006

 po/ml.po | 892
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 448 insertions(+), 444 deletions(-)

commit 4ed58e576ea15bb84b4b1b461f8f8deea3a09d50
Author: Ignacio Casal Quinteiro <icq@src.gnome.org>
Date:   Tue Mar 17 14:12:26 2009 +0000

    Updated Galician translation

    svn path=/trunk/; revision=8005

 po/ChangeLog |  4 +++
 po/gl.po     | 84
 ++++++++++++++++++++++++++++++++++--------------------------
 2 files changed, 51 insertions(+), 37 deletions(-)

commit ebf52321606815d09a8a25f6778eae205531a1cb
Author: Gil Forcada Codinachs <gforcada@src.gnome.org>
Date:   Tue Mar 17 13:52:09 2009 +0000

    Updated Catalan translation

    svn path=/trunk/; revision=8004

 po/ChangeLog |   4 +
 po/ca.po     | 842
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 433 insertions(+), 413 deletions(-)

commit ae38feb249df9a5dc4b9ecc85c55d13f256c7477
Author: Takeshi AIHANA <takeshi.aihana@gmail.com>
Date:   Tue Mar 17 13:20:20 2009 +0000

    Update Japanese translation.

    2009-03-17  Takeshi AIHANA <takeshi.aihana@gmail.com>

            * ja.po: Update Japanese translation.

    svn path=/trunk/; revision=8003

 po/ChangeLog |   4 +
 po/ja.po     | 842
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 433 insertions(+), 413 deletions(-)

commit fab272e104ac536fea40501594eef457955c50b8
Author: Hendrik Richter <hendrikr@gnome.org>
Date:   Tue Mar 17 12:08:42 2009 +0000

    Updated German translation.

    2009-03-17  Hendrik Richter  <hendrikr@gnome.org>

            * de.po: Updated German translation.

    svn path=/trunk/; revision=8002

 po/ChangeLog |  4 +++
 po/de.po     | 80
 ++++++++++++++++++++++++++++++++++--------------------------
 2 files changed, 50 insertions(+), 34 deletions(-)

commit b54278668e432f67cbc3ed8e167fce14cd44d3e8
Author: Alexander Shopov <ash@contact.bg>
Date:   Tue Mar 17 12:06:18 2009 +0000

    Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>

    2009-03-17  Alexander Shopov  <ash@contact.bg>

            * bg.po: Updated Bulgarian translation by
            Alexander Shopov <ash@contact.bg>

    svn path=/trunk/; revision=8001

 po/ChangeLog |  5 ++++
 po/bg.po     | 79
 ++++++++++++++++++++++++++++++++++--------------------------
 2 files changed, 50 insertions(+), 34 deletions(-)

commit a3fe42808174f1593559cfdcd581a4791d139f72
Author: Alexander Larsson <alexl@redhat.com>
Date:   Tue Mar 17 11:21:37 2009 +0000

    fix attributes argument of query_info methods to be "const char *".

    2009-03-17  Alexander Larsson  <alexl@redhat.com>

            * glocalfileinputstream.c:
            * glocalfileoutputstream.c:
            fix attributes argument of query_info methods to
            be "const char *".


    svn path=/trunk/; revision=8000

 gio/ChangeLog                | 7 +++++++
 gio/glocalfileinputstream.c  | 4 ++--
 gio/glocalfileoutputstream.c | 4 ++--
 3 files changed, 11 insertions(+), 4 deletions(-)

commit 6cdd01bfcc10af04c05ccd90669e49551d6872a3
Author: Claude Paroz <claude@2xlibre.net>
Date:   Tue Mar 17 08:22:23 2009 +0000

    Updated French translation.

    2009-03-17  Claude Paroz  <claude@2xlibre.net>

            * fr.po: Updated French translation.

    svn path=/trunk/; revision=7999

 po/ChangeLog |   4 +
 po/fr.po     | 844
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 435 insertions(+), 413 deletions(-)

commit e9de4af6761a150ad1e4cf50838e034cb8d51c78
Author: Kjartan Maraas <kmaraas@gnome.org>
Date:   Tue Mar 17 08:18:12 2009 +0000

    Updated Norwegian bokmål translation.

    2009-03-17  Kjartan Maraas  <kmaraas@gnome.org>

            * nb.po: Updated Norwegian bokmål translation.

    svn path=/trunk/; revision=7998

 po/ChangeLog |   4 +
 po/nb.po     | 844
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 434 insertions(+), 414 deletions(-)

commit 1269ae29a1d43284894601bf090bada778bc8b4f
Author: Jorge Gonzalez Gonzalez <jorgegonz@src.gnome.org>
Date:   Mon Mar 16 22:11:32 2009 +0000

    Updated Spanish translation

    svn path=/trunk/; revision=7997

 po/ChangeLog |   4 +
 po/es.po     | 851
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 439 insertions(+), 416 deletions(-)

commit 2506375ebe0a72aa02f80551db2a5dfd12a4fcde
Author: miloc <miloc@localhost>
Date:   Mon Mar 16 21:11:22 2009 +0000

    Updated Italian translation

    svn path=/trunk/; revision=7996

 po/ChangeLog |   4 +
 po/it.po     | 845
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 435 insertions(+), 414 deletions(-)

commit 47500e19d2ec122f282e293c10f2ff4e64ae39bf
Author: Og B. Maciel <ogmaciel@src.gnome.org>
Date:   Mon Mar 16 20:53:27 2009 +0000

    Updated Brazilian Portuguese translation.

    svn path=/trunk/; revision=7995

 po/ChangeLog |   5 +
 po/pt_BR.po  | 846
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 436 insertions(+), 415 deletions(-)

commit f008bf64d078c6d94193608a5ce3d285c59f6406
Author: Daniel Nylander <dnylande@src.gnome.org>
Date:   Mon Mar 16 19:01:51 2009 +0000

    sv.po: Updated Swedish translation

    svn path=/trunk/; revision=7994

 po/ChangeLog |    4 +
 po/sv.po     | 1209
 ++++++++++++++++++++++++++++++----------------------------
 2 files changed, 625 insertions(+), 588 deletions(-)

commit 669cb756888d9aedaee419b9e705869a1cecffe6
Author: Matej Urbančič <mateju@src.gnome.org>
Date:   Mon Mar 16 18:35:43 2009 +0000

    Updated Slovenian translation

    svn path=/trunk/; revision=7993

 po/sl.po | 1171
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 618 insertions(+), 553 deletions(-)

commit 8b96ff36f14a55d990660f33d1163eab680ff780
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Mon Mar 16 18:21:34 2009 +0000

    Updated British English translation.

    2009-03-16  Philip Withnall  <philip@tecnocode.co.uk>

            * en_GB.po: Updated British English translation.


    svn path=/trunk/; revision=7992

 po/ChangeLog |   4 +
 po/en_GB.po  | 840
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 432 insertions(+), 412 deletions(-)

commit 6cff88ba18b3bc0d118308f109840cb163dcea03
Author: Alexander Larsson <alexl@redhat.com>
Date:   Mon Mar 16 16:03:13 2009 +0000

    Bug 575555 – Use fsync() when replacing files to avoid data loss on

    2009-03-16  Alexander Larsson  <alexl@redhat.com>

            Bug 575555 – Use fsync() when replacing files to avoid
            data loss on crash

            * configure.in:
            Look for fsync().

            * glib/gfileutils.c:
            (write_to_temp_file):
            fsync temp file if destination file exists

    2009-03-16  Alexander Larsson  <alexl@redhat.com>

            Bug 575555 – Use fsync() when replacing files to avoid
            data loss on crash

            * glocalfileoutputstream.c:
            (g_local_file_output_stream_close):
            (_g_local_file_output_stream_replace):
            fsync temp file before closing if replacing target file



    svn path=/trunk/; revision=7991

 ChangeLog                    | 11 ++++++++++
 configure.in                 |  1 +
 gio/ChangeLog                |  9 ++++++++
 gio/glocalfileoutputstream.c | 26 ++++++++++++++++++++++
 glib/gfileutils.c            | 51
 ++++++++++++++++++++++++++++++++++++++++----
 5 files changed, 94 insertions(+), 4 deletions(-)

commit 0b66e52e0b0fbd0101bfbf0e1ef04421d8d7d189
Author: Kostas Papadimas <pkst@src.gnome.org>
Date:   Mon Mar 16 15:54:50 2009 +0000

    Updated Greek Translation by Fotis Tsamis.

    svn path=/trunk/; revision=7990

 po/ChangeLog |   4 +
 po/el.po     | 931
 ++++++++++++++++++++++++++++-------------------------------
 2 files changed, 450 insertions(+), 485 deletions(-)

commit 593718fd8cabe8e0a726d9b083ef80d6ec5e879b
Author: Alexander Shopov <ash@contact.bg>
Date:   Mon Mar 16 10:55:58 2009 +0000

    Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>

    2009-03-16  Alexander Shopov  <ash@contact.bg>

            * bg.po: Updated Bulgarian translation by
            Alexander Shopov <ash@contact.bg>

    svn path=/trunk/; revision=7989

 po/ChangeLog |   5 +
 po/bg.po     | 838
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 426 insertions(+), 417 deletions(-)

commit d421cf697c7c8800e070ba81de22e45b5382684b
Author: Shankar Prasad <sprasad@src.gnome.org>
Date:   Mon Mar 16 10:31:10 2009 +0000

    Updated kn.po

    svn path=/trunk/; revision=7988

 po/ChangeLog |    4 +
 po/kn.po     | 1004
 ++++++++++++++++++++++++++++------------------------------
 2 files changed, 483 insertions(+), 525 deletions(-)

commit dada55618e7d2fe2526eb01e72ec5ce3cc071846
Author: Amanpreet Singh Alam <aman@src.gnome.org>
Date:   Mon Mar 16 02:33:40 2009 +0000

    updating for Gnome Punjabi Translation by A S Alam

    svn path=/trunk/; revision=7987

 po/pa.po | 907
 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 451 insertions(+), 456 deletions(-)

commit b3e22d022950ce13cc6cb88d0044693d951572eb
Author: Hendrik Richter <hendrikr@gnome.org>
Date:   Sun Mar 15 18:19:44 2009 +0000

    Updated German translation.

    2009-03-15  Hendrik Richter  <hendrikr@gnome.org>

            * de.po: Updated German translation.

    svn path=/trunk/; revision=7986

 po/ChangeLog |   4 +
 po/de.po     | 920
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 466 insertions(+), 458 deletions(-)

commit a79594b51723b64b548ceb5b5b60666ecd080c85
Author: Felix I <ifelix@src.gnome.org>
Date:   Sun Mar 15 08:35:41 2009 +0000

    tamil translation updated

    svn path=/trunk/; revision=7985

 po/ChangeLog |    4 +
 po/ta.po     | 1327
 ++++++++++++++++++++++++++++++----------------------------
 2 files changed, 683 insertions(+), 648 deletions(-)

commit 98346a15946fbec3a5206153e0fc809ed1cacaf4
Author: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
Date:   Sat Mar 14 19:14:18 2009 +0000

    Updated Russian translation by Yuriy Penkin.

    2009-03-14  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>

            * ru.po: Updated Russian translation by Yuriy Penkin.


    svn path=/trunk/; revision=7984

 po/ChangeLog |   4 +
 po/ru.po     | 885
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 448 insertions(+), 441 deletions(-)

commit 516a19767d0db4d575872832c1e51323e46edc99
Author: Kostas Papadimas <pkst@src.gnome.org>
Date:   Sat Mar 14 16:12:38 2009 +0000

    Updated Greek Translation by Jennie Petoumenou.

    svn path=/trunk/; revision=7983

 po/ChangeLog |    4 +
 po/el.po     | 1721
 ++++++++++++++++++++++++++++++----------------------------
 2 files changed, 881 insertions(+), 844 deletions(-)

commit 4175a8546e642ee041f92693536fd907a3fd79b3
Author: Aron Xu <aronxu@src.gnome.org>
Date:   Sat Mar 14 11:31:29 2009 +0000

    Updated Simplified Chinese translations by Deng Xiyue
    <manphiz@gmail.com>

    svn path=/trunk/; revision=7982

 po/zh_CN.po | 853
 ++++++++++++++++++++++++++++++------------------------------
 1 file changed, 429 insertions(+), 424 deletions(-)

commit 1dcdbf5974812685c1b8a03c36d6217fe44ffbca
Author: Kenneth Nielsen <kennethn@src.gnome.org>
Date:   Sat Mar 14 03:48:26 2009 +0000

    Updated Danish translation

    svn path=/trunk/; revision=7981

 po/ChangeLog |   4 +
 po/da.po     | 884
 ++++++++++++++++++++++++++++++-----------------------------
 2 files changed, 448 insertions(+), 440 deletions(-)

commit 4e9abf266574d854b0495c1b13d956c00019ac87
Author: Ignacio Casal Quinteiro <icq@src.gnome.org>
Date:   Fri Mar 13 18:28:21 2009 +0000

    Updated Galician translation

    svn path=/trunk/; revision=7980

 po/ChangeLog |    4 +
 po/gl.po     | 1075
 ++++++++++++++++++++++++++++++----------------------------
 2 files changed, 551 insertions(+), 528 deletions(-)

commit 622f01012030fcba31ee2a68920873ac06bb62e4
Author: Kristian Rietveld <kris@imendio.com>
Date:   Fri Mar 13 09:22:57 2009 +0000

    when defaulting to the only item in the array, check if this is
    indeed the

    2009-03-13  Kristian Rietveld  <kris@imendio.com>

            * gsignal.c (signal_lookup_closure): when defaulting to
            the only
            item in the array, check if this is indeed the default
            closure.
            (patch by Tim Janik).


    svn path=/trunk/; revision=7979

 gobject/ChangeLog | 6 ++++++
 gobject/gsignal.c | 9 ++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

commit 621ef866b14af56865eb65062c271ba3d06cfe7d
Author: Matthias Clasen <matthiasc@src.gnome.org>
Date:   Fri Mar 13 05:45:53 2009 +0000

    Bump version

    svn path=/trunk/; revision=7978

 ChangeLog    | 4 ++++
 configure.in | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 5a8a224ff0ca193fe797c45ef54e5ed6466bfbb7
Author: Matthias Clasen <matthiasc@src.gnome.org>
Date:   Fri Mar 13 05:44:11 2009 +0000

    2.20.0

    svn path=/trunk/; revision=7976

 ChangeLog                                |    6 +
 INSTALL                                  |    4 +-
 README                                   |    2 +-
 configure.in                             |    4 +-
 docs/reference/ChangeLog                 |    4 +
 docs/reference/glib/gtester-report.1     |    4 +-
 docs/reference/glib/gtester.1            |    4 +-
 docs/reference/gobject/glib-genmarshal.1 |    4 +-
 docs/reference/gobject/glib-mkenums.1    |    4 +-
 docs/reference/gobject/gobject-query.1   |    4 +-
 gio/ChangeLog                            |    4 +
 gmodule/ChangeLog                        |    4 +
 gobject/ChangeLog                        |    4 +
 gthread/ChangeLog                        |    4 +
 po/ChangeLog                             |    4 +
 po/am.po                                 |   72 +-
 po/ar.po                                 |   72 +-
 po/as.po                                 |  997 +++++++++++++------------
 po/az.po                                 |   72 +-
 po/be.po                                 |   72 +-
 po/be@latin.po                           |   72 +-
 po/bg.po                                 |   72 +-
 po/bn.po                                 |   72 +-
 po/bn_IN.po                              |  869 +++++++++++-----------
 po/bs.po                                 |   72 +-
 po/ca.po                                 |   72 +-
 po/cs.po                                 |  829 +++++++++++----------
 po/cy.po                                 |   72 +-
 po/da.po                                 |   72 +-
 po/de.po                                 |   72 +-
 po/dz.po                                 |   72 +-
 po/el.po                                 |   72 +-
 po/en_CA.po                              |   72 +-
 po/en_GB.po                              |   72 +-
 po/eo.po                                 |   72 +-
 po/es.po                                 |   72 +-
 po/et.po                                 |   72 +-
 po/eu.po                                 |   72 +-
 po/fa.po                                 |   72 +-
 po/fi.po                                 |   72 +-
 po/fr.po                                 |   72 +-
 po/ga.po                                 |   72 +-
 po/gl.po                                 |   72 +-
 po/gu.po                                 |   72 +-
 po/he.po                                 |   72 +-
 po/hi.po                                 |  862 +++++++++++-----------
 po/hr.po                                 |   72 +-
 po/hu.po                                 |   72 +-
 po/hy.po                                 |   72 +-
 po/id.po                                 |   72 +-
 po/is.po                                 |   72 +-
 po/it.po                                 |  832 +++++++++++----------
 po/ja.po                                 |  829 +++++++++++----------
 po/ka.po                                 |   72 +-
 po/kn.po                                 |   72 +-
 po/ko.po                                 |   72 +-
 po/ku.po                                 |   72 +-
 po/lt.po                                 |  829 +++++++++++----------
 po/lv.po                                 |   72 +-
 po/mai.po                                |   72 +-
 po/mg.po                                 |   72 +-
 po/mk.po                                 |   72 +-
 po/ml.po                                 |  881 ++++++++++++-----------
 po/mn.po                                 |   72 +-
 po/mr.po                                 |  853 +++++++++++-----------
 po/ms.po                                 |   72 +-
 po/nb.po                                 |   72 +-
 po/ne.po                                 |   72 +-
 po/nl.po                                 |   72 +-
 po/nn.po                                 |   72 +-
 po/oc.po                                 |   72 +-
 po/or.po                                 |  864 +++++++++++-----------
 po/pa.po                                 |   72 +-
 po/pl.po                                 |  829 +++++++++++----------
 po/ps.po                                 |   72 +-
 po/pt.po                                 |   72 +-
 po/pt_BR.po                              |   72 +-
 po/ro.po                                 |  856 +++++++++++-----------
 po/ru.po                                 |   72 +-
 po/rw.po                                 |   72 +-
 po/si.po                                 |   72 +-
 po/sk.po                                 |   72 +-
 po/sl.po                                 | 1158
 ++++++++++++++----------------
 po/sq.po                                 |   72 +-
 po/sr.po                                 |   72 +-
 po/sr@ije.po                             |   72 +-
 po/sr@latin.po                           |   72 +-
 po/sv.po                                 |   72 +-
 po/ta.po                                 |   72 +-
 po/te.po                                 |  103 +--
 po/th.po                                 |   72 +-
 po/tl.po                                 |   72 +-
 po/tr.po                                 |   72 +-
 po/tt.po                                 |   72 +-
 po/uk.po                                 |   72 +-
 po/vi.po                                 |   72 +-
 po/wa.po                                 |   72 +-
 po/xh.po                                 |   72 +-
 po/yi.po                                 |   72 +-
 po/zh_CN.po                              |   72 +-
 po/zh_HK.po                              |   72 +-
 po/zh_TW.po                              |   72 +-
 102 files changed, 8495 insertions(+), 8412 deletions(-)

commit 3c34e435754bbe4b5d0871603408d8e1bf9f5c19
Author: Matthias Clasen <matthiasc@src.gnome.org>
Date:   Fri Mar 13 04:09:21 2009 +0000

    Updates

    svn path=/trunk/; revision=7975

 ChangeLog |  4 ++++
 NEWS      | 28 ++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+)
