CTest: Use UTF-8 encoding for output from Git

This commit is contained in:
Dāvis Mosāns
2016-11-15 01:01:21 +02:00
committed by Brad King
parent 40bd42dfbc
commit f55fcdc859

View File

@@ -91,7 +91,8 @@ std::string cmCTestGIT::FindGitDir()
std::string git_dir_line; std::string git_dir_line;
OneLineParser rev_parse_out(this, "rev-parse-out> ", git_dir_line); OneLineParser rev_parse_out(this, "rev-parse-out> ", git_dir_line);
OutputLogger rev_parse_err(this->Log, "rev-parse-err> "); OutputLogger rev_parse_err(this->Log, "rev-parse-err> ");
if (this->RunChild(git_rev_parse, &rev_parse_out, &rev_parse_err)) { if (this->RunChild(git_rev_parse, &rev_parse_out, &rev_parse_err, CM_NULLPTR,
cmProcessOutput::UTF8)) {
git_dir = git_dir_line; git_dir = git_dir_line;
} }
if (git_dir.empty()) { if (git_dir.empty()) {
@@ -114,7 +115,8 @@ std::string cmCTestGIT::FindGitDir()
0 }; 0 };
OneLineParser cygpath_out(this, "cygpath-out> ", git_dir_line); OneLineParser cygpath_out(this, "cygpath-out> ", git_dir_line);
OutputLogger cygpath_err(this->Log, "cygpath-err> "); OutputLogger cygpath_err(this->Log, "cygpath-err> ");
if (this->RunChild(cygpath, &cygpath_out, &cygpath_err)) { if (this->RunChild(cygpath, &cygpath_out, &cygpath_err, CM_NULLPTR,
cmProcessOutput::UTF8)) {
git_dir = git_dir_line; git_dir = git_dir_line;
} }
} }
@@ -134,7 +136,8 @@ std::string cmCTestGIT::FindTopDir()
std::string cdup; std::string cdup;
OneLineParser rev_parse_out(this, "rev-parse-out> ", cdup); OneLineParser rev_parse_out(this, "rev-parse-out> ", cdup);
OutputLogger rev_parse_err(this->Log, "rev-parse-err> "); OutputLogger rev_parse_err(this->Log, "rev-parse-err> ");
if (this->RunChild(git_rev_parse, &rev_parse_out, &rev_parse_err) && if (this->RunChild(git_rev_parse, &rev_parse_out, &rev_parse_err, CM_NULLPTR,
cmProcessOutput::UTF8) &&
!cdup.empty()) { !cdup.empty()) {
top_dir += "/"; top_dir += "/";
top_dir += cdup; top_dir += cdup;
@@ -624,7 +627,7 @@ void cmCTestGIT::LoadRevisions()
CommitParser out(this, "dt-out> "); CommitParser out(this, "dt-out> ");
OutputLogger err(this->Log, "dt-err> "); OutputLogger err(this->Log, "dt-err> ");
this->RunProcess(cp, &out, &err); this->RunProcess(cp, &out, &err, cmProcessOutput::UTF8);
// Send one extra zero-byte to terminate the last record. // Send one extra zero-byte to terminate the last record.
out.Process("", 1); out.Process("", 1);
@@ -641,14 +644,16 @@ void cmCTestGIT::LoadModifications()
CM_NULLPTR }; CM_NULLPTR };
OutputLogger ui_out(this->Log, "ui-out> "); OutputLogger ui_out(this->Log, "ui-out> ");
OutputLogger ui_err(this->Log, "ui-err> "); OutputLogger ui_err(this->Log, "ui-err> ");
this->RunChild(git_update_index, &ui_out, &ui_err); this->RunChild(git_update_index, &ui_out, &ui_err, CM_NULLPTR,
cmProcessOutput::UTF8);
// Use 'git diff-index' to get modified files. // Use 'git diff-index' to get modified files.
const char* git_diff_index[] = { git, "diff-index", "-z", const char* git_diff_index[] = { git, "diff-index", "-z",
"HEAD", "--", CM_NULLPTR }; "HEAD", "--", CM_NULLPTR };
DiffParser out(this, "di-out> "); DiffParser out(this, "di-out> ");
OutputLogger err(this->Log, "di-err> "); OutputLogger err(this->Log, "di-err> ");
this->RunChild(git_diff_index, &out, &err); this->RunChild(git_diff_index, &out, &err, CM_NULLPTR,
cmProcessOutput::UTF8);
for (std::vector<Change>::const_iterator ci = out.Changes.begin(); for (std::vector<Change>::const_iterator ci = out.Changes.begin();
ci != out.Changes.end(); ++ci) { ci != out.Changes.end(); ++ci) {