diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2018-05-14 17:26:09 +0200 |
---|---|---|
committer | Stefan Schmidt <s.schmidt@samsung.com> | 2018-05-14 18:26:21 +0200 |
commit | 9c7f5ca33b1af207a7cc98bd170547d7cf4b4fd4 (patch) | |
tree | d1913b1c894b046010464361f6b77f2e60d69503 | |
parent | b83da71d89a7da1a12f83c4fc2a2b0bc900146ad (diff) | |
download | efl-9c7f5ca33b1af207a7cc98bd170547d7cf4b4fd4.tar.gz |
elm: use build dir data when EFL_RUN_IN_TREE is set
Summary:
this prevents tests from loading user configs and providing inconsistent
results or accidentally modifying a user's config
fix T6863
Depends on D6013
Reviewers: cedric, stefan_schmidt
Reviewed By: stefan_schmidt
Subscribers: stefan_schmidt
Tags: #efl
Maniphest Tasks: T6863
Differential Revision: https://phab.enlightenment.org/D6014
-rw-r--r-- | src/lib/elementary/elm_config.c | 31 | ||||
-rw-r--r-- | src/lib/elementary/elm_main.c | 8 | ||||
-rw-r--r-- | src/lib/elementary/elm_priv.h | 2 |
3 files changed, 26 insertions, 15 deletions
diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c index 0a208f12b8..aa76258e04 100644 --- a/src/lib/elementary/elm_config.c +++ b/src/lib/elementary/elm_config.c @@ -1443,7 +1443,7 @@ _profile_fetch_from_conf(void) } } - for (i = 0; i < 2; i++) + for (i = 0; i < 2 && !_use_build_config; i++) { // user profile if (i == 0) @@ -1695,21 +1695,24 @@ _config_load(void) efl_loop_register(efl_main_loop_get(), EFL_CONFIG_INTERFACE, _efl_config_obj); efl_loop_register(efl_main_loop_get(), EFL_CONFIG_GLOBAL_CLASS, _efl_config_obj); efl_del_intercept_set(_efl_config_obj, _efl_config_obj_del); - _elm_config = _config_user_load(); - if (_elm_config) + if (!_use_build_config) { - if ((_elm_config->config_version >> ELM_CONFIG_VERSION_EPOCH_OFFSET) < ELM_CONFIG_EPOCH) - { - WRN("User's elementary config seems outdated and unusable. Fallback to load system config."); - _config_free(_elm_config); - _elm_config = NULL; - } - else + _elm_config = _config_user_load(); + if (_elm_config) { - if (_elm_config->config_version < ELM_CONFIG_VERSION) - _config_update(); - _env_get(); - return; + if ((_elm_config->config_version >> ELM_CONFIG_VERSION_EPOCH_OFFSET) < ELM_CONFIG_EPOCH) + { + WRN("User's elementary config seems outdated and unusable. Fallback to load system config."); + _config_free(_elm_config); + _elm_config = NULL; + } + else + { + if (_elm_config->config_version < ELM_CONFIG_VERSION) + _config_update(); + _env_get(); + return; + } } } diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index 3bcefcafdf..e5e43858a7 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -36,6 +36,8 @@ # define LIBEXT ".so" #endif +Eina_Bool _use_build_config; + static Elm_Version _version = { VMAJ, VMIN, VMIC, VREV }; EAPI Elm_Version *elm_version = &_version; @@ -708,6 +710,7 @@ elm_quicklaunch_init(int argc EINA_UNUSED, { _elm_ql_init_count++; if (_elm_ql_init_count > 1) return _elm_ql_init_count; + _use_build_config = !!getenv("EFL_RUN_IN_TREE"); eina_init(); _elm_log_dom = eina_log_domain_register("elementary", EINA_COLOR_LIGHTBLUE); if (!_elm_log_dom) @@ -751,7 +754,10 @@ elm_quicklaunch_init(int argc EINA_UNUSED, LOCALE_DIR); if (pfx) { - _elm_data_dir = eina_stringshare_add(eina_prefix_data_get(pfx)); + if (_use_build_config) + _elm_data_dir = eina_stringshare_add(PACKAGE_BUILD_DIR "/data/elementary"); + else + _elm_data_dir = eina_stringshare_add(eina_prefix_data_get(pfx)); _elm_lib_dir = eina_stringshare_add(eina_prefix_lib_get(pfx)); } if (!_elm_data_dir) _elm_data_dir = eina_stringshare_add("/"); diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h index 48e16161a7..fa2f926088 100644 --- a/src/lib/elementary/elm_priv.h +++ b/src/lib/elementary/elm_priv.h @@ -784,6 +784,8 @@ _elm_dgettext(const char *string) # endif +extern Eina_Bool _use_build_config; + /* Used by the paste handler */ void _elm_entry_entry_paste(Evas_Object *obj, const char *entry); |