gobwas / glob

Go glob
MIT License
948 stars 63 forks source link

Unexpected result with `PrefixSuffix.Match` #51

Open Chrstm opened 3 years ago

Chrstm commented 3 years ago

The PrefixSuffix.Match doesn't consider the condition that the prefix overlaps with the suffix. version: v0.2.3 POC:

func main() {
    g, _ := glob.Compile("a*ant")
    fmt.Println(g.Match("an ant")) // true EXPECTED
    fmt.Println(g.Match("ant"))    // true UNEXPECTED

    g, _ = glob.Compile("br*r")
    fmt.Println(g.Match("brother")) // true EXPECTED
    fmt.Println(g.Match("br"))      // true UNEXPECTED

    g, _ = glob.Compile("so*so")
    fmt.Println(g.Match("so so")) // true EXPECTED
    fmt.Println(g.Match("so"))    // true UNEXPECTED
}
gobwas commented 3 years ago

Hey @Chrstm can you check it against the v0.3 branch?

Chrstm commented 3 years ago

I checked. The result of feature/v0.3 is the same as v0.2.3. It still compile the pattern as a PrefixSuffix matcher.