Use custom quote char and escape it

This commit is contained in:
Paul Seiffert
2017-07-10 14:09:37 +02:00
parent f78f8d07f6
commit 0383f49850
2 changed files with 50 additions and 2 deletions
+8 -2
View File
@@ -174,14 +174,20 @@ func (f *TextFormatter) appendValue(b *bytes.Buffer, value interface{}) {
if !f.needsQuoting(value) {
b.WriteString(value)
} else {
fmt.Fprintf(b, "%q", value)
escapedQuote := fmt.Sprintf("\\%s", f.QuoteCharacter)
escapedValue := strings.Replace(value, f.QuoteCharacter, escapedQuote, -1)
fmt.Fprintf(b, "%s%v%s", f.QuoteCharacter, escapedValue, f.QuoteCharacter)
}
case error:
errmsg := value.Error()
if !f.needsQuoting(errmsg) {
b.WriteString(errmsg)
} else {
fmt.Fprintf(b, "%q", errmsg)
escapedQuote := fmt.Sprintf("\\%s", f.QuoteCharacter)
escapedErrmsg := strings.Replace(errmsg, f.QuoteCharacter, escapedQuote, -1)
fmt.Fprintf(b, "%s%v%s", f.QuoteCharacter, escapedErrmsg, f.QuoteCharacter)
}
default:
fmt.Fprint(b, value)