diff options
author | Rob Pike <r@golang.org> | 2010-06-28 14:11:38 -0700 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2010-06-28 14:11:38 -0700 |
commit | 2e258e4d7d5776741079b4b741b9e9dc9e476719 (patch) | |
tree | 9026bbfb284e5d6f12267e132e549e3e27e2cb56 /src/pkg/fmt/format.go | |
parent | 38ce83e85d620f191bd6f5f7de1fe0e22ed538cf (diff) | |
download | golang-2e258e4d7d5776741079b4b741b9e9dc9e476719.tar.gz |
fmt.Printf: fix bug in handling of %#v.
nice side effect: slices now obey their format verb. example:
fmt.Printf("%q\n", []string{"a"})
R=rsc
CC=golang-dev
http://codereview.appspot.com/1729045
Diffstat (limited to 'src/pkg/fmt/format.go')
-rw-r--r-- | src/pkg/fmt/format.go | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/src/pkg/fmt/format.go b/src/pkg/fmt/format.go index 62fc9ff1c..3ec1cf139 100644 --- a/src/pkg/fmt/format.go +++ b/src/pkg/fmt/format.go @@ -43,14 +43,13 @@ type fmt struct { wid int prec int // flags - widPresent bool - precPresent bool - minus bool - plus bool - sharp bool - space bool - zero bool - preserveFlags bool // don't clear flags after this print; used to carry over in complex prints + widPresent bool + precPresent bool + minus bool + plus bool + sharp bool + space bool + zero bool } func (f *fmt) clearflags() { @@ -120,9 +119,6 @@ func (f *fmt) pad(b []byte) { if right > 0 { f.writePadding(right, padding) } - if !f.preserveFlags { - f.clearflags() - } } // append s to buf, padded on left (w > 0) or right (w < 0 or f.minus). @@ -140,9 +136,6 @@ func (f *fmt) padString(s string) { if right > 0 { f.writePadding(right, padding) } - if !f.preserveFlags { - f.clearflags() - } } func putint(buf []byte, base, val uint64, digits string) int { @@ -345,7 +338,6 @@ func (f *fmt) fmt_fb32(v float32) { f.padString(strconv.Ftoa32(v, 'b', 0)) } func (f *fmt) fmt_c64(v complex64, verb int) { f.buf.WriteByte('(') r := real(v) - f.preserveFlags = true for i := 0; ; i++ { switch verb { case 'e': @@ -359,7 +351,6 @@ func (f *fmt) fmt_c64(v complex64, verb int) { case 'G': f.fmt_G32(r) } - f.preserveFlags = false if i != 0 { break } @@ -373,7 +364,6 @@ func (f *fmt) fmt_c64(v complex64, verb int) { func (f *fmt) fmt_c128(v complex128, verb int) { f.buf.WriteByte('(') r := real(v) - f.preserveFlags = true for i := 0; ; i++ { switch verb { case 'e': @@ -387,7 +377,6 @@ func (f *fmt) fmt_c128(v complex128, verb int) { case 'G': f.fmt_G64(r) } - f.preserveFlags = false if i != 0 { break } |