func bodyDiff(win *acme.Win, ffile string) (bool, error) { tf, err := os.Open(ffile) if err != nil { return false, err } defer tf.Close() win.Seek("body", 0, 0) fr := bufio.NewReader(tf) br := bufio.NewReader(&bodyReader{win}) for { fb, errf := fr.ReadByte() if errf != nil && errf != io.EOF { return false, errf } bb, errb := br.ReadByte() if errb != nil && errb != io.EOF { return false, errb } if fb != bb { return true, nil } if errf == io.EOF && errb == io.EOF { return false, nil } } }