Update submodules

This commit is contained in:
Jonathan Müller 2017-05-27 10:16:18 +02:00
commit 017dbb3114
4 changed files with 29 additions and 27 deletions

2
external/cxxopts vendored

@ -1 +1 @@
Subproject commit 1be5f10daf6f08296eff399e82aa94d16800ef4e Subproject commit 9db62cb338aeaed1fec5806f6b5d9781f5e19e4c

@ -1 +1 @@
Subproject commit 50f69197c2af03dc93cd0985a39d6809c80a27b5 Subproject commit cf212df358680ef0b4b30569672c770bd723a7aa

2
external/type_safe vendored

@ -1 +1 @@
Subproject commit 4a80f404a07fda6a190e9ce90548b175df8e1379 Subproject commit b5fd96de64046e919b30de07cea09135a66cc86f

View file

@ -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{});