-
Simon McVittie authored
This keeps track of environment variables' values and their locked status in one place. We build it up over time, and then serialize it into final_argv->envp. In particular, this is a step towards no longer storing anything in the variable named bwrap except for bubblewrap options, which will be a necessary piece of refactoring when we move to launching the game as a Flatpak sub-sandbox, without ever invoking bubblewrap ourselves. Signed-off-by:
Simon McVittie <smcv@collabora.com>
Simon McVittie authoredThis keeps track of environment variables' values and their locked status in one place. We build it up over time, and then serialize it into final_argv->envp. In particular, this is a step towards no longer storing anything in the variable named bwrap except for bubblewrap options, which will be a necessary piece of refactoring when we move to launching the game as a Flatpak sub-sandbox, without ever invoking bubblewrap ourselves. Signed-off-by:
Simon McVittie <smcv@collabora.com>
environ.h 1.67 KiB
/*
* Copyright © 2014-2018 Red Hat, Inc
* Copyright © 2020 Collabora Ltd.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "libglnx/libglnx.h"
#include "steam-runtime-tools/glib-backports-internal.h"
typedef struct _PvEnviron PvEnviron;
PvEnviron *pv_environ_new (void);
void pv_environ_free (PvEnviron *self);
void pv_environ_lock_env (PvEnviron *self,
const char *var,
const char *val);
void pv_environ_lock_inherit_env (PvEnviron *self,
const char *var);
void pv_environ_set_env_overridable (PvEnviron *self,
const char *var,
const char *val);
GList *pv_environ_get_vars (PvEnviron *self);
GList *pv_environ_get_locked (PvEnviron *self);
const char *pv_environ_getenv (PvEnviron *self,
const char *var);
gboolean pv_environ_is_locked (PvEnviron *self,
const char *var);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PvEnviron, pv_environ_free)