This function is intended to be used by libraries based on #GVariant
that want to provide g_variant_get()-like functionality to their
users.
The API is more general than g_variant_get() to allow a wider range
of possible uses.
@format_string must still point to a valid format string, but it only
need to be nul-terminated if @endptr is %NULL. If @endptr is
non-%NULL then it is updated to point to the first character past the
end of the format string.
@app is a pointer to a #va_list. The arguments, according to
@format_string, are collected from this #va_list and the list is left
pointing to the argument following the last.
These two generalisations allow mixing of multiple calls to
g_variant_new_va() and g_variant_get_va() within a single actual
varargs call by the user.
@format_string determines the C types that are used for unpacking
the values and also determines if the values are copied or borrowed,
see the section on
[GVariant format strings][gvariant-format-strings-pointers].
This function is intended to be used by libraries based on #GVariant that want to provide g_variant_get()-like functionality to their users.
The API is more general than g_variant_get() to allow a wider range of possible uses.
@format_string must still point to a valid format string, but it only need to be nul-terminated if @endptr is %NULL. If @endptr is non-%NULL then it is updated to point to the first character past the end of the format string.
@app is a pointer to a #va_list. The arguments, according to @format_string, are collected from this #va_list and the list is left pointing to the argument following the last.
These two generalisations allow mixing of multiple calls to g_variant_new_va() and g_variant_get_va() within a single actual varargs call by the user.
@format_string determines the C types that are used for unpacking the values and also determines if the values are copied or borrowed, see the section on [GVariant format strings][gvariant-format-strings-pointers].