git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git send-email splits name with comma

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Oct 4, 2021, 23:47 UTC
Message-ID
<87pmskl508.fsf@evledraar.gmail.com>
In-Reply-To
<CAMuHMdVHuxzKv7z+oVnPXSBi8bLnGMZDcXdgtGR4N15UQttciQ@mail.gmail.com>
On Mon, Oct 04 2021, Geert Uytterhoeven wrote:
Show 33 quoted lines
> Hi Junio,
>
> On Mon, Oct 4, 2021 at 8:47 PM Junio C Hamano <gitster@pobox.com> wrote:
>> Geert Uytterhoeven <geert@linux-m68k.org> writes:
>> > On Mon, Oct 4, 2021 at 4:31 PM Andreas Schwab <schwab@linux-m68k.org> wrote:
>> >> On Okt 04 2021, Geert Uytterhoeven wrote:
>> >> > If the name of an email address contains a comma, it will be split
>> >> > incorrectly into multiple addresses.
>> >>
>> >> If you want to include a comma in the display-name part of an address,
>> >> you need to use the quoted-string form of the phrase.
>> >
>> > Adding more quoting like:
>> >
>> >     git send-email --to "\"foo bar, geert\" <geert@linux-m68k.org>"
>> >
>> > indeed works.  But I feel git send-email could do better, given it already
>> > receives the full email address in a single argv[] entry.
>>
>> Sorry, but I do not quite follow.
>>
>> If I were to send a message both to the list and to you, wouldn't
>>
>>     git send-email --to "l-k@vger.k.org, geert <g@l-m68k.o>"
>>
>> a valid way to do so?
>
> Oh wait, I never realized --to and --cc take multiple email addresses;
> I also use multiple --to/--cc options instead.
> So the behavior I see is actually the expected behavior.
> Thanks, and sorry for the noise.
>
> Gr{oetje,eeting}s,
FWIW git-send-email just defers to Perl's Mail::Address module here:
perl -MMail::Address -MData::Dumper -wE 'warn qq[For @ARGV got: ] .
     Dumper [map { $_->format } map { Mail::Address->parse($_) } @ARGV]
' 'foo, bar <x@example.com>'
For foo, bar <x@example.com> got: $VAR1 = [
          'foo',
          'bar <x@example.com>'
        ];

As has been noted the quotes are needed, and the same should go for yor mailer.

Anyway, that's covered already, but if anyone cared to make it friendlier I don't see why it couldn't be made to be nicer.

I.e. we could loop over the list, use $_->address to see that the "foo" doesn't even have an "@" in it, and either fix it up to what th user probably meant, or do so conditionally, warn or whatever.

Previous: Geert Uytterhoeven
Message 6 of 6 in “git send-email splits name with comma”
  1. Geert UytterhoevenOct 4, 2021
  2. Andreas SchwabOct 4, 2021
  3. Geert UytterhoevenOct 4, 2021
  4. Junio C HamanoOct 4, 2021
  5. Geert UytterhoevenOct 4, 2021
  6. Ævar Arnfjörð BjarmasonOct 4, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.