From fd81d65c4b578fa993f989a87307069c8872165e Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Sat, 21 Aug 2021 13:24:18 -0400 Subject: [PATCH] Undo string type inversion in convert --- beetsplug/convert.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/beetsplug/convert.py b/beetsplug/convert.py index 2ce68b2cd..a55b2f7aa 100644 --- a/beetsplug/convert.py +++ b/beetsplug/convert.py @@ -16,7 +16,7 @@ """Converts tracks or albums to external directory """ from __future__ import division, absolute_import, print_function -from beets.util import par_map, decode_commandline_path +from beets.util import par_map, decode_commandline_path, arg_encoding import os import threading @@ -203,18 +203,12 @@ class ConvertPlugin(BeetsPlugin): if not quiet and not pretend: self._log.info(u'Encoding {0}', util.displayable_path(source)) + command = command.decode(arg_encoding(), 'surrogateescape') source = decode_commandline_path(source) dest = decode_commandline_path(dest) - # Split the command using shell syntax. We need to pass the - # string through a `str` because, at least on some Python - # versions, shlex.split does not support bytes. - args = [ - a.encode('utf8', 'surrogateescape') - for a in shlex.split(command.decode('utf8', 'surrogateescape')) - ] - # Substitute $source and $dest in the argument list. + args = shlex.split(command) encode_cmd = [] for i, arg in enumerate(args): args[i] = Template(arg).safe_substitute({