a685e3fc98
Vndr has a simpler configuration and allows pointing to forked packages. Additionally other docker projects are now using vndr making vendoring in distribution more consistent. Updates letsencrypt to use fork. No longer uses sub-vendored packages. Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
43 lines
808 B
Go
43 lines
808 B
Go
package dns
|
|
|
|
// Implement a simple scanner, return a byte stream from an io reader.
|
|
|
|
import (
|
|
"bufio"
|
|
"io"
|
|
"text/scanner"
|
|
)
|
|
|
|
type scan struct {
|
|
src *bufio.Reader
|
|
position scanner.Position
|
|
eof bool // Have we just seen a eof
|
|
}
|
|
|
|
func scanInit(r io.Reader) *scan {
|
|
s := new(scan)
|
|
s.src = bufio.NewReader(r)
|
|
s.position.Line = 1
|
|
return s
|
|
}
|
|
|
|
// tokenText returns the next byte from the input
|
|
func (s *scan) tokenText() (byte, error) {
|
|
c, err := s.src.ReadByte()
|
|
if err != nil {
|
|
return c, err
|
|
}
|
|
// delay the newline handling until the next token is delivered,
|
|
// fixes off-by-one errors when reporting a parse error.
|
|
if s.eof == true {
|
|
s.position.Line++
|
|
s.position.Column = 0
|
|
s.eof = false
|
|
}
|
|
if c == '\n' {
|
|
s.eof = true
|
|
return c, nil
|
|
}
|
|
s.position.Column++
|
|
return c, nil
|
|
}
|