From 21fb2943b50e2c8730799922a5fd1099da957ed7 Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Mon, 15 Apr 2002 09:40:08 +0000 Subject: [PATCH] serialize doubles and floats using the locale independent 2002-04-15 Sven Neumann * app/config/gimpconfig-serialize.c: serialize doubles and floats using the locale independent g_ascii_formatd(). --- ChangeLog | 5 +++++ app/config/gimpconfig-serialize.c | 16 ++++++++++++++++ libgimpconfig/gimpconfig-serialize.c | 16 ++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/ChangeLog b/ChangeLog index 67585129f6..38a2e79228 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-04-15 Sven Neumann + + * app/config/gimpconfig-serialize.c: serialize doubles and floats + using the locale independent g_ascii_formatd(). + 2002-04-14 Michael Natterer * app/core/gimpunits.c: serialize the unit factor with diff --git a/app/config/gimpconfig-serialize.c b/app/config/gimpconfig-serialize.c index d11d41d343..08b275502b 100644 --- a/app/config/gimpconfig-serialize.c +++ b/app/config/gimpconfig-serialize.c @@ -245,6 +245,22 @@ gimp_config_serialize_value (const GValue *value, return TRUE; } + if (G_VALUE_HOLDS_DOUBLE (value) || G_VALUE_HOLDS_FLOAT (value)) + { + gdouble v_double; + gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; + + if (G_VALUE_HOLDS_DOUBLE (value)) + v_double = g_value_get_double (value); + else + v_double = (gdouble) g_value_get_float (value); + + g_ascii_formatd (buf, sizeof (buf), "%f", v_double); + g_string_append_c (str, ' '); + g_string_append (str, buf); + return TRUE; + } + if (g_value_type_transformable (G_VALUE_TYPE (value), G_TYPE_STRING)) { GValue tmp_value = { 0, }; diff --git a/libgimpconfig/gimpconfig-serialize.c b/libgimpconfig/gimpconfig-serialize.c index d11d41d343..08b275502b 100644 --- a/libgimpconfig/gimpconfig-serialize.c +++ b/libgimpconfig/gimpconfig-serialize.c @@ -245,6 +245,22 @@ gimp_config_serialize_value (const GValue *value, return TRUE; } + if (G_VALUE_HOLDS_DOUBLE (value) || G_VALUE_HOLDS_FLOAT (value)) + { + gdouble v_double; + gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; + + if (G_VALUE_HOLDS_DOUBLE (value)) + v_double = g_value_get_double (value); + else + v_double = (gdouble) g_value_get_float (value); + + g_ascii_formatd (buf, sizeof (buf), "%f", v_double); + g_string_append_c (str, ' '); + g_string_append (str, buf); + return TRUE; + } + if (g_value_type_transformable (G_VALUE_TYPE (value), G_TYPE_STRING)) { GValue tmp_value = { 0, };