Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_config
Modified Files:
ecore_config_db.c ecore_config_storage.c
Log Message:
locale safety and no printfs :)
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_config/ecore_config_db.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ecore_config_db.c 19 Oct 2004 06:34:20 -0000 1.1
+++ ecore_config_db.c 19 Oct 2004 07:17:42 -0000 1.2
@@ -11,6 +11,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <locale.h>
struct _Ecore_Config_DB_File
{
@@ -116,6 +117,7 @@
if (data)
{
int l;
+ char *prev_locale;
if (size <= 2)
{
@@ -134,7 +136,10 @@
free(data);
return 0;
}
+
+ prev_locale = setlocale(LC_NUMERIC, "C");
*dest = atoi(data + l + 1);
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
free(data);
}
return 0;
@@ -150,6 +155,7 @@
if (data)
{
int l;
+ char *prev_locale;
if (size <= 2)
{
@@ -168,7 +174,10 @@
free(data);
return 0;
}
+
+ prev_locale = setlocale(LC_NUMERIC, "C");
*dest = atof(data + l + 1);
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
free(data);
}
return 0;
@@ -253,8 +262,11 @@
{
char buf[256];
int num;
+ char *prev_locale;
+ prev_locale = setlocale(LC_NUMERIC, "C");
num = snprintf(buf, sizeof(buf), "%s %i ", "int", val);
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
buf[3] = 0;
buf[num - 1] = 0;
eet_write(db->ef, key, buf, num, 1);
@@ -265,10 +277,15 @@
{
char buf[256];
int num;
+ char *prev_locale;
- num = snprintf(buf, sizeof(buf), "%s %f ", "float", val);
+ prev_locale = setlocale(LC_NUMERIC, "C");
+ num = snprintf(buf, sizeof(buf), "%s %16.16f ", "float", val);
+ if (prev_locale) setlocale(LC_NUMERIC, prev_locale);
+ printf("WRITE \"%s\"\n", buf);
buf[5] = 0;
buf[num - 1] = 0;
+ printf("--P2 \"%s\"\n", buf + 6);
eet_write(db->ef, key, buf, num, 1);
}
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_config/ecore_config_storage.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ecore_config_storage.c 19 Oct 2004 06:34:20 -0000 1.2
+++ ecore_config_storage.c 19 Oct 2004 07:17:42 -0000 1.3
@@ -81,7 +81,7 @@
for (x = 0; x < key_count; x++)
{
type = _ecore_config_db_key_type_get(db, keys[x]);
- printf("%s == %s\n", keys[x], type);
+ printf("\"%s\" == \"%s\"\n", keys[x], type);
if (!type) type = "?";
if (!strcmp(type, "int"))
{
-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs