From 14999998d43450efcb2c9f690c2fa98c0262d017 Mon Sep 17 00:00:00 2001 From: Sebastian Dröge Date: Sat, 9 Dec 2006 19:27:28 +0000 Subject: gst/apetag/gstapedemux.c: We need to be able to read and parse any possible floating point string format ("1,234" or ... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message from CVS: Patch by: Sebastian Dröge * gst/apetag/gstapedemux.c: (ape_demux_parse_tags): We need to be able to read and parse any possible floating point string format ("1,234" or "1.234") irrespective of the current locale. g_strod() will parse the former only in certain locales though, so we really need to canonicalise the separator to '.' and then use g_ascii_strtod() to make sure we can parse either version at all times. Fixes #382982 for real. --- gst/apetag/gstapedemux.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gst/apetag') diff --git a/gst/apetag/gstapedemux.c b/gst/apetag/gstapedemux.c index 73f9e467..87c1c675 100644 --- a/gst/apetag/gstapedemux.c +++ b/gst/apetag/gstapedemux.c @@ -280,7 +280,11 @@ ape_demux_parse_tags (const guint8 * data, gint size) gdouble v_double; gchar *endptr; - v_double = g_strtod (val, &endptr); + /* floating point strings can be "4,123" or "4.123" depending on + * the locale. We need to be able to parse and read either version + * no matter what our current locale is */ + g_strdelimit (val, ",", '.'); + v_double = g_ascii_strtod (val, &endptr); if (endptr != val) { g_value_init (&v, G_TYPE_DOUBLE); g_value_set_double (&v, v_double); -- cgit