summaryrefslogtreecommitdiffstats
path: root/llvm/utils
diff options
context:
space:
mode:
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