Преглед на файлове

Fix broken mailmap parsing

Vadim Markovtsev преди 7 години
родител
ревизия
7aa35d12e4
променени са 2 файла, в които са добавени 11 реда и са изтрити 1 реда
  1. 2 1
      mailmap.go
  2. 9 0
      mailmap_test.go

+ 2 - 1
mailmap.go

@@ -34,8 +34,9 @@ func ParseMailmap(contents string) map[string]object.Signature {
 		}
 		toEmail := ""
 		if gtp > 0 {
+			line = line[:gtp]
 			ltp = strings.LastIndex(line, "<")
-			toEmail = line[ltp+1 : gtp]
+			toEmail = line[ltp+1:]
 			line = strings.TrimSpace(line[:ltp])
 		}
 		toName := line

+ 9 - 0
mailmap_test.go

@@ -291,3 +291,12 @@ anonymous <linux@horizon.net>
 	assert.Equal(t, mm["nico@cam.org"].Name, "")
 	assert.Equal(t, mm["nico@cam.org"].Email, "nico@fluxnic.net")
 }
+
+func TestParseMailmapBadFormat(t *testing.T) {
+	contents := `Denis Engemann <denis-alexander.engemann@inria.fr> <dengemann <denis.engemann@gmail.com>`
+	mm := ParseMailmap(contents)
+	assert.Equal(t, mm["denis.engemann@gmail.com"].Name, "Denis Engemann")
+	assert.Equal(t, mm["denis.engemann@gmail.com"].Email, "denis-alexander.engemann@inria.fr")
+	assert.Equal(t, mm["<dengemann"].Name, "Denis Engemann")
+	assert.Equal(t, mm["<dengemann"].Email, "denis-alexander.engemann@inria.fr")
+}