% x inserts spaces between hex bytes in string/*[]byte
R=r
DELTA=7 (7 added, 0 deleted, 0 changed)
OCL=19967
CL=19978
diff --git a/src/lib/fmt/fmt_test.go b/src/lib/fmt/fmt_test.go
index ec1e995..4b423c6 100644
--- a/src/lib/fmt/fmt_test.go
+++ b/src/lib/fmt/fmt_test.go
@@ -45,6 +45,7 @@
// basic bytes
FmtTest{ "%s", Bytes("abc"), "abc" },
FmtTest{ "%x", Bytes("abc"), "616263" },
+ FmtTest{ "% x", Bytes("abc"), "61 62 63" },
FmtTest{ "%x", Bytes("xyz"), "78797a" },
FmtTest{ "%X", Bytes("xyz"), "78797A" },
FmtTest{ "%q", Bytes("abc"), `"abc"` },
diff --git a/src/lib/fmt/format.go b/src/lib/fmt/format.go
index 64d6c9b..d1c20a5 100644
--- a/src/lib/fmt/format.go
+++ b/src/lib/fmt/format.go
@@ -374,6 +374,9 @@
func (f *Fmt) sx(s string) *Fmt {
t := "";
for i := 0; i < len(s); i++ {
+ if i > 0 && f.space {
+ t += " ";
+ }
v := s[i];
t += string(ldigits[v>>4]);
t += string(ldigits[v&0xF]);