aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2010-02-19 16:23:19 -0800
committerRobert Griesemer <gri@golang.org>2010-02-19 16:23:19 -0800
commitaaec61555a3963903be8efa46d54b2db029adfec (patch)
tree9be38ecf34986b4df62f9c289c2485594ac749d2
parent8e714aab2bfdc71635786732e1bac45f27f2201c (diff)
downloadgo-aaec61555a3963903be8efa46d54b2db029adfec.tar.gz
go-aaec61555a3963903be8efa46d54b2db029adfec.zip
godoc: fix path resolution for command-line one more time (sigh...)
R=rsc CC=golang-dev https://golang.org/cl/217058
-rw-r--r--src/cmd/godoc/main.go23
1 files 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 {