diff options
author | Paul Smith <psmith@gnu.org> | 2003-11-04 07:40:29 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2003-11-04 07:40:29 +0000 |
commit | ee3d37a591cf2db3dd1444b2c1e2fcb041f68d33 (patch) | |
tree | 0cedbb4ac47a4a0dcd49bd80c4b0ceadf8bed80d /expand.c | |
parent | 76f034acaadf081fd589cc5409bb4c2c138570e0 (diff) | |
download | gunmake-ee3d37a591cf2db3dd1444b2c1e2fcb041f68d33.tar.gz |
Fix bugs 5798 and 6195.
Diffstat (limited to 'expand.c')
-rw-r--r-- | expand.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -97,6 +97,7 @@ recursively_expand_for_file (struct variable *v, struct file *file) { char *value; struct variable_set_list *save = 0; + int set_reading = 0; if (v->expanding) { @@ -114,6 +115,13 @@ recursively_expand_for_file (struct variable *v, struct file *file) current_variable_set_list = file->variables; } + /* If we have no other file-reading context, use the variable's context. */ + if (!reading_file) + { + set_reading = 1; + reading_file = &v->fileinfo; + } + v->expanding = 1; if (v->append) value = allocated_variable_append (v); @@ -121,6 +129,8 @@ recursively_expand_for_file (struct variable *v, struct file *file) value = allocated_variable_expand (v->value); v->expanding = 0; + if (set_reading) + reading_file = 0; if (file) current_variable_set_list = save; |