hunk.code_window: }
   // Caller must close the first return value
   func (a *App) FileReader(path string) (io.ReadCloser, *model.AppError) {
   	backend, err := a.FileBackend()
   	if err != nil {
   		return nil, err
   	}
   	return backend.Reader(path)
  
hunk.labels: keep keep keep replace keep keep keep keep keep
hunk.after_edit: func (a *App) FileReader(path string) (filesstore.ReadCloseSeeker, *model.AppError) {
  
hunk.file_path: app/file.go
hunk.type: replace
file: // Copyright 2009 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  // +build 386,netbsd
  
  package unix
  
  func setTimespec(sec, nsec int64) Timespec {
  	return Timespec{Sec: sec, Nsec: int32(nsec)}
  }
  
  func setTimeval(sec, usec int64) Timeval {
  	return Timeval{Sec: sec, Usec: int32(usec)}
  }
  
  func SetKevent(k *Kevent_t, fd, mode, flags int) {
  	k.Ident = uint32(fd)
  	k.Filter = uint32(mode)
  	k.Flags = uint32(flags)
  }
  
  func (iov *Iovec) SetLen(length int) {
  	iov.Len = uint32(length)
  }
  
  func (msghdr *Msghdr) SetControllen(length int) {
  	msghdr.Controllen = uint32(length)
  }
  
  func (cmsg *Cmsghdr) SetLen(length int) {
  	cmsg.Len = uint32(length)
  }
  