From: Geoffrey Thomas <geofft@xxxxxxx> I'm about to use this pattern more than once, so make it a common function. Signed-off-by: Geoffrey Thomas <geofft@xxxxxxx> --- utf8.c | 12 ++++++++++++ utf8.h | 1 + 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/utf8.c b/utf8.c index dc37353..a2d888d 100644 --- a/utf8.c +++ b/utf8.c @@ -246,6 +246,18 @@ int utf8_width(const char **start, size_t *remainder_p) return git_wcwidth(ch); } +/* + * Returns the total number of columns required by a null-terminated + * string. + */ +size_t utf8_strwidth(const char *string) +{ + size_t width = 0; + while (string && *string) + width += utf8_width(&string, NULL); + return width; +} + int is_utf8(const char *text) { while (*text) { diff --git a/utf8.h b/utf8.h index 98cce1b..1ae3450 100644 --- a/utf8.h +++ b/utf8.h @@ -5,6 +5,7 @@ typedef unsigned int ucs_char_t; /* assuming 32bit int */ ucs_char_t pick_one_utf8_char(const char **start, size_t *remainder_p); int utf8_width(const char **start, size_t *remainder_p); +size_t utf8_strwidth(const char *string); int is_utf8(const char *text); int is_encoding_utf8(const char *name); -- 1.5.6.5 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html