swr/rast: adjust std::string usage to fix build
Some combinations of c++ compilers and standard libraries had problems with the string::replace code we were using previously. This should fix the travis-ci system. Tested-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
3c7c82cef0
commit
0e1e5a2b14
|
@ -141,21 +141,27 @@ extern GlobalKnobs g_GlobalKnobs;
|
|||
void KnobBase::autoExpandEnvironmentVariables(std::string &text)
|
||||
{
|
||||
{
|
||||
// unix style variable replacement
|
||||
static std::regex env("\\$\\{([^}]+)\\}");
|
||||
std::smatch match;
|
||||
while (std::regex_search(text, match, env))
|
||||
{
|
||||
const std::string var = GetEnv(match[1].str());
|
||||
text.replace(match[0].first, match[0].second, var);
|
||||
// certain combinations of gcc/libstd++ have problems with this
|
||||
// text.replace(match[0].first, match[0].second, var);
|
||||
text.replace(match.prefix().length(), match[0].length(), var);
|
||||
}
|
||||
}
|
||||
{
|
||||
// win32 style variable replacement
|
||||
static std::regex env("\\%([^}]+)\\%");
|
||||
std::smatch match;
|
||||
while (std::regex_search(text, match, env))
|
||||
{
|
||||
const std::string var = GetEnv(match[1].str());
|
||||
text.replace(match[0].first, match[0].second, var);
|
||||
// certain combinations of gcc/libstd++ have problems with this
|
||||
// text.replace(match[0].first, match[0].second, var);
|
||||
text.replace(match.prefix().length(), match[0].length(), var);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -232,4 +238,4 @@ std::string GlobalKnobs::ToString(const char* optPerLinePrefix)
|
|||
return ' '*(max_len - name_len)
|
||||
|
||||
|
||||
%>
|
||||
%>
|
||||
|
|
Loading…
Reference in New Issue