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