diff --git a/asv.go b/asv.go index 6b4f3a0..6a9e895 100644 --- a/asv.go +++ b/asv.go @@ -156,12 +156,17 @@ func (this *Decoder) ReadUnit () (unit Unit, next rune, err error) { char, _, err := this.reader.ReadRune() if err != nil { return Unit(str.String()), 0, err } - if esc { + switch { + case esc: esc = false - } else if IsSeparator(char) { + str.WriteRune(char) + case char == Escape: + esc = true + case IsSeparator(char): return Unit(str.String()), char, nil + default: + str.WriteRune(char) } - str.WriteRune(char) } }