oepydevshell-internal: python3: encode/decode pty content

As /dev/pty opened in binary mode its content has to
be decoded when reading from it and encoded when writing to it.

(From OE-Core rev: 211870ddbce5c966b2882e97cb2efe29b72a62a4)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ed Bartosh 2016-07-05 01:08:15 +03:00 committed by Richard Purdie
parent e8feb1976a
commit 94fb1a57de
1 changed files with 4 additions and 4 deletions

View File

@ -47,7 +47,7 @@ try:
# Need cbreak/noecho whilst in select so we trigger on any keypress
cbreaknoecho(sys.stdin.fileno())
# Send our PID to the other end so they can kill us.
pty.write(str(os.getpid()) + "\n")
pty.write(str(os.getpid()).encode('utf-8') + b"\n")
while True:
try:
writers = []
@ -56,7 +56,7 @@ try:
(ready, _, _) = select.select([pty, sys.stdin], writers , [], 0)
try:
if pty in ready:
i = i + pty.read()
i = i + pty.read().decode('utf-8')
if i:
# Write a page at a time to avoid overflowing output
# d.keys() is a good way to do that
@ -65,9 +65,9 @@ try:
i = i[4096:]
if sys.stdin in ready:
echonocbreak(sys.stdin.fileno())
o = input()
o = input().encode('utf-8')
cbreaknoecho(sys.stdin.fileno())
pty.write(o + "\n")
pty.write(o + b"\n")
except (IOError, OSError) as e:
if e.errno == 11:
continue