New function wkb_ibus_config_eet_dump
authorEduardo Lima (Etrunko) <eduardo.lima@intel.com>
Thu, 23 Oct 2014 16:50:05 +0000 (14:50 -0200)
committerEduardo Lima (Etrunko) <eduardo.lima@intel.com>
Mon, 27 Oct 2014 20:47:24 +0000 (18:47 -0200)
Only to be used for debugging purposes

Change-Id: Ia5317ae1dae342da5443f5f9d98a2edef8caa4d3
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
src/wkb-ibus-config-eet-test.c
src/wkb-ibus-config-eet.c
src/wkb-ibus-config-eet.h

index 1c993e58cbb4529e7f2660ef51eca09b1b92e7b2..21176c0ee5ae1c60b6ff97cf6ee0d78a49b7c728 100644 (file)
@@ -36,6 +36,7 @@ main (int argc, char *argv[])
      }
 
    cfg = wkb_ibus_config_eet_new("ibus-cfg.eet", NULL);
+   wkb_ibus_config_eet_dump(cfg);
    wkb_ibus_config_eet_free(cfg);
    ret = 0;
    wkb_ibus_config_eet_shutdown();
index 4f455cf70f6a66b3f1dabaaa2b89300d3c1f631c..0ca56ab7bae692d0ad77ff7fc00eac25137fc9df 100644 (file)
@@ -151,6 +151,61 @@ end:
    return ret;
 }
 
+void
+_config_section_dump(struct _config_section *base, const char *tab)
+{
+   Eina_List *node;
+   struct _config_section *sec;
+   struct wkb_config_key *key;
+   const char *sig, *new_tab;
+
+   EINA_LIST_FOREACH(base->keys, node, key)
+     {
+        printf("%s'%s/%s': ", tab, wkb_config_key_section(key), wkb_config_key_id(key));
+        sig = wkb_config_key_signature(key);
+        switch (*sig)
+          {
+           case 's':
+                {
+                   printf("'%s'\n", wkb_config_key_get_string(key));
+                   break;
+                }
+           case 'i':
+                {
+                   printf("%d\n", wkb_config_key_get_int(key));
+                   break;
+                }
+           case 'b':
+                {
+                   printf("%s\n", wkb_config_key_get_bool(key) ? "True" : "False");
+                   break;
+                }
+           case 'a':
+                {
+                   char **s, **slist = wkb_config_key_get_string_list(key);
+                   printf("{");
+                   for (s = slist; *s != NULL; ++s)
+                     {
+                        printf("'%s',", *s);
+                     }
+                   printf("}\n");
+                   free(slist);
+                   break;
+                }
+           default:
+              break;
+          }
+     }
+
+   new_tab = eina_stringshare_printf("\t%s", tab);
+   EINA_LIST_FOREACH(base->subsections, node, sec)
+     {
+        printf("%s%s'%s'\n", base->keys ? "\n" : "", tab, sec->id);
+        _config_section_dump(sec, new_tab);
+     }
+   eina_stringshare_del(new_tab);
+}
+
 #define _config_section_init(_section, _id, _parent) \
    do { \
         if (!_section) \
@@ -1180,3 +1235,16 @@ wkb_ibus_config_eet_shutdown()
 
    eet_shutdown();
 }
+
+void
+wkb_ibus_config_eet_dump(struct wkb_ibus_config_eet *eet)
+{
+   Eina_List *node;
+   struct _config_section *sec;
+
+   EINA_LIST_FOREACH(eet->sections, node, sec)
+     {
+        printf("'%s'\n", sec->id);
+        _config_section_dump(sec, "\t");
+     }
+}
index eeb72057b882d7b1f480388ee541bf7141509890..8fc9a6da9c59bc6bdec66ebbaa4d72cc4f704efb 100644 (file)
@@ -46,6 +46,7 @@ int wkb_ibus_config_eet_get_value_int(struct wkb_ibus_config_eet *config_eet, co
 Eina_Bool wkb_ibus_config_eet_get_value_bool(struct wkb_ibus_config_eet *config_eet, const char *section, const char *name);
 const char *wkb_ibus_config_eet_get_value_string(struct wkb_ibus_config_eet *config_eet, const char *section, const char *name);
 char **wkb_ibus_config_eet_get_value_string_list(struct wkb_ibus_config_eet *config_eet, const char *section, const char *name);
+void wkb_ibus_config_eet_dump(struct wkb_ibus_config_eet *config_eet);
 #ifdef __cplusplus
 }
 #endif