aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/godoc/zip.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/godoc/zip.go')
-rw-r--r--src/cmd/godoc/zip.go25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/cmd/godoc/zip.go b/src/cmd/godoc/zip.go
index 274999ba00..cd38ed92bc 100644
--- a/src/cmd/godoc/zip.go
+++ b/src/cmd/godoc/zip.go
@@ -22,6 +22,7 @@ import (
"archive/zip"
"fmt"
"io"
+ "os"
"path"
"sort"
"strings"
@@ -52,12 +53,16 @@ func (fi zipFI) ModTime() time.Time {
return time.Time{} // directory has no modified time entry
}
-func (fi zipFI) IsDirectory() bool {
- return fi.file == nil
+func (fi zipFI) Mode() os.FileMode {
+ if fi.file == nil {
+ // Unix directories typically are executable, hence 555.
+ return os.ModeDir | 0555
+ }
+ return 0444
}
-func (fi zipFI) IsRegular() bool {
- return fi.file != nil
+func (fi zipFI) IsDir() bool {
+ return fi.file == nil
}
// zipFS is the zip-file based implementation of FileSystem
@@ -98,33 +103,33 @@ func (fs *zipFS) Open(abspath string) (io.ReadCloser, error) {
if err != nil {
return nil, err
}
- if fi.IsDirectory() {
+ if fi.IsDir() {
return nil, fmt.Errorf("Open: %s is a directory", abspath)
}
return fi.file.Open()
}
-func (fs *zipFS) Lstat(abspath string) (FileInfo, error) {
+func (fs *zipFS) Lstat(abspath string) (os.FileInfo, error) {
_, fi, err := fs.stat(zipPath(abspath))
return fi, err
}
-func (fs *zipFS) Stat(abspath string) (FileInfo, error) {
+func (fs *zipFS) Stat(abspath string) (os.FileInfo, error) {
_, fi, err := fs.stat(zipPath(abspath))
return fi, err
}
-func (fs *zipFS) ReadDir(abspath string) ([]FileInfo, error) {
+func (fs *zipFS) ReadDir(abspath string) ([]os.FileInfo, error) {
path := zipPath(abspath)
i, fi, err := fs.stat(path)
if err != nil {
return nil, err
}
- if !fi.IsDirectory() {
+ if !fi.IsDir() {
return nil, fmt.Errorf("ReadDir: %s is not a directory", abspath)
}
- var list []FileInfo
+ var list []os.FileInfo
dirname := path + "/"
prevname := ""
for _, e := range fs.list[i:] {