From bd8e7483992a7f280fc3184d4d7d91b5d604a08f Mon Sep 17 00:00:00 2001
From: Chase Geigle <geigle1@illinois.edu>
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))