mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-20 21:50:53 -06:00
cmMakefile: Improve ExpandVariablesInString return type
Return `std::string const&` instead of a `const char*` that points into a string anyway. Update call sites accordingly.
This commit is contained in:
committed by
Brad King
parent
b542e0c74f
commit
e13fa223fc
@@ -405,7 +405,8 @@ char CCONV* cmExpandVariablesInString(void* arg, const char* source,
|
|||||||
{
|
{
|
||||||
cmMakefile* mf = static_cast<cmMakefile*>(arg);
|
cmMakefile* mf = static_cast<cmMakefile*>(arg);
|
||||||
std::string barf = source;
|
std::string barf = source;
|
||||||
std::string result = mf->ExpandVariablesInString(barf, escapeQuotes, atOnly);
|
std::string const& result =
|
||||||
|
mf->ExpandVariablesInString(barf, escapeQuotes, atOnly);
|
||||||
return strdup(result.c_str());
|
return strdup(result.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2412,12 +2412,13 @@ std::vector<std::string> cmMakefile::GetDefinitions() const
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* cmMakefile::ExpandVariablesInString(std::string& source) const
|
const std::string& cmMakefile::ExpandVariablesInString(
|
||||||
|
std::string& source) const
|
||||||
{
|
{
|
||||||
return this->ExpandVariablesInString(source, false, false);
|
return this->ExpandVariablesInString(source, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* cmMakefile::ExpandVariablesInString(
|
const std::string& cmMakefile::ExpandVariablesInString(
|
||||||
std::string& source, bool escapeQuotes, bool noEscapes, bool atOnly,
|
std::string& source, bool escapeQuotes, bool noEscapes, bool atOnly,
|
||||||
const char* filename, long line, bool removeEmpty, bool replaceAt) const
|
const char* filename, long line, bool removeEmpty, bool replaceAt) const
|
||||||
{
|
{
|
||||||
@@ -2433,7 +2434,7 @@ const char* cmMakefile::ExpandVariablesInString(
|
|||||||
this->IssueMessage(cmake::INTERNAL_ERROR,
|
this->IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
"ExpandVariablesInString @ONLY called "
|
"ExpandVariablesInString @ONLY called "
|
||||||
"on something with escapes.");
|
"on something with escapes.");
|
||||||
return source.c_str();
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Variables used in the WARN case.
|
// Variables used in the WARN case.
|
||||||
@@ -2515,7 +2516,7 @@ const char* cmMakefile::ExpandVariablesInString(
|
|||||||
this->IssueMessage(cmake::AUTHOR_WARNING, msg);
|
this->IssueMessage(cmake::AUTHOR_WARNING, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return source.c_str();
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmake::MessageType cmMakefile::ExpandVariablesInStringOld(
|
cmake::MessageType cmMakefile::ExpandVariablesInStringOld(
|
||||||
|
|||||||
@@ -565,12 +565,11 @@ public:
|
|||||||
* entry in the this->Definitions map. Also \@var\@ is
|
* entry in the this->Definitions map. Also \@var\@ is
|
||||||
* expanded to match autoconf style expansions.
|
* expanded to match autoconf style expansions.
|
||||||
*/
|
*/
|
||||||
const char* ExpandVariablesInString(std::string& source) const;
|
const std::string& ExpandVariablesInString(std::string& source) const;
|
||||||
const char* ExpandVariablesInString(std::string& source, bool escapeQuotes,
|
const std::string& ExpandVariablesInString(
|
||||||
bool noEscapes, bool atOnly = false,
|
std::string& source, bool escapeQuotes, bool noEscapes,
|
||||||
const char* filename = nullptr,
|
bool atOnly = false, const char* filename = nullptr, long line = -1,
|
||||||
long line = -1, bool removeEmpty = false,
|
bool removeEmpty = false, bool replaceAt = false) const;
|
||||||
bool replaceAt = false) const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove any remaining variables in the string. Anything with ${var} or
|
* Remove any remaining variables in the string. Anything with ${var} or
|
||||||
|
|||||||
Reference in New Issue
Block a user