From e243f982a80388962ecd23f18ff50001324e9ed4 Mon Sep 17 00:00:00 2001 From: raster Date: Sat, 30 Jul 2005 09:09:31 +0000 Subject: [PATCH] solaris breakage - fix. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/e17/libs/eet@15956 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/eet_data.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/lib/eet_data.c b/src/lib/eet_data.c index bdcb45f..1e35962 100644 --- a/src/lib/eet_data.c +++ b/src/lib/eet_data.c @@ -336,6 +336,7 @@ static int eet_data_get_float(void *src, void *src_end, void *dst) { float *d; + float tf; char *s, *str, *p, *prev_locale; int len; @@ -350,7 +351,10 @@ eet_data_get_float(void *src, void *src_end, void *dst) str[len] = 0; prev_locale = setlocale(LC_NUMERIC, "C"); - *d = (float)atof(str); +/* solaris atof is broken and doesnt understand %a format as a float */ +/* *d = (float)atof(str); */ + sscanf(str, "%a", &tf); + *d = (float)tf; if (prev_locale) setlocale(LC_NUMERIC, prev_locale); free(str); @@ -380,7 +384,8 @@ eet_data_put_float(void *src, int *size_ret) static int eet_data_get_double(void *src, void *src_end, void *dst) { - double *d; + double *d, td; + float tf; char *s, *str, *p, *prev_locale; int len; @@ -395,7 +400,10 @@ eet_data_get_double(void *src, void *src_end, void *dst) str[len] = 0; prev_locale = setlocale(LC_NUMERIC, "C"); - *d = (double)atof(str); +/* solaris atof is broken and doesnt understand %a format as a float */ +/* *d = (double)atof(str); */ + sscanf(str, "%a", &tf); + *d = (double)tf; if (prev_locale) setlocale(LC_NUMERIC, prev_locale); free(str); -- 2.7.4