[PATCH] (u)int64 + string value transforms



Hi. This patch replaces my previous one.

* add (u)int64 to the type conversion routines in gvaluetransform.c
* add value_transform_string_* routines

All of this has been tested in GStreamer in the XML serialization and
restoration routines, but only in my local copy.

Please take a look at this at your earliest convenience.

Best regards,

Andy Wingo
? glib.patch
? glib.patch-2
? gobject/glib.patch
Index: gobject/gvaluetransform.c
===================================================================
RCS file: /cvs/gnome/glib/gobject/gvaluetransform.c,v
retrieving revision 1.2
diff -u -r1.2 gvaluetransform.c
--- gobject/gvaluetransform.c	2001/03/08 21:34:53	1.2
+++ gobject/gvaluetransform.c	2002/02/07 03:57:48
@@ -17,9 +17,11 @@
  * Boston, MA 02111-1307, USA.
  */
 #include        <string.h>
+#include	<stdio.h> /* sscanf */
 
 #include	"gvalue.h"
 #include	"genums.h"
+#include	"glibconfig.h" /* G_G[U]INT64_FORMAT */
 
 
 /* same type transforms
@@ -34,6 +36,10 @@
 #define	value_transform_uint_uint	value_transform_memcpy_data0
 #define	value_transform_long_long	value_transform_memcpy_data0
 #define	value_transform_ulong_ulong	value_transform_memcpy_data0
+#define	value_transform_int64_int64	value_transform_memcpy_data0
+#define	value_transform_uint64_uint64	value_transform_memcpy_data0
+#define	value_transform_int64_int64	value_transform_memcpy_data0
+#define	value_transform_uint64_uint64	value_transform_memcpy_data0
 #define	value_transform_float_float	value_transform_memcpy_data0
 #define	value_transform_double_double	value_transform_memcpy_data0
 
@@ -53,6 +59,8 @@
 DEFINE_CAST (int_uint,		v_int,    guint,   v_uint);
 DEFINE_CAST (int_long,		v_int,    glong,   v_long);
 DEFINE_CAST (int_ulong,		v_int,    gulong,  v_ulong);
+DEFINE_CAST (int_int64,		v_int,    gint64,  v_int64);
+DEFINE_CAST (int_uint64,	v_int,    guint64, v_uint64);
 DEFINE_CAST (int_float,		v_int,    gfloat,  v_float);
 DEFINE_CAST (int_double,	v_int,    gdouble, v_double);
 DEFINE_CAST (uint_s8,		v_uint,   gint8,   v_int);
@@ -60,6 +68,8 @@
 DEFINE_CAST (uint_int,		v_uint,   gint,    v_int);
 DEFINE_CAST (uint_long,		v_uint,   glong,   v_long);
 DEFINE_CAST (uint_ulong,	v_uint,   gulong,  v_ulong);
+DEFINE_CAST (uint_int64,	v_uint,   gint64,  v_int64);
+DEFINE_CAST (uint_uint64,	v_uint,   guint64, v_uint64);
 DEFINE_CAST (uint_float,	v_uint,   gfloat,  v_float);
 DEFINE_CAST (uint_double,	v_uint,   gdouble, v_double);
 DEFINE_CAST (long_s8,		v_long,   gint8,   v_int);
@@ -67,21 +77,45 @@
 DEFINE_CAST (long_int,		v_long,   gint,    v_int);
 DEFINE_CAST (long_uint,		v_long,   guint,   v_uint);
 DEFINE_CAST (long_ulong,	v_long,   gulong,  v_ulong);
+DEFINE_CAST (long_int64,	v_long,   gint64,  v_int64);
+DEFINE_CAST (long_uint64,	v_long,   guint64, v_uint64);
 DEFINE_CAST (long_float,	v_long,   gfloat,  v_float);
 DEFINE_CAST (long_double,	v_long,   gdouble, v_double);
 DEFINE_CAST (ulong_s8,		v_ulong,  gint8,   v_int);
 DEFINE_CAST (ulong_u8,		v_ulong,  guint8,  v_uint);
 DEFINE_CAST (ulong_int,		v_ulong,  gint,    v_int);
 DEFINE_CAST (ulong_uint,	v_ulong,  guint,   v_uint);
+DEFINE_CAST (ulong_int64,	v_ulong,  gint64,  v_int64);
+DEFINE_CAST (ulong_uint64,	v_ulong,  guint64, v_uint64);
 DEFINE_CAST (ulong_long,	v_ulong,  glong,   v_long);
 DEFINE_CAST (ulong_float,	v_ulong,  gfloat,  v_float);
 DEFINE_CAST (ulong_double,	v_ulong,  gdouble, v_double);
+DEFINE_CAST (int64_s8,		v_int64,  gint8,   v_int);
+DEFINE_CAST (int64_u8,		v_int64,  guint8,  v_uint);
+DEFINE_CAST (int64_int,		v_int64,  gint,    v_int);
+DEFINE_CAST (int64_uint,	v_int64,  guint,   v_uint);
+DEFINE_CAST (int64_long,	v_int64,  glong,   v_long);
+DEFINE_CAST (int64_uint64,	v_int64,  guint64, v_uint64);
+DEFINE_CAST (int64_ulong,	v_int64,  gulong,  v_ulong);
+DEFINE_CAST (int64_float,	v_int64,  gfloat,  v_float);
+DEFINE_CAST (int64_double,	v_int64,  gdouble, v_double);
+DEFINE_CAST (uint64_s8,		v_uint64, gint8,   v_int);
+DEFINE_CAST (uint64_u8,		v_uint64, guint8,  v_uint);
+DEFINE_CAST (uint64_int,	v_uint64, gint,    v_int);
+DEFINE_CAST (uint64_uint,	v_uint64, guint,   v_uint);
+DEFINE_CAST (uint64_long,	v_uint64, glong,   v_long);
+DEFINE_CAST (uint64_ulong,	v_uint64, gulong,  v_ulong);
+DEFINE_CAST (uint64_int64,	v_uint64, gint64,  v_int64);
+DEFINE_CAST (uint64_float,	v_uint64, gfloat,  v_float);
+DEFINE_CAST (uint64_double,	v_uint64, gdouble, v_double);
 DEFINE_CAST (float_s8,		v_float,  gint8,   v_int);
 DEFINE_CAST (float_u8,		v_float,  guint8,  v_uint);
 DEFINE_CAST (float_int,		v_float,  gint,    v_int);
 DEFINE_CAST (float_uint,	v_float,  guint,   v_uint);
 DEFINE_CAST (float_long,	v_float,  glong,   v_long);
 DEFINE_CAST (float_ulong,	v_float,  gulong,  v_ulong);
+DEFINE_CAST (float_int64,	v_float,  gint64,  v_int64);
+DEFINE_CAST (float_uint64,	v_float,  guint64, v_uint64);
 DEFINE_CAST (float_double,	v_float,  gdouble, v_double);
 DEFINE_CAST (double_s8,		v_double, gint8,   v_int);
 DEFINE_CAST (double_u8,		v_double, guint8,  v_uint);
@@ -89,6 +123,8 @@
 DEFINE_CAST (double_uint,	v_double, guint,   v_uint);
 DEFINE_CAST (double_long,	v_double, glong,   v_long);
 DEFINE_CAST (double_ulong,	v_double, gulong,  v_ulong);
+DEFINE_CAST (double_int64,	v_double, gint64,  v_int64);
+DEFINE_CAST (double_uint64,	v_double, guint64, v_uint64);
 DEFINE_CAST (double_float,	v_double, gfloat,  v_float);
 
 
@@ -105,9 +141,11 @@
 DEFINE_BOOL_CHECK (uint_bool,	v_uint);
 DEFINE_BOOL_CHECK (long_bool,	v_long);
 DEFINE_BOOL_CHECK (ulong_bool,	v_uint);
+DEFINE_BOOL_CHECK (int64_bool,	v_int64);
+DEFINE_BOOL_CHECK (uint64_bool,	v_uint64);
 
 
-/* string printouts
+/* string printouts and scanning
  */
 #define	DEFINE_SPRINTF(func_name, from_member, format)				\
     static void									\
@@ -117,17 +155,38 @@
       dest_value->data[0].v_pointer =						\
         g_strdup_printf ((format), src_value->data[0].from_member);		\
     }
-DEFINE_SPRINTF (int_string,	v_int,	  "%d");
-DEFINE_SPRINTF (uint_string,	v_uint,	  "%u");
-DEFINE_SPRINTF (long_string,	v_long,	  "%ld");
-DEFINE_SPRINTF (ulong_string,	v_ulong,  "%lu");
-DEFINE_SPRINTF (float_string,	v_float,  "%f");
-DEFINE_SPRINTF (double_string,	v_double, "%f");
+#define	DEFINE_SSCANF(func_name, to_member, format)				\
+    static void									\
+    value_transform_##func_name (const GValue *src_value,			\
+			         GValue       *dest_value)			\
+    {										\
+      if (src_value->data[0].v_pointer)						\
+        sscanf (src_value->data[0].v_pointer,					\
+                (format), &dest_value->data[0].to_member);			\
+    }
+#define DEFINE_SPRINTF_SSCANF(type, format) 					\
+    DEFINE_SPRINTF (type##_string, v_##type, format)				\
+    DEFINE_SSCANF  (string_##type, v_##type, format)
+DEFINE_SPRINTF_SSCANF (int,	"%d");
+DEFINE_SPRINTF_SSCANF (uint,	"%u");
+DEFINE_SPRINTF_SSCANF (long,	"%ld");
+DEFINE_SPRINTF_SSCANF (ulong,	"%lu");
+DEFINE_SPRINTF_SSCANF (int64,	"%" G_GINT64_FORMAT);
+DEFINE_SPRINTF_SSCANF (uint64,	"%" G_GUINT64_FORMAT);
+DEFINE_SPRINTF_SSCANF (float,	"%f");
+DEFINE_SPRINTF_SSCANF (double,	"%f");
 
 
 /* special cases
  */
 static void
+value_transform_string_bool (const GValue *src_value,
+			     GValue       *dest_value)
+{
+  if (src_value->data[0].v_pointer)
+    dest_value->data[0].v_int = ! strcmp (src_value->data[0].v_pointer, "TRUE");
+}
+static void
 value_transform_bool_string (const GValue *src_value,
 			     GValue       *dest_value)
 {
@@ -155,6 +214,7 @@
 
   g_type_class_unref (class);
 }
+#define value_transform_string_enum value_transform_string_int
 static void
 value_transform_flags_string (const GValue *src_value,
 			      GValue       *dest_value)
@@ -191,6 +251,27 @@
 
   g_type_class_unref (class);
 }
+static void
+value_transform_string_flags (const GValue *src_value,
+			      GValue       *dest_value)
+{
+  GFlagsClass *class = g_type_class_ref (G_VALUE_TYPE (dest_value));
+  gchar **split, **walk;
+  GFlagsValue *flags_value = NULL;
+
+  if (src_value->data[0].v_uint)
+    {
+      split = g_strsplit (src_value->data[0].v_pointer, " | ", 0);
+
+      for (walk = split; *walk; walk++)
+        if ((flags_value = g_flags_get_value_by_name (class, *walk)))
+          dest_value->data[0].v_uint |= flags_value->value;
+      
+      g_strfreev (split);
+    }
+
+  g_type_class_unref (class);
+}
 
 
 /* registration
@@ -203,7 +284,7 @@
    */
 #define	SKIP____register_transform_func(type1,type2,transform_func)	/* skip questionable transforms */
 
-  /* numeric types (plus to string) */
+  /* numeric and string types */
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_CHAR,		value_transform_int_int);
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_UCHAR,		value_transform_int_u8);
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_BOOLEAN,		value_transform_int_bool);
@@ -211,6 +292,8 @@
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_UINT,		value_transform_int_uint);
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_LONG,		value_transform_int_long);
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_ULONG,		value_transform_int_ulong);
+  g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_INT64,		value_transform_int_int64);
+  g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_UINT64,		value_transform_int_uint64);
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_ENUM,		value_transform_int_int);
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_FLAGS,		value_transform_int_uint);
   g_value_register_transform_func (G_TYPE_CHAR,		G_TYPE_FLOAT,		value_transform_int_float);
@@ -223,6 +306,8 @@
   g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_UINT,		value_transform_uint_uint);
   g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_LONG,		value_transform_uint_long);
   g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_ULONG,		value_transform_uint_ulong);
+  g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_INT64,		value_transform_uint_int64);
+  g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_UINT64,		value_transform_uint_uint64);
   g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_ENUM,		value_transform_uint_int);
   g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_FLAGS,		value_transform_uint_uint);
   g_value_register_transform_func (G_TYPE_UCHAR,	G_TYPE_FLOAT,		value_transform_uint_float);
@@ -235,6 +320,8 @@
   g_value_register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_UINT,		value_transform_int_uint);
   g_value_register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_LONG,		value_transform_int_long);
   g_value_register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_ULONG,		value_transform_int_ulong);
+  g_value_register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_INT64,		value_transform_int_int64);
+  g_value_register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_UINT64,		value_transform_int_uint64);
   g_value_register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_ENUM,		value_transform_int_int);
   g_value_register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_FLAGS,		value_transform_int_uint);
   SKIP____register_transform_func (G_TYPE_BOOLEAN,	G_TYPE_FLOAT,		value_transform_int_float);
@@ -247,6 +334,8 @@
   g_value_register_transform_func (G_TYPE_INT,		G_TYPE_UINT,		value_transform_int_uint);
   g_value_register_transform_func (G_TYPE_INT,		G_TYPE_LONG,		value_transform_int_long);
   g_value_register_transform_func (G_TYPE_INT,		G_TYPE_ULONG,		value_transform_int_ulong);
+  g_value_register_transform_func (G_TYPE_INT,		G_TYPE_INT64,		value_transform_int_int64);
+  g_value_register_transform_func (G_TYPE_INT,		G_TYPE_UINT64,		value_transform_int_uint64);
   g_value_register_transform_func (G_TYPE_INT,		G_TYPE_ENUM,		value_transform_int_int);
   g_value_register_transform_func (G_TYPE_INT,		G_TYPE_FLAGS,		value_transform_int_uint);
   g_value_register_transform_func (G_TYPE_INT,		G_TYPE_FLOAT,		value_transform_int_float);
@@ -259,6 +348,8 @@
   g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_UINT,		value_transform_uint_uint);
   g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_LONG,		value_transform_uint_long);
   g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_ULONG,		value_transform_uint_ulong);
+  g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_INT64,		value_transform_uint_int64);
+  g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_UINT64,		value_transform_uint_uint64);
   g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_ENUM,		value_transform_uint_int);
   g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_FLAGS,		value_transform_uint_uint);
   g_value_register_transform_func (G_TYPE_UINT,		G_TYPE_FLOAT,		value_transform_uint_float);
@@ -271,6 +362,8 @@
   g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_UINT,		value_transform_long_uint);
   g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_LONG,		value_transform_long_long);
   g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_ULONG,		value_transform_long_ulong);
+  g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_INT64,		value_transform_long_int64);
+  g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_UINT64,		value_transform_long_uint64);
   g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_ENUM,		value_transform_long_int);
   g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_FLAGS,		value_transform_long_uint);
   g_value_register_transform_func (G_TYPE_LONG,		G_TYPE_FLOAT,		value_transform_long_float);
@@ -283,11 +376,41 @@
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_UINT,		value_transform_ulong_uint);
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_LONG,		value_transform_ulong_long);
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_ULONG,		value_transform_ulong_ulong);
+  g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_INT64,		value_transform_ulong_int64);
+  g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_UINT64,		value_transform_ulong_uint64);
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_ENUM,		value_transform_ulong_int);
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_FLAGS,		value_transform_ulong_uint);
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_FLOAT,		value_transform_ulong_float);
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_DOUBLE,		value_transform_ulong_double);
   g_value_register_transform_func (G_TYPE_ULONG,	G_TYPE_STRING,		value_transform_ulong_string);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_CHAR,		value_transform_int64_s8);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_UCHAR,		value_transform_int64_u8);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_BOOLEAN,		value_transform_int64_bool);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_INT,		value_transform_int64_int);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_UINT,		value_transform_int64_uint);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_LONG,		value_transform_int64_long);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_ULONG,		value_transform_int64_ulong);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_INT64,		value_transform_int64_int64);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_UINT64,		value_transform_int64_uint64);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_ENUM,		value_transform_int64_int);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_FLAGS,		value_transform_int64_uint);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_FLOAT,		value_transform_int64_float);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_DOUBLE,		value_transform_int64_double);
+  g_value_register_transform_func (G_TYPE_INT64,	G_TYPE_STRING,		value_transform_int64_string);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_CHAR,		value_transform_uint64_s8);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_UCHAR,		value_transform_uint64_u8);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_BOOLEAN,		value_transform_uint64_bool);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_INT,		value_transform_uint64_int);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_UINT,		value_transform_uint64_uint);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_LONG,		value_transform_uint64_long);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_ULONG,		value_transform_uint64_ulong);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_INT64,		value_transform_uint64_int64);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_UINT64,		value_transform_uint64_uint64);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_ENUM,		value_transform_uint64_int);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_FLAGS,		value_transform_uint64_uint);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_FLOAT,		value_transform_uint64_float);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_DOUBLE,		value_transform_uint64_double);
+  g_value_register_transform_func (G_TYPE_UINT64,	G_TYPE_STRING,		value_transform_uint64_string);
   g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_CHAR,		value_transform_int_s8);
   g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_UCHAR,		value_transform_int_u8);
   SKIP____register_transform_func (G_TYPE_ENUM,		G_TYPE_BOOLEAN,		value_transform_int_bool);
@@ -295,6 +418,8 @@
   g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_UINT,		value_transform_int_uint);
   g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_LONG,		value_transform_int_long);
   g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_ULONG,		value_transform_int_ulong);
+  g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_INT64,		value_transform_int_int64);
+  g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_UINT64,		value_transform_int_uint64);
   g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_ENUM,		value_transform_int_int);
   g_value_register_transform_func (G_TYPE_ENUM,		G_TYPE_FLAGS,		value_transform_int_uint);
   SKIP____register_transform_func (G_TYPE_ENUM,		G_TYPE_FLOAT,		value_transform_int_float);
@@ -307,6 +432,8 @@
   g_value_register_transform_func (G_TYPE_FLAGS,	G_TYPE_UINT,		value_transform_uint_uint);
   g_value_register_transform_func (G_TYPE_FLAGS,	G_TYPE_LONG,		value_transform_uint_long);
   g_value_register_transform_func (G_TYPE_FLAGS,	G_TYPE_ULONG,		value_transform_uint_ulong);
+  g_value_register_transform_func (G_TYPE_FLAGS,	G_TYPE_INT64,		value_transform_uint_int64);
+  g_value_register_transform_func (G_TYPE_FLAGS,	G_TYPE_UINT64,		value_transform_uint_uint64);
   SKIP____register_transform_func (G_TYPE_FLAGS,	G_TYPE_ENUM,		value_transform_uint_int);
   g_value_register_transform_func (G_TYPE_FLAGS,	G_TYPE_FLAGS,		value_transform_uint_uint);
   SKIP____register_transform_func (G_TYPE_FLAGS,	G_TYPE_FLOAT,		value_transform_uint_float);
@@ -319,6 +446,8 @@
   g_value_register_transform_func (G_TYPE_FLOAT,	G_TYPE_UINT,		value_transform_float_uint);
   g_value_register_transform_func (G_TYPE_FLOAT,	G_TYPE_LONG,		value_transform_float_long);
   g_value_register_transform_func (G_TYPE_FLOAT,	G_TYPE_ULONG,		value_transform_float_ulong);
+  g_value_register_transform_func (G_TYPE_FLOAT,	G_TYPE_INT64,		value_transform_float_int64);
+  g_value_register_transform_func (G_TYPE_FLOAT,	G_TYPE_UINT64,		value_transform_float_uint64);
   SKIP____register_transform_func (G_TYPE_FLOAT,	G_TYPE_ENUM,		value_transform_float_int);
   SKIP____register_transform_func (G_TYPE_FLOAT,	G_TYPE_FLAGS,		value_transform_float_uint);
   g_value_register_transform_func (G_TYPE_FLOAT,	G_TYPE_FLOAT,		value_transform_float_float);
@@ -331,11 +460,23 @@
   g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_UINT,		value_transform_double_uint);
   g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_LONG,		value_transform_double_long);
   g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_ULONG,		value_transform_double_ulong);
+  g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_INT64,		value_transform_double_int64);
+  g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_UINT64,		value_transform_double_uint64);
   SKIP____register_transform_func (G_TYPE_DOUBLE,	G_TYPE_ENUM,		value_transform_double_int);
   SKIP____register_transform_func (G_TYPE_DOUBLE,	G_TYPE_FLAGS,		value_transform_double_uint);
   g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_FLOAT,		value_transform_double_float);
   g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_DOUBLE,		value_transform_double_double);
   g_value_register_transform_func (G_TYPE_DOUBLE,	G_TYPE_STRING,		value_transform_double_string);
-  /* string types */
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_BOOLEAN,		value_transform_string_bool);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_INT,		value_transform_string_int);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_UINT,		value_transform_string_uint);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_LONG,		value_transform_string_long);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_ULONG,		value_transform_string_ulong);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_INT64,		value_transform_string_int64);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_UINT64,		value_transform_string_uint64);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_ENUM,		value_transform_string_enum);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_FLAGS,		value_transform_string_flags);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_FLOAT,		value_transform_string_float);
+  g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_DOUBLE,		value_transform_string_double);
   g_value_register_transform_func (G_TYPE_STRING,	G_TYPE_STRING,		value_transform_string_string);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]