From 59f029cbf241b5f29e183320c417ce5059464ccd Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Sat, 1 Nov 2008 16:37:53 -0700 Subject: [PATCH] a couple of bugs in print. 1) bool wasn't handled (added '%t' for 'truth'). 2) float64 had a typo. TBR=rsc DELTA=11 (10 added, 0 deleted, 1 changed) OCL=18314 CL=18318 --- src/lib/fmt/print.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib/fmt/print.go b/src/lib/fmt/print.go index c95353a19d..5b1ec25152 100644 --- a/src/lib/fmt/print.go +++ b/src/lib/fmt/print.go @@ -197,7 +197,7 @@ func getFloat(v reflect.Value) (val float64, ok bool) { case reflect.Float32Kind: return float64(v.(reflect.Float32Value).Get()), true; case reflect.Float64Kind: - return float64(v.(reflect.Float32Value).Get()), true; + return float64(v.(reflect.Float64Value).Get()), true; case reflect.Float80Kind: break; // TODO: what to do here? } @@ -273,6 +273,14 @@ func (p *P) doprintf(format string, v reflect.StructValue) { fieldnum++; s := ""; switch c { + // bool + case 't': + if field.(reflect.BoolValue).Get() { + s = "true"; + } else { + s = "false"; + } + // int case 'b': if v, signed, ok := getInt(field); ok { @@ -369,6 +377,8 @@ func (p *P) doprint(v reflect.StructValue, is_println bool) { p.add(' ') } switch field.Kind() { + case reflect.BoolKind: + s = p.fmt.boolean(field.(reflect.BoolValue).Get()).str(); case reflect.IntKind, reflect.Int8Kind, reflect.Int16Kind, reflect.Int32Kind, reflect.Int64Kind: v, signed, ok := getInt(field); s = p.fmt.d64(v).str(); -- 2.50.0