From: Matthieu Moy Date: Mon, 04 Jan 2016 18:11:58 GMT Subject: Re: [RFC] git-send-email: do not double-escape quotes from mutt Message-ID: In-Reply-To: <20151227020810.1450-1-normalperson@yhbt.net> Eric Wong writes: > --- a/git-send-email.perl > +++ b/git-send-email.perl > @@ -524,8 +524,14 @@ my %parse_alias = ( > if (/^\s*alias\s+(?:-group\s+\S+\s+)*(\S+)\s+(.*)$/) { > my ($alias, $addr) = ($1, $2); > $addr =~ s/#.*$//; # mutt allows # comments > - # commas delimit multiple addresses > - $aliases{$alias} = [ split_addrs($addr) ]; > + # commas delimit multiple addresses > + my @addr = split_addrs($addr); > + > + # quotes may be escaped in the file, > + # remove them if paired so we do not > + # double-escape them later. I think you meant "remove the escaping" or simply "unescape", not "remove them", which I'd understand as "remove the quotes". Other than that, the patch looks good to me, including your proposed fixup: --- a/git-send-email.perl +++ b/git-send-email.perl @@ -530,7 +530,7 @@ my %parse_alias = ( # quotes may be escaped in the file, # remove them if paired so we do not # double-escape them later. - s/^\\"(.*?)\\"/"$1"/g foreach @addr; + s/\\"/"/g foreach @addr; $aliases{$alias} = \@addr Eric Wong writes: > alias qn \"Q. N\\\"ame\" # becomes "Q. N\"ame" > alias dq \"Dub O.\" \"Q\" # becomes "Dub O. Q" [...] > But I'm not sure how to handle the "dq" case or if that even > happens in practice, as attempting to save an alias with "Dub O." "Q" > in the From: header, mutt shortens it to the expected \"Dub O. Q\" > without extra quotes. I wouldn't worry too much about corner-cases, but perhaps some people do use escaped quotes inside escaped quotes. I'd say they get what they deserve ;-). -- Matthieu Moy http://www-verimag.imag.fr/~moy/