1
0
mirror of https://github.com/golang/go synced 2024-11-21 15:44:44 -07:00

path: Fix Glob when it finds a file in directory position.

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
This commit is contained in:
Ian Lance Taylor 2010-11-10 13:25:49 -08:00
parent 194dde22c3
commit be0b649eb1

View 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