]> Cypherpunks repositories - gostls13.git/commitdiff
godoc: show all top-level decls for (fake) package builtin
authorRobert Griesemer <gri@golang.org>
Tue, 16 Aug 2011 02:05:52 +0000 (19:05 -0700)
committerRobert Griesemer <gri@golang.org>
Tue, 16 Aug 2011 02:05:52 +0000 (19:05 -0700)
R=r, adg
CC=golang-dev
https://golang.org/cl/4904045

src/cmd/godoc/godoc.go

index e3f8ad8d36f94d2dd20a3fb75ffefae95ebe55a7..7d4bcdc0c98198b24857fd6f06ee5fd9750bc530 100644 (file)
@@ -767,6 +767,10 @@ func serveFile(w http.ResponseWriter, r *http.Request) {
 const fakePkgFile = "doc.go"
 const fakePkgName = "documentation"
 
+// Fake relative package path for built-ins. Documentation for all globals
+// (not just exported ones) will be shown for packages in this directory.
+const builtinPkgPath = "builtin/"
+
 type PageInfoMode uint
 
 const (
@@ -941,7 +945,10 @@ func (h *httpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 
        relpath := r.URL.Path[len(h.pattern):]
        abspath := absolutePath(relpath, h.fsRoot)
-       mode := exportsOnly
+       var mode PageInfoMode
+       if relpath != builtinPkgPath {
+               mode = exportsOnly
+       }
        if r.FormValue("m") != "src" {
                mode |= genDoc
        }
@@ -964,7 +971,7 @@ func (h *httpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
                title = "Package " + info.PAst.Name.Name
        case info.PDoc != nil:
                switch {
-               case h.isPkg:
+               case info.IsPkg:
                        title = "Package " + info.PDoc.PackageName
                case info.PDoc.PackageName == fakePkgName:
                        // assume that the directory name is the command name