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);