From 385746850ea9ebd12eb98973cc959552a3c21d31 Mon Sep 17 00:00:00 2001 From: Joseph Frazier <1212jtraceur@gmail.com> Date: Wed, 23 Nov 2016 07:53:22 -0500 Subject: [PATCH] generic shell: extract UTF-8 encoding/decoding into methods --- thefuck/shells/generic.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/thefuck/shells/generic.py b/thefuck/shells/generic.py index e20d7ec3..ec38df1c 100644 --- a/thefuck/shells/generic.py +++ b/thefuck/shells/generic.py @@ -65,9 +65,17 @@ class Generic(object): def split_command(self, command): """Split the command using shell-like syntax.""" + return self.decode_utf8(shlex.split(self.encode_utf8(command))) + + def encode_utf8(self, command): if six.PY2: - return [s.decode('utf8') for s in shlex.split(command.encode('utf8'))] - return shlex.split(command) + return command.encode('utf8') + return command + + def decode_utf8(self, command_parts): + if six.PY2: + return [s.decode('utf8') for s in command_parts] + return command_parts def quote(self, s): """Return a shell-escaped version of the string s."""