Fix MAKEFLAGS not being correctly purified in tix-build(1).

This commit is contained in:
Jonas 'Sortie' Termansen 2014-01-15 00:15:11 +01:00
parent 2f02d5287e
commit 7b02492649
1 changed files with 4 additions and 2 deletions

View File

@ -541,6 +541,7 @@ void PurifyMakeflags()
return; return;
string_array_t makeflags = string_array_make(); string_array_t makeflags = string_array_make();
string_array_append_token_string(&makeflags, makeflags_environment); string_array_append_token_string(&makeflags, makeflags_environment);
// Discard all the environmental variables in MAKEFLAGS.
for ( size_t i = 0; i < makeflags.length; i++ ) for ( size_t i = 0; i < makeflags.length; i++ )
{ {
char* flag = makeflags.strings[i]; char* flag = makeflags.strings[i];
@ -553,6 +554,7 @@ void PurifyMakeflags()
for ( size_t n = i + 1; n < makeflags.length; n++ ) for ( size_t n = i + 1; n < makeflags.length; n++ )
makeflags.strings[n-1] = makeflags.strings[n]; makeflags.strings[n-1] = makeflags.strings[n];
makeflags.length--; makeflags.length--;
i--;
} }
char* new_makeflags_environment = token_string_of_string_array(&makeflags); char* new_makeflags_environment = token_string_of_string_array(&makeflags);
assert(new_makeflags_environment); assert(new_makeflags_environment);
@ -579,6 +581,8 @@ void Version(FILE* fp, const char* argv0)
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
PurifyMakeflags();
metainfo_t minfo; metainfo_t minfo;
minfo.build = NULL; minfo.build = NULL;
minfo.destination = strdup(getenv_def("TIX_BUILD_DESTINATION", ".")); minfo.destination = strdup(getenv_def("TIX_BUILD_DESTINATION", "."));
@ -657,8 +661,6 @@ int main(int argc, char* argv[])
CompactArguments(&argc, &argv); CompactArguments(&argc, &argv);
PurifyMakeflags();
if ( minfo.prefix && !strcmp(minfo.prefix, "/") ) if ( minfo.prefix && !strcmp(minfo.prefix, "/") )
minfo.prefix[0] = '\0'; minfo.prefix[0] = '\0';