[U-Boot] patman dies cryptially when a (valid) e-mail address contains parentheses (or is UTF-8)

Hello Simon,
I just noticed this while adding a Series-cc to my work address which has parentheses: running patman (without -n) will result in
sh: 1: Syntax error: "(" unexpected
Which initially left me wondering what was happening until I realized one of the Series-cc addresses had parentheses, e.g.
Series-cc: "Name NAME (NAME)" address@domain.tld
Note that the parentheses were in the free-form part of the address, itself within double quotation marks, which appears valid wrt the RFC.
I've tried using single quotes as a workaround:
Series-cc: 'Name NAME (NAME)' address@domain.tld
It kind-of-works in that patman does not die, but the resulting address in the mail has outer double quotes and inner single quotes, e.g.
"'Name NAME (NAME)'" address@domain.tld
Aditionally, addresses with names in UTF-8 also fail, though differently but still with a message somewhat unrelated to the actual cause (UTF-8-name is the placeholder for a name containing UTF-8 diacritics):
fatal: ambiguous argument 'UTF-8-name addres@domain.tld': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
The same single-quote hack works it around, with the resulting mail Cc:ing the name surrounded by single quotes only:
Cc: 'UTF-8-name' addres@domain.tld
Cc:ing Marek who is a die-hard fan of UTF-8 names in e-mail addresses. :)
Amicalement,

Hi Albert,
On 27 January 2016 at 01:22, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
Hello Simon,
I just noticed this while adding a Series-cc to my work address which has parentheses: running patman (without -n) will result in
sh: 1: Syntax error: "(" unexpected
Which initially left me wondering what was happening until I realized one of the Series-cc addresses had parentheses, e.g.
Series-cc: "Name NAME (NAME)" <address@domain.tld>
Note that the parentheses were in the free-form part of the address, itself within double quotation marks, which appears valid wrt the RFC.
I've tried using single quotes as a workaround:
Series-cc: 'Name NAME (NAME)' <address@domain.tld>
It kind-of-works in that patman does not die, but the resulting address in the mail has outer double quotes and inner single quotes, e.g.
"'Name NAME (NAME)'" <address@domain.tld>
Aditionally, addresses with names in UTF-8 also fail, though differently but still with a message somewhat unrelated to the actual cause (UTF-8-name is the placeholder for a name containing UTF-8 diacritics):
fatal: ambiguous argument 'UTF-8-name <addres@domain.tld>': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
The same single-quote hack works it around, with the resulting mail Cc:ing the name surrounded by single quotes only:
Cc: 'UTF-8-name' <addres@domain.tld>
Cc:ing Marek who is a die-hard fan of UTF-8 names in e-mail addresses. :)
I wonder if this is a problem with the cc_cmd code in patman.py?
# Called from git with a patch filename as argument # Printout a list of additional CC recipients for this patch elif options.cc_cmd:
Perhaps it should quote its output somehow?
Regards, Simon

Hello Simon,
On Wed, 27 Jan 2016 15:53:45 -0700, Simon Glass sjg@chromium.org wrote:
Hi Albert,
On 27 January 2016 at 01:22, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
Hello Simon,
I just noticed this while adding a Series-cc to my work address which has parentheses: running patman (without -n) will result in
sh: 1: Syntax error: "(" unexpected
Which initially left me wondering what was happening until I realized one of the Series-cc addresses had parentheses, e.g.
Series-cc: "Name NAME (NAME)" <address@domain.tld>
Note that the parentheses were in the free-form part of the address, itself within double quotation marks, which appears valid wrt the RFC.
I've tried using single quotes as a workaround:
Series-cc: 'Name NAME (NAME)' <address@domain.tld>
It kind-of-works in that patman does not die, but the resulting address in the mail has outer double quotes and inner single quotes, e.g.
"'Name NAME (NAME)'" <address@domain.tld>
Aditionally, addresses with names in UTF-8 also fail, though differently but still with a message somewhat unrelated to the actual cause (UTF-8-name is the placeholder for a name containing UTF-8 diacritics):
fatal: ambiguous argument 'UTF-8-name <addres@domain.tld>': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
The same single-quote hack works it around, with the resulting mail Cc:ing the name surrounded by single quotes only:
Cc: 'UTF-8-name' <addres@domain.tld>
Cc:ing Marek who is a die-hard fan of UTF-8 names in e-mail addresses. :)
I wonder if this is a problem with the cc_cmd code in patman.py?
# Called from git with a patch filename as argument # Printout a list of additional CC recipients for this patch elif options.cc_cmd:
Perhaps it should quote its output somehow?
I'll try and test that this week-end.
Regards, Simon
Amicalement,
participants (2)
-
Albert ARIBAUD
-
Simon Glass