[PATCH] sb/execute: Use a decoder that maintains state aross blocks

chrisj at rtems.org chrisj at rtems.org
Thu Sep 29 10:59:39 UTC 2022


From: Chris Johns <chrisj at rtems.org>

Update #4726
---
 source-builder/sb/execute.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/source-builder/sb/execute.py b/source-builder/sb/execute.py
index 3db9abc..bdab373 100755
--- a/source-builder/sb/execute.py
+++ b/source-builder/sb/execute.py
@@ -27,6 +27,7 @@
 from __future__ import print_function
 
 import functools
+import codecs
 import io
 import os
 import re
@@ -181,6 +182,7 @@ class execute(object):
 
             if trace_threads:
                 print('execute:_readthread: start')
+            decoder = codecs.getincrementaldecoder(sys.stdout.encoding)()
             count = 0
             line = ''
             try:
@@ -201,7 +203,7 @@ class execute(object):
                         break
                     # str and bytes are the same type in Python2
                     if type(data) is not str and type(data) is bytes:
-                        data = data.decode(sys.stdout.encoding)
+                        data = decoder.decode(data)
                     last_ch = data[-1]
                     sd = (line + data).split('\n')
                     if last_ch != '\n':
-- 
2.37.1



More information about the devel mailing list