From bd8e7483992a7f280fc3184d4d7d91b5d604a08f Mon Sep 17 00:00:00 2001 From: Chase Geigle Date: Wed, 15 Feb 2017 21:48:40 -0600 Subject: [PATCH] fix(builder): use unicode-aware truncation for label-maxlen --- src/components/builder.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/builder.cpp b/src/components/builder.cpp index 42878fa7..798a08b1 100644 --- a/src/components/builder.cpp +++ b/src/components/builder.cpp @@ -208,8 +208,8 @@ void builder::node(const label_t& label, bool add_space) { string text{label->get()}; - if (label->m_maxlen > 0 && text.length() > label->m_maxlen) { - text = text.substr(0, label->m_maxlen) + "..."; + if (label->m_maxlen > 0 && string_util::char_len(text) > label->m_maxlen) { + text = string_util::utf8_truncate(std::move(text), label->m_maxlen) + "..."; } // if ((label->m_overline.empty() && m_tags[syntaxtag::o] > 0) || (m_tags[syntaxtag::o] > 0 && label->m_margin > 0))