Commit dcbf59cb authored by Rob Pike's avatar Rob Pike

path/filepath: clean up a triple negative.

also make the error prints better in the test.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4556069
parent 32e36448
...@@ -124,9 +124,8 @@ func matchChunk(chunk, s string) (rest string, ok bool, err os.Error) { ...@@ -124,9 +124,8 @@ func matchChunk(chunk, s string) (rest string, ok bool, err os.Error) {
s = s[n:] s = s[n:]
chunk = chunk[1:] chunk = chunk[1:]
// possibly negated // possibly negated
notNegated := true negated := chunk[0] == '^'
if len(chunk) > 0 && chunk[0] == '^' { if negated {
notNegated = false
chunk = chunk[1:] chunk = chunk[1:]
} }
// parse all ranges // parse all ranges
...@@ -152,7 +151,7 @@ func matchChunk(chunk, s string) (rest string, ok bool, err os.Error) { ...@@ -152,7 +151,7 @@ func matchChunk(chunk, s string) (rest string, ok bool, err os.Error) {
} }
nrange++ nrange++
} }
if match != notNegated { if match == negated {
return return
} }
......
...@@ -69,6 +69,13 @@ var matchTests = []MatchTest{ ...@@ -69,6 +69,13 @@ var matchTests = []MatchTest{
{"*x", "xxx", true, nil}, {"*x", "xxx", true, nil},
} }
func errp(e os.Error) string {
if e == nil {
return "<nil>"
}
return e.String()
}
func TestMatch(t *testing.T) { func TestMatch(t *testing.T) {
if runtime.GOOS == "windows" { if runtime.GOOS == "windows" {
// XXX: Don't pass for windows. // XXX: Don't pass for windows.
...@@ -77,7 +84,7 @@ func TestMatch(t *testing.T) { ...@@ -77,7 +84,7 @@ func TestMatch(t *testing.T) {
for _, tt := range matchTests { for _, tt := range matchTests {
ok, err := Match(tt.pattern, tt.s) ok, err := Match(tt.pattern, tt.s)
if ok != tt.match || err != tt.err { if ok != tt.match || err != tt.err {
t.Errorf("Match(%#q, %#q) = %v, %v want %v, nil", tt.pattern, tt.s, ok, err, tt.match) t.Errorf("Match(%#q, %#q) = %v, %q want %v, %q", tt.pattern, tt.s, ok, errp(err), tt.match, errp(tt.err))
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment