summaryrefslogtreecommitdiff
path: root/debian/patches/godoc-symlinks.diff
blob: 26539530a97676ad272d093f7c4ff5bb807a449b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--- a/src/cmd/godoc/filesystem.go
+++ b/src/cmd/godoc/filesystem.go
@@ -121,7 +121,22 @@
 }
 
 func (root osFS) ReadDir(path string) ([]os.FileInfo, error) {
-	return ioutil.ReadDir(root.resolve(path)) // is sorted
+	dirName := root.resolve(path)
+	fis, err := ioutil.ReadDir(dirName) // is sorted
+	if err != nil {
+		return nil, err
+	}
+	// Replace symlinks with what they are pointing to
+	for i, fi := range fis {
+		if fi.Mode()&os.ModeSymlink != 0 {
+			fi, err = os.Stat(filepath.Join(dirName, fi.Name()))
+			if err != nil {
+				return nil, err
+			}
+		}
+		fis[i] = fi
+	}
+	return fis, nil
 }
 
 // hasPathPrefix returns true if x == y or x == y + "/" + more