=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/utf8.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- src/usr.bin/tmux/utf8.c 2015/11/12 12:19:57 1.17 +++ src/usr.bin/tmux/utf8.c 2015/11/12 12:43:36 1.18 @@ -1,4 +1,4 @@ -/* $OpenBSD: utf8.c,v 1.17 2015/11/12 12:19:57 nicm Exp $ */ +/* $OpenBSD: utf8.c,v 1.18 2015/11/12 12:43:36 nicm Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott @@ -711,5 +711,26 @@ out = utf8_tocstr(tmp); free(tmp); + return (out); +} + +/* Pad UTF-8 string to width. Caller frees. */ +char * +utf8_padcstr(const char *s, u_int width) +{ + size_t slen; + char *out; + u_int n, i; + + n = utf8_cstrwidth(s); + if (n >= width) + return (xstrdup(s)); + + slen = strlen(s); + out = xmalloc(slen + 1 + (width - n)); + memcpy(out, s, slen); + for (i = n; i < width; i++) + out[slen++] = ' '; + out[slen] = '\0'; return (out); }