Fix 2 bugs in ecore_config
authorhandyande <handyande>
Tue, 13 Apr 2004 22:03:22 +0000 (22:03 +0000)
committerhandyande <handyande@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 13 Apr 2004 22:03:22 +0000 (22:03 +0000)
1) Ints can now be set to 0 successfully
2) Floats are operating correctly
hmm - now examine/exsh should work with engage ;)

SVN revision: 9716

legacy/ecore/src/lib/ecore_config/ecore_config.c

index e318b13..029f0e5 100644 (file)
@@ -207,7 +207,7 @@ static int ecore_config_val_typed(Ecore_Config_Prop *e,void *val,int type) {
   v=0;
   e->type=PT_NIL;
 
-  if(!val)
+  if(!(val || type==PT_INT))
     e->ptr=NULL;
   else {
     if (type==PT_INT) {
@@ -314,10 +314,14 @@ int ecore_config_set_typed(Ecore_Config_Bundle *t,const char *key,void *val,int
 
 int ecore_config_set(Ecore_Config_Bundle *t,const char *key,char *val) {
   int type;
+  float tmpf;
   type=ecore_config_guess_type(val);
   if (type == PT_INT)
     return ecore_config_set_typed(t,key,(void*) atoi(val),type);
-  else
+  else if  (type == PT_FLT) {
+    tmpf = atof(val);
+    return ecore_config_set_typed(t,key,(void*) &tmpf,type);
+  } else
     return ecore_config_set_typed(t,key,(void*) val,type); }
 
 int ecore_config_set_as_string(const char *key,char *val) {