From c69969733fcd7b56eb4dcc1d1b70e7010def3594 Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Wed, 12 Dec 2018 23:22:31 +0900 Subject: [PATCH] use carriage return depending on env --- toml/region.hpp | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/toml/region.hpp b/toml/region.hpp index b7e4abc..fb06915 100644 --- a/toml/region.hpp +++ b/toml/region.hpp @@ -201,18 +201,25 @@ inline std::string format_underline(const std::string& message, const region_base& reg, const std::string& comment_for_underline, std::vector helps = {}) { +#ifdef _WIN32 + const auto newline = "\r\n"; +#else + const char newline = '\n'; +#endif const auto line = reg.line(); const auto line_number = reg.line_num(); std::string retval; retval += message; - retval += "\n --> "; + retval += newline; + retval += " --> "; retval += reg.name(); - retval += "\n "; + retval += newline; + retval += ' '; retval += line_number; retval += " | "; retval += line; - retval += '\n'; + retval += newline; retval += make_string(line_number.size() + 1, ' '); retval += " | "; retval += make_string(reg.before(), ' '); @@ -221,12 +228,13 @@ inline std::string format_underline(const std::string& message, retval += comment_for_underline; if(helps.size() != 0) { - retval += '\n'; + retval += newline; retval += make_string(line_number.size() + 1, ' '); retval += " | "; for(const auto help : helps) { - retval += "\nHint: "; + retval += newline; + retval += "Hint: "; retval += help; } } @@ -240,6 +248,11 @@ format_underline(const std::string& message, const location& loc, const std::string& comment_for_underline, std::vector helps = {}) { +#ifdef _WIN32 + const auto newline = "\r\n"; +#else + const char newline = '\n'; +#endif using const_iterator = typename location::const_iterator; using reverse_iterator = std::reverse_iterator; const auto line_begin = std::find(reverse_iterator(loc.iter()), @@ -252,13 +265,15 @@ format_underline(const std::string& message, const location& loc, std::string retval; retval += message; - retval += "\n --> "; + retval += newline; + retval += " --> "; retval += loc.name(); - retval += "\n "; + retval += newline; + retval += ' '; retval += line_number; retval += " | "; retval += make_string(line_begin, line_end); - retval += '\n'; + retval += newline; retval += make_string(line_number.size() + 1, ' '); retval += " | "; retval += make_string(std::distance(line_begin, loc.iter()),' '); @@ -268,12 +283,13 @@ format_underline(const std::string& message, const location& loc, retval += comment_for_underline; if(helps.size() != 0) { - retval += '\n'; + retval += newline; retval += make_string(line_number.size() + 1, ' '); retval += " | "; for(const auto help : helps) { - retval += "\nHint: "; + retval += newline; + retval += "Hint: "; retval += help; } }