@@ -39,25 +39,13 @@ const mailmap = new CaseIndifferentMap();
39
39
line = line . trim ( ) ;
40
40
if ( line . startsWith ( '#' ) || line === '' ) continue ;
41
41
42
- let match ;
43
- // Replaced Name <[email protected] >
44
- if ( match = line . match ( / ^ ( [ ^ < ] + ) \s + ( < [ ^ > ] + > ) $ / ) ) {
45
- mailmap . set ( match [ 2 ] . toLowerCase ( ) , {
46
- author : match [ 1 ] , email : match [ 2 ]
47
- } ) ;
48
-
49
- } else if ( match = line . match ( / ^ < ( [ ^ > ] + ) > \s + ( < [ ^ > ] + > ) $ / ) ) {
50
- mailmap . set ( match [ 2 ] . toLowerCase ( ) , { email : match [ 1 ] } ) ;
51
-
52
- } else if ( match = line . match ( / ^ ( [ ^ < ] + ) \s + ( < [ ^ > ] + > ) \s + ( < [ ^ > ] + > ) $ / ) ) {
53
- mailmap . set ( match [ 3 ] . toLowerCase ( ) , {
54
- author : match [ 1 ] , email : match [ 2 ]
55
- } ) ;
56
- // Replaced Name <[email protected] > Original Name <[email protected] >
57
- } else if ( match =
58
- line . match ( / ^ ( [ ^ < ] + ) \s + ( < [ ^ > ] + > ) \s + ( [ ^ < ] + ) \s + ( < [ ^ > ] + > ) $ / ) ) {
59
- mailmap . set ( match [ 3 ] + '\0' + match [ 4 ] . toLowerCase ( ) , {
60
- author : match [ 1 ] , email : match [ 2 ]
42
+ const match = line . match ( / ^ (?: ( [ ^ < ] + ) \s + ) ? (?: ( < [ ^ > ] + > ) \s + ) ? (?: ( [ ^ < ] + ) \s + ) ? ( < [ ^ > ] + > ) $ / ) ;
43
+ if ( match ) {
44
+ const [ , replaceName , replaceEmail , originalName , originalEmail ] = match ;
45
+ const key = originalName ? `${ originalName } \0${ originalEmail . toLocaleLowerCase ( ) } ` : originalEmail . toLowerCase ( ) ;
46
+ mailmap . set ( key , {
47
+ author : replaceName || originalName ,
48
+ email : replaceEmail || originalEmail ,
61
49
} ) ;
62
50
} else {
63
51
console . warn ( 'Unknown .mailmap format:' , line ) ;
@@ -73,8 +61,8 @@ const previousAuthors = new CaseIndifferentMap();
73
61
line = line . trim ( ) ;
74
62
if ( line . startsWith ( '#' ) || line === '' ) continue ;
75
63
76
- let match ;
77
- if ( match = line . match ( / ^ ( [ ^ < ] + ) \s + ( < [ ^ > ] + > ) $ / ) ) {
64
+ const match = line . match ( / ^ ( [ ^ < ] + ) \s + ( < [ ^ > ] + > ) $ / ) ;
65
+ if ( match ) {
78
66
const name = match [ 1 ] ;
79
67
const email = match [ 2 ] ;
80
68
if ( previousAuthors . has ( name ) ) {
0 commit comments