@matheusbsbs / matheus-bagliano / commits / 5288dd5835
Fork 0

Mailmap: Allow empty email addresses to be mapped

While it makes no sense to map some email address to an empty one, doing things the other way around can be useful. For example when using filter-branch with an env-filter that employs a mailmap to fix up an import that created such broken commits with empty email addresses. Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Björn Steinbrink committed Mar 31, 2009 at 17:30 UTC 5288dd58356e53d61e2b3804fc7d8d23c3a46ab3
1 file changed +5 -4
mailmap.c
+5 -4
@@ -90,7 +90,8 @@ static void add_mapping(struct string_list *map,
90 old_name, old_email, new_name, new_email);
91 }
92
93 -static char *parse_name_and_email(char *buffer, char **name, char **email)
93 +static char *parse_name_and_email(char *buffer, char **name,
94 + char **email, int allow_empty_email)
95 {
96 char *left, *right, *nstart, *nend;
97 *name = *email = 0;
@@ -99,7 +100,7 @@ static char *parse_name_and_email(char *buffer, char **name, char **email)
100 return NULL;
101 if ((right = strchr(left+1, '>')) == NULL)
102 return NULL;
102 - if (left+1 == right)
103 + if (!allow_empty_email && (left+1 == right))
104 return NULL;
105
106 /* remove whitespace from beginning and end of name */
@@ -150,8 +151,8 @@ static int read_single_mailmap(struct string_list *map, const char *filename, ch
151 }
152 continue;
153 }
153 - if ((name2 = parse_name_and_email(buffer, &name1, &email1)) != NULL)
154 - parse_name_and_email(name2, &name2, &email2);
154 + if ((name2 = parse_name_and_email(buffer, &name1, &email1, 0)) != NULL)
155 + parse_name_and_email(name2, &name2, &email2, 1);
156
157 if (email1)
158 add_mapping(map, name1, email1, name2, email2);