summaryrefslogtreecommitdiff
path: root/cmd2.py
diff options
context:
space:
mode:
authorTodd Leonhardt <todd.leonhardt@gmail.com>2017-06-25 14:48:36 -0400
committerTodd Leonhardt <todd.leonhardt@gmail.com>2017-06-25 14:48:36 -0400
commitcc118281df23738dbfc41045ca05179255574afb (patch)
treeaccdd7a02418b2bf233251557436d74fbcf38952 /cmd2.py
parentac353483d177bbabb592dc6c726667a446b800c4 (diff)
downloadcmd2-git-cc118281df23738dbfc41045ca05179255574afb.tar.gz
Fix Linux clipboard code so it works on both Python 2 and Python 3
Diffstat (limited to 'cmd2.py')
-rwxr-xr-xcmd2.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/cmd2.py b/cmd2.py
index c19c54ec..65b7eeee 100755
--- a/cmd2.py
+++ b/cmd2.py
@@ -415,7 +415,11 @@ else:
"""
xclipproc = subprocess.Popen('xclip -o -sel clip', shell=True, stdout=subprocess.PIPE,
stdin=subprocess.PIPE)
- return xclipproc.stdout.read()
+ stdout, stderr = xclipproc.communicate()
+ if six.PY3:
+ return stdout.decode()
+ else:
+ return stdout
def write_to_paste_buffer(txt):
"""Paste text to the clipboard for Linux OSes.
@@ -423,11 +427,18 @@ else:
:param txt: str - text to paste to the clipboard
"""
xclipproc = subprocess.Popen('xclip -sel clip', shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
- xclipproc.stdin.write(txt.encode())
+ if six.PY3:
+ xclipproc.stdin.write(txt.encode())
+ else:
+ xclipproc.stdin.write(txt)
xclipproc.stdin.close()
+
# but we want it in both the "primary" and "mouse" clipboards
xclipproc = subprocess.Popen('xclip', shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
- xclipproc.stdin.write(txt.encode())
+ if six.PY3:
+ xclipproc.stdin.write(txt.encode())
+ else:
+ xclipproc.stdin.write(txt)
xclipproc.stdin.close()
else:
# noinspection PyUnusedLocal