From 82d63306c4a5ad8cd275368a4e9613d9d5315eb9 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 14 Dec 2020 16:55:19 +0000 Subject: [PATCH] Fix enumerated array index printing bug #808 --- core/fmt/fmt.odin | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/core/fmt/fmt.odin b/core/fmt/fmt.odin index 84cf4f160..463eda928 100644 --- a/core/fmt/fmt.odin +++ b/core/fmt/fmt.odin @@ -1087,6 +1087,8 @@ fmt_enum :: proc(fi: ^Info, v: any, verb: rune) { stored_enum_value_to_string :: proc(enum_type: ^runtime.Type_Info, ev: runtime.Type_Info_Enum_Value, offset: int = 0) -> (string, bool) { et := runtime.type_info_base(enum_type); + ev := ev; + ev += runtime.Type_Info_Enum_Value(offset); #partial switch e in et.variant { case: return "", false; case runtime.Type_Info_Enum: @@ -1111,18 +1113,6 @@ stored_enum_value_to_string :: proc(enum_type: ^runtime.Type_Info, ev: runtime.T return "", false; } -fmt_write_i64 :: proc(w: io.Writer, i: i64, base: int = 10) { - buf: [32]byte; - s := strconv.append_bits(buf[:], u64(i), base, true, 64, strconv.digits, nil); - io.write_string(w, s); -} -fmt_write_u64 :: proc(w: io.Writer, i: u64, base: int) { - buf: [32]byte; - s := strconv.append_bits(buf[:], u64(i), base, false, 64, strconv.digits, nil); - io.write_string(w, s); -} - - fmt_bit_set :: proc(fi: ^Info, v: any, name: string = "") { is_bit_set_different_endian_to_platform :: proc(ti: ^runtime.Type_Info) -> bool { if ti == nil { @@ -1211,7 +1201,7 @@ fmt_bit_set :: proc(fi: ^Info, v: any, name: string = "") { } } v := i64(i) + info.lower; - fmt_write_i64(fi.writer, v, 10); + io.write_i64(fi.writer, v, 10); commas += 1; } } @@ -1253,7 +1243,7 @@ fmt_bit_field :: proc(fi: ^Info, v: any, bit_field_name: string = "") { u <<= sa; u >>= sa; - fmt_write_u64(fi.writer, u, 10); + io.write_u64(fi.writer, u, 10); } io.write_byte(fi.writer, '}'); @@ -1312,7 +1302,7 @@ fmt_value :: proc(fi: ^Info, v: any, verb: rune) { for in 0..