diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-05-31 20:31:55 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-05-31 20:31:55 +0200 |
commit | 604b18befd9918a65a8f370a6051864fcda2f623 (patch) | |
tree | 1305a779a81ebbd0f856158cc78555728d6376af /lib | |
parent | c0e510b356643089d132688b58a4e02f28f05677 (diff) |
Pass a tabsize to ucswdth()
Diffstat (limited to 'lib')
-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; |