Merge topic 'string-hex'

97b639d3f1 Help: Make note that file(READ ... HEX) produces lowercase letters
5395bf05eb string: Add new HEX sub-command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4373
This commit is contained in:
Kyle Edwards
2020-02-20 16:51:39 +00:00
committed by Kitware Robot
12 changed files with 77 additions and 1 deletions
+22
View File
@@ -124,6 +124,27 @@ bool HandleAsciiCommand(std::vector<std::string> const& args,
return true;
}
bool HandleHexCommand(std::vector<std::string> const& args,
cmExecutionStatus& status)
{
if (args.size() != 3) {
status.SetError("Incorrect number of arguments");
return false;
}
auto const& instr = args[1];
auto const& outvar = args[2];
std::string output(instr.size() * 2, ' ');
std::string::size_type hexIndex = 0;
for (auto const& c : instr) {
sprintf(&output[hexIndex], "%.2x", static_cast<unsigned char>(c) & 0xFF);
hexIndex += 2;
}
status.GetMakefile().AddDefinition(outvar, output);
return true;
}
bool HandleConfigureCommand(std::vector<std::string> const& args,
cmExecutionStatus& status)
{
@@ -936,6 +957,7 @@ bool cmStringCommand(std::vector<std::string> const& args,
{ "TOUPPER"_s, HandleToUpperCommand },
{ "COMPARE"_s, HandleCompareCommand },
{ "ASCII"_s, HandleAsciiCommand },
{ "HEX"_s, HandleHexCommand },
{ "CONFIGURE"_s, HandleConfigureCommand },
{ "LENGTH"_s, HandleLengthCommand },
{ "APPEND"_s, HandleAppendCommand },