From: Robert Griesemer Date: Sat, 20 Feb 2010 00:23:19 +0000 (-0800) Subject: godoc: fix path resolution for command-line one more time (sigh...) X-Git-Tag: weekly.2010-02-23~26 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=aaec61555a3963903be8efa46d54b2db029adfec;p=gostls13.git godoc: fix path resolution for command-line one more time (sigh...) R=rsc CC=golang-dev https://golang.org/cl/217058 --- diff --git a/src/cmd/godoc/main.go b/src/cmd/godoc/main.go index 5ce7f9d51b..ded1d3607a 100644 --- a/src/cmd/godoc/main.go +++ b/src/cmd/godoc/main.go @@ -33,6 +33,7 @@ import ( "io" "log" "os" + pathutil "path" "time" ) @@ -224,11 +225,29 @@ func main() { packageText = packageHTML } - info := pkgHandler.getPageInfo(flag.Arg(0), flag.Arg(0), true) + // determine paths + path := flag.Arg(0) + if len(path) > 0 && path[0] == '.' { + // assume cwd; don't assume -goroot + cwd, _ := os.Getwd() // ignore errors + path = pathutil.Join(cwd, path) + } + relpath := path + abspath := path + if len(path) > 0 && path[0] != '/' { + abspath = absolutePath(path, pkgHandler.fsRoot) + } else { + relpath = relativePath(path) + } + + info := pkgHandler.getPageInfo(abspath, relpath, true) if info.PDoc == nil && info.Dirs == nil { // try again, this time assume it's a command - info = cmdHandler.getPageInfo(flag.Arg(0), flag.Arg(0), false) + if len(path) > 0 && path[0] != '/' { + abspath = absolutePath(path, cmdHandler.fsRoot) + } + info = cmdHandler.getPageInfo(abspath, relpath, false) } if info.PDoc != nil && flag.NArg() > 1 {