]> Cypherpunks repositories - gostls13.git/commitdiff
path: Fix Glob when it finds a file in directory position.
authorIan Lance Taylor <iant@golang.org>
Wed, 10 Nov 2010 21:25:49 +0000 (13:25 -0800)
committerIan Lance Taylor <iant@golang.org>
Wed, 10 Nov 2010 21:25:49 +0000 (13:25 -0800)
When searching a list of directories, the files which match
the pattern are accumulated in a slice.  If the glob has a
wildcard for the directory, and the wildcard matches a file
rather than a directory, then the files found so far are
discarded.  E.g., path.Glob("*/x") in a directory which
contains both files and subdirectories.  This patch avoids
discarding matches found so far when a file is found.

R=r
CC=bsiegert, golang-dev
https://golang.org/cl/3015042

src/pkg/path/match.go

index d5cd19fd405ae1c914925fb836f50743381cd0e5..dd3422c4256280b7f66aa698851e8056dec6903e 100644 (file)
@@ -240,9 +240,13 @@ func Glob(pattern string) (matches []string) {
 // glob searches for files matching pattern in the directory dir
 // and appends them to matches.
 func glob(dir, pattern string, matches []string) []string {
-       if fi, err := os.Stat(dir); err != nil || !fi.IsDirectory() {
+       fi, err := os.Stat(dir)
+       if err != nil {
                return nil
        }
+       if !fi.IsDirectory() {
+               return matches
+       }
        d, err := os.Open(dir, os.O_RDONLY, 0666)
        if err != nil {
                return nil