summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorGaurav Juvekar <gauravjuvekar@gmail.com>2017-04-16 14:16:47 (GMT)
committerGaurav Juvekar <gauravjuvekar@gmail.com>2017-04-16 14:16:47 (GMT)
commit9ced8fe7b4e2f878df32ab3f606f851ac4cb6efc (patch)
tree401d985210b029903ee323e208f598f9d9d22db3 /src/engine
parent62bdd33553c4df9e658855b5bfb32e9f1d4ec6a5 (diff)
downloadSCons-9ced8fe7b4e2f878df32ab3f606f851ac4cb6efc.zip
SCons-9ced8fe7b4e2f878df32ab3f606f851ac4cb6efc.tar.gz
SCons-9ced8fe7b4e2f878df32ab3f606f851ac4cb6efc.tar.bz2
Try to fix some more py2/3 tests becuase of str vs bytearray
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Node/Python.py8
-rw-r--r--src/engine/SCons/Tool/textfile.py6
2 files changed, 12 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/Python.py b/src/engine/SCons/Node/Python.py
index 2a3ce98..8c47c97 100644
--- a/src/engine/SCons/Node/Python.py
+++ b/src/engine/SCons/Node/Python.py
@@ -137,7 +137,13 @@ class Value(SCons.Node.Node):
return contents
def get_contents(self):
- return self.get_text_contents().encode()
+ text_contents = self.get_text_contents()
+ try:
+ return text_contents.encode()
+ except UnicodeDecodeError:
+ # Already encoded as python2 str are bytes
+ return text_contents
+
def changed_since_last_build(self, target, prev_ni):
cur_csig = self.get_csig()
diff --git a/src/engine/SCons/Tool/textfile.py b/src/engine/SCons/Tool/textfile.py
index 0e4d943..42a79cd 100644
--- a/src/engine/SCons/Tool/textfile.py
+++ b/src/engine/SCons/Tool/textfile.py
@@ -71,7 +71,11 @@ def _do_subst(node, subs):
contents = re.sub(k, v, contents)
if 'b' in TEXTFILE_FILE_WRITE_MODE:
- contents = bytearray(contents, 'utf-8')
+ try:
+ contents = bytearray(contents, 'utf-8')
+ except UnicodeDecodeError:
+ # contents is already utf-8 encoded python 2 str i.e. a byte array
+ contents = bytearray(contents)
return contents