Add xdg_app_run_apply_env_vars() helper

This commit is contained in:
Alexander Larsson
2015-05-12 11:13:44 +02:00
parent 11ec2f6895
commit 80ea030fe5
2 changed files with 25 additions and 0 deletions

View File

@@ -390,6 +390,29 @@ xdg_app_run_get_minimal_env (gboolean devel)
return (char **)g_ptr_array_free (env_array, FALSE);
}
char **
xdg_app_run_apply_env_vars (char **envp, GKeyFile *metakey)
{
glnx_strfreev char **keys = NULL;
gsize i, keys_count;
keys = g_key_file_get_keys (metakey, "Vars", &keys_count, NULL);
if (keys)
{
for (i = 0; i < keys_count; i++)
{
const char *key = keys[i];
g_autofree char *value = g_key_file_get_string (metakey, "Vars", key, NULL);
if (value)
envp = g_environ_setenv (envp, key, value, TRUE);
else
envp = g_environ_unsetenv (envp, key);
}
}
return envp;
}
GFile *
xdg_app_get_data_dir (const char *app_id)
{

View File

@@ -31,6 +31,8 @@ void xdg_app_run_add_environment_args (GPtrArray *argv_array,
const char **allow,
const char **forbid);
char ** xdg_app_run_get_minimal_env (gboolean devel);
char ** xdg_app_run_apply_env_vars (char **envp,
GKeyFile *metakey);
void xdg_app_run_add_x11_args (GPtrArray *argv_array);
void xdg_app_run_add_no_x11_args (GPtrArray *argv_array);