# [RFC] send-email quote issues

5 messages from 2015-06-15 to 2015-06-15. Participants: Remi Lespinet, Matthieu Moy.
Thread: https://gitlist.dev/t/39632

## Remi Lespinet, 2015-06-15 11:16

Subject: [RFC] send-email quote issues
Message-ID: <330077615.505681.1434367014434.JavaMail.zimbra@ensimag.grenoble-inp.fr>
URL: https://gitlist.dev/e/330077615.505681.1434367014434.JavaMail.zimbra%40ensimag.grenoble-inp.fr
In-Reply-To: <387683965.505610.1434366660032.JavaMail.zimbra@ensimag.grenoble-inp.fr>

```
Hi,

I'm currently working on git send-email to allow passing names
containing commas. I would like to specify that the comma
shouldn't be interpreted as a delimiter when there's quotes
around:

  "Jane, Katarina Doe" <jdoe@example.com>

This changes the behavior of the double quote. For example
when passing:

  --to='"Jane" Doe <jdoe@example.com>'

to git send-email, the line produced was:

  To: "\"Jane\" Doe" <jdoe@example.com>

With this modification, it would be:

  To: Jane Doe <jdoe@example.com>
    or
  To: "Jane Doe" <jdoe@example.com>

And this will not be possible to use quote in a name anymore.
Is this a problem ?

Currently, git send-email contains a function which splits at commas
with respect to quotes (parse_address_line introduced by
5012699d9840fe34fe0838ea0d529c2f32f76b82). It is used to parse user
input when there's no recipient specified. I would like to use this
function to parse --to, --cc and --bcc options, but the execution of
this function depends on whether the user has the Perl library
Mail::Address or not. This introduce a change in the behaviour:

Output1 represents lines produced with the Mail::Address library
Output2 represents lines produced without the Mail::Address library

 1) Simple quote are not interpreted the same way:

   Input : 'Doe, "Jane' <jdoe@example.com>
      Output1 : 'Doe,
                "\" Jane'" <jdoe@example.com>
      Output2 : "'Doe, \"Jane'" <jdoe@example.com>

   Input : 'Jane 'Doe' <jdoe@example.com>
      Output1 : 'Jane 'Doe' <jdoe@example.com>
      Output2 : ERROR

 2) Mail::Address adds a space when using a quote or a backslash in a name

   Input : "Jane Do"e <jdoe@example.com>
      Output1 : "\"Jane Do\" e" <jdoe@example.com>
      Output2 : "\"Jane Do\"e" <jdoe@example.com>

   Input : \Jane Doe <jdoe@example.com>
      Output1 : "\ Jane Doe" <jdoe@example.com>
      Output2 : "\Jane Doe" <jdoe@example.com>

 3) Mail::Address works when quote is not closed

   Input : "Jane Doe <jdoe@example.com>
      Output1 : "\" Jane Doe" <jdoe@example.com>
      Output2 : ERROR

 4) Mail::Address splits the string when there's no comma

   Input : Jane "Doe <jdoe@example.com>"
      Output1 : Jane,
   	"\"Doe" <jdoe@example.com>
      Output2 : "Jane \"Doe" <jdoe@example.com>

The following doesn't work for both:

   Input : "Jane Doe <jdoe@example.com>" <jdoe@example.com>
      Output1 : ERROR
      Output2 : ERROR

```

## Matthieu Moy, 2015-06-15 11:32

Subject: Re: [RFC] send-email quote issues
Message-ID: <vpqmw011a22.fsf@anie.imag.fr>
URL: https://gitlist.dev/e/vpqmw011a22.fsf%40anie.imag.fr
In-Reply-To: <330077615.505681.1434367014434.JavaMail.zimbra@ensimag.grenoble-inp.fr>

```
Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr> writes:

> Currently, git send-email contains a function which splits at commas
> with respect to quotes (parse_address_line introduced by
> 5012699d9840fe34fe0838ea0d529c2f32f76b82).

It seems I had missed this one, but indeed, it should probably be used
instead of split_at_commas in your series.

> It is used to parse user input when there's no recipient specified. I
> would like to use this function to parse --to, --cc and --bcc options,
> but the execution of this function depends on whether the user has the
> Perl library Mail::Address or not. This introduce a change in the
> behaviour:

I would say that using parse_address_line is good for consistancy in Git
anyway. If the behavior of parse_address_line is broken on some
corner-cases, then it should be fixed anyway.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

```

## Remi Lespinet, 2015-06-15 13:03

Subject: [RFC] send-email quote issues
Message-ID: <999870154.509851.1434373434414.JavaMail.zimbra@ensimag.grenoble-inp.fr>
URL: https://gitlist.dev/e/999870154.509851.1434373434414.JavaMail.zimbra%40ensimag.grenoble-inp.fr
In-Reply-To: <vpqmw011a22.fsf@anie.imag.fr>

```
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes

> I would say that using parse_address_line is good for consistancy in Git 
> anyway. If the behavior of parse_address_line is broken on some 
> corner-cases, then it should be fixed anyway. 

Ok, but I don't know what fixed means in these particular cases.
Actually the problem when we have a quote in a name is: Is this a
delimiter or is this an ascii char?

Currently the problem is solved by saying : it's an ascii char
unless there is two quotes aroung all the name (modulo minor
things). So if I write:

--to='"Jane, Kararina" Doe <jdoe@example.com>'

they are considered characters. Which means that this is
different than:

--to='"Jane, Kararina Doe" <jdoe@example.com>'

Is this expected?

```

## Matthieu Moy, 2015-06-15 13:52

Subject: Re: [RFC] send-email quote issues
Message-ID: <vpqd20xxenv.fsf@anie.imag.fr>
URL: https://gitlist.dev/e/vpqd20xxenv.fsf%40anie.imag.fr
In-Reply-To: <999870154.509851.1434373434414.JavaMail.zimbra@ensimag.grenoble-inp.fr>

```
Remi Lespinet <remi.lespinet@ensimag.grenoble-inp.fr> writes:

> Ok, but I don't know what fixed means in these particular cases.
> Actually the problem when we have a quote in a name is: Is this a
> delimiter or is this an ascii char?

To me, the answer should be: do whatever the RFC says in email headers.
I'd expect anything that works in the To: header to work in the --to
option of git send-email.

If I read correctly, this is address-list in RFC 2822.

Now, when the address list is invalid wrt the RFC, we can either reject
it or try to guess.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

```

## Remi Lespinet, 2015-06-15 14:10

Subject: [RFC] send-email quote issues
Message-ID: <232346536.513056.1434377456905.JavaMail.zimbra@ensimag.grenoble-inp.fr>
URL: https://gitlist.dev/e/232346536.513056.1434377456905.JavaMail.zimbra%40ensimag.grenoble-inp.fr
In-Reply-To: <vpqd20xxenv.fsf@anie.imag.fr>

```
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes

> To me, the answer should be: do whatever the RFC says in email headers. 
> I'd expect anything that works in the To: header to work in the --to 
> option of git send-email. 

Ok sounds good to me !

```
