threads / patch / 52493

patchmailinfo: don't discard names under 3 characters

Subject: [PATCH] mailinfo: don't discard names under 3 characters

## tl;dr

5 messages between Dec 20, 2019 and May 16, 2021. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

edef· Dec 20, 2019, 00:39 UTC · lore

I sometimes receive patches from people with short mononyms, and in my cultural environment these are not uncommon. To my dismay, git-am currently discards their names, and replaces them with their email addresses.

Link: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
---
I'm not *completely* sure there's even a case where `src = email` is 
the right thing to do, but I'd rather not modify this code more than 
strictly necessary.
 mailinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to mailinfo.c +1 −1
diff --git a/mailinfo.c b/mailinfo.c
index b395adbdf2..7274232e28 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -19,7 +19,7 @@ static void cleanup_space(struct strbuf *sb)
 static void get_sane_name(struct strbuf *out, struct strbuf *name, struct strbuf *email)
 {
 	struct strbuf *src = name;
-	if (name->len < 3 || 60 < name->len || strchr(name->buf, '@') ||
+	if (!name->len || 60 < name->len || strchr(name->buf, '@') ||
 		strchr(name->buf, '<') || strchr(name->buf, '>'))
 		src = email;
 	else if (name == out)
-- 
2.24.1
Jeff King· Jan 30, 2020, 10:06 UTC · re: edef · lore

Re: [PATCH] mailinfo: don't discard names under 3 characters

On Fri, Dec 20, 2019 at 12:39:48AM +0000, edef wrote:
Show 10 quoted lines
> I sometimes receive patches from people with short mononyms, and in my
> cultural environment these are not uncommon. To my dismay, git-am
> currently discards their names, and replaces them with their email
> addresses.
> 
> Link: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
> ---
> I'm not *completely* sure there's even a case where `src = email` is 
> the right thing to do, but I'd rather not modify this code more than 
> strictly necessary.

I think this makes sense. There's a lot of heuristic voodoo in this old mailinfo code, but I think getting people's legitimate short names wrong is worse than the likelihood that this is actually helping some broken-parsing case in any meaningful way. I suspect this code predates us parsing the headers carefully according to the standard (it looks to be from 2744b2344d on 2005-04-11, which is quite early!).

The 60-char maximum also seems like something people might run afoul of in certain cultures. Is it worth bumping, too?

I think your patch slipped through the cracks, coming as it did over the holidays. It's probably worth re-posting it (with your signed-off-by).

-Peff
edef· May 16, 2021, 15:07 UTC · re: Jeff King · lore

[PATCH v2] mailinfo: don't discard names under 3 characters

I sometimes receive patches from people with short mononyms, and in my cultural environment these are not uncommon. To my dismay, git-am currently discards their names, and replaces them with their email addresses.

Link: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
Signed-off-by: edef <edef@edef.eu>
---
Rebased and with Signed-off-by this time :)
 mailinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to mailinfo.c +1 −1
diff --git a/mailinfo.c b/mailinfo.c
index 95ce191f38..626228654c 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -19,7 +19,7 @@ static void cleanup_space(struct strbuf *sb)
 static void get_sane_name(struct strbuf *out, struct strbuf *name, struct strbuf *email)
 {
 	struct strbuf *src = name;
-	if (name->len < 3 || 60 < name->len || strpbrk(name->buf, "@<>"))
+	if (!name->len || 60 < name->len || strpbrk(name->buf, "@<>"))
 		src = email;
 	else if (name == out)
 		return;
-- 
2.30.0
Junio C Hamano· May 16, 2021, 22:57 UTC · re: edef · lore

Re: [PATCH v2] mailinfo: don't discard names under 3 characters

edef <edef@edef.eu> writes:
Show 26 quoted lines
> I sometimes receive patches from people with short mononyms, and in my
> cultural environment these are not uncommon. To my dismay, git-am
> currently discards their names, and replaces them with their email
> addresses.
>
> Link: https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
> Signed-off-by: edef <edef@edef.eu>
> ---
> Rebased and with Signed-off-by this time :)
>
>  mailinfo.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mailinfo.c b/mailinfo.c
> index 95ce191f38..626228654c 100644
> --- a/mailinfo.c
> +++ b/mailinfo.c
> @@ -19,7 +19,7 @@ static void cleanup_space(struct strbuf *sb)
>  static void get_sane_name(struct strbuf *out, struct strbuf *name, struct strbuf *email)
>  {
>  	struct strbuf *src = name;
> -	if (name->len < 3 || 60 < name->len || strpbrk(name->buf, "@<>"))
> +	if (!name->len || 60 < name->len || strpbrk(name->buf, "@<>"))
>  		src = email;
>  	else if (name == out)
>  		return;
Wow.  The original of this was from very late in 2019, wasn't it?
Thanks for updating; will queue.

← back to recent threads