[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] decodetree: Open files with encoding='utf-8'

From: Daniele Buono
Subject: Re: [PATCH] decodetree: Open files with encoding='utf-8'
Date: Fri, 8 Jan 2021 17:51:41 -0500
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

I had a similar issue in the past with the acceptance tests.
Some VMs send UTF-8 output in their console and the acceptance test
script would bail out if the locale was not UTF-8.

I sent a patch on the ml but it probably got lost:

I can re-spin it if you guys are interested

On 1/8/2021 10:16 AM, Philippe Mathieu-Daudé wrote:
When decodetree.py was added in commit 568ae7efae7, QEMU was
using Python 2 which happily reads UTF-8 files in text mode.
Python 3 requires either UTF-8 locale or an explicit encoding
passed to open(). Now that Python 3 is required, explicit
UTF-8 encoding for decodetree sources.

This fixes:

   $ /usr/bin/python3 scripts/decodetree.py test.decode
   Traceback (most recent call last):
     File "scripts/decodetree.py", line 1397, in <module>
     File "scripts/decodetree.py", line 1308, in main
       parse_file(f, toppat)
     File "scripts/decodetree.py", line 994, in parse_file
       for line in f:
     File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
       return codecs.ascii_decode(input, self.errors)[0]
   UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 80:
   ordinal not in range(128)

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
  scripts/decodetree.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/decodetree.py b/scripts/decodetree.py
index 47aa9caf6d1..fa40903cff1 100644
--- a/scripts/decodetree.py
+++ b/scripts/decodetree.py
@@ -1304,7 +1304,7 @@ def main():

      for filename in args:
          input_file = filename
-        f = open(filename, 'r')
+        f = open(filename, 'r', encoding='utf-8')
          parse_file(f, toppat)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]