Junio C Hamano <gitster@xxxxxxxxx> writes: > Jeff King <peff@xxxxxxxx> writes: > ... >> but it feels like the fix should go into map_user. > > Thanks. > > The map_user() API takes an email address that is terminated by either NUL > or '>' to allow the caller to learn the corresponding up-to-date email > address that is NUL terminated, while indicating with its return value > that if the caller even needs to replace what it already has. But the > function does not properly terminate email when it only touched the name > part. And I think that is the real bug. And the gist of the patch to fix the bug would look like this two liner. In the real fix, "p" should be renamed to "end_of_email" or something descriptive like that. I only made sure that this fixes the original case of the email address of Shawn reported by Felipe, but other than that like everything else I send here with "... would look like this", not tested beyond "it compiles". But conceptually it looks correct (famous last words ;-). Felipe, does it pass your test cases? mailmap.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/mailmap.c b/mailmap.c index 8c3196c..ce805fa 100644 --- a/mailmap.c +++ b/mailmap.c @@ -236,6 +236,8 @@ int map_user(struct string_list *map, } if (maxlen_email && mi->email) strlcpy(email, mi->email, maxlen_email); + else + *p = '\0'; if (maxlen_name && mi->name) strlcpy(name, mi->name, maxlen_name); debug_mm("map_user: to '%s' <%s>\n", name, mi->email ? mi->email : ""); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html