]> Cypherpunks repositories - gostls13.git/commitdiff
godoc: use virtual file system when generating package synopses
authorRobert Griesemer <gri@golang.org>
Wed, 24 Aug 2011 16:52:16 +0000 (09:52 -0700)
committerRobert Griesemer <gri@golang.org>
Wed, 24 Aug 2011 16:52:16 +0000 (09:52 -0700)
Fix for godoc on app engine.

R=dsymonds
CC=golang-dev
https://golang.org/cl/4922050

src/cmd/godoc/dirtrees.go
src/cmd/godoc/parser.go

index aa590b363ddfea6d441f18114a7d02a5c0b035c9..7595ef96fbb8e07dd173fce1ec9d3afe7c35a8b9 100644 (file)
@@ -117,7 +117,7 @@ func (b *treeBuilder) newDirTree(fset *token.FileSet, path, name string, depth i
                        // though the directory doesn't contain any real package files - was bug)
                        if synopses[0] == "" {
                                // no "optimal" package synopsis yet; continue to collect synopses
-                               file, err := parser.ParseFile(fset, filepath.Join(path, d.Name()), nil,
+                               file, err := parseFile(fset, filepath.Join(path, d.Name()),
                                        parser.ParseComments|parser.PackageClauseOnly)
                                if err == nil {
                                        hasPkgFiles = true
index da4b3853c57b5817f6fb74d44ff0188ac6a6d183..cc1780a4b5cd21e640b4155e7465ef8525fdbb69 100644 (file)
@@ -17,18 +17,18 @@ import (
        "path/filepath"
 )
 
+func parseFile(fset *token.FileSet, filename string, mode uint) (*ast.File, os.Error) {
+       src, err := fs.ReadFile(filename)
+       if err != nil {
+               return nil, err
+       }
+       return parser.ParseFile(fset, filename, src, mode)
+}
+
 func parseFiles(fset *token.FileSet, filenames []string) (pkgs map[string]*ast.Package, first os.Error) {
        pkgs = make(map[string]*ast.Package)
        for _, filename := range filenames {
-               src, err := fs.ReadFile(filename)
-               if err != nil {
-                       if first == nil {
-                               first = err
-                       }
-                       continue
-               }
-
-               file, err := parser.ParseFile(fset, filename, src, parser.ParseComments)
+               file, err := parseFile(fset, filename, parser.ParseComments)
                if err != nil {
                        if first == nil {
                                first = err