void _ecore_config_db_write(Ecore_Config_DB_File *db, Ecore_Config_Prop *e) { char *prev_locale= NULL; char *val = NULL; char *r = NULL; int num; prev_locale = setlocale(LC_NUMERIC, "C"); 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: WRN("Type %d not handled", e->type); } if (prev_locale) { setlocale(LC_NUMERIC, prev_locale); } 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); }
/** * Returns a color property as a string of hexadecimal characters. * @param key The property key. * @return A string of hexadecimal characters in the format #aarrggbb. * @ingroup Ecore_Config_Get_Group */ EAPI char * ecore_config_argbstr_get(const char *key) { return _ecore_config_argbstr_get( ecore_config_get(key) ); }