1
0
mirror of https://github.com/golang/go synced 2024-11-23 03:30:02 -07:00

fmt: don't pad strings with zeros

It's what the documentation says, and oddly it already behaves correctly
for right padding, not left. (We never pad with zeros on the right.)

Just don't do it.

Fixes #56486

Change-Id: I2465edea93c69084e33bee0d945d5a1b85e6cd14
Reviewed-on: https://go-review.googlesource.com/c/go/+/555776
Reviewed-by: Russ Cox <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Rob Pike <r@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
This commit is contained in:
Rob Pike 2024-01-14 15:34:49 +11:00 committed by M Zhuo
parent adead1a93f
commit 704401ffa0
2 changed files with 7 additions and 2 deletions

View File

@ -304,8 +304,8 @@ var fmtTests = []struct {
{"%2s", []byte("\u263a"), " ☺"}, {"%2s", []byte("\u263a"), " ☺"},
{"%-5s", "abc", "abc "}, {"%-5s", "abc", "abc "},
{"%-5s", []byte("abc"), "abc "}, {"%-5s", []byte("abc"), "abc "},
{"%05s", "abc", "00abc"}, {"%05s", "abc", " abc"},
{"%05s", []byte("abc"), "00abc"}, {"%05s", []byte("abc"), " abc"},
{"%5s", "abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyz"}, {"%5s", "abcdefghijklmnopqrstuvwxyz", "abcdefghijklmnopqrstuvwxyz"},
{"%5s", []byte("abcdefghijklmnopqrstuvwxyz"), "abcdefghijklmnopqrstuvwxyz"}, {"%5s", []byte("abcdefghijklmnopqrstuvwxyz"), "abcdefghijklmnopqrstuvwxyz"},
{"%.5s", "abcdefghijklmnopqrstuvwxyz", "abcde"}, {"%.5s", "abcdefghijklmnopqrstuvwxyz", "abcde"},

View File

@ -703,6 +703,11 @@ func (p *pp) printArg(arg any, verb rune) {
return return
} }
// Bug fix: avoid padding strings with zeros. Issue 56486.
if verb == 's' {
p.fmt.zero = false
}
// Some types can be done without reflection. // Some types can be done without reflection.
switch f := arg.(type) { switch f := arg.(type) {
case bool: case bool: