mirror of
https://github.com/golang/go
synced 2024-11-23 00:20:12 -07:00
strconv, fmt: clarify behavior of CanBackquote and "%#q".
Fixes #4858. R=golang-dev, bradfitz, r, rsc CC=golang-dev https://golang.org/cl/7387044
This commit is contained in:
parent
89cf67eb20
commit
4692711d7f
@ -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)
|
||||
|
@ -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] == '`' {
|
||||
|
Loading…
Reference in New Issue
Block a user