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

Re: bug (?) in send email

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 30, 2012, 15:38 UTC
Message-ID
<7vpq7ds1hu.fsf@alter.siamese.dyndns.org>
In-Reply-To
<873949mnx0.fsf@thomas.inf.ethz.ch>
Thomas Rast <trast@student.ethz.ch> writes:
Show 7 quoted lines
> It would prevent spaces from being decoded correctly if the encoding
> program chooses to make the '_'.  git-format-patch does not actually do
> this, see the big comment around pretty.c:304.
>
> I think this patch would be a better match for what RFC2047 specifies.
> On the one hand it avoids substituting _ outside of encodings, but OTOH
> it also handles more than one encoded-word.
Yeah, I think it is an improvement.

I however wonder if the captured pattern for $2 should be minimized with ? at the end, i.e. "..\?q\?(.*?)\?="?

> It still does not handle
> the case where there are several encoded-words of *different* encodings,
> but who would do such a crazy thing?

Even if somebody did so, it wouldn't have worked, and to make it work, the sub and its caller (there is only one caller that actually cares what the original encoding was) needs to be rethought anyway, so I do not think it matters.

It may deserve an in-code NEEDSWORK comment, though.
Thanks.
Show 21 quoted lines
> diff --git i/git-send-email.perl w/git-send-email.perl
> index ef30c55..88c4758 100755
> --- i/git-send-email.perl
> +++ w/git-send-email.perl
> @@ -862,11 +862,13 @@ sub make_message_id {
>  sub unquote_rfc2047 {
>  	local ($_) = @_;
>  	my $encoding;
> -	if (s/=\?([^?]+)\?q\?(.*)\?=/$2/g) {
> +	s{=\?([^?]+)\?q\?(.*)\?=}{
>  		$encoding = $1;
> -		s/_/ /g;
> -		s/=([0-9A-F]{2})/chr(hex($1))/eg;
> -	}
> +		my $e = $2;
> +		$e =~ s/_/ /g;
> +		$e =~ s/=([0-9A-F]{2})/chr(hex($1))/eg;
> +		$e;
> +	}eg;
>  	return wantarray ? ($_, $encoding) : $_;
>  }
Previous: Thomas RastNext: Jeff King
Message 4 of 6 in “bug (?) in send email”
  1. Christoph MiebachJul 28, 2012
  2. Christoph MiebachJul 30, 2012
  3. Thomas RastJul 30, 2012
  4. Junio C HamanoJul 30, 2012
  5. Jeff KingJul 30, 2012
  6. Jeff KingJul 30, 2012

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.