diff --git a/legacy/ecore/src/bin/ecore_config.c b/legacy/ecore/src/bin/ecore_config.c index d9b6dabf7c..dc404daa2c 100644 --- a/legacy/ecore/src/bin/ecore_config.c +++ b/legacy/ecore/src/bin/ecore_config.c @@ -16,268 +16,282 @@ int pathcmp(const char *s1, const char *s2) { - char *s1d, *s2d; + char *s1d, *s2d; - // strip common part of paths - while(*s1 && *s2 && *s1 == *s2) { - s1++; - s2++; - } + // strip common part of paths + while(*s1 && *s2 && *s1 == *s2) + { + s1++; + s2++; + } - // handle /foo/bar/baz <> /foo/bar_baz properly - if (*s1 == '/' && *s2 != '/') return -1; - if (*s1 != '/' && *s2 == '/') return 1; + // handle /foo/bar/baz <> /foo/bar_baz properly + if (*s1 == '/' && *s2 != '/') return -1; + if (*s1 != '/' && *s2 == '/') return 1; - // skip leading / - if (*s1 == '/') s1++; - if (*s2 == '/') s2++; + // skip leading / + if (*s1 == '/') s1++; + if (*s2 == '/') s2++; - // order folders before files - s1d = strchr(s1, '/'); - s2d = strchr(s2, '/'); - if (s1d != NULL && s2d == NULL) return -1; - if (s1d == NULL && s2d != NULL) return 1; + // order folders before files + s1d = strchr(s1, '/'); + s2d = strchr(s2, '/'); + if (s1d != NULL && s2d == NULL) return -1; + if (s1d == NULL && s2d != NULL) return 1; - return strcmp(s1, s2); + return strcmp(s1, s2); } int del(const char *key) { - Ecore_Config_Prop *e; - e = ecore_config_get(key); - if(e == NULL) return -1; + Ecore_Config_Prop *e; + e = ecore_config_get(key); + if(e == NULL) return -1; - ecore_config_dst(e); - return 0; + ecore_config_dst(e); + return 0; } int get(const char *key) { - Ecore_Config_Prop *e; + Ecore_Config_Prop *e; - if (!(e = ecore_config_get(key))) { - fprintf(stderr, "No such property\n"); - return -1; - } - - switch (e->type) { + if (!(e = ecore_config_get(key))) + { + fprintf(stderr, "No such property\n"); + return -1; + } + + switch (e->type) + { case ECORE_CONFIG_NIL: - printf("\n"); - break; + printf("\n"); + break; case ECORE_CONFIG_INT: - printf("integer %ld\n", ecore_config_int_get(key)); - break; + printf("integer %ld\n", ecore_config_int_get(key)); + break; case ECORE_CONFIG_BLN: - printf("bool %d\n", ecore_config_boolean_get(key)); - break; + printf("bool %d\n", ecore_config_boolean_get(key)); + break; case ECORE_CONFIG_FLT: - printf("float %lf\n", ecore_config_float_get(key)); - break; + printf("float %lf\n", ecore_config_float_get(key)); + break; case ECORE_CONFIG_STR: - printf("string \"%s\"\n", ecore_config_string_get(key)); - break; + printf("string \"%s\"\n", ecore_config_string_get(key)); + break; case ECORE_CONFIG_RGB: - printf("rgb \"%s\"\n", ecore_config_argbstr_get(key)); - break; + printf("rgb \"%s\"\n", ecore_config_argbstr_get(key)); + break; case ECORE_CONFIG_THM: - printf("theme \"%s\"\n", ecore_config_theme_get(key)); - break; + printf("theme \"%s\"\n", ecore_config_theme_get(key)); + break; default: - fprintf(stderr, "Property has unrecognised type"); - return -1; - } - return 0; + fprintf(stderr, "Property has unrecognised type"); + return -1; + } + return 0; } int list(const char *file) { - char *key; + char *key; - Eet_File *ef; - Ecore_Config_Prop *e; - Ecore_Sheap *keys; + Eet_File *ef; + Ecore_Config_Prop *e; + Ecore_Sheap *keys; - ef = eet_open(file, EET_FILE_MODE_READ); - if (!ef) return -1; + // Get number of keys and create heap for sort + ef = eet_open(file, EET_FILE_MODE_READ); + if (!ef) return -1; - keys = ecore_sheap_new(ECORE_COMPARE_CB(pathcmp), eet_num_entries(ef)); + keys = ecore_sheap_new(ECORE_COMPARE_CB(pathcmp), eet_num_entries(ef)); - eet_close(ef); + eet_close(ef); - e = __ecore_config_bundle_local->data; + e = __ecore_config_bundle_local->data; - do { - ecore_sheap_insert(keys, e->key); - } while((e = e->next)); + do + { + // don't show system settings + if( !(e->flags & ECORE_CONFIG_FLAG_SYSTEM) ) + ecore_sheap_insert(keys, e->key); + } + while((e = e->next)); - while((key = ecore_sheap_extract(keys))) { - printf("%-28s\t", key); - get(key); - } + while((key = ecore_sheap_extract(keys))) + { + printf("%-28s\t", key); + get(key); + } - return 0; + ecore_sheap_destroy(keys); + + return 0; } void usage_and_exit(const char *prog, int ret, const char *msg) { - if (msg) fprintf(stderr, msg); - fprintf(stderr, "Usage: %s \n", prog); - fprintf(stderr, "Modify ecore_config files\n\n"); - fprintf(stderr, "Options:\n"); - fprintf(stderr, " -c, --file=FILE config file\n"); - fprintf(stderr, " -k, --key=KEY must be given for all commands except -a\n\n"); - fprintf(stderr, "Commands:\n"); - fprintf(stderr, " -a, --list get all keys\n"); - fprintf(stderr, " -g, --get get key\n"); - fprintf(stderr, " -d, --del delete key\n"); - fprintf(stderr, " -b, --bool=VALUE set boolean\n"); - fprintf(stderr, " -f, --float=VALUE set float\n"); - fprintf(stderr, " -i, --int=VALUE set integer\n"); - fprintf(stderr, " -n, --nil set nil\n"); - fprintf(stderr, " -r, --rgb=VALUE set RGBA\n"); - fprintf(stderr, " -s, --string=VALUE set string\n"); - fprintf(stderr, " -t, --theme=VALUE set theme\n\n"); - exit(ret); + if (msg) fprintf(stderr, "%s\n\n", msg); + fprintf(stderr, "Usage: %s \n", prog); + fprintf(stderr, "Modify ecore_config files\n\n"); + fprintf(stderr, "Options:\n"); + fprintf(stderr, " -c, --file=FILE config file\n"); + fprintf(stderr, " -k, --key=KEY must be given for all commands except -a\n\n"); + fprintf(stderr, "Commands:\n"); + fprintf(stderr, " -a, --list get all keys\n"); + fprintf(stderr, " -g, --get get key\n"); + fprintf(stderr, " -d, --del delete key\n"); + fprintf(stderr, " -b, --bool=VALUE set boolean\n"); + fprintf(stderr, " -f, --float=VALUE set float\n"); + fprintf(stderr, " -i, --int=VALUE set integer\n"); + fprintf(stderr, " -n, --nil set nil\n"); + fprintf(stderr, " -r, --rgb=VALUE set RGBA\n"); + fprintf(stderr, " -s, --string=VALUE set string\n"); + fprintf(stderr, " -t, --theme=VALUE set theme\n\n"); + exit(ret); } int main(int argc, char * const argv[]) { - const char *prog, *file, *key; - void *value = (void *)NULL; - char cmd = 's'; - int type = -1; - int ret = 0; - int i; - float f; - - file = key = prog = NULL; + const char *prog, *file, *key; + void *value = (void *)NULL; + char cmd = 's'; + int type = -1; + int ret = 0; + int i; + float f; + + file = key = prog = NULL; - prog = strdup(argv[0]); + prog = strdup(argv[0]); - if(argc < 4) - usage_and_exit(prog, 2, NULL); + if(argc < 4) + usage_and_exit(prog, 2, NULL); - while(1) { - static struct option long_options[] = { - {"file", 1, 0, 'c'}, - {"list", 0, 0, 'a'}, - {"get", 0, 0, 'g'}, - {"del", 0, 0, 'd'}, - {"bool", 1, 0, 'b'}, - {"float", 1, 0, 'f'}, - {"int", 1, 0, 'i'}, - {"nil", 0, 0, 'n'}, - {"rgb", 1, 0, 'r'}, - {"string", 1, 0, 's'}, - {"theme", 1, 0, 't'}, - {"key", 1, 0, 'k'}, - {0, 0, 0, 0} - }; + while(1) + { + static struct option long_options[] = { + {"file", 1, 0, 'c'}, + {"list", 0, 0, 'a'}, + {"get", 0, 0, 'g'}, + {"del", 0, 0, 'd'}, + {"bool", 1, 0, 'b'}, + {"float", 1, 0, 'f'}, + {"int", 1, 0, 'i'}, + {"nil", 0, 0, 'n'}, + {"rgb", 1, 0, 'r'}, + {"string", 1, 0, 's'}, + {"theme", 1, 0, 't'}, + {"key", 1, 0, 'k'}, + {0, 0, 0, 0} + }; - ret = getopt_long(argc, argv, "c:agdb:f:i:nr:s:t:k:", long_options, NULL); - if(ret == -1) - break; + ret = getopt_long(argc, argv, "c:agdb:f:i:nr:s:t:k:", long_options, NULL); + if(ret == -1) + break; - switch(ret) { - case 'k': - key = strdup(optarg); - break; - case 'n': - type = ECORE_CONFIG_NIL; - value = NULL; - break; - case 'b': - type = ECORE_CONFIG_BLN; - i = atoi(optarg); - value = &i; - break; - case 'i': - type = ECORE_CONFIG_INT; - i = atoi(optarg); - value = &i; - break; - case 'f': - type = ECORE_CONFIG_FLT; - f = atof(optarg); - value = &f; - break; - case 'r': - type = ECORE_CONFIG_RGB; - value = strdup(optarg); - break; - case 's': - type = ECORE_CONFIG_STR; - value = strdup(optarg); - break; - case 't': - type = ECORE_CONFIG_THM; - value = strdup(optarg); - break; - case 'c': - file = strdup(optarg); - break; - case '?': - case ':': - usage_and_exit(prog, 2, "Bad argument\n"); - default: - cmd = ret; - break; - } - } + switch(ret) + { + case 'k': + key = strdup(optarg); + break; + case 'n': + type = ECORE_CONFIG_NIL; + value = NULL; + break; + case 'b': + type = ECORE_CONFIG_BLN; + i = atoi(optarg); + value = &i; + break; + case 'i': + type = ECORE_CONFIG_INT; + i = atoi(optarg); + value = &i; + break; + case 'f': + type = ECORE_CONFIG_FLT; + f = atof(optarg); + value = &f; + break; + case 'r': + type = ECORE_CONFIG_RGB; + value = strdup(optarg); + break; + case 's': + type = ECORE_CONFIG_STR; + value = strdup(optarg); + break; + case 't': + type = ECORE_CONFIG_THM; + value = strdup(optarg); + break; + case 'c': + file = strdup(optarg); + break; + case '?': + case ':': + usage_and_exit(prog, 2, "Bad argument"); + default: + cmd = ret; + break; + } + } - if(cmd == 's' && type == -1) - usage_and_exit(prog, 2, "You need to specify a command!\n"); + if(cmd == 's' && type == -1) + usage_and_exit(prog, 2, "You need to specify a command!"); - if(cmd != 'a' && key == NULL) - usage_and_exit(prog, 2, "You need to specify key!\n"); - - if(ecore_config_init("econfig") != ECORE_CONFIG_ERR_SUCC) { - fprintf(stderr, "Couldn't init ecore_config!\n"); - return 1; - } + if(cmd != 'a' && key == NULL) + usage_and_exit(prog, 2, "You need to specify key!"); + + if(ecore_config_init("econfig") != ECORE_CONFIG_ERR_SUCC) + { + fprintf(stderr, "Couldn't init ecore_config!"); + return 1; + } - // Remove non-file data - while (ecore_config_dst(__ecore_config_bundle_local->data)); + // Load configuration from file + ecore_config_file_load(file); - // Load configuration from file - ecore_config_file_load(file); + ret = 0; - ret = 0; + // Execute command + switch (cmd) + { + case 's': + if (ecore_config_typed_set(key, value, type) != ECORE_CONFIG_ERR_SUCC) + { + fprintf(stderr, "Set failed for %s", key); + ret = 1; + } else { + ecore_config_file_save(file); + } + break; + case 'd': + if(del(key)) + { + fprintf(stderr, "Delete failed for %s", key); + ret = 1; + } else { + ecore_config_file_save(file); + } + break; + case 'g': + if (get(key)) ret = 1; + break; + case 'a': + if (list(file)) ret = 1; + break; + } - // Execute command - switch (cmd) { - case 's': - if (ecore_config_typed_set(key, value, type) != ECORE_CONFIG_ERR_SUCC) { - fprintf(stderr, "Set failed for %s\n", key); - ret = 1; - } else { - ecore_config_file_save(file); - } - break; - case 'd': - if(del(key)) { - fprintf(stderr, "Delete failed for %s\n", key); - ret = 1; - } else { - ecore_config_file_save(file); - } - break; - case 'g': - if (get(key)) ret = 1; - break; - case 'a': - if (list(file)) ret = 1; - break; - } + ecore_config_shutdown(); - ecore_config_shutdown(); - - return ret; + return ret; } #else int diff --git a/legacy/ecore/src/lib/ecore_config/ecore_config.c b/legacy/ecore/src/lib/ecore_config/ecore_config.c index 56e31ac27b..ee7806af1b 100644 --- a/legacy/ecore/src/lib/ecore_config/ecore_config.c +++ b/legacy/ecore/src/lib/ecore_config/ecore_config.c @@ -164,9 +164,12 @@ ecore_config_data_get(const char *key) char * ecore_config_string_get(const char *key) { - Ecore_Config_Prop *e; + return _ecore_config_string_get( ecore_config_get(key) ); +} - e = ecore_config_get(key); +char * +_ecore_config_string_get(Ecore_Config_Prop *e) +{ return (e && (e->type == ECORE_CONFIG_STR) && e->ptr) ? strdup(e->ptr) : NULL; } @@ -180,9 +183,12 @@ ecore_config_string_get(const char *key) int ecore_config_boolean_get(const char *key) { - Ecore_Config_Prop *e; + return _ecore_config_boolean_get( ecore_config_get(key) ); +} - e = ecore_config_get(key); +int +_ecore_config_boolean_get(Ecore_Config_Prop *e) +{ return (e && ((e->type == ECORE_CONFIG_INT) || (e->type == ECORE_CONFIG_BLN))) ? (e->val != 0) : -1; } @@ -196,9 +202,12 @@ ecore_config_boolean_get(const char *key) long ecore_config_int_get(const char *key) { - Ecore_Config_Prop *e; + return _ecore_config_int_get( ecore_config_get(key) ); +} - e = ecore_config_get(key); +long +_ecore_config_int_get(Ecore_Config_Prop *e) +{ return (e && ((e->type == ECORE_CONFIG_INT) || (e->type == ECORE_CONFIG_RGB))) ? e->val : 0L; } @@ -212,12 +221,13 @@ ecore_config_int_get(const char *key) float ecore_config_float_get(const char *key) { - Ecore_Config_Prop *e; + return _ecore_config_float_get( ecore_config_get(key) ); +} - e = ecore_config_get(key); - return (e - && (e->type == - ECORE_CONFIG_FLT)) ? ((float)e->val / ECORE_CONFIG_FLOAT_PRECISION) : 0.0; +float +_ecore_config_float_get(Ecore_Config_Prop *e) +{ + return (e && (e->type == ECORE_CONFIG_FLT)) ? ((float)e->val / ECORE_CONFIG_FLOAT_PRECISION) : 0.0; } /** @@ -234,8 +244,7 @@ ecore_config_float_get(const char *key) int ecore_config_rgb_get(const char *key, int *r, int *g, int *b) { - int alpha; - return ecore_config_argb_get(key, &alpha, r, g, b); + return _ecore_config_argb_get( ecore_config_get(key), NULL, r, g, b); } /** @@ -252,16 +261,18 @@ ecore_config_rgb_get(const char *key, int *r, int *g, int *b) int ecore_config_argb_get(const char *key, int *a, int *r, int *g, int *b) { - Ecore_Config_Prop *e; - - e = ecore_config_get(key); + return _ecore_config_argb_get( ecore_config_get(key), a, r, g, b); +} +int +_ecore_config_argb_get(Ecore_Config_Prop *e, int *a, int *r, int *g, int *b) +{ if (e && ((e->type == ECORE_CONFIG_RGB))) { - *a = (e->val >> 24) & 0xff; - *r = (e->val >> 16) & 0xff; - *g = (e->val >> 8) & 0xff; - *b = e->val & 0xff; + if(a) *a = (e->val >> 24) & 0xff; + if(r) *r = (e->val >> 16) & 0xff; + if(g) *g = (e->val >> 8) & 0xff; + if(b) *b = e->val & 0xff; return ECORE_CONFIG_ERR_SUCC; } return ECORE_CONFIG_ERR_FAIL; @@ -293,11 +304,17 @@ ecore_config_rgbstr_get(const char *key) */ char * ecore_config_argbstr_get(const char *key) +{ + return _ecore_config_argbstr_get( ecore_config_get(key) ); +} + +char * +_ecore_config_argbstr_get(Ecore_Config_Prop *e) { char *r; r = NULL; - esprintf(&r, "#%08x", ecore_config_int_get(key)); + esprintf(&r, "#%08x", _ecore_config_int_get(e)); return r; } @@ -311,9 +328,12 @@ ecore_config_argbstr_get(const char *key) char * ecore_config_theme_get(const char *key) { - Ecore_Config_Prop *e; + return _ecore_config_theme_get( ecore_config_get(key) ); +} - e = ecore_config_get(key); +char * +_ecore_config_theme_get(Ecore_Config_Prop *e) +{ return (e && (e->type == ECORE_CONFIG_THM)) ? strdup(e->ptr) : NULL; } @@ -328,44 +348,47 @@ char * ecore_config_as_string_get(const char *key) { Ecore_Config_Prop *e; + char *val; char *r; + val = NULL; r = NULL; if (!(e = ecore_config_get(key))) E(0, "no such property, \"%s\"...\n", key); else { - const char *type = ecore_config_type_get(e); - switch (e->type) - { - case ECORE_CONFIG_NIL: - esprintf(&r, "%s:%s=", key, type); - break; - case ECORE_CONFIG_INT: - esprintf(&r, "%s:%s=%ld", key, type, ecore_config_int_get(key)); - break; - case ECORE_CONFIG_BLN: - esprintf(&r, "%s:%s=%ld", key, type, ecore_config_boolean_get(key)); - break; - case ECORE_CONFIG_FLT: - esprintf(&r, "%s:%s=%lf", key, type, ecore_config_float_get(key)); - break; - case ECORE_CONFIG_STR: - esprintf(&r, "%s:%s=\"%s\"", key, type, - ecore_config_string_get(key)); - break; - case ECORE_CONFIG_RGB: - esprintf(&r, "%s:%s=#%08x", key, type, ecore_config_int_get(key)); - break; - case ECORE_CONFIG_THM: - esprintf(&r, "%s:%s=\"%s\"", key, type, - ecore_config_theme_get(key)); - break; - default: - esprintf(&r, "%s:unknown_type", key); - break; - } + { + case ECORE_CONFIG_NIL: + val = strdup(""); + break; + case ECORE_CONFIG_INT: + esprintf(&val, "%ld", _ecore_config_int_get(e)); + break; + case ECORE_CONFIG_BLN: + esprintf(&val, "%ld", _ecore_config_boolean_get(e)); + break; + case ECORE_CONFIG_FLT: + esprintf(&val, "%lf", _ecore_config_float_get(e)); + break; + case ECORE_CONFIG_STR: + esprintf(&val, "\"%s\"", _ecore_config_string_get(e)); + break; + case ECORE_CONFIG_RGB: + esprintf(&val, "#%08x", _ecore_config_int_get(e)); + break; + case ECORE_CONFIG_THM: + esprintf(&val, "\"%s\"", _ecore_config_theme_get(e)); + break; + default: + esprintf(&r, "%s:unknown_type", key); + break; + } + if (val) + { + esprintf(&r, "%s:%s=%s", key, e->type, val); + free(val); + } } return r; } @@ -446,7 +469,7 @@ ecore_config_type_guess(const char *key, const char *val) l = NULL; - if ((p = ecore_config_get(key)) && p->type != ECORE_CONFIG_NIL) + if (key && (p = ecore_config_get(key)) && p->type != ECORE_CONFIG_NIL) return p->type; if (!val) diff --git a/legacy/ecore/src/lib/ecore_config/ecore_config_db.c b/legacy/ecore/src/lib/ecore_config/ecore_config_db.c index bdd443d970..6d17a4030d 100644 --- a/legacy/ecore/src/lib/ecore_config/ecore_config_db.c +++ b/legacy/ecore/src/lib/ecore_config/ecore_config_db.c @@ -1,5 +1,6 @@ #include "Ecore_Config.h" #include "ecore_config_private.h" +#include "ecore_config_util.h" #include #include @@ -220,64 +221,54 @@ _ecore_config_db_key_data_get(Ecore_Config_DB_File *db, const char *key, int *si }*/ void -_ecore_config_db_write(Ecore_Config_DB_File *db, const char *key) +_ecore_config_db_write(Ecore_Config_DB_File *db, Ecore_Config_Prop *e) { - char buf[256]; - char* str = NULL; - int num = 0; char *prev_locale; - // Ecore_Config_Prop *prop; - Ecore_Config_Type type; + char *val = NULL; + char *r = NULL; + int num; - - type = ecore_config_get(key)->type; - prev_locale = setlocale(LC_NUMERIC, "C"); + prev_locale = setlocale(LC_NUMERIC, "C"); - switch (type) - { - case ECORE_CONFIG_INT: - num = snprintf(buf, sizeof(buf), "%c %i ", (char) type, - (int) ecore_config_int_get(key)); - break; - case ECORE_CONFIG_BLN: - num = snprintf(buf, sizeof(buf), "%c %i ", (char) type, - (int) ecore_config_boolean_get(key)); - break; - case ECORE_CONFIG_FLT: - num = snprintf(buf, sizeof(buf), "%c %16.16f ", (char) type, - ecore_config_float_get(key)); - break; - case ECORE_CONFIG_STR: { - int slen = (strlen(ecore_config_string_get(key)) * sizeof(char)) + 3; - str = malloc(slen); - num = snprintf(str, slen, "%c %s ", (char) type, - ecore_config_string_get(key)); - } - break; - case ECORE_CONFIG_THM: - num = snprintf(buf, sizeof(buf), "%c %s ", (char) type, - ecore_config_theme_get(key)); - break; - case ECORE_CONFIG_RGB: - num = snprintf(buf, sizeof(buf), "%c %s ", (char) type, - ecore_config_argbstr_get(key)); - break; - default: - E(0, "Type %d not handled\n", type); - } + switch (e->type) + { + case ECORE_CONFIG_INT: + esprintf(&val, "%i", _ecore_config_int_get(e)); + break; + case ECORE_CONFIG_BLN: + esprintf(&val, "%i", _ecore_config_boolean_get(e)); + break; + case ECORE_CONFIG_FLT: + esprintf(&val, "%16.16f", _ecore_config_float_get(e)); + break; + case ECORE_CONFIG_STR: + val = _ecore_config_string_get(e); + break; + case ECORE_CONFIG_THM: + val = _ecore_config_theme_get(e); + break; + case ECORE_CONFIG_RGB: + val = _ecore_config_argbstr_get(e); + break; + default: + E(0, "Type %d not handled\n", e->type); + } - if (prev_locale) setlocale(LC_NUMERIC, prev_locale); + if (prev_locale) + { + setlocale(LC_NUMERIC, prev_locale); + free(prev_locale); + } - if (!(type == ECORE_CONFIG_STR)) { - buf[1] = 0; - buf[num - 1] = 0; - eet_write(db->ef, (char*)key, buf, num, 1); - } else { - str[1] = 0; - str[num-1] = 0; - eet_write(db->ef, (char*)key, str, num, 1); - free(str); - } + if(val) + { + num = esprintf(&r, "%c%c%s%c", (char) e->type, 0, val, 0); + if(num) + eet_write(db->ef, e->key, r, num, 1); + free(r); + } + + free(val); } /* void diff --git a/legacy/ecore/src/lib/ecore_config/ecore_config_private.h b/legacy/ecore/src/lib/ecore_config/ecore_config_private.h index 2b8ed47d79..238fa8c0ee 100644 --- a/legacy/ecore/src/lib/ecore_config/ecore_config_private.h +++ b/legacy/ecore/src/lib/ecore_config/ecore_config_private.h @@ -23,6 +23,15 @@ void _ecore_config_db_close(Ecore_Config_DB_File *db); char **_ecore_config_db_keys_get(Ecore_Config_DB_File *db, int *num_ret); Ecore_Config_Type _ecore_config_db_key_type_get(Ecore_Config_DB_File *db, const char *key); int _ecore_config_db_read(Ecore_Config_DB_File *db, const char *key); -void _ecore_config_db_write(Ecore_Config_DB_File *db, const char *key); +void _ecore_config_db_write(Ecore_Config_DB_File *db, Ecore_Config_Prop *e); + +int _ecore_config_boolean_get(Ecore_Config_Prop *e); +char *_ecore_config_string_get(Ecore_Config_Prop *e); +long _ecore_config_int_get(Ecore_Config_Prop *e); +int _ecore_config_argb_get(Ecore_Config_Prop *e, int *a, int *r, + int *g, int *b); +char *_ecore_config_argbstr_get(Ecore_Config_Prop *e); +float _ecore_config_float_get(Ecore_Config_Prop *e); +char *_ecore_config_theme_get(Ecore_Config_Prop *e); #endif diff --git a/legacy/ecore/src/lib/ecore_config/ecore_config_storage.c b/legacy/ecore/src/lib/ecore_config/ecore_config_storage.c index e8380291cd..827b152e8d 100644 --- a/legacy/ecore/src/lib/ecore_config/ecore_config_storage.c +++ b/legacy/ecore/src/lib/ecore_config/ecore_config_storage.c @@ -23,7 +23,7 @@ ecore_config_load(void) char file[PATH_MAX]; if (!__ecore_config_app_name) - return ECORE_CONFIG_ERR_FAIL; + return ECORE_CONFIG_ERR_FAIL; snprintf(file, PATH_MAX, "%s/.e/apps/%s/config.eet", getenv("HOME"), __ecore_config_app_name); @@ -43,7 +43,7 @@ ecore_config_save(void) char file[PATH_MAX]; if (!__ecore_config_app_name) - return ECORE_CONFIG_ERR_FAIL; + return ECORE_CONFIG_ERR_FAIL; snprintf(file, PATH_MAX, "%s/.e/apps/%s/config.eet", getenv("HOME"), __ecore_config_app_name); @@ -85,7 +85,7 @@ ecore_config_file_load(const char *file) { for (x = 0; x < key_count; x++) { - _ecore_config_db_read(db, keys[x]); + _ecore_config_db_read(db, keys[x]); } } _ecore_config_db_close(db); @@ -162,7 +162,7 @@ ecore_config_file_save(const char *file) continue; } - _ecore_config_db_write(db, next->key); + _ecore_config_db_write(db, next); next = next->next; }