All of lore.kernel.org
 help / color / mirror / Atom feed
* git send-email splits name with comma
@ 2021-10-04 14:11 Geert Uytterhoeven
  2021-10-04 14:31 ` Andreas Schwab
  0 siblings, 1 reply; 6+ messages in thread
From: Geert Uytterhoeven @ 2021-10-04 14:11 UTC (permalink / raw)
  To: git

Hi all,

If the name of an email address contains a comma, it will be split
incorrectly into multiple addresses.  A public example can be found
at[1].  I originally say this with git 2.25.1, as packaged by my distro,
but I could reproduce it with the latest version from git:

    $ git send-email  --to "foo bar, geert <geert@linux-m68k.org>"
/tmp/dummy.patch
    /tmp/dummy.patch
    (mbox) Adding cc: Geert Uytterhoeven <geert@linux-m68k.org> from
line 'From: Geert Uytterhoeven <geert@linux-m68k.org>'

    From: Geert Uytterhoeven <geert@linux-m68k.org>
    To: foo,
            bar,
            geert <geert@linux-m68k.org>
    Subject: [PATCH] dummy test
    Date: Mon,  4 Oct 2021 15:52:53 +0200
    Message-Id: <git-2.33.0.610.3.git.geert@linux-m68k.org
    X-Mailer: git-send-email 2.33.0.610.gcefe983a320c03d7
    MIME-Version: 1.0
    Content-Transfer-Encoding: 8bit

        The Cc list above has been expanded by additional
        addresses found in the patch commit message. By default
        send-email prompts before sending whenever this occurs.
        This behavior is controlled by the sendemail.confirm
        configuration setting.

        For additional information, run 'git send-email --help'.
        To retain the current behavior, but squelch this message,
        run 'git config --global sendemail.confirm auto'.

    Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll):
    OK. Log says:
    Sendmail: /usr/sbin/sendmail -i foo bar geert@linux-m68k.org
    From: Geert Uytterhoeven <geert@linux-m68k.org>
    To: foo,
            bar,
            geert <geert@linux-m68k.org>
    Subject: [PATCH] dummy test
    Date: Mon,  4 Oct 2021 15:52:53 +0200
    Message-Id: <git-2.33.0.610.3.git.geert@linux-m68k.org
    X-Mailer: git-send-email 2.33.0.610.gcefe983a320c03d7
    MIME-Version: 1.0
    Content-Transfer-Encoding: 8bit

    Result: OK

So "foo bar, geert <geert@linux-m68k.org>" is split in three parts,
and /usr/sbin/sendmail (exim 4.93 in my case) will have sent the email to
"foo" and "bar" (both  extended with my local non-public domain) and
"geert <geert@linux-m68k.org>".

Thanks!

[1] "Enrico Weigelt, metux IT consult <lkml@metux.net>" is split in 3 parts
    https://lore.kernel.org/linux-gpio/c987d0bf744150ca05bd952f5f9e5fb3244d27b0.1633350340.git.geert+renesas@glider.be/raw

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: git send-email splits name with comma
  2021-10-04 14:11 git send-email splits name with comma Geert Uytterhoeven
@ 2021-10-04 14:31 ` Andreas Schwab
  2021-10-04 17:18   ` Geert Uytterhoeven
  0 siblings, 1 reply; 6+ messages in thread
From: Andreas Schwab @ 2021-10-04 14:31 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: git

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.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: git send-email splits name with comma
  2021-10-04 14:31 ` Andreas Schwab
@ 2021-10-04 17:18   ` Geert Uytterhoeven
  2021-10-04 18:47     ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Geert Uytterhoeven @ 2021-10-04 17:18 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Git Mailing List

Hi Andreas,

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.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: git send-email splits name with comma
  2021-10-04 17:18   ` Geert Uytterhoeven
@ 2021-10-04 18:47     ` Junio C Hamano
  2021-10-04 19:56       ` Geert Uytterhoeven
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2021-10-04 18:47 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Andreas Schwab, Git Mailing List

Geert Uytterhoeven <geert@linux-m68k.org> writes:

> Hi Andreas,
>
> 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?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: git send-email splits name with comma
  2021-10-04 18:47     ` Junio C Hamano
@ 2021-10-04 19:56       ` Geert Uytterhoeven
  2021-10-04 23:47         ` Ævar Arnfjörð Bjarmason
  0 siblings, 1 reply; 6+ messages in thread
From: Geert Uytterhoeven @ 2021-10-04 19:56 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Andreas Schwab, Git Mailing List

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,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: git send-email splits name with comma
  2021-10-04 19:56       ` Geert Uytterhoeven
@ 2021-10-04 23:47         ` Ævar Arnfjörð Bjarmason
  0 siblings, 0 replies; 6+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2021-10-04 23:47 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Junio C Hamano, Andreas Schwab, Git Mailing List


On Mon, Oct 04 2021, Geert Uytterhoeven wrote:

> 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.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-10-04 23:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-04 14:11 git send-email splits name with comma Geert Uytterhoeven
2021-10-04 14:31 ` Andreas Schwab
2021-10-04 17:18   ` Geert Uytterhoeven
2021-10-04 18:47     ` Junio C Hamano
2021-10-04 19:56       ` Geert Uytterhoeven
2021-10-04 23:47         ` Ævar Arnfjörð Bjarmason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.