diff --git a/tail.go b/tail.go index ec0a2559..bc512734 100644 --- a/tail.go +++ b/tail.go @@ -5,7 +5,7 @@ package tail import ( "bufio" "fmt" - "github.com/ActiveState/tail/watch" + "github.com/funkygao/tail/watch" "io" "launchpad.net/tomb" "log" @@ -146,8 +146,17 @@ func (tail *Tail) reopen() error { } func (tail *Tail) readLine() ([]byte, error) { - line, _, err := tail.reader.ReadLine() - return line, err + line, isPrefix, err := tail.reader.ReadLine() + if !isPrefix { + return line, err + } + + buf := append([]byte(nil), line...) + for isPrefix && err == nil { + line, isPrefix, err = tail.reader.ReadLine() + buf = append(buf, line...) + } + return buf, err } func (tail *Tail) tailFileSync() {