else
{
/* Otherwise, get current path to modify. */
- env = get_in_environ (inferior_environ, path_var_name);
+ env = get_in_environ (current_inferior ()->environment, path_var_name);
/* Can be null if path is not set. */
if (!env)
for (i = argc - 1; i >= 0; --i)
env_mod_path (argv[i], &exec_path);
- set_in_environ (inferior_environ, path_var_name, exec_path);
+ set_in_environ (current_inferior ()->environment, path_var_name, exec_path);
xfree (exec_path);
- env = get_in_environ (inferior_environ, path_var_name);
+ env = get_in_environ (current_inferior ()->environment, path_var_name);
ui_out_field_string (uiout, "path", env);
}
void
_initialize_mi_cmd_env (void)
{
+ struct gdb_environ *environment;
char *env;
- /* We want original execution path to reset to, if desired later. */
- env = get_in_environ (inferior_environ, path_var_name);
+ /* We want original execution path to reset to, if desired later.
+ At this point, current inferior is not created, so cannot use
+ current_inferior ()->environment. Also, there's no obvious
+ place where this code can be moved suchs that it surely run
+ before any code possibly mangles original PATH. */
+ environment = make_environ ();
+ init_environ (environment);
+ env = get_in_environ (environment, path_var_name);
/* Can be null if path is not set. */
if (!env)