summaryrefslogtreecommitdiff
path: root/debian/patches/godoc-symlinks.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/godoc-symlinks.diff')
-rw-r--r--debian/patches/godoc-symlinks.diff26
1 files changed, 26 insertions, 0 deletions
diff --git a/debian/patches/godoc-symlinks.diff b/debian/patches/godoc-symlinks.diff
new file mode 100644
index 000000000..d8a1150ab
--- /dev/null
+++ b/debian/patches/godoc-symlinks.diff
@@ -0,0 +1,26 @@
+--- a/src/cmd/godoc/filesystem.go
++++ b/src/cmd/godoc/filesystem.go
+@@ -121,7 +121,22 @@ func (root osFS) Stat(path string) (os.F
+ }
+
+ func (root osFS) ReadDir(path string) ([]os.FileInfo, error) {
+- return ioutil.ReadDir(root.resolve(path)) // is sorted
++ fis, err := ioutil.ReadDir(path) // is sorted
++ if err != nil {
++ return nil, err
++ }
++ // Replace symlinks with what they are pointing to
++ dirPrefix := path + "/"
++ for i, fi := range fis {
++ if fi.Mode() & os.ModeSymlink != 0 {
++ fi, err = os.Stat(dirPrefix + fi.Name())
++ if err != nil {
++ return nil, err
++ }
++ }
++ fis[i] = fi
++ }
++ return fis, nil
+ }
+
+ // hasPathPrefix returns true if x == y or x == y + "/" + more