mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-30 18:02:02 +00:00
core/unicode/utf16: add rune_count proc
This returns the number of runes in a u16 slice
This commit is contained in:
@@ -106,6 +106,18 @@ decode :: proc(d: []rune, s: []u16) -> (n: int) {
|
||||
return
|
||||
}
|
||||
|
||||
rune_count :: proc(s: []u16) -> (n: int) {
|
||||
for i := 0; i < len(s); i += 1 {
|
||||
c := s[i]
|
||||
if _surr1 <= c && c < _surr2 && i+1 < len(s) &&
|
||||
_surr2 <= s[i+1] && s[i+1] < _surr3 {
|
||||
i += 1
|
||||
}
|
||||
n += 1
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
decode_to_utf8 :: proc(d: []byte, s: []u16) -> (n: int) {
|
||||
for i := 0; i < len(s); i += 1 {
|
||||
@@ -127,4 +139,4 @@ decode_to_utf8 :: proc(d: []byte, s: []u16) -> (n: int) {
|
||||
n += copy(d[n:], b[:w])
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user