Fixed Savannah bug #16140.

This commit is contained in:
Boris Kolpackov 2006-03-22 13:16:03 +00:00
parent 94aead216e
commit 367a49591e
2 changed files with 18 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2006-03-22 Boris Kolpackov <boris@kolpackov.net>
* implicit.c (pattern_search): Call set_file_variables only
if we have prerequisites that need second expansion. Fixes
Savannah bug #16140.
2006-03-19 Paul D. Smith <psmith@gnu.org>
* remake.c (update_file): Add alloca(0) to clean up alloca'd

View file

@ -442,6 +442,7 @@ pattern_search (struct file *file, int archive,
struct file *f;
unsigned int failed = 0;
int check_lastslash;
int file_variables_set = 0;
rule = tryrules[i];
@ -479,9 +480,9 @@ pattern_search (struct file *file, int archive,
strncpy (stem_str, stem, stemlen);
stem_str[stemlen] = '\0';
/* Temporary assign STEM to file->stem and set file variables. */
/* Temporary assign STEM to file->stem (needed to set file
variables below). */
file->stem = stem_str;
set_file_variables (file);
/* Try each dependency; see if it "exists". */
@ -550,6 +551,15 @@ pattern_search (struct file *file, int archive,
depname[len] = '\0';
}
/* Set file variables. Note that we cannot do it once
at the beginning of the function because of the stem
value. */
if (!file_variables_set)
{
set_file_variables (file);
file_variables_set = 1;
}
p2 = variable_expand_for_file (depname, file);
}
else