]> Cypherpunks repositories - gostls13.git/commitdiff
os: add Seek whence constants
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 4 Apr 2011 20:53:52 +0000 (13:53 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 4 Apr 2011 20:53:52 +0000 (13:53 -0700)
R=r, r2, rsc1, rsc, jacek.masiulaniec
CC=golang-dev
https://golang.org/cl/4344062

src/pkg/archive/tar/reader.go
src/pkg/archive/zip/reader.go
src/pkg/debug/elf/file.go
src/pkg/debug/pe/file.go
src/pkg/http/fs.go
src/pkg/os/file.go

index 35a15f74bb1fd045e244637cc351482ec27bf5f5..1b41196a999a03344957477e906bbffaae958aae 100644 (file)
@@ -95,7 +95,7 @@ func (tr *Reader) skipUnread() {
        nr := tr.nb + tr.pad // number of bytes to skip
        tr.nb, tr.pad = 0, 0
        if sr, ok := tr.r.(io.Seeker); ok {
-               if _, err := sr.Seek(nr, 1); err == nil {
+               if _, err := sr.Seek(nr, os.SEEK_CUR); err == nil {
                        return
                }
        }
index 3b265c9b72e6fe99cf50fb88ee13fabd44400a77..ac53b20d198ac84aba53d6033e15cfb818f79b0a 100644 (file)
@@ -73,7 +73,7 @@ func NewReader(r io.ReaderAt, size int64) (*Reader, os.Error) {
                Comment: end.comment,
        }
        rs := io.NewSectionReader(r, 0, size)
-       if _, err = rs.Seek(int64(end.directoryOffset), 0); err != nil {
+       if _, err = rs.Seek(int64(end.directoryOffset), os.SEEK_SET); err != nil {
                return nil, err
        }
        buf := bufio.NewReader(rs)
@@ -94,7 +94,7 @@ func (f *File) Open() (rc io.ReadCloser, err os.Error) {
                if err = readFileHeader(f, r); err != nil {
                        return
                }
-               if f.bodyOffset, err = r.Seek(0, 1); err != nil {
+               if f.bodyOffset, err = r.Seek(0, os.SEEK_CUR); err != nil {
                        return
                }
        }
index e69317a75faf62dfb37b7c9cfb97aaee01a442f0..60f913f4572a4c5c03320b64ca31eb44fde49ecb 100644 (file)
@@ -228,7 +228,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        switch f.Class {
        case ELFCLASS32:
                hdr := new(Header32)
-               sr.Seek(0, 0)
+               sr.Seek(0, os.SEEK_SET)
                if err := binary.Read(sr, f.ByteOrder, hdr); err != nil {
                        return nil, err
                }
@@ -243,7 +243,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                shstrndx = int(hdr.Shstrndx)
        case ELFCLASS64:
                hdr := new(Header64)
-               sr.Seek(0, 0)
+               sr.Seek(0, os.SEEK_SET)
                if err := binary.Read(sr, f.ByteOrder, hdr); err != nil {
                        return nil, err
                }
@@ -269,7 +269,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        names := make([]uint32, shnum)
        for i := 0; i < shnum; i++ {
                off := shoff + int64(i)*int64(shentsize)
-               sr.Seek(off, 0)
+               sr.Seek(off, os.SEEK_SET)
                s := new(Section)
                switch f.Class {
                case ELFCLASS32:
index 1bcbdc5e9a5706af9af14d09b14b255ca94b33f7..b99131e5ede6c933106820c1b9cea555b0575a91 100644 (file)
@@ -132,7 +132,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        } else {
                base = int64(0)
        }
-       sr.Seek(base, 0)
+       sr.Seek(base, os.SEEK_SET)
        if err := binary.Read(sr, binary.LittleEndian, &f.FileHeader); err != nil {
                return nil, err
        }
@@ -140,7 +140,7 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
                return nil, os.NewError("Invalid PE File Format.")
        }
        // get symbol string table
-       sr.Seek(int64(f.FileHeader.PointerToSymbolTable+18*f.FileHeader.NumberOfSymbols), 0)
+       sr.Seek(int64(f.FileHeader.PointerToSymbolTable+18*f.FileHeader.NumberOfSymbols), os.SEEK_SET)
        var l uint32
        if err := binary.Read(sr, binary.LittleEndian, &l); err != nil {
                return nil, err
@@ -149,9 +149,9 @@ func NewFile(r io.ReaderAt) (*File, os.Error) {
        if _, err := r.ReadAt(ss, int64(f.FileHeader.PointerToSymbolTable+18*f.FileHeader.NumberOfSymbols)); err != nil {
                return nil, err
        }
-       sr.Seek(base, 0)
+       sr.Seek(base, os.SEEK_SET)
        binary.Read(sr, binary.LittleEndian, &f.FileHeader)
-       sr.Seek(int64(f.FileHeader.SizeOfOptionalHeader), 1) //Skip OptionalHeader
+       sr.Seek(int64(f.FileHeader.SizeOfOptionalHeader), os.SEEK_CUR) //Skip OptionalHeader
        f.Sections = make([]*Section, f.FileHeader.NumberOfSections)
        for i := 0; i < int(f.FileHeader.NumberOfSections); i++ {
                sh := new(SectionHeader32)
index 8b5c4770c49b2fab5927eea67ed79b0f283640d8..2997b57998b3fd4db0c9fd5e56abecce99a4398e 100644 (file)
@@ -148,7 +148,7 @@ func serveFile(w ResponseWriter, r *Request, name string, redirect bool) {
                } else {
                        w.Header().Set("Content-Type", "application/octet-stream") // generic binary
                }
-               f.Seek(0, 0) // rewind to output whole file
+               f.Seek(0, os.SEEK_SET) // rewind to output whole file
        }
 
        // handle Content-Range header.
@@ -163,7 +163,7 @@ func serveFile(w ResponseWriter, r *Request, name string, redirect bool) {
        }
        if len(ranges) == 1 {
                ra := ranges[0]
-               if _, err := f.Seek(ra.start, 0); err != nil {
+               if _, err := f.Seek(ra.start, os.SEEK_SET); err != nil {
                        Error(w, err.String(), StatusRequestedRangeNotSatisfiable)
                        return
                }
index e916d160588ddf5a6086de23894c60456003b928..f14d00dd1e20f0308a4a83efc4fa57a607c43e25 100644 (file)
@@ -61,6 +61,13 @@ const (
        O_CREATE   int = O_CREAT            // create a new file if none exists.
 )
 
+// Seek whence values.
+const (
+       SEEK_SET int = 0 // seek relative to the origin of the file
+       SEEK_CUR int = 1 // seek relative to the current offset
+       SEEK_END int = 2 // seek relative to the end
+)
+
 type eofError int
 
 func (eofError) String() string { return "EOF" }