#include <glib.h>
#include <glib-object.h>
#include <string.h>
+#include <inttypes.h>
#include "values.h"
static void dict_delete_key(gpointer data);
}
else if (tp == G_TYPE_INT64)
{
- g_message("Type %s value %ld", "int64", g_value_get_int64(gval));
+ g_message("Type %s value %" PRId64, "int64", g_value_get_int64(gval));
}
else if (tp == G_TYPE_DOUBLE)
{
GType typa;
GType typb;
+ if ((vala == NULL && valb != NULL) || (vala != NULL && valb == NULL))
+ {
+ return 1;
+ }
typa = G_VALUE_TYPE(vala);
typb = G_VALUE_TYPE(valb);
if (typa != typb)
}
static void
+xform_double_string(const GValue *dval, GValue *sval)
+{
+ gchar *str;
+ double val = g_value_get_double(dval);
+ str = g_strdup_printf("%g", val);
+ g_value_take_string(sval, str);
+}
+
+static void
xform_boolean_double(const GValue *bval, GValue *dval)
{
gboolean b = g_value_get_boolean(bval);
xform_string_double);
g_value_register_transform_func(G_TYPE_BOOLEAN, G_TYPE_DOUBLE,
xform_boolean_double);
+ g_value_register_transform_func(G_TYPE_DOUBLE, G_TYPE_STRING,
+ xform_double_string);
}