summaryrefslogtreecommitdiff
path: root/utils/utf8.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/utf8.c')
-rw-r--r--utils/utf8.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/utils/utf8.c b/utils/utf8.c
index b4e308044..885ca94ee 100644
--- a/utils/utf8.c
+++ b/utils/utf8.c
@@ -118,6 +118,24 @@ size_t utf8_bounded_length(const char *s, size_t l)
}
/**
+ * Calculate the length (in bytes) of a bounded UTF-8 string
+ *
+ * \param s The string
+ * \param l Maximum length of input (in bytes)
+ * \param c Maximum number of characters to measure
+ * \return Length of string, in bytes
+ */
+size_t utf8_bounded_byte_length(const char *s, size_t l, size_t c)
+{
+ size_t len = 0;
+
+ while (len < l && c-- > 0)
+ len = utf8_next(s, l, len);
+
+ return len;
+}
+
+/**
* Calculate the length (in bytes) of a UTF-8 character
*
* \param s Pointer to start of character