diff --git a/vips.go b/vips.go index 1d03c92..906a935 100644 --- a/vips.go +++ b/vips.go @@ -246,8 +246,9 @@ func vipsExifOrientation(image *C.VipsImage) int { } func vipsExifShort(s string) string { - if strings.Contains(s, " (") { - return s[:strings.Index(s, "(")-1] + i := strings.Index(s, " (") + if i > 0 { + return s[:i] } return s } diff --git a/vips_test.go b/vips_test.go index 6ed48ba..0b55d8d 100644 --- a/vips_test.go +++ b/vips_test.go @@ -219,6 +219,33 @@ func TestVipsMemory(t *testing.T) { } } +func TestVipsExifShort(t *testing.T) { + tt := []struct { + input string + expected string + }{ + { + input: `( ()`, + expected: `(`, + }, + { + input: ` ()`, + expected: ` ()`, + }, + { + input: `sRGB`, + expected: `sRGB`, + }, + } + + for _, tc := range tt { + got := vipsExifShort(tc.input) + if got != tc.expected { + t.Fatalf("expected: %s; got: %s", tc.expected, got) + } + } +} + func readImage(file string) []byte { img, _ := os.Open(path.Join("testdata", file)) buf, _ := ioutil.ReadAll(img)