From b6e439b2610b7d78d58ed566473f8c291bd0384c Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 5 Jan 2017 08:38:35 +0100 Subject: [PATCH] Handle newlines in UI messages --- src/metrics.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/metrics.cpp b/src/metrics.cpp index df0016113..9f3795e00 100644 --- a/src/metrics.cpp +++ b/src/metrics.cpp @@ -261,8 +261,21 @@ int printMessageBox(size_t cols) std::cout << _("Messages:") << std::endl; for (auto it = u->cbegin(); it != u->cend(); ++it) { std::cout << *it << std::endl; - // Handle wrapped lines - lines += (it->size() / cols); + // Handle newlines and wrapped lines + size_t i = 0; + size_t j = 0; + while (j < it->size()) { + i = it->find('\n', j); + if (i == std::string::npos) { + i = it->size(); + } else { + // Newline + lines++; + } + // Wrapped lines + lines += ((i-j) / cols); + j = i + 1; + } } std::cout << std::endl; return lines;