]> Cypherpunks repositories - gostls13.git/commitdiff
strconv, fmt: clarify behavior of CanBackquote and "%#q".
authorShenghou Ma <minux.ma@gmail.com>
Mon, 25 Feb 2013 22:33:59 +0000 (06:33 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Mon, 25 Feb 2013 22:33:59 +0000 (06:33 +0800)
Fixes #4858.

R=golang-dev, bradfitz, r, rsc
CC=golang-dev
https://golang.org/cl/7387044

src/pkg/fmt/doc.go
src/pkg/strconv/quote.go

index 2c925a4228308df466a9c096b24143935fa4c511..3cd02d7ede45d575257c42909ba7158d24efff82 100644 (file)
@@ -74,7 +74,8 @@
                -       pad with spaces on the right rather than the left (left-justify the field)
                #       alternate format: add leading 0 for octal (%#o), 0x for hex (%#x);
                        0X for hex (%#X); suppress 0x for %p (%#p);
-                       print a raw (backquoted) string if possible for %q (%#q);
+                       for %q, print a raw (backquoted) string if strconv.CanBackquote
+                       returns true;
                        write e.g. U+0078 'x' if the character is printable for %U (%#U).
                ' '     (space) leave a space for elided sign in numbers (% d);
                        put spaces between bytes printing strings or slices in hex (% x, % X)
index 8a73f9d3b28302966185e86289787a54369bf32e..8cbef88b5170652d9e982f29106087b0f10b1452 100644 (file)
@@ -139,8 +139,9 @@ func AppendQuoteRuneToASCII(dst []byte, r rune) []byte {
        return append(dst, QuoteRuneToASCII(r)...)
 }
 
-// CanBackquote returns whether the string s would be
-// a valid Go string literal if enclosed in backquotes.
+// CanBackquote reports whether the string s can be represented
+// unchanged as a single-line backquoted string without control
+// characters other than space and tab.
 func CanBackquote(s string) bool {
        for i := 0; i < len(s); i++ {
                if (s[i] < ' ' && s[i] != '\t') || s[i] == '`' {