vendor/github.com/spf13/afero/unionFile.go
changeset 251 1c52a0eeb952
parent 242 2a9ec03fe5a1
child 256 6d9efbef00a9
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
   153 	return rfi, nil
   153 	return rfi, nil
   154 
   154 
   155 }
   155 }
   156 
   156 
   157 // Readdir will weave the two directories together and
   157 // Readdir will weave the two directories together and
   158 // return a single view of the overlayed directories
   158 // return a single view of the overlayed directories.
       
   159 // At the end of the directory view, the error is io.EOF if c > 0.
   159 func (f *UnionFile) Readdir(c int) (ofi []os.FileInfo, err error) {
   160 func (f *UnionFile) Readdir(c int) (ofi []os.FileInfo, err error) {
   160 	var merge DirsMerger = f.Merger
   161 	var merge DirsMerger = f.Merger
   161 	if merge == nil {
   162 	if merge == nil {
   162 		merge = defaultUnionMergeDirsFn
   163 		merge = defaultUnionMergeDirsFn
   163 	}
   164 	}
   183 		if err != nil {
   184 		if err != nil {
   184 			return nil, err
   185 			return nil, err
   185 		}
   186 		}
   186 		f.files = append(f.files, merged...)
   187 		f.files = append(f.files, merged...)
   187 	}
   188 	}
   188 	if c == -1 {
   189 
       
   190 	if c <= 0 && len(f.files) == 0 {
       
   191 		return f.files, nil
       
   192 	}
       
   193 
       
   194 	if f.off >= len(f.files) {
       
   195 		return nil, io.EOF
       
   196 	}
       
   197 
       
   198 	if c <= 0 {
   189 		return f.files[f.off:], nil
   199 		return f.files[f.off:], nil
   190 	}
   200 	}
       
   201 
       
   202 	if c > len(f.files) {
       
   203 		c = len(f.files)
       
   204 	}
       
   205 
   191 	defer func() { f.off += c }()
   206 	defer func() { f.off += c }()
   192 	return f.files[f.off:c], nil
   207 	return f.files[f.off:c], nil
   193 }
   208 }
   194 
   209 
   195 func (f *UnionFile) Readdirnames(c int) ([]string, error) {
   210 func (f *UnionFile) Readdirnames(c int) ([]string, error) {