diff --git a/yaml/pretty/util.go b/yaml/pretty/util.go index 75834d7..21b9ce7 100644 --- a/yaml/pretty/util.go +++ b/yaml/pretty/util.go @@ -65,7 +65,7 @@ func isZero(v interface{}) bool { func isQuoted(b rune) bool { switch b { - case ':', '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': + case '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\'', '"', '%', '@', '`': return true case '\a', '\b', '\f', '\n', '\r', '\t', '\v': return true diff --git a/yaml/pretty/writer.go b/yaml/pretty/writer.go index 8de89d2..b906e17 100644 --- a/yaml/pretty/writer.go +++ b/yaml/pretty/writer.go @@ -195,11 +195,17 @@ func writeEncode(w writer, v string) { w.WriteByte('"') return } + var prev rune for _, b := range v { if isQuoted(b) { fmt.Fprintf(w, "%q", v) return } + if b == ' ' && prev == ':' { + fmt.Fprintf(w, "%q", v) + return + } + prev = b } w.WriteString(v) }