On Wed, 16 Sep 2020, Rodrigo Vivi <rodrigo.v...@intel.com> wrote:
> On Wed, Sep 16, 2020 at 12:57:43PM +0300, Jani Nikula wrote:
>> Email messages need two levels of decoding: First, content transfer
>> encoding, such as base64 or quoted-printable. Second, charset decoding.
>> 
>> We've done the first (with part.get_payload(decode=True)), but we've
>> ignored the charset. Mostly, it has not mattered, since most email is
>> ascii or utf-8 anyway, and python2 has been relaxed about it. However,
>> python3 part.get_payload(decode=True) gives us binary instead of
>> unicode, so we also need to do the charset decoding to get the result we
>> want.
>> 
>> The problem has likely been observed only now that 'python' no longer
>> exists or points at python3 instead of python2.
>> 
>> Use part.get_content_charset() for charset decoding, defaulting to
>> 'us-ascii' source charset if nothing is specified.
>> 
>> Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
>> Cc: Daniel Vetter <dan...@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nik...@intel.com>
>
> Reviewed-by: Rodrigo Vivi <rodrigo.v...@intel.com>
> Tested-by: Rodrigo Vivi <rodrigo.v...@intel.com>
>
> (Although it continue to fail with the encoded email)

Thanks, pushed, though still work to do I guess. :/

BR,
Jani.


>
> Thanks,
> Rodrigo.
>
>> ---
>>  dim | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/dim b/dim
>> index c3a048db8956..3f489976c6bc 100755
>> --- a/dim
>> +++ b/dim
>> @@ -447,7 +447,7 @@ def print_msg(file):
>>      msg = email.message_from_file(file)
>>      for part in msg.walk():
>>          if part.get_content_type() == 'text/plain':
>> -            print(part.get_payload(decode=True))
>> +            
>> print(part.get_payload(decode=True).decode(part.get_content_charset(failobj='us-ascii')))
>>  
>>  print_msg(open('$1', 'r'))
>>  EOF
>> -- 
>> 2.20.1
>> 

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dim-tools mailing list
dim-tools@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dim-tools

Reply via email to