From: Andrew Gerrand Date: Tue, 27 Mar 2012 01:44:17 +0000 (+1100) Subject: cmd/godoc: canonicalize custom path redirects X-Git-Tag: weekly.2012-03-27~30 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=849ad2d0cac9b3ee97b3d331ca6e556a6073d94d;p=gostls13.git cmd/godoc: canonicalize custom path redirects For example, /ref and /doc/reference.html now both redirect to /ref/. Fixes #3401. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5916044 --- diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go index 26814d2fa3..f21c20496c 100644 --- a/src/cmd/godoc/godoc.go +++ b/src/cmd/godoc/godoc.go @@ -1315,7 +1315,18 @@ func refreshMetadataLoop() { // func metadataFor(relpath string) *Metadata { if m, _ := docMetadata.get(); m != nil { - return m.(map[string]*Metadata)[relpath] + meta := m.(map[string]*Metadata) + // If metadata for this relpath exists, return it. + if p := meta[relpath]; p != nil { + return p + } + // Try with or without trailing slash. + if strings.HasSuffix(relpath, "/") { + relpath = relpath[:len(relpath)-1] + } else { + relpath = relpath + "/" + } + return meta[relpath] } return nil }