commit 8973a8bea710c085e6e357d5bf869000f91a1dc9 Author: Ryan Lortie Date: Wed Oct 23 15:09:07 2013 -0400 GLib 2.39.0 NEWS | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) commit e52ff015522db55d5ec71cd9afa55863247bb74f Author: Ryan Lortie Date: Thu Oct 24 14:24:04 2013 -0400 docs: dist manpage gapplication.xml docs/reference/gio/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit fcd2f7e63923853e113500e48005d269291cf391 Author: Philip Withnall Date: Thu Oct 24 12:09:27 2013 +0100 tests: Add tests for the thumbnail verification code in GIO This code was added for use by the G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID file attribute, but may end up being used elsewhere (e.g. in GVfs) as well. As it’s dealing with untrusted external files, and the non-trivial PNG file format, this commit adds several test cases to cover valid and invalid PNG files. The security model for the thumbnail verification code is that the user’s cache directory is untrusted, and potentially any PNG file which is passed to the verifier has been manipulated arbitrarily by an attacker. This is a follow-up to commit fe7069749fe39a006985ec266260a3c02ee8c855. https://bugzilla.gnome.org/show_bug.cgi?id=709898 gio/tests/.gitignore | 1 + gio/tests/Makefile.am | 17 ++++ gio/tests/thumbnail-verification.c | 121 +++++++++++++++++++++++++ gio/tests/thumbnails/bad-header.png | Bin 0 -> 512 bytes gio/tests/thumbnails/empty-key.png | Bin 0 -> 512 bytes gio/tests/thumbnails/header-and-chunk-size.png | Bin 0 -> 20 bytes gio/tests/thumbnails/header-only.png | 2 + gio/tests/thumbnails/huge-chunk-size.png | Bin 0 -> 512 bytes gio/tests/thumbnails/mtime-zero.png | Bin 0 -> 512 bytes gio/tests/thumbnails/no-text-data.png | Bin 0 -> 256 bytes gio/tests/thumbnails/overlong-value.png | Bin 0 -> 512 bytes gio/tests/thumbnails/uri-mismatch.png | Bin 0 -> 512 bytes gio/tests/thumbnails/valid-no-size.png | Bin 0 -> 512 bytes gio/tests/thumbnails/valid.png | Bin 0 -> 512 bytes 14 files changed, 141 insertions(+) commit ed6ca39d3bb3e23c332a5de2b2efbde0d8db21f0 Author: Colin Walters Date: Thu Oct 17 16:57:10 2013 -0400 Revert "Use g_return_val_if_fail() for developer-only messages" This reverts commit 00f0795a84d23f2e2654a86f8bd3a233c8af3771. https://bugzilla.gnome.org/show_bug.cgi?id=569017 gio/gicon.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++------- gio/gthemedicon.c | 13 ++++++++++- 2 files changed, 74 insertions(+), 9 deletions(-) commit d5e2a57741ec13196360b073a04f7929ebdb642e Author: Jiro Matsuzawa Date: Thu Aug 29 01:05:29 2013 +0900 gsettings-tool: Add --version into general usage https://bugzilla.gnome.org/show_bug.cgi?id=707002 gio/gsettings-tool.c | 1 + 1 file changed, 1 insertion(+) commit 6568843624e9f46a3c51cd8c1a6670896a48f1fb Author: Ryan Lortie Date: Wed Oct 23 16:42:12 2013 -0400 GSettings: verify path validity on constructors Don't allow constructing GSettings objects with invalid paths. https://bugzilla.gnome.org/show_bug.cgi?id=704802 gio/gsettings.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit 0a7d1084a5917815eef34cf9a0bc2d140fcaa190 Author: Olivier Brunel Date: Tue Oct 8 16:11:44 2013 +0200 gthemedicon: Fallback to non-symbolic icons When doing fallback for symbolic icons, we first shorten the name at dashes while preserving the -symbolic suffix. But after exhausting that, we should also try stripping the suffix. See https://bugzilla.gnome.org/show_bug.cgi?id=708163 Signed-off-by: Olivier Brunel https://bugzilla.gnome.org/show_bug.cgi?id=710254 gio/gthemedicon.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 1e1e2d1ff7debb3941a8841c4ec501dbd6edd1fd Author: Colin Walters Date: Wed Oct 23 16:41:09 2013 -0400 grand: Document this is not for cryptographic purposes While this is obvious to seasoned experts upon inspection, it is really worth documenting explicitly. https://bugzilla.gnome.org/show_bug.cgi?id=710736 glib/grand.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 856d90156942d340513942126c2536339e00d04a Author: Philip Withnall Date: Wed Oct 23 15:45:15 2013 +0100 gdbus: Ensure message matching always succeeds against path_namespace='/' This copies the fix from upstream D-Bus bug https://bugs.freedesktop.org/show_bug.cgi?id=70799 to the GDBusDaemon implementation, ensuring that matching against path_namespace='/' succeeds for all keys (i.e. it’s a no-op). https://bugzilla.gnome.org/show_bug.cgi?id=710726 gio/gdbusdaemon.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit a4bcd3e65aa580fb23bca6e1b09f62dff5837237 Author: Ryan Lortie Date: Wed Oct 23 14:17:48 2013 -0400 gtester: only remove source if not already dead Don't attempt to g_source_remove() a source for which we already returned FALSE from the handler. https://bugzilla.gnome.org/show_bug.cgi?id=710724 glib/gtester.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f7beb90193236c1863fb62eaad607615f5695431 Author: Ryan Lortie Date: Wed Oct 23 11:10:00 2013 -0400 tests: expect critical on failure to remove source We've added a g_critical() on failure to remove sources, so make sure we expect to see that (instead of failing the test due to the unexpected message). https://bugzilla.gnome.org/show_bug.cgi?id=710724 glib/tests/protocol.c | 4 ++++ 1 file changed, 4 insertions(+) commit b9de6f04890eecb1dc9c3b70efbcde35008ba182 Author: Ryan Lortie Date: Wed Oct 23 11:04:01 2013 -0400 gmain: test g_source_remove() with invalid ID Make sure we get the proper critical displayed. https://bugzilla.gnome.org/show_bug.cgi?id=710724 glib/tests/mainloop.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit a919be3d39150328874ff647fb2c2be7af3df996 Author: Bastien Nocera Date: Wed Oct 23 15:38:58 2013 +0200 gmain: Warn when g_source_remove() fails Trying to remove a non-existent source should really be a programming error, as the programmer could be trying to use the wrong function to remove a callback, as seen when GtkScrolledWindow tried to remove ID from another function using g_source_remove(). See https://bugzilla.gnome.org/show_bug.cgi?id=710666#c12 https://bugzilla.gnome.org/show_bug.cgi?id=710724 glib/gmain.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit fe7069749fe39a006985ec266260a3c02ee8c855 Author: Ryan Lortie Date: Fri Oct 11 11:22:31 2013 +0100 file-info: Add a G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID attribute This indicates whether the thumbnail (given by G_FILE_ATTRIBUTE_THUMBNAIL_PATH) is valid — i.e. to represent the file in its current state. If G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID is FALSE (for a normal _or_ failed thumbnail) it means the file has changed since the thumbnail was generated, and the thumbnail is out of date. Part of checking thumbnail validity (by the spec) involves parsing headers out of the thumbnail .png so we include some (small) code to do that in a separate file. We will likely want to copy this code to gvfs to do the same for GVfsFile. Heavily based on a patch from Philip Withnall who suggested the feature and designed the API. https://bugzilla.gnome.org/show_bug.cgi?id=709898 docs/reference/gio/Makefile.am | 3 +- docs/reference/gio/gio-sections.txt | 1 + gio/Makefile.am | 2 + gio/gfileattribute.c | 6 +- gio/gfileinfo-priv.h | 1 + gio/gfileinfo.c | 1 + gio/gfileinfo.h | 15 +++ gio/glocalfileinfo.c | 36 ++++-- gio/thumbnail-verify.c | 250 ++++++++++++++++++++++++++++++++++++ gio/thumbnail-verify.h | 31 +++++ 10 files changed, 335 insertions(+), 11 deletions(-) commit 38dc8d4cd302082c4e308d0b7032160c98736244 Author: Ryan Lortie Date: Tue Oct 22 15:51:15 2013 -0400 GMemoryOutputStream: docs and whitespace fixes Document the difference between resizable and fixed-sized streams, particularly with regards to sizing and seeking. https://bugzilla.gnome.org/show_bug.cgi?id=684842 gio/gmemoryoutputstream.c | 98 +++++++++++++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 34 deletions(-) commit 1d1c17d9ee69ece6c28da0544d12a29b1c3e4dc9 Author: Ryan Lortie Date: Tue Oct 22 16:15:29 2013 -0400 GMemoryOutputStream: improve seek tests Improve test coverage for testing seeking on fixed vs. resizable GMemoryOutputStream. https://bugzilla.gnome.org/show_bug.cgi?id=684842 gio/tests/memory-output-stream.c | 97 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 3 deletions(-) commit fdc5cd8d9fcf9ac8c0ebe27cf6cd3c8648690a8b Author: Ryan Lortie Date: Wed Oct 23 11:25:56 2013 -0400 Change semantics of seek on memory output stream It is our intention that memory output streams should operate in two distinct modes, depending on if a realloc function was provided or not. In the case that we have a realloc function (resizable mode), we want the stream to behave as if it were a file that started out empty. In the case that we don't have a realloc function (fixed-sized mode), we want the stream to behave as a block device would. To this end, we introduce two changes in functionality: - seeking to SEEK_END on a resizable stream will now seek to the end of the valid data region, not to the end of the allocated memory (which is really just an implementation detail) - seeks past the end of the allocated memory size are now permitted, but only on resizable streams. The next write will grow the buffer (inserting zeros between). Some tweaks to testcases were required in order not to break the build, which indicates that this is an API break, but it seems unlikely that anyone will be effected by these changes 'in the real world'. Updates to documentation and further testcases are in following commits. Based on a patch from Maciej Piechotka . https://bugzilla.gnome.org/show_bug.cgi?id=684842 gio/gmemoryoutputstream.c | 17 +++++++++++++++-- gio/tests/buffered-output-stream.c | 4 ++-- gio/tests/memory-output-stream.c | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) commit 38ef509cf3558bffb326f7c6d511bcd77e98981b Author: Ryan Lortie Date: Tue Oct 22 15:01:16 2013 -0400 GSeekable: document seek-past-end semantics Introduce the concept of "fixed" vs. "resizable" streams and document how g_seekable_seek() works for each case. We don't include g_seekable_is_fixed_size() at this point because we don't know if anyone would require it. This may appear in the future if someone asks for it, however. https://bugzilla.gnome.org/show_bug.cgi?id=684842 gio/gseekable.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) commit 3b28df1e008101341504f82c8e65f3109aca10cc Author: Philip Withnall Date: Wed Oct 23 15:07:46 2013 +0100 gdbus: Work around a D-Bus bug with path_namespace='/' match rules D-Bus versions < 1.6.18 (i.e. all current versions) have a bug with the path_namespace='/' match rule key. It should conceptually match everything, but actually matches nothing. This results in no property change (or other) signals being forwarded to the D-Bus client. The work-around implemented in GDBusObjectManagerClient is to remove the path_namespace match key if its value is ‘/’. For the upstream D-Bus bug, see: https://bugs.freedesktop.org/show_bug.cgi?id=70799 https://bugzilla.gnome.org/show_bug.cgi?id=710726 gio/gdbusobjectmanagerclient.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 5a3fd63246d2cf7d4d8e2e559320ea0e3658beee Author: Bastien Nocera Date: Fri Oct 18 14:37:31 2013 +0200 g_file_error_from_errno: Remove unneeded breaks Just wasting space https://bugzilla.gnome.org/show_bug.cgi?id=710625 glib/gfileutils.c | 25 ------------------------- 1 file changed, 25 deletions(-) commit 1b592524ff461c8905b43f4fe04ae3bc47d61592 Author: Ryan Lortie Date: Tue Oct 22 16:24:41 2013 -0400 GKeyfile: don't leak on failed get_(u)int64 In the case that g_key_file_get_(u)int64 fails to parse the integer, make sure we free the string before returning. Reported by Andrew Stone https://bugzilla.gnome.org/show_bug.cgi?id=710313 glib/gkeyfile.c | 2 ++ 1 file changed, 2 insertions(+) commit efecfe0fac83fc305fd5e2c3f377ee70e1c987db Author: Dan Winship Date: Sun Oct 20 09:27:11 2013 -0400 gobject: simplify object-in-construction handling Rather than keeping a global list of objects that are being constructed, use qdata on the object itself like we do with several other properties now. https://bugzilla.gnome.org/show_bug.cgi?id=661576 gobject/gobject.c | 68 ++++++++++++++++--------------------------------------- 1 file changed, 19 insertions(+), 49 deletions(-) commit 0d62eb467f8fbf7a59454bec3498bcdd3c7889e0 Author: Dan Winship Date: Mon Apr 29 13:04:11 2013 -0400 gobject: forbid finalization-during-construction If a constructor() implementation created an object but then unreffed it rather than returning it, that object would get left on the construction_objects list, which would cause problems later when that memory location got reused by another object. "Fix" this by making it fail intentionally, and add a test for it (and for the normal, working singleton case). https://bugzilla.gnome.org/show_bug.cgi?id=661576 gobject/gobject.c | 26 +++++--- gobject/tests/.gitignore | 1 + gobject/tests/Makefile.am | 1 + gobject/tests/object.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 169 insertions(+), 10 deletions(-) commit a7bd6c47db8330fa0b88201ff4d9abf72fb10ef5 Author: Matthias Clasen Date: Mon Oct 21 18:46:48 2013 -0400 Clarify the g_application_withdraw_notification docs Mention that notifications are dismissed when activated. gio/gapplication.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1f0e69f73438fb4f6dfbd7676a0ef4d60e9b529c Author: Ryan Lortie Date: Mon Oct 21 14:55:52 2013 -0400 Don't build gapplication(1) on win32 It's pretty closely tied to desktop files... gio/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit 358588ed2ad70e68df3d4de2837b0f0e2073910f Author: Ryan Lortie Date: Mon Oct 21 14:55:21 2013 -0400 GSubprocess win32 fixups Note: we go out of our way not to pass a child setup function on win32 (even if it does nothing) because we get a g_warning() from gspawn if we do so. gio/gsubprocess.c | 41 ++++++++++++++++++++++++++++++++++++++-- gio/gsubprocesslauncher.c | 31 +++++++++++++++++++++--------- gio/gwin32inputstream.c | 1 + gio/gwin32outputstream.c | 1 + gio/tests/gsubprocess-testprog.c | 1 + 5 files changed, 64 insertions(+), 11 deletions(-) commit b21c86b6a01453b522c1a428fc5961d3a4204649 Author: Colin Walters Date: Mon Oct 21 15:05:45 2013 -0400 GNotification: Don't install private headers, avoid duplicated prototype These both break gobject-introspection's build, and moreover are things we don't want to do anyways. gio/Makefile.am | 4 ++-- gio/gnotification-private.h | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) commit 8dfb0703298bf8f25f3440967fca348ec71e4253 Author: Ryan Lortie Date: Fri Oct 18 20:40:57 2013 -0400 Don't g_test_assert_expected_messages for g_error Don't allow the user to assert for expected g_error(). They need to use subprocess for this. https://bugzilla.gnome.org/show_bug.cgi?id=709615 glib/gmessages.c | 1 + glib/tests/testing.c | 10 ++++++++++ 2 files changed, 11 insertions(+) commit 6957004007fb2a5faf0013e6ec44926d841404b5 Author: Ryan Lortie Date: Mon Oct 21 14:29:44 2013 -0400 GNotification: finish documentation Add the missing documentation and add the section to the GIO reference docs. Fix up a few small documentation issues. https://bugzilla.gnome.org/show_bug.cgi?id=688492 docs/reference/gio/Makefile.am | 2 ++ docs/reference/gio/gio-docs.xml | 1 + docs/reference/gio/gio-sections.txt | 29 ++++++++++++++++++++++ gio/giotypes.h | 1 - gio/gnotification.c | 48 +++++++++++++++++++++++++++++++++---- 5 files changed, 75 insertions(+), 6 deletions(-) commit 51fac60a92278483892d007323b48dbc375d2645 Author: Ryan Lortie Date: Mon Oct 21 12:54:19 2013 -0400 GNotification: some final cleanups Move a method from GNotificationBackend into the fdo backend (since it was only used from here). Remove the accessors for the already-public (in private header) ->dbus_connect and ->application on GNotificationBackend. https://bugzilla.gnome.org/show_bug.cgi?id=688492 gio/gfdonotificationbackend.c | 35 +++++++++++++++++++++++++---------- gio/ggtknotificationbackend.c | 12 +++--------- gio/gnotificationbackend.c | 34 ---------------------------------- gio/gnotificationbackend.h | 8 -------- 4 files changed, 28 insertions(+), 61 deletions(-) commit 766f5584cea0f78921c9288ba7c1c489e6252dd4 Author: Lars Uebernickel Date: Tue Oct 15 12:19:09 2013 -0400 Add gtk notification backend https://bugzilla.gnome.org/show_bug.cgi?id=688492 gio/Makefile.am | 1 + gio/gfdonotificationbackend.c | 15 ++--- gio/ggtknotificationbackend.c | 144 ++++++++++++++++++++++++++++++++++++++++++ gio/giomodule.c | 2 + gio/gnotification-private.h | 4 +- gio/gnotification.c | 108 ++++++++++++++++++++++++++----- gio/gnotification.h | 4 +- gio/gnotificationbackend.c | 12 +++- 8 files changed, 261 insertions(+), 29 deletions(-) commit 639bd3626b683a0be273462d47e6bc30351a77d1 Author: Lars Uebernickel Date: Tue Oct 15 11:21:10 2013 -0400 Add GNotification https://bugzilla.gnome.org/show_bug.cgi?id=688492 gio/Makefile.am | 6 + gio/gapplication.c | 99 +++++++ gio/gapplication.h | 8 + gio/gfdonotificationbackend.c | 405 ++++++++++++++++++++++++++ gio/gio.h | 1 + gio/giomodule.c | 9 + gio/giotypes.h | 2 + gio/gnotification-private.h | 54 ++++ gio/gnotification.c | 639 ++++++++++++++++++++++++++++++++++++++++++ gio/gnotification.h | 94 +++++++ gio/gnotificationbackend.c | 112 ++++++++ gio/gnotificationbackend.h | 83 ++++++ 12 files changed, 1512 insertions(+) commit 1b04954cd0712f6bb1e5f575d015a781fdc2135b Author: Philip Withnall Date: Mon Oct 21 15:09:13 2013 +0100 gmessages: Clarify new-line behaviour of message functions Mention that g_printerr() and friends don’t append a trailing new-line character to printed messages, but g_log() and friends do. glib/gmessages.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- glib/gprintf.c | 4 ++++ 2 files changed, 47 insertions(+), 3 deletions(-) commit 0e4d6664471cd3d6157595d868542708323a97f7 Author: Djalal Harouni Date: Sun Oct 20 14:15:25 2013 +0100 glib-init: fix redundant-decls of g_mem_gc_friendly Currently g_mem_gc_friendly is declared in both gmem.h and glib-init.h files, we will have reports on each unit that include these two files. This patch removes the redundant declaration from glib-init.h Since g_mem_gc_friendly is related to gmem.h and was first declared in this header which also exports it via glib.h, then declare it in gmem.h Other files already include gmem.h: garray.c and gslice.c, no need to change anything. Signed-off-by: Djalal Harouni https://bugzilla.gnome.org/show_bug.cgi?id=710345 glib/glib-init.c | 1 + glib/glib-init.h | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit fef69bc65516ad23615aaa0272f4aa2cb5fe30bf Author: Djalal Harouni Date: Sun Oct 20 13:42:09 2013 +0100 gmem: remove glib-init.h inclusion No need to include glib-init.h here. This was added by commit 47444dacc069be but that commit did not make use of any its exported symbols, so just remove it. Signed-off-by: Djalal Harouni https://bugzilla.gnome.org/show_bug.cgi?id=710345 glib/gmem.c | 2 -- 1 file changed, 2 deletions(-) commit 58c26d388307b52b6ef2f9e4ea621c7ea582c584 Author: Enrico Nicoletto Date: Sat Oct 19 12:39:22 2013 -0300 Updated Brazilian Portuguese translation po/pt_BR.po | 724 +++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 448 insertions(+), 276 deletions(-) commit d308ede4912213ab64ca98f47a6710091f3ca27f Author: Djalal Harouni Date: Thu Oct 17 02:04:20 2013 +0100 gio/gbufferedinputstream: fix redundant-decls of g_buffered_input_stream_finalize() g_buffered_input_stream_finalize() is already declared as static in this gbufferedinputstream.c file, so just remove the redundant declaration. Signed-off-by: Djalal Harouni https://bugzilla.gnome.org/show_bug.cgi?id=710345 gio/gbufferedinputstream.c | 2 -- 1 file changed, 2 deletions(-) commit fe4967f9f131554f4f7ed380b3868104711814f7 Author: Djalal Harouni Date: Thu Oct 17 01:54:11 2013 +0100 gutils: fix redundant-decls of g_init_user_config_dir() g_init_user_config_dir() is already declared as static in this gutils.c file, so just remove the redundant declaration. Signed-off-by: Djalal Harouni https://bugzilla.gnome.org/show_bug.cgi?id=710345 glib/gutils.c | 1 - 1 file changed, 1 deletion(-) commit 97cbfd7901d6d354aa088c6c4a83f53d25780ef6 Author: Djalal Harouni Date: Thu Oct 17 00:54:44 2013 +0100 gconvert: fix redundant-decls of _g_charset_get_aliases() _g_charset_get_aliases() is already declared in gcharsetprivate.h which was added by commit 4c2a6595889eff44fa, and gconvert.c includes this gcharsetprivate header, so no need to declare it again. Signed-off-by: Djalal Harouni https://bugzilla.gnome.org/show_bug.cgi?id=710345 glib/gconvert.c | 3 --- 1 file changed, 3 deletions(-) commit d94d6ecd3f4928d2ea0755841a9f1b381a1c7d99 Author: Dan Winship Date: Sat Oct 19 11:31:06 2013 -0400 genviron: fix g_setenv(var, NULL) and some other stuff Passing a NULL value to g_setenv() was never documented as working, and in fact it worked on some platforms and crashed on others. Make it g_return_if_fail() everywhere insted. Also, remove some incorrect docs in g_environ_getenv() and g_environ_setenv() that shouldn't have been copied from g_getenv() and g_setenv(). And belatedly simplify the checks in g_unsetenv(). https://bugzilla.gnome.org/show_bug.cgi?id=704593 glib/genviron.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) commit 2907d4cc718658556ff0cf56ffec35b419409abf Author: Jehan Date: Sat Oct 19 20:59:41 2013 +1300 gconvert: Clarify g_locale_to/from_utf8 docs It was not clear from the doc whether the return value was to be freed or belonging to glib. https://bugzilla.gnome.org/show_bug.cgi?id=710496 glib/gconvert.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d55180c73bfaac3930f412ddc3d1a2fd31f678b1 Author: Ross Lagerwall Date: Sat Oct 12 08:13:18 2013 +0200 docs: Remove comment about calling g_type_init() https://bugzilla.gnome.org/show_bug.cgi?id=709966 docs/reference/gio/overview.xml | 6 ------ 1 file changed, 6 deletions(-) commit d157e7fdd7085838b3f690b5b20d98b643a3777a Author: Nilamdyuti Goswami Date: Fri Oct 18 19:14:51 2013 +0530 Assamese translation updated po/as.po | 478 +++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 328 insertions(+), 150 deletions(-) commit fd90101f4af4ca7d257d3c071f81a56bcb261c3b Author: Matthias Clasen Date: Thu Oct 17 21:03:18 2013 -0400 Include gapplication(1) in the tools section docs/reference/gio/gio-docs.xml | 1 + 1 file changed, 1 insertion(+) commit c848323948b01c69d76ea5e065a12b6e34df4b6b Author: Matthias Clasen Date: Thu Oct 17 20:55:53 2013 -0400 Fix up subprocess docs The GSubprocessLauncher docs had their own long description, but were not properly set up as their own section. docs/reference/gio/gio-docs.xml | 1 + docs/reference/gio/gio-sections.txt | 19 ++++++++++++------- gio/gsubprocesslauncher.c | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) commit 71534d9d629a416874dfe82cd64432db53eaf512 Author: Matthias Clasen Date: Thu Oct 17 20:45:32 2013 -0400 Fix up gio-sections.txt docs/reference/gio/gio-sections.txt | 2 ++ 1 file changed, 2 insertions(+) commit ea52ce07d8adf3b5bbb3e4f6cc8fe06571006c0d Author: Matthias Clasen Date: Thu Oct 17 20:38:15 2013 -0400 Generate introspected docs for GSimpleProxyResolver docs/reference/gio/gio.types | 1 + 1 file changed, 1 insertion(+) commit 8520c9cdf4180cc7b33779b2d507301c8942b34e Author: Matthias Clasen Date: Thu Oct 17 20:37:57 2013 -0400 Add some missing argument docs gio/gsubprocess.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 4cae0703f7fb4cb7ed706c1955c6b8978580d34e Author: Matthias Clasen Date: Thu Oct 17 20:16:13 2013 -0400 Add index for 2.40 api additions docs/reference/gio/gio-docs.xml | 4 ++++ 1 file changed, 4 insertions(+) commit ebd098155b45d87cbf5ca1d3abdac526a51cc1c2 Author: Colin Walters Date: Thu Oct 17 22:39:48 2013 +0100 tests/gsubprocess: Locate test child binary for installed tests too Just use the new g_test_build_filename() rather than assuming it's in cwd. gio/tests/gsubprocess.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit f7e2190e74ea217c7cfb132b1c4dc01d13bda203 Author: Piotr Drąg Date: Thu Oct 17 21:56:55 2013 +0200 Updated POTFILES.in po/POTFILES.in | 2 ++ 1 file changed, 2 insertions(+) commit 00f0795a84d23f2e2654a86f8bd3a233c8af3771 Author: Ihar Hrachyshka Date: Fri Oct 11 23:54:56 2013 +0400 Use g_return_val_if_fail() for developer-only messages Replaced several usages of GError with g_return_val_if_fail() for developer-only messages. As additional value, it also removes those messages from the list to translate, simplifying translator's work a bit. https://bugzilla.gnome.org/show_bug.cgi?id=569017 gio/gicon.c | 70 +++++++------------------------------------------------ gio/gthemedicon.c | 13 +---------- 2 files changed, 9 insertions(+), 74 deletions(-) commit 542ad4db031273b2ce6416f8909fbff933113ec6 Author: Ryan Lortie Date: Thu Oct 17 15:01:42 2013 -0400 Fixup GSubprocess documentation bits docs/reference/gio/Makefile.am | 1 + docs/reference/gio/gio-sections.txt | 38 +++- gio/gsubprocess.c | 343 +++++++++++++++++++++++------------- gio/gsubprocess.h | 36 ++-- gio/gsubprocesslauncher.c | 3 +- 5 files changed, 277 insertions(+), 144 deletions(-) commit 9318d5a4292544f2f7f8f9bc2d805974b3b52c7e Author: Colin Walters Date: Tue Oct 15 15:04:54 2013 +0100 gsubprocess: Add UTF-8 variants of communicate() Over many years of writing code interacting with subprocesses, a pattern that comes up a lot is to run a child and get its output as UTF-8, to put inside a JSON document or render in a GtkTextBuffer, etc. It's very important to validate at the boundaries, and not say deep inside Pango. We could do this a bit more efficiently if done in a streaming fashion, but realistically this should be OK for now. gio/gsubprocess.c | 181 ++++++++++++++++++++++++++++++++++++++++++++++-- gio/gsubprocess.h | 21 ++++++ gio/tests/gsubprocess.c | 105 ++++++++++++++++++++++++++-- 3 files changed, 296 insertions(+), 11 deletions(-) commit 0e1a3ee3450d1a091234292fde6109bf3c778bab Author: Colin Walters Date: Tue Oct 15 00:12:22 2013 +0100 gsubprocess: Fix up communicate We weren't closing the streams after we were done reading or writing, which is kind of essential. The easy way to fix this is to just use g_output_stream_splice() to a GMemoryOutputStream rather than hand-rolling it. This results in a substantial reduction of code complexity. A second serious issue is that we were marking the task as complete when the process exits, but that's racy - there could still be data to read from stdout. Fix this by just refcounting outstanding operations. This code, not surprisingly, looks a lot like the "multi" test. Next, because processes output binary data, I'd be forced to annotate the char*/length pairs as (array) (element-type uint8). But rather than doing that, it's *far* simpler to just use GBytes. We need a version of this that actually validates as UTF-8, that will be in the next patch. gio/gsubprocess.c | 398 ++++++++++++---------------------------------- gio/gsubprocess.h | 38 +---- gio/gsubprocesslauncher.c | 32 ++-- gio/gsubprocesslauncher.h | 2 +- gio/tests/gsubprocess.c | 70 +++++++- 5 files changed, 197 insertions(+), 343 deletions(-) commit 5b48dc40cc13567d276883ee826fe9e78bc7f46a Author: Colin Walters Date: Thu May 17 14:37:17 2012 -0400 GSubprocess: New class for spawning child processes There are a number of nice things this class brings: 0) Has a race-free termination API on all platforms (on UNIX, calls to kill() and waitpid() are coordinated as not to cause problems). 1) Operates in terms of G{Input,Output}Stream, not file descriptors 2) Standard GIO-style async API for wait() with cancellation 3) Makes some simple cases easy, like synchronously spawning a process with an argument list 4) Makes hard cases possible, like asynchronously running a process with stdout/stderr merged, output directly to a file path Much rewriting and code review from Ryan Lortie https://bugzilla.gnome.org/show_bug.cgi?id=672102 docs/reference/gio/gio-docs.xml | 4 + docs/reference/gio/gio-sections.txt | 33 + docs/reference/gio/gio.types | 1 + gio/Makefile.am | 5 + gio/gio.h | 2 + gio/gioenums.h | 50 ++ gio/giotypes.h | 18 + gio/glib-compile-resources.c | 81 +- gio/gsubprocess.c | 1689 +++++++++++++++++++++++++++++++++++ gio/gsubprocess.h | 174 ++++ gio/gsubprocesslauncher-private.h | 61 ++ gio/gsubprocesslauncher.c | 718 +++++++++++++++ gio/gsubprocesslauncher.h | 118 +++ gio/tests/.gitignore | 2 + gio/tests/Makefile.am | 5 +- gio/tests/gsubprocess-testprog.c | 199 +++++ gio/tests/gsubprocess.c | 855 ++++++++++++++++++ 17 files changed, 3959 insertions(+), 56 deletions(-) commit e30bbca6679605487e52e52f810c54a0464b6d37 Author: Ryan Lortie Date: Sat Nov 10 13:16:29 2012 -0500 gspawn: support creating pipes with O_CLOEXEC Add a new flag, G_SPAWN_CLOEXEC_PIPES, for creating the stdin/out/err pipes with O_CLOEXEC (for the usual reasons). glib/gspawn.c | 37 +++++++++++-------------------------- glib/gspawn.h | 5 ++++- 2 files changed, 15 insertions(+), 27 deletions(-) commit c515c3ed111a721047d014832c2fc24bd1adb4a0 Author: Colin Walters Date: Tue May 22 16:06:10 2012 -0400 gio: Add private API to create win32 streams from fds This will be used by GSubprocess. https://bugzilla.gnome.org/show_bug.cgi?id=672102 gio/Makefile.am | 1 + gio/giowin32-priv.h | 42 +++++++++++++++++++++++++++++++++++++++++ gio/gwin32inputstream.c | 49 +++++++++++++++++++++++++++++++++++++----------- gio/gwin32outputstream.c | 49 +++++++++++++++++++++++++++++++++++++----------- 4 files changed, 119 insertions(+), 22 deletions(-) commit aaddd823bcce4c5f751cb694c7c7d5064978213b Author: Ihar Hrachyshka Date: Thu Oct 10 17:23:00 2013 +0400 Removed obsolete makefile rules Removed test, test-report, full-report, perf-report. They all come from an old (now obsolete) approach toward glib testing[1]. Now the blessed ways to test glib are 'make check' and installed tests. [1]: https://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html https://bugzilla.gnome.org/show_bug.cgi?id=709995 docs/Makefile.am | 1 - glib.mk | 59 ++------------------------------------------------------ 2 files changed, 2 insertions(+), 58 deletions(-) commit a2f6f0d2f6c8fa0a9ee5ab483af6cea5d5766dfe Author: Jasper St. Pierre Date: Thu Oct 17 13:02:11 2013 -0400 gtask: Fix invalid name in documentation gio/gtask.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9defb6b1b1de18b6005148e036941e89b400dbd2 Author: Ryan Lortie Date: Sun Jul 14 19:43:19 2013 -0400 New gapplication(1) tool This is essentially a commandline implementation of the client-side of the org.freedesktop.Application D-Bus interface. It includes support for tab-completion based on desktop files and their contents. https://bugzilla.gnome.org/show_bug.cgi?id=704218 docs/reference/gio/Makefile.am | 1 + docs/reference/gio/gapplication.xml | 352 +++++++++++++++++++++++++++ gio/.gitignore | 1 + gio/Makefile.am | 9 + gio/completion/gapplication | 55 +++++ gio/gapplication-tool.c | 463 ++++++++++++++++++++++++++++++++++++ 6 files changed, 881 insertions(+) commit 4e1e36a7f0d3254bad01aaf3ba94dc70b230ef62 Author: Ryan Lortie Date: Thu Oct 17 08:22:11 2013 -0400 Revert "gapplication: don't rely on cmdline being finalized immediately" This reverts commit c5748328bee08e322997cc4703c372f6866a1693. gio/gapplicationimpl-dbus.c | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) commit c5748328bee08e322997cc4703c372f6866a1693 Author: Cosimo Cecchi Date: Fri Sep 13 11:38:47 2013 -0700 gapplication: don't rely on cmdline being finalized immediately The GApplicationCommandLine DBus implementation currently calls g_dbus_method_invocation_return_value() in its finalize() implementation only, relying on the object being destroyed after g_object_unref() is called on it inside g_application_impl_method_call(). While this is usually fine for C applications, when overriding the command_line vfunc from language bindings, the binding might add extra references to the object, which might not be released immediately - e.g. because they're garbage collected, or possibly even leaked. The same scenario could happen in a C application that decides to keep a reference to the passed-in GApplicationCommandLine object. To ensure the CommandLine DBus method always gets a reply after the invocation of command_line in the primary instance, explicitly send the message back before dropping our reference to the object. https://bugzilla.gnome.org/show_bug.cgi?id=708042 gio/gapplicationimpl-dbus.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit be2656f13952dd22d348ff5e3f43240700cdef5a Author: Colin Walters Date: Wed Oct 16 10:10:22 2013 -0400 g_file_copy: Fall back to pathname queryinfo to help gvfs backends It's not difficult to do; not all backends implement it, and for some it may be difficult to implement query_info_on_read(), so let's just do both. https://bugzilla.gnome.org/show_bug.cgi?id=706254 gio/gfile.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit 4fea5c0029bdb8d800c5857bfba983147fe53445 Author: Xavier Claessens Date: Tue Oct 15 11:02:40 2013 -0400 Fix wrong function names in g_str_match_string() documentation glib/gstrfuncs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b2c15f18b2f35d2363922469e3497e5a10459e52 Author: Ihar Hrachyshka Date: Sat Oct 12 16:43:16 2013 +0400 Updated reference to README.commits The major useful information regarding commits is now placed in README.commits, not README. https://bugzilla.gnome.org/show_bug.cgi?id=709994 HACKING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c6d7e1ede766ea0227d2a594a3129445d03a6dfe Author: Andika Triwidada Date: Tue Oct 15 11:54:59 2013 +0700 Updated Indonesian translation po/id.po | 244 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 124 insertions(+), 120 deletions(-) commit 04202954308471196817318b12df64665656fcda Author: Xavier Claessens Date: Wed Oct 9 14:32:58 2013 -0400 Add testcase for search utilities functions https://bugzilla.gnome.org/show_bug.cgi?id=709753 glib/tests/.gitignore | 1 + glib/tests/Makefile.am | 1 + glib/tests/search-utils.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) commit 38dfce5992db803de0a179705ab93109012faa3c Author: Ryan Lortie Date: Mon Oct 14 14:37:10 2013 -0400 Add simple string "search" function Add a pair of functions to make it easier to do simple string matching. This will be useful for use with things like GtkSearchBar and will also be the basis of the searching done by the (soon to appear) g_desktop_app_info_search() https://bugzilla.gnome.org/show_bug.cgi?id=709753 docs/reference/glib/glib-sections.txt | 2 + glib/gstrfuncs.c | 239 ++++++++++++++++++++++++++++++++++ glib/gstrfuncs.h | 10 ++ 3 files changed, 251 insertions(+) commit 4c510801cfc8120d7dea7ae8121832e8d17d2453 Author: Ryan Lortie Date: Mon Oct 14 14:36:34 2013 -0400 Add g_str_is_ascii() Add a function for checking if a string is pure ASCII. https://bugzilla.gnome.org/show_bug.cgi?id=709753 docs/reference/glib/glib-sections.txt | 1 + glib/gstrfuncs.c | 23 +++++++++++++++++++++++ glib/gstrfuncs.h | 2 ++ 3 files changed, 26 insertions(+) commit c4c3ee6087d36603b29a8a1201c7171d2f99c0b1 Author: Noah Massey Date: Sun Oct 13 10:25:39 2013 -0400 gmain: mark newest id used when source id overflows When the source id reaches G_MAXUINT (just prior to overflow), we record the existing source ids to prevent reassigning them. As we are about to assign G_MAXUINT to the triggering source, that id should be added as well. https://bugzilla.gnome.org/show_bug.cgi?id=710002 glib/gmain.c | 1 + 1 file changed, 1 insertion(+) commit e2d5282636bcbf4c8ac64a599bb020d33cd59897 Author: Colin Walters Date: Tue Oct 8 12:17:16 2013 -0400 GMemoryOutputStream: Don't return -1 as a gboolean in precondition Since it could confuse callers (admittedly who are already violating a precondition). Just spotted while adapting some bits of this code for a ssh library. gio/gmemoryoutputstream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30772e74bf42cf7be67041df21316d305027f0fc Author: Nilamdyuti Goswami Date: Mon Oct 7 12:56:28 2013 +0530 Assamese translation updated po/as.po | 246 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 125 insertions(+), 121 deletions(-) commit 8e17040c159bf0a7cf060f12e467a0ad1f5b6741 Author: Dan Winship Date: Fri Oct 4 12:58:48 2013 -0400 Fix overloading of "source" and "target" terminology in GBinding GBindingTransformFunc called its arguments "source_value" and "target_value", but in the transform_from function of a bidirectional binding, "source_value" comes from the target object, and "target_value" comes from the source object, which quickly gets confusing if you need to use g_binding_get_source(), etc, in the function. Of course developers can call their transform function arguments whatever they want, but many will copy from the headers/docs to start out, so use less confusing names here ("from_value" and "to_value"). Also, fix the documentation to describe the bidirectional case correctly. https://bugzilla.gnome.org/show_bug.cgi?id=709440 gobject/gbinding.c | 44 ++++++++++++++++++++++---------------------- gobject/gbinding.h | 17 ++++++++++------- gobject/tests/binding.c | 24 ++++++++++++------------ 3 files changed, 44 insertions(+), 41 deletions(-) commit be7f40185fb2ce884112c1f8a4b196ea65350466 Author: Kalev Lember Date: Sat Sep 21 13:52:09 2013 +0200 xdgmime: Fix an invalid read This commit factors out a function for comparing string suffixes, and at the same time makes it safe for mime types that are shorter than the "/*" suffix. ==25418== Invalid read of size 1 ==25418== at 0x3C6D0F9D22: __gio_xdg_cache_mime_type_subclass (xdgmimecache.c:848) ==25418== by 0x3C6D09ED8C: g_content_type_is_a (gcontenttype.c:158) ==25418== by 0x34D8031E95: gtk_recent_filter_filter (gtkrecentfilter.c:733) ==25418== by 0x34D802F167: _gtk_recent_chooser_get_items (gtkrecentchooserutils.c:387) ==25418== by 0x34D802D07F: idle_populate_func (gtkrecentchoosermenu.c:1011) ==25418== by 0x34D7A20477: gdk_threads_dispatch (gdk.c:804) ==25418== by 0x3C6C0492F5: g_main_context_dispatch (gmain.c:3065) ==25418== by 0x3C6C049677: g_main_context_iterate.isra.23 (gmain.c:3712) ==25418== by 0x3C6C04972B: g_main_context_iteration (gmain.c:3773) ==25418== by 0x34D7FC2AF4: gtk_main_iteration (gtkmain.c:1262) ==25418== by 0x408EB4: main (in /usr/bin/glade) https://bugzilla.gnome.org/show_bug.cgi?id=708529 gio/xdgmime/xdgmime.c | 19 ++++++++++++++----- gio/xdgmime/xdgmimecache.c | 19 ++++++++++++++----- 2 files changed, 28 insertions(+), 10 deletions(-) commit 5aead642c29d2fcd4cc4152449eb434b52edc6af