mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-27 07:43:07 +02:00
commit bash-20100211 snapshot
This commit is contained in:
@@ -9478,3 +9478,13 @@ shell.c
|
||||
foo in an executable shell script without a leading `#!' (fixes
|
||||
longstanding bug)
|
||||
|
||||
2/8
|
||||
---
|
||||
variables.c
|
||||
- in push_func_var, if a variable is in a special builtin's temporary
|
||||
environment and needs to be propagated because we're in Posix mode,
|
||||
or we just need to propagate a variable, and we are executing in a
|
||||
function without any local variables (so the function-local variable
|
||||
context has no variable hash table), make sure we create a hash
|
||||
table so we have a place to save the variable to be propagated.
|
||||
Fixes bug reported by Crestez Dan Leonard <cdleonard@gmail.com>.
|
||||
|
||||
@@ -3807,6 +3807,11 @@ push_func_var (data)
|
||||
|
||||
if (tempvar_p (var) && (posixly_correct || (var->attributes & att_propagate)))
|
||||
{
|
||||
/* Make sure we have a hash table to store the variable in while it is
|
||||
being propagated down to the global variables table. Create one if
|
||||
we have to */
|
||||
if ((vc_isfuncenv (shell_variables) || vc_istempenv (shell_variables)) && shell_variables->table == 0)
|
||||
shell_variables->table = hash_create (0);
|
||||
/* XXX - should we set v->context here? */
|
||||
v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0);
|
||||
if (shell_variables == global_variables)
|
||||
|
||||
Reference in New Issue
Block a user