func endingToTxtSlice(c chan lex, errstr, f string) ([]string, *ParseError, string) {
	quote := false
	l := <-c
	var s []string
	if l.err {
		return s, &ParseError{f, errstr, l}, ""
	}
	switch l.value == zQuote {
	case true:  
		s = make([]string, 0)
		empty := true
		for l.value != zNewline && l.value != zEOF {
			if l.err {
				return nil, &ParseError{f, errstr, l}, ""
			}
			switch l.value {
			case zString:
				empty = false
				if len(l.token) > 255 {
					sx := []string{}
					p, i := 0, 255
					for {
						if i <= len(l.token) {
							sx = append(sx, l.token[p:i])
						} else {
							sx = append(sx, l.token[p:])
							break
						}
						p, i = p+255, i+255
					}
					s = append(s, sx...)
					break
				}
				s = append(s, l.token)
			case zBlank:
				if quote {
					return nil, &ParseError{f, errstr, l}, ""
				}
			case zQuote:
				if empty && quote {
					s = append(s, "")
				}
				quote = !quote
				empty = true
			default:
				return nil, &ParseError{f, errstr, l}, ""
			}
			l = <-c
		}
		if quote {
			return nil, &ParseError{f, errstr, l}, ""
		}
	case false:  
		s = make([]string, 1)
		for l.value != zNewline && l.value != zEOF {
			if l.err {
				return s, &ParseError{f, errstr, l}, ""
			}
			s[0] += l.token
			l = <-c
		}
	}
	return s, nil, l.comment
}
A remainder of the rdata with embedded spaces, return the parsed string slice (sans the spaces)
or an error
package dns
import (
	"encoding/base64"
	"net"
	"strconv"
	"strings"
)
type parserFunc struct {
	Func func(h RR_Header, c chan lex, origin string, file string) (RR, *ParseError, string)
	Variable bool
}
func setRR(h RR_Header, c chan lex, o, f string) (RR, *ParseError, string) {
	parserfunc, ok := typeToparserFunc[h.Rrtype]
	if ok {
		r, e, cm := parserfunc.Func(h, c, o, f)
		if parserfunc.Variable {
			return r, e, cm
		}
		if e != nil {
			return nil, e, ""
		}
		e, cm = slurpRemainder(c, f)
		if e != nil {
			return nil, e, ""
		}
		return r, nil, cm
	}
	return setRFC3597(h, c, o, f)
}
func endingToString(c chan lex, errstr, f string) (string, *ParseError, string) {
	s := ""
	l := <-c  
	for l.value != zNewline && l.value != zEOF {
		if l.err {
			return s, &ParseError{f, errstr, l}, ""
		}
		switch l.value {
		case zString:
			s += l.token
		case zBlank:  
		default:
			return "", &ParseError{f, errstr, l}, ""
		}
		l = <-c
	}
	return s, nil, l.comment
}