aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/string
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-05-31 20:31:55 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-05-31 20:31:55 +0200
commit604b18befd9918a65a8f370a6051864fcda2f623 (patch)
tree1305a779a81ebbd0f856158cc78555728d6376af /lib/unicode/string
parentc0e510b356643089d132688b58a4e02f28f05677 (diff)
Pass a tabsize to ucswdth()
Diffstat (limited to 'lib/unicode/string')
-rw-r--r--lib/unicode/string/u8wdth.c12
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;