diff options
Diffstat (limited to 'lib/unicode/string')
-rw-r--r-- | lib/unicode/string/u8wdth.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/unicode/string/u8wdth.c b/lib/unicode/string/u8wdth.c index 503ff7c..7a58069 100644 --- a/lib/unicode/string/u8wdth.c +++ b/lib/unicode/string/u8wdth.c @@ -3,15 +3,19 @@ #include "unicode/string.h" size_t -u8wdth(struct u8view sv) +u8wdth(struct u8view sv, int ts) { rune ch; size_t n = 0; while (ucsnext(&ch, &sv) != 0) { - int w = uprop_get_wdth(ch); - if (w > 0) - n += w; + if (ch == '\t') + n += ts - n % ts; + else { + int w = uprop_get_wdth(ch); + if (w > 0) + n += w; + } } return n; |