go.talks/pkg/present: read lines with bufio.Scanner
This should handle "\r\n" line endings properly.
Fixes golang/go#5339.
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/10483043
diff --git a/pkg/present/parse.go b/pkg/present/parse.go
index 2e263c5..a78a85b 100644
--- a/pkg/present/parse.go
+++ b/pkg/present/parse.go
@@ -5,6 +5,7 @@
package present
import (
+ "bufio"
"bytes"
"errors"
"fmt"
@@ -171,11 +172,15 @@
}
func readLines(r io.Reader) (*Lines, error) {
- contentBytes, err := ioutil.ReadAll(r)
- if err != nil {
+ var lines []string
+ s := bufio.NewScanner(r)
+ for s.Scan() {
+ lines = append(lines, s.Text())
+ }
+ if err := s.Err(); err != nil {
return nil, err
}
- return &Lines{0, strings.Split(string(contentBytes), "\n")}, nil
+ return &Lines{0, lines}, nil
}
func (l *Lines) next() (text string, ok bool) {