summaryrefslogtreecommitdiffstats
path: root/llvm/utils
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2018-04-03 22:38:25 +0000
committerReid Kleckner <rnk@google.com>2018-04-03 22:38:25 +0000
commitbdbb712b6dbb0f353205f88dd1144bb3bd12841f (patch)
treea762b1f3b2a64a4a543aabb7695bc1ad995b0949 /llvm/utils
parente55aa03ad4605799d8c116ec45ae7474359f2a47 (diff)
downloadbcm5719-llvm-bdbb712b6dbb0f353205f88dd1144bb3bd12841f.tar.gz
bcm5719-llvm-bdbb712b6dbb0f353205f88dd1144bb3bd12841f.zip
'cat' command for internal shell - Support Python 3
LLVM Bug Id : 36449 Revision 328563 caused tests to fail under python 3. This patch modified cat.py file to support both python 2 and 3. This patch also fixes CRLF issues on Windows. Patch by Chamal de Silva Differential Revision: https://reviews.llvm.org/D45077 llvm-svn: 329123
Diffstat (limited to 'llvm/utils')
-rw-r--r--llvm/utils/lit/lit/builtin_commands/cat.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/llvm/utils/lit/lit/builtin_commands/cat.py b/llvm/utils/lit/lit/builtin_commands/cat.py
index b4d3d99b88e..fab9dccda27 100644
--- a/llvm/utils/lit/lit/builtin_commands/cat.py
+++ b/llvm/utils/lit/lit/builtin_commands/cat.py
@@ -7,8 +7,10 @@ except ImportError:
def convertToCaretAndMNotation(data):
newdata = StringIO()
- for char in data:
- intval = ord(char)
+ if isinstance(data, str):
+ data = bytearray(data)
+
+ for intval in data:
if intval == 9 or intval == 10:
newdata.write(chr(intval))
continue
@@ -23,7 +25,7 @@ def convertToCaretAndMNotation(data):
else:
newdata.write(chr(intval))
- return newdata.getvalue();
+ return newdata.getvalue().encode()
def main(argv):
@@ -42,13 +44,19 @@ def main(argv):
if option == "-v" or option == "--show-nonprinting":
show_nonprinting = True;
+ writer = getattr(sys.stdout, 'buffer', None)
+ if writer is None:
+ writer = sys.stdout
+ if sys.platform == "win32":
+ import os, msvcrt
+ msvcrt.setmode(sys.stdout.fileno(),os.O_BINARY)
for filename in filenames:
try:
fileToCat = open(filename,"rb")
contents = fileToCat.read()
if show_nonprinting:
contents = convertToCaretAndMNotation(contents)
- sys.stdout.write(contents)
+ writer.write(contents)
sys.stdout.flush()
fileToCat.close()
except IOError as error:
OpenPOWER on IntegriCloud