NewReaderWithOptions is like [NewReader] but applies the supplied options.
(r io.ReaderAt, size int64, opts ReaderOptions)
| 132 | |
| 133 | // NewReaderWithOptions is like [NewReader] but applies the supplied options. |
| 134 | func NewReaderWithOptions(r io.ReaderAt, size int64, opts ReaderOptions) (*Reader, error) { |
| 135 | if size < 0 { |
| 136 | return nil, errors.New("zip: size cannot be negative") |
| 137 | } |
| 138 | zr := &Reader{nameDecoder: opts.NameDecoder} |
| 139 | var err error |
| 140 | if err = zr.init(r, size); err != nil && err != ErrInsecurePath { |
| 141 | return nil, err |
| 142 | } |
| 143 | return zr, err |
| 144 | } |
| 145 | |
| 146 | func (r *Reader) init(rdr io.ReaderAt, size int64) error { |
| 147 | end, baseOffset, err := readDirectoryEnd(rdr, size) |
searching dependent graphs…