Enlightenment CVS committal

Author  : chaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src


Modified Files:
        entropy_config.c 


Log Message:
* Hook config further into config_core

===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/entropy_config.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- entropy_config.c    31 Aug 2006 10:42:09 -0000      1.20
+++ entropy_config.c    31 Aug 2006 13:09:34 -0000      1.21
@@ -16,6 +16,7 @@
 static Eet_Data_Descriptor *_entropy_config_mime_binding_edd;
 static Eet_Data_Descriptor *_entropy_config_mime_binding_action_edd;
 static Eet_Data_Descriptor *_entropy_config_structure_edd;
+static Eet_Data_Descriptor *_entropy_config_item_edd;
 
 
 void entropy_config_loaded_config_free()
@@ -118,6 +119,25 @@
        EET_DATA_DESCRIPTOR_ADD_LIST(_entropy_config_mime_binding_edd, 
Entropy_Config_Mime_Binding, "actions", actions, 
                                _entropy_config_mime_binding_action_edd);
 
+       _entropy_config_item_edd =
+       eet_data_descriptor_new("entropy_config_item", 
sizeof(Entropy_Config_Item),
+                              (void *(*)(void *))evas_list_next,
+                              (void *(*)(void *, void *))evas_list_append,
+                              (void *(*)(void *))evas_list_data,
+                              (void *(*)(void *))evas_list_free,
+                              (void (*)
+                               (void *,
+                                int (*)(void *, const char *, void *, void *),
+                                void *))evas_hash_foreach, (void *(*)(void *,
+                                                                      const 
char
+                                                                      *,
+                                                                      void *))
+                              evas_hash_add, (void (*)(void *))evas_hash_free);
+       EET_DATA_DESCRIPTOR_ADD_BASIC(_entropy_config_item_edd, 
Entropy_Config_Item,
+                                 "name", name, EET_T_STRING);
+       EET_DATA_DESCRIPTOR_ADD_BASIC(_entropy_config_item_edd, 
Entropy_Config_Item,
+                                 "value", value, EET_T_STRING);
+
        _entropy_config_structure_edd = 
        eet_data_descriptor_new("entropy_config_mime_binding", 
sizeof(Entropy_Config_Structure),
                               (void *(*)(void *))evas_list_next,
@@ -138,8 +158,6 @@
                                  "uri", uri, EET_T_STRING);
 
        
-
-
        _entropy_config_loaded_edd =
        eet_data_descriptor_new("entropy_config_loaded", 
sizeof(Entropy_Config_Loaded),
                               (void *(*)(void *))evas_list_next,
@@ -158,7 +176,8 @@
                                _entropy_config_mime_binding_edd);
        EET_DATA_DESCRIPTOR_ADD_LIST(_entropy_config_loaded_edd, 
Entropy_Config_Loaded, "structures", structures, 
                                _entropy_config_structure_edd);
-
+       EET_DATA_DESCRIPTOR_ADD_LIST(_entropy_config_loaded_edd, 
Entropy_Config_Loaded, "Misc_Config_Load", Misc_Config_Load, 
+                               _entropy_config_item_edd);
 }
 
 
@@ -299,10 +318,6 @@
        _Entropy_Config = entropy_malloc(sizeof(Entropy_Config));
        mimes = entropy_malloc(sizeof(Entropy_Config_Loaded));
 
-       /*Init the misc hash*/
-       entropy_config_items_init();
-
-
        i = strlen(entropy_core_home_dir_get()) + strlen("/.e/entropy") + 2;
        _Entropy_Config->config_dir = entropy_malloc(i * sizeof(char));
        snprintf(_Entropy_Config->config_dir, i, "%s/%s", 
entropy_core_home_dir_get(), "/.e/entropy");
@@ -393,6 +408,9 @@
        ecore_config_init("entropy_config");
        ecore_config_file_load(_Entropy_Config->config_dir_and_file);
 
+       /*Init the misc hash*/
+       entropy_config_items_init();
+
        return _Entropy_Config;
 }
 
@@ -619,16 +637,27 @@
 
 void entropy_config_items_init()
 {
-       _Entropy_Config->Misc_Config = ecore_hash_new(ecore_str_hash, 
ecore_str_compare);
+       _Entropy_Config->Loaded_Config->Misc_Config = 
ecore_hash_new(ecore_str_hash, ecore_str_compare);
 }
 
 void entropy_config_misc_item_set_str(char* item, char* value)
 {
-       ecore_hash_set(_Entropy_Config->Misc_Config, strdup(item), 
strdup(value));
+       Entropy_Config_Item* c_item;
+       
+       if 
(!(c_item=ecore_hash_get(_Entropy_Config->Loaded_Config->Misc_Config, item))) {
+               c_item = calloc(1,sizeof(Entropy_Config_Item));
+               c_item->name = strdup(item);
+               if (value) c_item->value = strdup(value);
+               ecore_hash_set(_Entropy_Config->Loaded_Config->Misc_Config, 
c_item->name, c_item);
+               
+       } else {
+               if (c_item->value) free(c_item->value);
+               if (value) c_item->value = strdup(c_item->value);
+       }
        printf ("Set '%s' -> '%s'\n",item, value);
 }
 
 char* entropy_config_misc_item_get_str(char* item)
 {
-       return ecore_hash_get(_Entropy_Config->Misc_Config, item);
+       return ecore_hash_get(_Entropy_Config->Loaded_Config->Misc_Config, 
item);
 }



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to