mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-04 18:26:19 +01:00
Bug 620350 - add g_variant_builder_add_parsed()
A delicious blend of g_variant_new_parsed() and g_variant_builder_add_value(). Now available in a GLib near you.
This commit is contained in:
parent
44db2b6b74
commit
9562726f35
@ -2900,6 +2900,7 @@ g_variant_builder_init
|
||||
g_variant_builder_clear
|
||||
g_variant_builder_add_value
|
||||
g_variant_builder_add
|
||||
g_variant_builder_add_parsed
|
||||
g_variant_builder_end
|
||||
g_variant_builder_open
|
||||
g_variant_builder_close
|
||||
|
@ -1811,6 +1811,7 @@ g_variant_byteswap
|
||||
#if IN_FILE(__G_VARIANT_PARSER_C__)
|
||||
g_variant_new_parsed
|
||||
g_variant_new_parsed_va
|
||||
g_variant_builder_add_parsed
|
||||
g_variant_parse
|
||||
g_variant_parser_get_error_quark
|
||||
#endif
|
||||
|
@ -2248,5 +2248,49 @@ g_variant_new_parsed (const gchar *format,
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_variant_builder_add_parsed:
|
||||
* @builder: a #GVariantBuilder
|
||||
* @format: a text format #GVariant
|
||||
* @...: arguments as per @format
|
||||
*
|
||||
* Adds to a #GVariantBuilder.
|
||||
*
|
||||
* This call is a convenience wrapper that is exactly equivalent to
|
||||
* calling g_variant_new_parsed() followed by
|
||||
* g_variant_builder_add_value().
|
||||
*
|
||||
* This function might be used as follows:
|
||||
*
|
||||
* <programlisting>
|
||||
* GVariant *
|
||||
* make_pointless_dictionary (void)
|
||||
* {
|
||||
* GVariantBuilder *builder;
|
||||
* int i;
|
||||
*
|
||||
* builder = g_variant_builder_new (G_VARIANT_TYPE_ARRAY);
|
||||
* g_variant_builder_add_parsed (builder, "{'width', <%i>}", 600);
|
||||
* g_variant_builder_add_parsed (builder, "{'title', <%s>}", "foo");
|
||||
* g_variant_builder_add_parsed (builder, "{'transparency', <0.5>}");
|
||||
* return g_variant_builder_end (builder);
|
||||
* }
|
||||
* </programlisting>
|
||||
*
|
||||
* Since: 2.26
|
||||
**/
|
||||
void
|
||||
g_variant_builder_add_parsed (GVariantBuilder *builder,
|
||||
const gchar *format,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, format);
|
||||
g_variant_builder_add_value (builder, g_variant_new_parsed_va (format, ap));
|
||||
va_end (ap);
|
||||
}
|
||||
|
||||
|
||||
#define __G_VARIANT_PARSER_C__
|
||||
#include "galiasdef.c"
|
||||
|
@ -197,6 +197,9 @@ void g_variant_builder_add_value (GVarian
|
||||
void g_variant_builder_add (GVariantBuilder *builder,
|
||||
const gchar *format_string,
|
||||
...);
|
||||
void g_variant_builder_add_parsed (GVariantBuilder *builder,
|
||||
const gchar *format,
|
||||
...);
|
||||
|
||||
GVariant * g_variant_new (const gchar *format_string,
|
||||
...);
|
||||
|
Loading…
Reference in New Issue
Block a user