mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Update utf-32 printing
This commit is contained in:
+14
-19
@@ -1530,26 +1530,21 @@ fmt_array :: proc(fi: ^Info, data: rawptr, n: int, elem_size: int, elem: ^reflec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch reflect.type_info_base(elem).id {
|
print_utf32 :: proc(fi: ^Info, s: []$T) where size_of(T) == 4 {
|
||||||
case byte:
|
for r in s {
|
||||||
s := strings.string_from_ptr((^byte)(data), n)
|
io.write_rune(fi.writer, rune(r), &fi.n)
|
||||||
fmt_string(fi, s, verb)
|
|
||||||
return
|
|
||||||
case rune:
|
|
||||||
v := ([^]rune)(data)[:n]
|
|
||||||
for r in v {
|
|
||||||
io.write_rune(fi.writer, r, &fi.n)
|
|
||||||
}
|
}
|
||||||
return
|
}
|
||||||
case u16:
|
|
||||||
print_utf16(fi, ([^]u16)(data)[:n])
|
switch reflect.type_info_base(elem).id {
|
||||||
return
|
case byte: fmt_string(fi, string(([^]byte)(data)[:n]), verb); return
|
||||||
case u16le:
|
case u16: print_utf16(fi, ([^]u16)(data)[:n]); return
|
||||||
print_utf16(fi, ([^]u16le)(data)[:n])
|
case u16le: print_utf16(fi, ([^]u16le)(data)[:n]); return
|
||||||
return
|
case u16be: print_utf16(fi, ([^]u16be)(data)[:n]); return
|
||||||
case u16be:
|
case u32: print_utf32(fi, ([^]u32)(data)[:n]); return
|
||||||
print_utf16(fi, ([^]u16be)(data)[:n])
|
case u32le: print_utf32(fi, ([^]u32le)(data)[:n]); return
|
||||||
return
|
case u32be: print_utf32(fi, ([^]u32be)(data)[:n]); return
|
||||||
|
case rune: print_utf32(fi, ([^]rune)(data)[:n]); return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if verb == 'p' {
|
if verb == 'p' {
|
||||||
|
|||||||
Reference in New Issue
Block a user