From aaec61555a3963903be8efa46d54b2db029adfec Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Fri, 19 Feb 2010 16:23:19 -0800 Subject: [PATCH] godoc: fix path resolution for command-line one more time (sigh...) R=rsc CC=golang-dev https://golang.org/cl/217058 --- src/cmd/godoc/main.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) 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 { -- 2.50.0