% 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]);