From d4f335d06896651cc66a5b5fa1c618d84a3b501e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 5 Nov 2017 19:47:18 +0000 Subject: [PATCH] Fix `fmt.odin` %#v fancy printing --- core/fmt.odin | 12 +++++------- examples/demo.odin | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/core/fmt.odin b/core/fmt.odin index 084c5f9e2..3877f9706 100644 --- a/core/fmt.odin +++ b/core/fmt.odin @@ -497,7 +497,7 @@ _fmt_int :: proc(fi: ^Fmt_Info, u: u128, base: int, is_signed: bool, bit_size: i switch base { case 2: c = 'b'; case 8: c = 'o'; - case 10: c = 'd'; + // case 10: c = 'd'; case 12: c = 'z'; case 16: c = 'x'; } @@ -755,7 +755,6 @@ fmt_value :: proc(fi: ^Fmt_Info, v: any, verb: rune) { } write_string(fi.buf, info.name); write_byte(fi.buf, '{'); - defer write_byte(fi.buf, '}'); hash := fi.hash; defer fi.hash = hash; indent := fi.indent; defer fi.indent -= 1; @@ -767,11 +766,7 @@ fmt_value :: proc(fi: ^Fmt_Info, v: any, verb: rune) { for _, i in b.names { if !hash && i > 0 do write_string(fi.buf, ", "); - if hash { - for in 0..fi.indent { - write_byte(fi.buf, '\t'); - } - } + if hash do for in 0..fi.indent do write_byte(fi.buf, '\t'); write_string(fi.buf, b.names[i]); write_string(fi.buf, " = "); @@ -786,6 +781,9 @@ fmt_value :: proc(fi: ^Fmt_Info, v: any, verb: rune) { if hash do write_string(fi.buf, ",\n"); } + if hash do for in 0..fi.indent do write_byte(fi.buf, '\t'); + write_byte(fi.buf, '}'); + case: fmt_value(fi, any{v.data, info.base}, verb); } diff --git a/examples/demo.odin b/examples/demo.odin index e80333edf..a49301b41 100644 --- a/examples/demo.odin +++ b/examples/demo.odin @@ -559,7 +559,7 @@ threading_example :: proc() { } main :: proc() { - when false { + when true { fmt.println("\n# general_stuff"); general_stuff(); fmt.println("\n# default_struct_values"); default_struct_values(); fmt.println("\n# union_type"); union_type();