+void
+myreversefunc (GtkTreeModel *model, gint col, gint row,
+ const gchar *in, GValue *out)
+{
+ PsppireDataStore *store = PSPPIRE_DATA_STORE (model);
+
+ const struct variable *variable = psppire_dict_get_variable (store->dict, col);
+ g_return_if_fail (variable);
+
+ const struct fmt_spec *fmt = var_get_print_format (variable);
+
+ int width = var_get_width (variable);
+
+ union value val;
+ value_init (&val, width);
+ char *xx =
+ data_in (ss_cstr (in), psppire_dict_encoding (store->dict),
+ fmt->type, &val, width, "UTF-8");
+
+ GVariant *vrnt = value_variant_new (&val, width);
+ value_destroy (&val, width);
+
+ g_value_init (out, G_TYPE_VARIANT);
+ g_value_set_variant (out, vrnt);
+ free (xx);
+}
+
+gchar *
+myconvfunc (GtkTreeModel *model, gint col, gint row, const GValue *v)
+{
+ PsppireDataStore *store = PSPPIRE_DATA_STORE (model);