Update submodules
This commit is contained in:
parent
074759fafb
commit
017dbb3114
4 changed files with 29 additions and 27 deletions
2
external/cxxopts
vendored
2
external/cxxopts
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 1be5f10daf6f08296eff399e82aa94d16800ef4e
|
Subproject commit 9db62cb338aeaed1fec5806f6b5d9781f5e19e4c
|
||||||
2
external/tiny-process-library
vendored
2
external/tiny-process-library
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 50f69197c2af03dc93cd0985a39d6809c80a27b5
|
Subproject commit cf212df358680ef0b4b30569672c770bd723a7aa
|
||||||
2
external/type_safe
vendored
2
external/type_safe
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit 4a80f404a07fda6a190e9ce90548b175df8e1379
|
Subproject commit b5fd96de64046e919b30de07cea09135a66cc86f
|
||||||
|
|
@ -138,32 +138,34 @@ namespace
|
||||||
std::string get_full_preprocess_output(const libclang_compile_config& c, const char* full_path,
|
std::string get_full_preprocess_output(const libclang_compile_config& c, const char* full_path,
|
||||||
const diagnostic_logger& logger)
|
const diagnostic_logger& logger)
|
||||||
{
|
{
|
||||||
|
namespace tpl = TinyProcessLib;
|
||||||
|
|
||||||
std::string preprocessed, diagnostic;
|
std::string preprocessed, diagnostic;
|
||||||
|
|
||||||
auto cmd = get_command(c, full_path);
|
auto cmd = get_command(c, full_path);
|
||||||
Process process(cmd, "",
|
tpl::Process process(cmd, "",
|
||||||
[&](const char* str, std::size_t n) {
|
[&](const char* str, std::size_t n) {
|
||||||
preprocessed.reserve(preprocessed.size() + n);
|
preprocessed.reserve(preprocessed.size() + n);
|
||||||
for (auto end = str + n; str != end; ++str)
|
for (auto end = str + n; str != end; ++str)
|
||||||
if (*str == '\t')
|
if (*str == '\t')
|
||||||
preprocessed += " "; // just two spaces because why not
|
preprocessed += " "; // just two spaces because why not
|
||||||
else if (*str != '\r')
|
else if (*str != '\r')
|
||||||
preprocessed.push_back(*str);
|
preprocessed.push_back(*str);
|
||||||
},
|
},
|
||||||
[&](const char* str, std::size_t n) {
|
[&](const char* str, std::size_t n) {
|
||||||
diagnostic.reserve(diagnostic.size() + n);
|
diagnostic.reserve(diagnostic.size() + n);
|
||||||
for (auto end = str + n; str != end; ++str)
|
for (auto end = str + n; str != end; ++str)
|
||||||
if (*str == '\r')
|
if (*str == '\r')
|
||||||
continue;
|
continue;
|
||||||
else if (*str == '\n')
|
else if (*str == '\n')
|
||||||
{
|
{
|
||||||
// consume current diagnostic
|
// consume current diagnostic
|
||||||
log_diagnostic(logger, diagnostic);
|
log_diagnostic(logger, diagnostic);
|
||||||
diagnostic.clear();
|
diagnostic.clear();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
diagnostic.push_back(*str);
|
diagnostic.push_back(*str);
|
||||||
});
|
});
|
||||||
|
|
||||||
auto exit_code = process.get_exit_status();
|
auto exit_code = process.get_exit_status();
|
||||||
DEBUG_ASSERT(diagnostic.empty(), detail::assert_handler{});
|
DEBUG_ASSERT(diagnostic.empty(), detail::assert_handler{});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue