DRYer
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
# License: GPL v3 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net>
|
# License: GPL v3 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
import codecs
|
||||||
import fcntl
|
import fcntl
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import os
|
import os
|
||||||
@@ -27,6 +28,12 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
appname = ''
|
appname = ''
|
||||||
|
|
||||||
|
try:
|
||||||
|
fsenc = sys.getfilesystemencoding() or 'utf-8'
|
||||||
|
codecs.lookup(fsenc)
|
||||||
|
except Exception:
|
||||||
|
fsenc = 'utf-8'
|
||||||
|
|
||||||
|
|
||||||
class OpenFailed(ValueError):
|
class OpenFailed(ValueError):
|
||||||
|
|
||||||
@@ -122,7 +129,7 @@ def show(outfile, width, height, fmt, transmit_mode):
|
|||||||
set_cursor(cmd, width, height)
|
set_cursor(cmd, width, height)
|
||||||
if detect_support.has_files:
|
if detect_support.has_files:
|
||||||
cmd['t'] = transmit_mode
|
cmd['t'] = transmit_mode
|
||||||
write_gr_cmd(cmd, standard_b64encode(os.path.abspath(outfile).encode(sys.getfilesystemencoding() or 'utf-8')))
|
write_gr_cmd(cmd, standard_b64encode(os.path.abspath(outfile).encode(fsenc)))
|
||||||
else:
|
else:
|
||||||
with open(outfile, 'rb') as f:
|
with open(outfile, 'rb') as f:
|
||||||
data = f.read()
|
data = f.read()
|
||||||
@@ -220,7 +227,7 @@ def detect_support(wait_for=10):
|
|||||||
with NamedTemporaryFile() as f:
|
with NamedTemporaryFile() as f:
|
||||||
f.write(b'abcd'), f.flush()
|
f.write(b'abcd'), f.flush()
|
||||||
write_gr_cmd(dict(a='q', s=1, v=1, i=1), standard_b64encode(b'abcd'))
|
write_gr_cmd(dict(a='q', s=1, v=1, i=1), standard_b64encode(b'abcd'))
|
||||||
write_gr_cmd(dict(a='q', s=1, v=1, i=2, t='f'), standard_b64encode(f.name.encode(sys.getfilesystemencoding() or 'utf-8')))
|
write_gr_cmd(dict(a='q', s=1, v=1, i=2, t='f'), standard_b64encode(f.name.encode(fsenc)))
|
||||||
sel = selectors.DefaultSelector()
|
sel = selectors.DefaultSelector()
|
||||||
sel.register(sys.stdin, selectors.EVENT_READ, read)
|
sel.register(sys.stdin, selectors.EVENT_READ, read)
|
||||||
while monotonic() - start_time < wait_for and 1 not in responses and 2 not in responses:
|
while monotonic() - start_time < wait_for and 1 not in responses and 2 not in responses:
|
||||||
|
|||||||
Reference in New Issue
Block a user