diff options
author | Nicholas <nbnoll@eml.cc> | 2021-11-11 17:07:44 -0800 |
---|---|---|
committer | Nicholas <nbnoll@eml.cc> | 2021-11-11 17:07:44 -0800 |
commit | b375f3cdedb5b0e08745d100b40e38d2f8396a58 (patch) | |
tree | a51d5763646ff482c26e79bfc1dcebccbe4812a7 /sys/libutf/runewidth-14.0.0.c | |
parent | 44b30ea0883af2827e618a45d472b47cf041a842 (diff) | |
parent | 9695ea005d4af93dcd60f74f10fd3c54499a182f (diff) |
chore: merge master into laptop
Diffstat (limited to 'sys/libutf/runewidth-14.0.0.c')
-rw-r--r-- | sys/libutf/runewidth-14.0.0.c | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/sys/libutf/runewidth-14.0.0.c b/sys/libutf/runewidth-14.0.0.c deleted file mode 100644 index 113c35e..0000000 --- a/sys/libutf/runewidth-14.0.0.c +++ /dev/null @@ -1,71 +0,0 @@ -#include <u.h> -#include <libutf.h> - -static -rune* -rangesearch(rune c, rune *t, int n, int ne) -{ - rune *p; - int m; - while(n > 1) { - m = n >> 1; - p = t + m*ne; - if(c >= p[0]){ - t = p; - n = n-m; - }else - n = m; - } - if(n && c >= t[0]) - return t; - return 0; -} - -static rune width0_range[] = { - 0x2028, 0x2029, -}; - -static int -iswidth0(rune c) -{ - rune *p; - - p = rangesearch(c, width0_range, arrlen(width0_range)/2, 2); - if(p && c >= p[0] && c <= p[1]) - return 1; - return 0; -} - -static rune width1_single[] = { - 0x00ad, -}; - -static int -iswidth1(rune c) -{ - rune *p; - - p = rangesearch(c, width1_single, arrlen(width1_single), 1); - if(p && c == p[0]) - return 1; - return 0; -} - -static int -iswidth2(rune c) -{ - rune *p; - - return 0; -} - - -int -utf8·runewidth(rune c) -{ - if(iswidth1(c)) - return 1; - if(iswidth2(c)) - return 2; - return 0; -} |