Hello bradfitz (cc: golang-codereviews@googlegroups.com), I'd like you to review this change to https://code.google.com/p/go/
LGTM On Tue, Sep 16, 2014 at 3:20 PM, <rsc@golang.org> wrote: > Reviewers: bradfitz, > > Message: > Hello bradfitz (cc: golang-codereviews@googlegroups.com), > > I'd like you to review this change to > https://code.google.com/p/go/ > > > Description: > net/mail: allow us-ascii encoding > > Fixes issue 6611. > > Please review this at https://codereview.appspot.com/14990045/ > > Affected files (+22, -1 lines): > M src/net/mail/message.go > M src/net/mail/message_test.go > > > Index: src/net/mail/message.go > =================================================================== > --- a/src/net/mail/message.go > +++ b/src/net/mail/message.go > @@ -28,6 +28,7 @@ > "strconv" > "strings" > "time" > + "unicode" > ) > > var debug = debugT(false) > @@ -445,7 +446,7 @@ > return "", errors.New("address not RFC 2047 encoded") > } > charset, enc := strings.ToLower(fields[1]), > strings.ToLower(fields[2]) > - if charset != "iso-8859-1" && charset != "utf-8" { > + if charset != "us-ascii" && charset != "iso-8859-1" && charset != > "utf-8" { > return "", fmt.Errorf("charset not supported: %q", charset) > } > > @@ -466,6 +467,16 @@ > } > > switch charset { > + case "us-ascii": > + b := new(bytes.Buffer) > + for _, c := range dec { > + if c >= 0x80 { > + b.WriteRune(unicode.ReplacementChar) > + } else { > + b.WriteRune(rune(c)) > + } > + } > + return b.String(), nil > case "iso-8859-1": > b := new(bytes.Buffer) > for _, c := range dec { > Index: src/net/mail/message_test.go > =================================================================== > --- a/src/net/mail/message_test.go > +++ b/src/net/mail/message_test.go > @@ -194,6 +194,16 @@ > }, > }, > }, > + // RFC 2047 "Q"-encoded US-ASCII address. Dumb but legal. > + { > + `=?us-ascii?q?J=6Frg_Doe?= <joerg@example.com>`, > + []*Address{ > + { > + Name: `Jorg Doe`, > + Address: "joerg@example.com", > + }, > + }, > + }, > // RFC 2047 "Q"-encoded UTF-8 address. > { > `=?utf-8?q?J=C3=B6rg_Doe?= <joerg@example.com>`, > > >
*** Submitted as https://code.google.com/p/go/source/detail?r=8bc2c34f449d *** net/mail: allow us-ascii encoding Fixes issue 6611. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://codereview.appspot.com/14990045