1
0
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:
Robert Griesemer 2010-02-19 11:41:48 -08:00
parent a5c29da313
commit cf743c1be6
2 changed files with 7 additions and 10 deletions

View File

@ -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)

View File

@ -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 {