g_variant_new("as", NULL); now gives an empty array of strings, for
example.
This was documented as working already, but was never actually
implemented (due to the fact that it muddies the water when considering
maybe types). It's being implemented now because its convenience to
programmers exceeds any damage done to the conceptual purity of the API.
One new GUnicodeBreak enum member. Three new GUnicodeScript members,
and one member renamed to fix a typo.
Tests, docs, and scripts are updated. PCRE update still needed.
This adds "child source" support to GSource. A child source behaves
basically like a GPollFD; when you add a source to a context, all of
its child sources are added with the same priority; when you destroy a
source, all of its child sources are destroyed; and when a child
source triggers, its parent source's dispatch function is run.
Use cases include:
- adding a GTimeoutSource to another source to cause the source to
automatically trigger after a certain timeout.
- wrapping an existing source type with a new type that has
a different callback signature
- creating a source that triggers based on different conditions
at different times.
https://bugzilla.gnome.org/show_bug.cgi?id=634239
Add some helpers for freeing a linked list along with its elements by
providing a GDestroyNotify to call on each of them.
Add a test.
Based on a patch from Cosimo Cecchi.
Timezone handling is complicated. Really complicated.
In order to simplify it a little bit, we need to expose the GTimeZone
structure.
First of all, we allow creating time zone information directly from the
offset and the DST state, and then pass it to the g_date_time_new_full()
constructor. We also need to clean up the mess that is UTC-vs.-localtime
for the other constructors.
We also allow creating a GTimeZone from the Olson zoneinfo database
names; a time zone created like this will be "floating": it will just
reference the zoneinfo file - which are mmap()'ed, kept in a cache and
refcounted. Once the GTimeZone has been associated with a GDateTime, it
will be "anchored" to it: the offset will be resolved, as well as the
DST state.
https://bugzilla.gnome.org/show_bug.cgi?id=50076
Otherwise e.g. setuid root processes can't connect to the system
bus. This was discovered when porting PolicyKit's pkexec(1) command to
a PolicyKit library using GDBus.
Signed-off-by: David Zeuthen <davidz@redhat.com>
Remove some symbols from glib-sections.txt that gtk-doc has no idea
about.
Add proper callback typedefs for GTester (gtk-doc dislikes inline
function types).
Fix some other minor issues.
- add G_VARIANT_TYPE_BYTESTRING, _BYTESTRING_ARRAY, _STRING_ARRAY
- remove g_variant_{new,get}_byte_array functions
- add g_variant_{new,get,dup}_bytestring{,_array} functions
- remove undocumented support for deserialising arrays of objectpaths
or signature strngs using g_variant_get_strv()
- add and document new format strings '^ay', '^&ay', '^aay' and '^a&ay'
- update GApplication to use the new API
- update GSettings binding code to use the new API
- add tests
This adds static markers for dtrace, which are also usable
by systemtap. Additionally it adds a tapset for systemtap
that makes it easier to use the static markers.
These are enabled by default.
This initial set of probes is rather limited:
* allocation and free using g_malloc & co
* allocation and free using g_slice
* gquark name tracking (useful for converting quarks to strings in probes)
Notes on naming:
Its traditional with dtrace to use probe names with dashes as
delimiter (slice-alloc). Since dashes are not usable in identifiers
the C code uses double underscores (slice__alloc) which is converted
to dashes in the UI. We follow this for the shared lowlevel probe
names.
Additionally dtrace supports putting a "provider" part in the probe
names which is essentially a namespacing thing. On systemtap this
field is currently ignored (but may be implemented in the future), but
this is not really a problem since in systemtap the probes are
specified by combining the solib file and the marker name, so there
can't really be name conflicts.
For the systemtap tapset highlevel probes we instead use names that
are systemtapish with single dashes as separators.
https://bugzilla.gnome.org/show_bug.cgi?id=606044
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.
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.
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
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.)
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)
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.
* gio/gio-docs.xml:
* glib/glib-docs.sgml:
* gobject/gobject-docs.sgml:
Add online urls for library.gnome.org. This allows other docs to do
gtkdoc-rebase --online --html-dir=html
before publishing docs and have working xrefs.
svn path=/trunk/; revision=7853
* docs/reference/glib/Makefile.am:
Add SCAN_OPTIONS=--ignore-decorators="GLIB_VAR" to Makefile.am to fix
on problem with the doc build.
svn path=/trunk/; revision=7829
2009-01-13 Matthias Clasen <mclasen@redhat.com>
Bug 564728 Add function to decode base64 encoded data in place
* glib/glib.symbols:
* glib/gbase64.[hc] (g_base64_decode_inplace): New convenience
API to decode in place, overwriting the input string. Patch by
Sebastian Dröge.
svn path=/trunk/; revision=7807
2008-12-07 Behdad Esfahbod <behdad@gnome.org>
Bug 563150 – G_GU?INT*_MODIFIER/FORMAT docs
* glib/tmpl/glib-unused.sgml:
* glib/tmpl/macros_misc.sgml:
* glib/tmpl/types.sgml:
Update docs to mention scanning as well as printing.
Cross reference these from their respective types.
svn path=/trunk/; revision=7730
2008-10-29 16:04:38 Tim Janik <timj@gtk.org>
* glib/tmpl/macros_misc.sgml: Clarified/added docs for
G_STRINGIFY, G_PASTE and G_STATIC_ASSERT, based on
patches from Christian Persch and Christian Dywan.
svn path=/trunk/; revision=7634
* glib/gpoll.c (g_poll): Move this out of gmain.c and make it part
of the public API. (Part of Bug 505361 - gunixinputstream.c
assumes poll() available.)
svn path=/trunk/; revision=7535
2008-08-15 Tor Lillqvist <tml@novell.com>
* glib/tmpl/threads.sgml: Add an exception: g_mem_set_vtable() may
be called before g_thread_init().
svn path=/trunk/; revision=7361
2008-08-15 Tor Lillqvist <tml@novell.com>
* glib/tmpl/threads.sgml: Warn about the consequences of not
calling g_thread_init() first, if it will be called at all. Advice
calling it if using random GLib-based libraries.
svn path=/trunk/; revision=7355
* glib/glib.symbols:
* glib/gstrfuncs.[hc]: Add g_dpgettext2() which is a
variant of g_dpgettext() taking context and id as separate
arguments.
* glib/gi18n-lib.h:
* glib/gi18n.h: Add an NC_() macro that is to C_() as N_()
is to _().
svn path=/trunk/; revision=7202
2008-07-10 Ryan Lortie <desrt@desrt.ca>
* docs/reference/glib/glib-sections.txt:
* glib/glib.symbols:
* glib/gmarkup.c:
* glib/gmarkup.h: add functions g_markup_parse_context_{push,pop} in
order to provide some small hooks on which to build easy-to-use
subparsers.
* glib/tests/Makefile: add new test
* glib/tests/markup-subparser.c: new test for subparsers
Fixes bug #337518.
svn path=/trunk/; revision=7174
2008-06-24 Michael Natterer <mitch@imendio.com>
* glib/Makefile.am
* gobject/Makefile.am: don't comment out the include of
Makefile.decl just because there are no tests. It needs to be
included in each Makefile.am or make check will fail.
svn path=/trunk/; revision=7098
2008-06-11 Behdad Esfahbod <behdad@gnome.org>
Bug 503071 – Application direction changes to right to left even if
theres no translation
* glib/gi18n-lib.h:
* glib/glib.symbols:
* glib/gstrfuncs.h:
* glib/gstrfuncs.c:
Add new functions g_dgettext() and g_dngettext().
* glib/gutils.c (glib_gettext):
* glib/gfileutils.c (g_format_size_for_display):
* glib/goption.c (dgettext_swapped):
Use the new functions.
svn path=/trunk/; revision=7020
2008-05-27 Michael Natterer <mitch@gimp.org>
* glib/tmpl/gurifuncs.sgml
* glib/tmpl/testing.sgml: new files.
* glib/tmpl/unicode.sgml
* glib/tmpl/macros_misc.sgml
* glib/tmpl/checksum.sgml: regenerated.
* Updated lots of svn:ignore all over the place.
svn path=/trunk/; revision=6941
2008-05-14 Tor Lillqvist <tml@novell.com>
* glib/tmpl/spawn.sgml: Don't mention fork()/exec() in the short
description. fork()/exec() is an implementation detail on Unix.
svn path=/trunk/; revision=6891
2008-02-10 Philip Withnall <pwithnall@svn.gnome.org>
* glib/tmpl/modules.sgml: Improve the documentation for
the G_MODULE_EXPORT macro. (#514470)
svn path=/trunk/; revision=6488
2008-01-29 Christian Persch <chpe@gnome.org>
* docs/reference/glib/tmpl/macros_misc.sgml: G_GNUC_[PRETTY_]FUNCTION
are deprecated since 2.16, not 2.14.
svn path=/trunk/; revision=6419
* docs/reference/glib/glib-sections.txt:
* glib/gasyncqueue.c: (g_async_queue_new), (g_async_queue_new_full),
(g_async_queue_unref):
* glib/gasyncqueue.h: add g_async_queue_new_full() which takes a
GDestroyNotify function to free any remaining queue items when the
queue is destroyed after the final atomic unref (#367550).
svn path=/trunk/; revision=6152
2007-12-03 Marco Barisione <marco@barisione.org>
* glib/gregex.c:
* glib/gregex.h: Add new error codes for when compilation fails and
make compilation error translatable. (#482313, Morten Welinder)
svn path=/trunk/; revision=6021
2007-11-26 Ryan Lortie <desrt@desrt.ca>
Add new function g_markup_collect_attributes (bug #496847).
* glib/glib.symbols: add g_markup_collect_attributes
* docs/reference/glib/glib-sections.txt:
* glib/gmarkup.h:
* glib/gmarkup.c: add g_markup_collect_attributes and new enumerated
type GMarkupCollectType. Add new error code
G_MARKUP_ERROR_MISSING_ATTRIBUTE that is thrown by the attribute
collector.
svn path=/trunk/; revision=5947
2007-11-21 21:06:47 Tim Janik <timj@imendio.com>
* Makefile.decl: initialize automake variables EXTRA_DIST and
TEST_PROGS for unconditional appending via += in other makefiles.
define recursive test targets: test, test-report, perf-report,
full-report, as described here:
http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html
* Makefile.am:
* build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
* build/win32/Makefile.am, build/Makefile.am:
* docs/Makefile.am, docs/reference/Makefile.am:
* docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
* gmodule/Makefile.am, tests/Makefile.am:
* tests/refcount/Makefile.am, tests/gobject/Makefile.am:
* glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
* glib/tests/Makefile.am, glib/pcre/Makefile.am:
* glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
* gthread/Makefile.am, glib/Makefile.am:
include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.
* glib/tests/Makefile.am: removed example testing rules.
* glib/tests/testing.c: conditionalized performance and slow tests.
* glib/gtestutils.h:
* glib/gtestutils.c: work around g_test_config_vars not changing its
exported value after value assignments, aparently due to symbol aliases.
* glib/gtester.c: fixed off-by-one error which produced junk in logs.
* configure.in: check for python >= 2.4 and provide $PYTHON for scripts.
svn path=/trunk/; revision=5914
2007-11-18 Matthias Clasen <mclasen@redhat.com>
* glib/tmpl/option.sgml: Update the example to demonstrate
error handling. (#497033, Matti Katila)
svn path=/trunk/; revision=5865
006-11-15 Ryan Lortie <desrt@desrt.ca>
* docs/reference/glib/tmpl/markup.sgml:
* glib/gmarkup.h:
* glib/gmarkup.c: new flag G_MARKUP_PREFIX_ERROR_POSITION to cause the
parser to prepend location information (ie: "Error on line %d, char
%d:") to errors generated by the GMarkupParser callbacks.
Closes#496046.
svn path=/trunk/; revision=5860
2007-11-09 Matthias Clasen <mclasen@redhat.com>
* glib/tmpl/patterns.sgml: Add a warning about strlen vs
g_utf8_strlen. (#455725, Michael Rasmussen)
svn path=/trunk/; revision=5855
2007-11-07 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gmarkup.[hc] (g_markup_parse_context_get_element_stack):
New function, to get the stack of open elements. (#452887,
Ryan Lortie)
svn path=/trunk/; revision=5816
2007-08-20 Behdad Esfahbod <behdad@gnome.org>
* glib/tmpl/unicode.sgml: Document that GUnicodeScript is
interchangeable with PangoScript.
2007-08-20 Behdad Esfahbod <behdad@gnome.org>
* glib/guniprop.c: Document that g_unichar_get_script() is
equivalent to pango_script_for_unichar().
svn path=/trunk/; revision=5713
2007-08-15 Mikael Hallendal <micke@imendio.com>
* glib/tmpl/keyfile.sgml: Clearify that only comments can precede
groups in Key-files. (#466768)
svn path=/trunk/; revision=5706
Thu Jul 12 15:45:27 2007 Tim Janik <timj@imendio.com>
* glib/tmpl/threads.sgml: document major caveat of g_private_set/g_private_get,
i.e. not retaining private data across g_thread_init.
svn path=/trunk/; revision=5628
2007-06-23 Emmanuele Bassi <ebassi@gnome.org>
* glib/tmpl/memory.sgml: Add a clarification about pairing the
memory allocation and free functions, and not mix system's
malloc/free with the corresponding GLib ones. (#450216, Hubert
Figuiere)
svn path=/trunk/; revision=5586
The g_timeout_add_seconds() API lacks a _full() counterpart, allowing the
setting of a destroy notification function to be invoked when the timeout
source is removed.
This patch adds g_timeout_add_seconds_full() to the public API and
reimplements g_timeout_add_seconds() as a call to g_timeout_add_seconds_full().
svn path=/trunk/; revision=5575
2007-06-15 Sebastian Wilhelmi <wilhelmi@google.com>
* docs/reference/glib/tmpl/threads.sgml: Extended the comments on
those functions, that are NOOPs, before g_thread_init() has been
called. (#447583)
* glib/gthread.c (g_static_mutex_free): Clarified comment to
remind myself, tha calling g_static_mutex_free() before
g_thread_init() is safe.
svn path=/trunk/; revision=5567
2007-06-14 Ryan Lortie <desrt@desrt.ca>
* docs/reference/glib/glib-sections.txt:
* glib/glib/symbols:
* glib/gstring.[ch] (g_string_printf_internal): Improve
performance by removing the use of an intermediate g_malloc'd
buffer. Rename to g_string_append_vprintf, document, and expose
along with g_string_vprintf as new public API (#57693).
svn path=/trunk/; revision=5564
2007-06-04 Matthias Clasen <mclasen@redhat.com>
Add support for a number of special directories, as
defined by the xdg-user-dirs specification. (#432651,
Bastien Nocera, Emmanuele Bassi, Michael Natterer)
* glib/glib.symbols:
* glib/gutils.[hc]: Add the GUserDirectory enum and
g_get_user_special_dir(), with implementations based
on the xdg-user-dirs spec and on native interfaces
for Win32 and Carbon.
* configure.in: Add Carbon checks.
* tests/tetsglib.c: Test g_get_user_special_dir().
svn path=/trunk/; revision=5528
2007-06-03 Yevgen Muntyan <muntyan@tamu.edu>
* glib/gregex.c:
* glib/gregex.h: New functions: g_regex_ref(), g_regex_unref() which
replaces g_regex_free(); g_match_info_get_regex(), g_match_info_get_string();
g_regex_check_replacement().
Made g_match_info_expand_references() accept NULL; changed GRegexEvalCallback
to take only arguments which are likely to be actualy used.
* docs/reference/glib/glib-sections.txt:
* glib/glib.symbols: Added new functions.
* tests/regex-test.c: Test them.
* docs/reference/glib/tmpl/gregex.sgml: Updated GRegexEvalCallback docs.
svn path=/trunk/; revision=5524
2007-05-11 Matthias Clasen <mclasen@redhat.com>
* glib/goption.c: Allow G_OPTION_ARG_CALLBACK for
G_OPTION_REMAINING. (#437297, Dave Benson)
* tests/option-test.c: Add a test for this.
svn path=/trunk/; revision=5487
2007-04-24 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/goption.h:
* glib/goption.c (g_option_context_get_help): New function to
get the formatted help string. (#336089, Dom Lachowicz)
svn path=/trunk/; revision=5456
Fri Mar 16 16:04:42 2007 Tim Janik <timj@gtk.org>
* glib/tmpl/scanner.sgml: some fixups, mention that changing scanner
config during the parsing phase is supported behavior.
svn path=/trunk/; revision=5416
2007-03-06 Matthias Clasen <mclasen@redhat.com>
* glib/tmpl/trees-nary.sgml: Fix a typo in the docs for
g_node_first_child(). (#409395, Vincent Untz)
svn path=/trunk/; revision=5380
2007-02-03 Soren Sandmann <sandmann@daimi.au.dk>
* glib/gsequence.[ch]: New files implementing GSequence, a list
implemented using a binary tree.
* glib/glib.h, glib/glib.symbols: Update for GSequence.
* docs/reference: Add documentation for GSequence
* tests: Add sequence-test.c, a thorough test of all of
the GSequence API.
svn path=/trunk/; revision=5322
2007-01-26 Matthias Clasen <mclasen@redhat.com>
* configure.in: Define G_GNUC_INTERNAL for Sun Studio
as __hidden. (#342981, Brian Cameron)
* glib/gconvert.c:
* glib/gutf8.c: Move G_GNUC_INTERNAL uses to the right
spot.
2
svn path=/trunk/; revision=5317
2007-01-17 Behdad Esfahbod <behdad@gnome.org>
* glib/tmpl/macros_misc.sgml: Put back G_GNUC_HAVE_VISIBILITY
doc that was removed accidentally.
svn path=/trunk/; revision=5289
2007-01-12 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Rework the handling of invalid
keys/groups again. We are back to being liberal about
what we accept, and only reject things that would lead
to non-rereadable keyfiles.
* tests/keyfile-test.c: Adapt tests.
svn path=/trunk/; revision=5254
2006-12-18 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Tighten up the check for allowed
key and group names. (#343191, Tommi Komulainen)
* tests/keyfile-test.c: Test handling of key and group names.
2006-12-14 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c (g_key_file_add_group): If the group
is already there, make it current. (#385910, Joe Halliwell)
* tests/keyfile-test.c: Add a test for duplicate groups/keys.
Mon Sep 11 14:57:46 2006 Tim Janik <timj@imendio.com>
* glib/running.sgml: documented G_DEBUG flags resident-modules
and bind-now-modules, patch by Christian Persch on bug #345099.