aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/string/u8wdth.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/unicode/string/u8wdth.c')
-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;