mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-29 08:09:02 +00:00
Formerly variable.c.~3~
This commit is contained in:
parent
207db3747f
commit
2ebaa9f881
1 changed files with 19 additions and 1 deletions
20
variable.c
20
variable.c
|
@ -423,6 +423,8 @@ initialize_variable_output ()
|
||||||
return variable_buffer;
|
return variable_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int export_all_variables;
|
||||||
|
|
||||||
/* Create a new environment for FILE's commands.
|
/* Create a new environment for FILE's commands.
|
||||||
The child's MAKELEVEL variable is incremented. */
|
The child's MAKELEVEL variable is incremented. */
|
||||||
|
|
||||||
|
@ -441,6 +443,7 @@ target_environment (file)
|
||||||
register unsigned int i;
|
register unsigned int i;
|
||||||
register unsigned nvariables;
|
register unsigned nvariables;
|
||||||
char **result;
|
char **result;
|
||||||
|
unsigned int mklev_hash;
|
||||||
|
|
||||||
/* Find the lowest number of buckets in any set in the list. */
|
/* Find the lowest number of buckets in any set in the list. */
|
||||||
s = file->variables;
|
s = file->variables;
|
||||||
|
@ -449,6 +452,14 @@ target_environment (file)
|
||||||
if (s->set->buckets < buckets)
|
if (s->set->buckets < buckets)
|
||||||
buckets = s->set->buckets;
|
buckets = s->set->buckets;
|
||||||
|
|
||||||
|
/* Find the hash value of `MAKELEVEL' will fall into. */
|
||||||
|
{
|
||||||
|
char *p = "MAKELEVEL";
|
||||||
|
mklev_hash = 0;
|
||||||
|
while (*p != '\0')
|
||||||
|
HASH (mklev_hash, *p++);
|
||||||
|
}
|
||||||
|
|
||||||
/* Temporarily allocate a table with that many buckets. */
|
/* Temporarily allocate a table with that many buckets. */
|
||||||
table = (struct variable_bucket **)
|
table = (struct variable_bucket **)
|
||||||
alloca (buckets * sizeof (struct variable_bucket *));
|
alloca (buckets * sizeof (struct variable_bucket *));
|
||||||
|
@ -470,10 +481,17 @@ target_environment (file)
|
||||||
register struct variable_bucket *ov;
|
register struct variable_bucket *ov;
|
||||||
register char *p = v->name;
|
register char *p = v->name;
|
||||||
|
|
||||||
|
if (i == mklev_hash % set->buckets
|
||||||
|
&& streq (v->name, "MAKELEVEL"))
|
||||||
|
/* Don't include MAKELEVEL because it will be
|
||||||
|
added specially at the end. */
|
||||||
|
continue;
|
||||||
|
|
||||||
switch (v->export)
|
switch (v->export)
|
||||||
{
|
{
|
||||||
case v_default:
|
case v_default:
|
||||||
if (v->origin != o_command
|
if (!export_all_variables
|
||||||
|
&& v->origin != o_command
|
||||||
&& v->origin != o_env && v->origin != o_env_override
|
&& v->origin != o_env && v->origin != o_env_override
|
||||||
&& !(v->origin == o_file && getenv (p) != 0))
|
&& !(v->origin == o_file && getenv (p) != 0))
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in a new issue