mirror of
https://github.com/golang/go
synced 2024-11-25 08:27:57 -07:00
godoc: make commandline use work again
R=rsc CC=golang-dev https://golang.org/cl/216054
This commit is contained in:
parent
a5c29da313
commit
cf743c1be6
@ -1100,14 +1100,12 @@ type httpHandler struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// getPageInfo returns the PageInfo for a package directory path. If
|
// getPageInfo returns the PageInfo for a package directory dirname. If
|
||||||
// the parameter try is true, no errors are logged if getPageInfo fails.
|
// the parameter try is true, no errors are logged if getPageInfo fails.
|
||||||
// If there is no corresponding package in the directory, PageInfo.PDoc
|
// If there is no corresponding package in the directory, PageInfo.PDoc
|
||||||
// is nil. If there are no subdirectories, PageInfo.Dirs is nil.
|
// is nil. If there are no subdirectories, PageInfo.Dirs is nil.
|
||||||
//
|
//
|
||||||
func (h *httpHandler) getPageInfo(relpath string, try bool) PageInfo {
|
func (h *httpHandler) getPageInfo(dirname, relpath string, try bool) PageInfo {
|
||||||
dirname := absolutePath(relpath, h.fsRoot)
|
|
||||||
|
|
||||||
// filter function to select the desired .go files
|
// filter function to select the desired .go files
|
||||||
filter := func(d *os.Dir) bool {
|
filter := func(d *os.Dir) bool {
|
||||||
// If we are looking at cmd documentation, only accept
|
// If we are looking at cmd documentation, only accept
|
||||||
@ -1129,9 +1127,7 @@ func (h *httpHandler) getPageInfo(relpath string, try bool) PageInfo {
|
|||||||
|
|
||||||
// Get the best matching package: either the first one, or the
|
// Get the best matching package: either the first one, or the
|
||||||
// first one whose package name matches the directory name.
|
// first one whose package name matches the directory name.
|
||||||
// The package name is the directory name within its parent
|
// The package name is the directory name within its parent.
|
||||||
// (use dirname instead of path because dirname is clean; i.e.
|
|
||||||
// has no trailing '/').
|
|
||||||
_, pkgname := pathutil.Split(dirname)
|
_, pkgname := pathutil.Split(dirname)
|
||||||
var pkg *ast.Package
|
var pkg *ast.Package
|
||||||
for _, p := range pkgs {
|
for _, p := range pkgs {
|
||||||
@ -1177,7 +1173,8 @@ func (h *httpHandler) ServeHTTP(c *http.Conn, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
relpath := r.URL.Path[len(h.pattern):]
|
relpath := r.URL.Path[len(h.pattern):]
|
||||||
info := h.getPageInfo(relpath, false)
|
abspath := absolutePath(relpath, h.fsRoot)
|
||||||
|
info := h.getPageInfo(abspath, relpath, false)
|
||||||
|
|
||||||
if r.FormValue("f") == "text" {
|
if r.FormValue("f") == "text" {
|
||||||
contents := applyTemplate(packageText, "packageText", info)
|
contents := applyTemplate(packageText, "packageText", info)
|
||||||
|
@ -224,11 +224,11 @@ func main() {
|
|||||||
packageText = packageHTML
|
packageText = packageHTML
|
||||||
}
|
}
|
||||||
|
|
||||||
info := pkgHandler.getPageInfo(flag.Arg(0), true)
|
info := pkgHandler.getPageInfo(flag.Arg(0), flag.Arg(0), true)
|
||||||
|
|
||||||
if info.PDoc == nil && info.Dirs == nil {
|
if info.PDoc == nil && info.Dirs == nil {
|
||||||
// try again, this time assume it's a command
|
// try again, this time assume it's a command
|
||||||
info = cmdHandler.getPageInfo(flag.Arg(0), false)
|
info = cmdHandler.getPageInfo(flag.Arg(0), flag.Arg(0), false)
|
||||||
}
|
}
|
||||||
|
|
||||||
if info.PDoc != nil && flag.NArg() > 1 {
|
if info.PDoc != nil && flag.NArg() > 1 {
|
||||||
|
Loading…
Reference in New Issue
Block a user