Commit 38df0459 authored by Rob Pike's avatar Rob Pike

strconv: make QuoteRune etc. take a rune argument

Just an oversight it didn't already.
Fixes #2515.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5483064
parent c0951e9f
...@@ -331,9 +331,9 @@ func (f *fmt) fmt_q(s string) { ...@@ -331,9 +331,9 @@ func (f *fmt) fmt_q(s string) {
func (f *fmt) fmt_qc(c int64) { func (f *fmt) fmt_qc(c int64) {
var quoted string var quoted string
if f.plus { if f.plus {
quoted = strconv.QuoteRuneToASCII(int(c)) quoted = strconv.QuoteRuneToASCII(rune(c))
} else { } else {
quoted = strconv.QuoteRune(int(c)) quoted = strconv.QuoteRune(rune(c))
} }
f.padString(quoted) f.padString(quoted)
} }
......
...@@ -116,30 +116,30 @@ func AppendQuoteToASCII(dst []byte, s string) []byte { ...@@ -116,30 +116,30 @@ func AppendQuoteToASCII(dst []byte, s string) []byte {
// rune. The returned string uses Go escape sequences (\t, \n, \xFF, \u0100) // rune. The returned string uses Go escape sequences (\t, \n, \xFF, \u0100)
// for control characters and non-printable characters as defined by // for control characters and non-printable characters as defined by
// unicode.IsPrint. // unicode.IsPrint.
func QuoteRune(rune int) string { func QuoteRune(r rune) string {
// TODO: avoid the allocation here. // TODO: avoid the allocation here.
return quoteWith(string(rune), '\'', false) return quoteWith(string(r), '\'', false)
} }
// AppendQuoteRune appends a single-quoted Go character literal representing the rune, // AppendQuoteRune appends a single-quoted Go character literal representing the rune,
// as generated by QuoteRune, to dst and returns the extended buffer. // as generated by QuoteRune, to dst and returns the extended buffer.
func AppendQuoteRune(dst []byte, rune int) []byte { func AppendQuoteRune(dst []byte, r rune) []byte {
return append(dst, QuoteRune(rune)...) return append(dst, QuoteRune(r)...)
} }
// QuoteRuneToASCII returns a single-quoted Go character literal representing // QuoteRuneToASCII returns a single-quoted Go character literal representing
// the rune. The returned string uses Go escape sequences (\t, \n, \xFF, // the rune. The returned string uses Go escape sequences (\t, \n, \xFF,
// \u0100) for non-ASCII characters and non-printable characters as defined // \u0100) for non-ASCII characters and non-printable characters as defined
// by unicode.IsPrint. // by unicode.IsPrint.
func QuoteRuneToASCII(rune int) string { func QuoteRuneToASCII(r rune) string {
// TODO: avoid the allocation here. // TODO: avoid the allocation here.
return quoteWith(string(rune), '\'', true) return quoteWith(string(r), '\'', true)
} }
// AppendQuoteRune appends a single-quoted Go character literal representing the rune, // AppendQuoteRune appends a single-quoted Go character literal representing the rune,
// as generated by QuoteRuneToASCII, to dst and returns the extended buffer. // as generated by QuoteRuneToASCII, to dst and returns the extended buffer.
func AppendQuoteRuneToASCII(dst []byte, rune int) []byte { func AppendQuoteRuneToASCII(dst []byte, r rune) []byte {
return append(dst, QuoteRuneToASCII(rune)...) return append(dst, QuoteRuneToASCII(r)...)
} }
// CanBackquote returns whether the string s would be // CanBackquote returns whether the string s would be
......
...@@ -47,7 +47,7 @@ func TestQuoteToASCII(t *testing.T) { ...@@ -47,7 +47,7 @@ func TestQuoteToASCII(t *testing.T) {
} }
type quoteRuneTest struct { type quoteRuneTest struct {
in int in rune
out string out string
ascii string ascii string
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment