6#include "nuitka/environment_variables.h"
8#include "HelpersEnvironmentVariablesSystem.c"
10void undoEnvironmentVariable(PyThreadState *tstate,
char const *variable_name, environment_char_t
const *old_value) {
11 PyObject *os_module = IMPORT_HARD_OS();
12 CHECK_OBJECT(os_module);
14 PyObject *os_environ = PyObject_GetAttrString(os_module,
"environ");
15 CHECK_OBJECT(os_environ);
17 PyObject *variable_name_str = Nuitka_String_FromString(variable_name);
18 CHECK_OBJECT(variable_name_str);
21 setEnvironmentVariable(variable_name, old_value);
24 PyObject *env_value = NuitkaUnicode_FromWideChar(old_value, -1);
26 PyObject *env_value = Nuitka_String_FromString(old_value);
28 CHECK_OBJECT(env_value);
30 int res = PyObject_SetItem(os_environ, variable_name_str, env_value);
32 if (unlikely(res != 0)) {
39 unsetEnvironmentVariable(variable_name);
41 int res = PyObject_DelItem(os_environ, variable_name_str);
43 if (unlikely(res != 0)) {
44 CLEAR_ERROR_OCCURRED(tstate);
48 Py_DECREF(variable_name_str);
49 Py_DECREF(os_environ);