From: Andrea Zagli Date: Sun, 20 Dec 2020 08:18:13 +0000 (+0100) Subject: Migrated filter element to GValue. X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=b293031904967125045fc5cc6f3a6093cd3dd9ed;p=zakform%2Flibzakform Migrated filter element to GValue. --- diff --git a/configure.ac b/configure.ac index 73f7225..c3472e9 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.65) -AC_INIT([libzakform], [0.1.0], [azagli@libero.it]) +AC_INIT([libzakform], [0.2.0], [azagli@libero.it]) AC_CONFIG_SRCDIR([src/libzakform.h]) AC_CONFIG_HEADER([config.h]) diff --git a/src/formelement.c b/src/formelement.c index 538c716..5691016 100644 --- a/src/formelement.c +++ b/src/formelement.c @@ -330,14 +330,14 @@ zak_form_element_filter (ZakFormElement *element) for (i = 0; i < priv->pa_filters->len; i++) { - gchar *value; - gchar *val; + GValue *value; + GValue *val; - value = zak_form_element_get_value (element); + value = zak_form_element_get_value_gvalue (element); val = zak_form_element_filter_filter ((ZakFormElementFilter *)g_ptr_array_index (priv->pa_filters, i), value); - zak_form_element_set_value (element, val); + zak_form_element_set_value_gvalue (element, val); } } diff --git a/src/formelementfilter.c b/src/formelementfilter.c index 12a2e9f..d2e4bd9 100644 --- a/src/formelementfilter.c +++ b/src/formelementfilter.c @@ -149,12 +149,12 @@ gchar return g_strdup (priv->id); } -gchar -*zak_form_element_filter_filter (ZakFormElementFilter *self, const gchar *value) +GValue +*zak_form_element_filter_filter (ZakFormElementFilter *self, GValue *value) { - gchar *ret; + GValue *ret; - g_return_val_if_fail (ZAK_FORM_IS_ELEMENT_FILTER (self), g_strdup ("")); + g_return_val_if_fail (ZAK_FORM_IS_ELEMENT_FILTER (self), NULL); if (zak_form_element_filter_get_enabled (self) && ZAK_FORM_ELEMENT_FILTER_GET_CLASS (self)->filter != NULL) @@ -163,7 +163,7 @@ gchar } else { - ret = g_strdup (value); + ret = NULL; } return ret; diff --git a/src/formelementfilter.h b/src/formelementfilter.h index e859963..5cdd3f0 100644 --- a/src/formelementfilter.h +++ b/src/formelementfilter.h @@ -35,13 +35,13 @@ struct _ZakFormElementFilterClass GObjectClass parent_cleass; gboolean (*xml_parsing) (ZakFormElementFilter *filter, xmlNode *xnode); - gchar *(*filter) (ZakFormElementFilter *self, const gchar *value); + GValue *(*filter) (ZakFormElementFilter *self, GValue *value); void (*get_xml) (ZakFormElementFilter *self, xmlNode *xnode, const gchar *version); }; gboolean zak_form_element_filter_xml_parsing (ZakFormElementFilter *filter, xmlNode *xnode); -gchar *zak_form_element_filter_filter (ZakFormElementFilter *self, const gchar *value); +GValue *zak_form_element_filter_filter (ZakFormElementFilter *self, GValue *value); void zak_form_element_filter_set_id (ZakFormElementFilter *filter, const gchar *id); diff --git a/src/formelementfilterluc.c b/src/formelementfilterluc.c index 10d4cb7..1287116 100644 --- a/src/formelementfilterluc.c +++ b/src/formelementfilterluc.c @@ -43,7 +43,7 @@ static void zak_form_element_filter_luc_dispose (GObject *gobject); static void zak_form_element_filter_luc_finalize (GObject *gobject); static gboolean zak_form_element_filter_luc_xml_parsing (ZakFormElementFilter *filter, xmlNode *xnode); -static gchar *zak_form_element_filter_luc_filter (ZakFormElementFilter *filter_luc, const gchar *value); +GValue *zak_form_element_filter_luc_filter (ZakFormElementFilter *filter_luc, GValue *value); static void zak_form_element_filter_luc_get_xml (ZakFormElementFilter *filter, xmlNode *xnode, const gchar *version); enum @@ -194,11 +194,11 @@ zak_form_element_filter_luc_finalize (GObject *gobject) parent_class->finalize (gobject); } -static gchar +GValue *zak_form_element_filter_luc_filter (ZakFormElementFilter *filter_luc, - const gchar *value) + GValue *value) { - gchar *ret; + GValue *ret; gchar *_value; guint i; guint l; @@ -207,9 +207,10 @@ static gchar ZakFormElementFilterLuc *zak_form_element = ZAK_FORM_ELEMENT_FILTER_LUC (filter_luc); ZakFormElementFilterLucPrivate *priv = zak_form_element_filter_luc_get_instance_private (zak_form_element); - g_return_val_if_fail (value != NULL, g_strdup ("")); + g_return_val_if_fail (value != NULL, NULL); + g_return_val_if_fail (G_VALUE_HOLDS_STRING (value), NULL); - _value = g_strdup (value); + _value = g_strdup (g_value_get_string (value)); l = strlen (_value); switch (priv->type) @@ -237,7 +238,7 @@ static gchar break; } - ret = g_strdup (_value); + ret = zak_utils_gvalue_new_string (_value); g_free (_value); return ret; diff --git a/src/formelementfiltertrim.c b/src/formelementfiltertrim.c index d7f576e..ab10bbd 100644 --- a/src/formelementfiltertrim.c +++ b/src/formelementfiltertrim.c @@ -20,6 +20,8 @@ #include #endif +#include + #include "formelementfilter.h" #include "formelementfiltertrim.h" @@ -39,7 +41,7 @@ static void zak_form_element_filter_trim_dispose (GObject *gobject); static void zak_form_element_filter_trim_finalize (GObject *gobject); static gboolean zak_form_element_filter_trim_xml_parsing (ZakFormElementFilter *filter, xmlNode *xnode); -static gchar *zak_form_element_filter_trim_filter (ZakFormElementFilter *filter_trim, const gchar *value); +GValue *zak_form_element_filter_trim_filter (ZakFormElementFilter *filter_trim, GValue *value); static void zak_form_element_filter_trim_get_xml (ZakFormElementFilter *filter, xmlNode *xnode, const gchar *version); struct _ZakFormElementFilterTrim @@ -170,18 +172,19 @@ zak_form_element_filter_trim_finalize (GObject *gobject) parent_class->finalize (gobject); } -static gchar +GValue *zak_form_element_filter_trim_filter (ZakFormElementFilter *filter_trim, - const gchar *value) + GValue *value) { - gchar *ret; + GValue *ret; gchar *_value; - g_return_val_if_fail (value != NULL, g_strdup ("")); + g_return_val_if_fail (value != NULL, NULL); + g_return_val_if_fail (G_VALUE_HOLDS_STRING (value), NULL); - _value = g_strdup (value); + _value = g_strdup (g_value_get_string (value)); - ret = g_strdup (g_strstrip (_value)); + ret = zak_utils_gvalue_new_string (g_strstrip (_value)); return ret; }