diff --git a/src/mime/testdata/test.types.globs2 b/src/mime/testdata/test.types.globs2 index cb5b7899b0d..fd9df7078bd 100644 --- a/src/mime/testdata/test.types.globs2 +++ b/src/mime/testdata/test.types.globs2 @@ -6,4 +6,6 @@ # mime package test for globs2 50:document/test:*.t3 50:example/test:*.t4 +50:text/plain:*,v +50:application/x-trash:*~ 30:example/do-not-use:*.t4 diff --git a/src/mime/type_unix.go b/src/mime/type_unix.go index 52579c56b9a..e297ecf5c1a 100644 --- a/src/mime/type_unix.go +++ b/src/mime/type_unix.go @@ -40,11 +40,11 @@ func loadMimeGlobsFile(filename string) error { scanner := bufio.NewScanner(f) for scanner.Scan() { - // Each line should be of format: weight:mimetype:*.ext + // Each line should be of format: weight:mimetype:*.ext[:morefields...] fields := strings.Split(scanner.Text(), ":") - if len(fields) < 3 || len(fields[0]) < 1 || len(fields[2]) < 2 { + if len(fields) < 3 || len(fields[0]) < 1 || len(fields[2]) < 3 { continue - } else if fields[0][0] == '#' || fields[2][0] != '*' { + } else if fields[0][0] == '#' || fields[2][0] != '*' || fields[2][1] != '.' { continue } diff --git a/src/mime/type_unix_test.go b/src/mime/type_unix_test.go index 6bb408566cd..ab14ae6f80c 100644 --- a/src/mime/type_unix_test.go +++ b/src/mime/type_unix_test.go @@ -27,6 +27,8 @@ func TestTypeByExtensionUNIX(t *testing.T) { ".t3": "document/test", ".t4": "example/test", ".png": "image/png", + ",v": "", + "~": "", } for ext, want := range typeTests {