commit 87e4516650bb0f01033268e3f7f77ecd5d4cab2a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun May 2 20:56:24 2010 -0400

    Updates

 NEWS |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

commit 503949b12d100ff2d89b8bbb1771729f8a251688
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
    (cherry picked from commit 00a7c2e635a4fa95257779c271f0eaa5992e2b37)

 glib/gmem.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

commit f2b4060717dc4bd63b21a6c1d554fe06ece59de7
Author: Colin Walters <walters@verbum.org>
Date:   Wed Apr 21 16:44:26 2010 -0400

    Fix typo in GMutex error message
    (cherry picked from commit 0d9a40b8943ec3b9926efad93a28687708cc2038)

 gthread/gthread-impl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit e7a7d6873cb49f6c8bba5c2a5d078dbe607d62bd
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu Apr 15 10:11:30 2010 -0400

    g_string_append_len() accept NULL with length == 0
    (cherry picked from commit 056326c1e96db2c2101fa320062e0c9146f0d73f)

 glib/gstring.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 7fb9b876fa6ec63c05df1c5e441bcc87e48397e2
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Wed Apr 14 23:35:56 2010 -0400

    GVariant: fix for g_variant_iter_loop()
    (cherry picked from commit d17f4bee175cd9149d5f2b1ed1ae6d262d6a1394)

 glib/gvariant.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

commit e61a90b9eea2eac924f66c1d137381daff6cedfd
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.
    (cherry picked from commit e7763678b56e3be073cc55d707a6e92fc2055ee0)

 gio/gcancellable.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

commit c25c40fdd9be7612882c4d3162d3bf3917ee2e6d
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.
    (cherry picked from commit 5527a2ac2ce2b5bea10867fb2e39d2f1914cfbe6)

 gio/gcancellable.c |   25 ++++++++++---------------
 1 files changed, 10 insertions(+), 15 deletions(-)

commit b28b1e589e0464bb92aef75e7b03797410a7ec56
Author: Carles Ferrando <carles.ferrando@gmail.com>
Date:   Fri Apr 23 00:42:04 2010 +0200

    Updated Catalan (Valencian) translation

 po/ca@valencia.po | 1252
 +++++++++++++++++++++++++++--------------------------
 1 files changed, 636 insertions(+), 616 deletions(-)

commit d4f50a33d46e61fe065a1cdfc266159d4a612197
Author: Shankar Prasad <sprasad@git.gnome.org>
Date:   Thu Apr 22 16:21:42 2010 +0530

    Updated Kannada translations

 po/kn.po | 1025
 +++++++++++++++++++++++++++++++-------------------------------
 1 files changed, 517 insertions(+), 508 deletions(-)

commit f54c7f9c7736247b113bb643ac7e90150d8dd1b8
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 files changed, 1 insertions(+), 0 deletions(-)

commit 324f928af62d8a0aa132a5caaec107d4daa76429
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 files changed, 1 insertions(+), 1 deletions(-)

commit e51ec13ab4bc629f73b41f2ad3e96b3a787a8760
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 files changed, 4 insertions(+), 1 deletions(-)

commit 48cfffc7b185f3e3367bac0beb04e66f536ec25d
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 files changed, 482 insertions(+), 476 deletions(-)

commit 634fdaa4ba91ee49fa95f5f62e045f0901ae4e4f
Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
Date:   Tue Apr 6 14:41:11 2010 +0700

    Updated Thai translation.

 po/th.po |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

commit 70a4217ba35492cd8e3549ca8da3fcc950421790
Author: Tor Lillqvist <tml@iki.fi>
Date:   Tue Mar 30 19:39:19 2010 +0300

    Clarify _g_stat_struct mess

    Use "struct stat" instead of "struct _stat" in the MinGW-or-64-bit
    case. Should fix bug #614372.

 glib/gstdio.c |    2 +-
 glib/gstdio.h |    2 +-
 2 files changed, 2 insertions(+), 2 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 files changed, 0 insertions(+), 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

commit f6532620bc2439641b31a5df1d15489121fe918d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Mar 26 11:05:28 2010 -0400

    And another one...

 NEWS |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 17 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 7 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 7 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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 deletions(-)

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 files changed, 9 insertions(+), 0 deletions(-)

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      |  570
 -----------------------------------
 build/win32/vs9/glib.vcprojin    |  298 +++++++++++++++++++
 build/win32/vs9/gobject.vcproj   |  281 ------------------
 build/win32/vs9/gobject.vcprojin |  218 ++++++++++++++
 gio/Makefile.am                  |   11 +-
 glib/Makefile.am                 |   11 +-
 gobject/Makefile.am              |   11 +-
 11 files changed, 785 insertions(+), 1463 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 files changed, 4 insertions(+), 0 deletions(-)

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, 0 insertions(+), 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 files changed, 0 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 2135 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files 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 files 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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files changed, 6 insertions(+), 1 deletions(-)

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 files changed, 9 insertions(+), 1 deletions(-)

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 files 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 files changed, 3 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

commit c69e6fd837cb92d0c7050d8ea2d0f98b6f70fbe8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Mar 8 14:28:23 2010 -0500

    Cosmetic

 glib/gmem.h |   18 ++++++++++--------
 1 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 1 deletions(-)

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 files 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 files changed, 5 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 6 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 8 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 0 insertions(+), 1 deletions(-)

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 files 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(+), 0 deletions(-)

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 files changed, 1 insertions(+), 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 files 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 files 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 files 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, 0 insertions(+), 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, 0 insertions(+), 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 files 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files changed, 3 insertions(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files 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                           | 1387
 +++++++++++++++++++++++------
 glib/gvariant.h                           |   36 +
 glib/gvarianttype.c                       |   17 +
 glib/gvarianttype.h                       |    1 +
 9 files changed, 1295 insertions(+), 326 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files changed, 0 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files changed, 7 insertions(+), 1 deletions(-)

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 files 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 files 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(+), 0 deletions(-)

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 files 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 deletions(-)

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 files changed, 7 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

commit 19e438556cd0d958b34cd9a63bd528d680d77c45
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Feb 21 15:19:06 2010 -0500

    Updates

 NEWS |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 17 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 21 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files changed, 3 insertions(+), 0 deletions(-)

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 files 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 files changed, 2 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 2 insertions(+), 0 deletions(-)

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 files changed, 7 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

commit a68c0cde8f3b3ca7aa581843a65e43fcc2b11409
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 9 08:46:50 2010 -0500

    Updates

 NEWS |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 6 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files 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(+), 0 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files 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 files 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/gvariant.c     | 1041
 +++++++++++++++++++++++++++++++++++++++++++++
 glib/tests/gvarianttype.c | 1041
 ---------------------------------------------
 4 files changed, 1044 insertions(+), 1044 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 files 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 files changed, 2 insertions(+), 0 deletions(-)

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 files 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 files 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      |   29 -----------------------------
 build/win32/vs9/README.txt  |   29 +++++++++++++++++++++++++++++
 3 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 files 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 files changed, 0 insertions(+), 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 files changed, 21 insertions(+), 0 deletions(-)

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 files changed, 8 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files changed, 0 insertions(+), 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 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 8 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files changed, 6 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files 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 files 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 files changed, 35 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

commit 81f186d1e55621622fc3a29f43522a8d5494edde
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 12:00:06 2010 -0500

    Mention GVariant

 NEWS |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

commit e0d1124bd9bc516daaa84c94fee39decf9acc1d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Jan 25 11:57:47 2010 -0500

    Updates

 NEWS |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 insertions(+), 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 files 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 files 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 files 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 files changed, 8 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files changed, 4 insertions(+), 0 deletions(-)

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 deletions(-)

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(+), 0 deletions(-)

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 files 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 files 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 files changed, 4 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 2084 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 5 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

commit 88261680f518c3c701154504011f778866d6dc2a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Dec 21 10:56:03 2009 -0500

    Bump version

 configure.in |    4 ++--
 1 files 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 files 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 files changed, 37 insertions(+), 0 deletions(-)

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 files 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 files changed, 0 insertions(+), 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 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 insertions(+), 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 deletions(-)

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 files changed, 82 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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         |  103 ++++++++---------------------
 10 files changed, 164 insertions(+), 563 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(+), 0 deletions(-)

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 files 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 files 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 files 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 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 2 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 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 files 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 files changed, 6 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 60 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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(+), 0 deletions(-)

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 files 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 files 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 files changed, 0 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 0 insertions(+), 1 deletions(-)

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 files changed, 53 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files changed, 5 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 0 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files changed, 3 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 0 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files changed, 4 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 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 files 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 files 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 files changed, 2 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files changed, 4 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files changed, 3 insertions(+), 1 deletions(-)

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 files changed, 33 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 18 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 13 insertions(+), 1 deletions(-)

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 files 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 files changed, 14 insertions(+), 0 deletions(-)

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 files changed, 6 insertions(+), 0 deletions(-)

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 files changed, 3 insertions(+), 1 deletions(-)

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 files 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(+), 0 deletions(-)

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(+), 0 deletions(-)

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, 0 insertions(+), 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 files changed, 1 insertions(+), 1 deletions(-)

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, 0 insertions(+), 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 |   86
 +++++++++++++++++++++++++++++++++----------
 gio/xdgmime/xdgmimeglob.c  |   88
 +++++++++++++++++++++++++++++++++++--------
 2 files changed, 137 insertions(+), 37 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 files 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 files changed, 0 insertions(+), 1 deletions(-)

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 files 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 files changed, 17 insertions(+), 0 deletions(-)

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, 0 insertions(+), 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 files 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 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 3 insertions(+), 1 deletions(-)

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 files changed, 4 insertions(+), 1 deletions(-)

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 files changed, 3 insertions(+), 0 deletions(-)

commit 3413e758eb4fb15559e9da1b38efd59fcca81401
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Sep 22 10:37:05 2009 -0400

    Updates

 NEWS |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 34 insertions(+), 0 deletions(-)

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 files changed, 84 insertions(+), 0 deletions(-)

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 files changed, 64 insertions(+), 0 deletions(-)

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 files changed, 77 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 0 insertions(+), 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 files changed, 0 insertions(+), 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 files changed, 5 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 2 insertions(+), 1 deletions(-)

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 files changed, 0 insertions(+), 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 files changed, 1 insertions(+), 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 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 files changed, 1 insertions(+), 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 files changed, 1 insertions(+), 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 files changed, 0 insertions(+), 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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 35 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 3 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 3 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 0 insertions(+), 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 files changed, 3 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

commit 83d3242d127ca61d94846341ab491bbe988d2b95
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 24 14:15:13 2009 -0400

    Bump version

 configure.in |    4 ++--
 1 files 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(+), 0 deletions(-)

commit d1cbb96428f316b77bd31686c7d9b0b96a40bc6e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Aug 24 12:21:08 2009 -0400

    Updates

 NEWS |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 files 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 deletions(-)

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 files 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 files 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 files changed, 0 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files 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 |   51
 ++++++++++++++++++++++++++++-----------------------
 1 files changed, 28 insertions(+), 23 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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 12 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 6 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 19 insertions(+), 0 deletions(-)

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 files 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 files changed, 4 insertions(+), 0 deletions(-)

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 files 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 files changed, 21 insertions(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 2 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 2 insertions(+), 0 deletions(-)

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 files 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 files changed, 2 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

commit 66e9b50b2ccf7498a55f0608cca31bc8cfad741d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 5 22:55:26 2009 -0400

    Updates

 NEWS |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

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 +
 gio/tests/.gitignore              |   24 +
 gio/tests/Makefile.am             |  119 ++++
 gio/tests/buffered-input-stream.c |   60 ++
 gio/tests/contexts.c              |  190 ++++++
 gio/tests/data-input-stream.c     |  336 ++++++++++
 gio/tests/data-output-stream.c    |  289 +++++++++
 gio/tests/desktop-app-info.c      |  259 ++++++++
 gio/tests/echo-server.c           |   73 +++
 gio/tests/filter-streams.c        |  239 ++++++++
 gio/tests/g-file-info.c           |  125 ++++
 gio/tests/g-file.c                |  538 ++++++++++++++++
 gio/tests/g-icon.c                |  245 ++++++++
 gio/tests/httpd.c                 |  183 ++++++
 gio/tests/live-g-file.c           | 1211
 +++++++++++++++++++++++++++++++++++++
 gio/tests/live-g-file.txt         |   27 +
 gio/tests/memory-input-stream.c   |   78 +++
 gio/tests/memory-output-stream.c  |  100 +++
 gio/tests/readwrite.c             |  293 +++++++++
 gio/tests/resolver.c              |  506 ++++++++++++++++
 gio/tests/send-data.c             |  163 +++++
 gio/tests/simple-async-result.c   |  130 ++++
 gio/tests/sleepy-stream.c         |  296 +++++++++
 gio/tests/socket-client.c         |  298 +++++++++
 gio/tests/socket-server.c         |  308 ++++++++++
 gio/tests/srvtarget.c             |  158 +++++
 gio/tests/unix-streams.c          |  256 ++++++++
 tests/Makefile.am                 |    2 +-
 tests/gio/.gitignore              |   24 -
 tests/gio/Makefile.am             |  119 ----
 tests/gio/buffered-input-stream.c |   60 --
 tests/gio/contexts.c              |  190 ------
 tests/gio/data-input-stream.c     |  336 ----------
 tests/gio/data-output-stream.c    |  289 ---------
 tests/gio/desktop-app-info.c      |  259 --------
 tests/gio/echo-server.c           |   73 ---
 tests/gio/filter-streams.c        |  239 --------
 tests/gio/g-file-info.c           |  125 ----
 tests/gio/g-file.c                |  538 ----------------
 tests/gio/g-icon.c                |  245 --------
 tests/gio/httpd.c                 |  183 ------
 tests/gio/live-g-file.c           | 1211
 -------------------------------------
 tests/gio/live-g-file.txt         |   27 -
 tests/gio/memory-input-stream.c   |   78 ---
 tests/gio/memory-output-stream.c  |  100 ---
 tests/gio/readwrite.c             |  293 ---------
 tests/gio/resolver.c              |  506 ----------------
 tests/gio/send-data.c             |  163 -----
 tests/gio/simple-async-result.c   |  130 ----
 tests/gio/sleepy-stream.c         |  296 ---------
 tests/gio/socket-client.c         |  298 ---------
 tests/gio/socket-server.c         |  308 ----------
 tests/gio/srvtarget.c             |  158 -----
 tests/gio/unix-streams.c          |  256 --------
 55 files changed, 6508 insertions(+), 6506 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 7 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files 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 -
 gio/tests/.gitignore              |   24 -
 gio/tests/Makefile.am             |  119 ----
 gio/tests/buffered-input-stream.c |   60 --
 gio/tests/contexts.c              |  190 ------
 gio/tests/data-input-stream.c     |  336 ----------
 gio/tests/data-output-stream.c    |  289 ---------
 gio/tests/desktop-app-info.c      |  259 --------
 gio/tests/echo-server.c           |   73 ---
 gio/tests/filter-streams.c        |  239 --------
 gio/tests/g-file-info.c           |  125 ----
 gio/tests/g-file.c                |  538 ----------------
 gio/tests/g-icon.c                |  245 --------
 gio/tests/httpd.c                 |  183 ------
 gio/tests/live-g-file.c           | 1211
 -------------------------------------
 gio/tests/live-g-file.txt         |   27 -
 gio/tests/memory-input-stream.c   |   78 ---
 gio/tests/memory-output-stream.c  |  100 ---
 gio/tests/readwrite.c             |  293 ---------
 gio/tests/resolver.c              |  506 ----------------
 gio/tests/send-data.c             |  163 -----
 gio/tests/simple-async-result.c   |  107 ----
 gio/tests/sleepy-stream.c         |  296 ---------
 gio/tests/socket-client.c         |  298 ---------
 gio/tests/socket-server.c         |  308 ----------
 gio/tests/srvtarget.c             |  158 -----
 gio/tests/unix-streams.c          |  256 --------
 tests/Makefile.am                 |    2 +-
 tests/gio/.gitignore              |   24 +
 tests/gio/Makefile.am             |  119 ++++
 tests/gio/buffered-input-stream.c |   60 ++
 tests/gio/contexts.c              |  190 ++++++
 tests/gio/data-input-stream.c     |  336 ++++++++++
 tests/gio/data-output-stream.c    |  289 +++++++++
 tests/gio/desktop-app-info.c      |  259 ++++++++
 tests/gio/echo-server.c           |   73 +++
 tests/gio/filter-streams.c        |  239 ++++++++
 tests/gio/g-file-info.c           |  125 ++++
 tests/gio/g-file.c                |  538 ++++++++++++++++
 tests/gio/g-icon.c                |  245 ++++++++
 tests/gio/httpd.c                 |  183 ++++++
 tests/gio/live-g-file.c           | 1211
 +++++++++++++++++++++++++++++++++++++
 tests/gio/live-g-file.txt         |   27 +
 tests/gio/memory-input-stream.c   |   78 +++
 tests/gio/memory-output-stream.c  |  100 +++
 tests/gio/readwrite.c             |  293 +++++++++
 tests/gio/resolver.c              |  506 ++++++++++++++++
 tests/gio/send-data.c             |  163 +++++
 tests/gio/simple-async-result.c   |  107 ++++
 tests/gio/sleepy-stream.c         |  296 +++++++++
 tests/gio/socket-client.c         |  298 +++++++++
 tests/gio/socket-server.c         |  308 ++++++++++
 tests/gio/srvtarget.c             |  158 +++++
 tests/gio/unix-streams.c          |  256 ++++++++
 55 files changed, 6483 insertions(+), 6485 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 files changed, 0 insertions(+), 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 0 insertions(+), 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 deletions(-)

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 files 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 deletions(-)

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 files changed, 7 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

commit d218cf0f670e4c40acb47ab5b5761ea0c68e0594
Author: Benjamin Otte <otte@gnome.org>
Date:   Fri Jun 12 17:45:27 2009 +0200

    clarify documentation

 gio/gsocketlistener.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 47 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 7 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 1 deletions(-)

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 files 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 files changed, 2 insertions(+), 0 deletions(-)

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 files changed, 7 insertions(+), 0 deletions(-)

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 files 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(+), 0 deletions(-)

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 files 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 files changed, 0 insertions(+), 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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files changed, 1 insertions(+), 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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files changed, 30 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

commit 661bb521d126480606e12a15f722069eeddfc306
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu May 28 23:50:48 2009 -0400

    Bump version

 configure.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 40 insertions(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 8 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 deletions(-)

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(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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 deletions(-)

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 files changed, 1 insertions(+), 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 deletions(-)

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 files changed, 1 insertions(+), 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 files 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 files changed, 4 insertions(+), 0 deletions(-)

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 files 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 files changed, 2 insertions(+), 1 deletions(-)

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 files changed, 3 insertions(+), 0 deletions(-)

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 files 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 files changed, 3 insertions(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files changed, 15 insertions(+), 0 deletions(-)

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 files changed, 0 insertions(+), 1 deletions(-)

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 files changed, 6 insertions(+), 0 deletions(-)

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 files changed, 6 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 5 insertions(+), 1 deletions(-)

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 deletions(-)

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 files changed, 2 insertions(+), 1 deletions(-)

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 files 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(+), 0 deletions(-)

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 files changed, 10 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files changed, 0 insertions(+), 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 files changed, 1 insertions(+), 1 deletions(-)

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 deletions(-)

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 files 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 files changed, 0 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files changed, 16 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 files changed, 1 insertions(+), 0 deletions(-)

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 deletions(-)

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 files changed, 9 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files changed, 6 insertions(+), 0 deletions(-)

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(+), 0 deletions(-)

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 files changed, 0 insertions(+), 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 files changed, 0 insertions(+), 1 deletions(-)

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 files changed, 5 insertions(+), 0 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files 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 files changed, 2 insertions(+), 1 deletions(-)

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(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files 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 files changed, 6 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

commit 2e4855ec4b611b9a17c466f4d26a694480f80ad6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat May 2 23:02:41 2009 -0400

    Add bug references

 NEWS |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files changed, 38 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 3 insertions(+), 0 deletions(-)

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 files 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 files changed, 3 insertions(+), 1 deletions(-)

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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 2 insertions(+), 1 deletions(-)

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 files 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 files changed, 1 insertions(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 deletions(-)

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(+), 0 deletions(-)

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 files 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(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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 files changed, 44 insertions(+), 0 deletions(-)

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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files 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 files changed, 2 insertions(+), 1 deletions(-)

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 files 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 files 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 files 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 files changed, 1 insertions(+), 1 deletions(-)

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 files changed, 2 insertions(+), 0 deletions(-)

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 files 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          |  914
 ----------------------------------------------------
 ChangeLog.pre-2-20 |  914
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 914 insertions(+), 914 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, 0 insertions(+), 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 files 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 files 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 files changed, 4 insertions(+), 0 deletions(-)

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 files 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 files 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 files changed, 4 insertions(+), 0 deletions(-)

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 files changed, 4 insertions(+), 0 deletions(-)

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 files 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 files 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 files 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 files 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(+), 0 deletions(-)
