diff --git a/kittens/transfer/algorithm.c b/kittens/transfer/algorithm.c index 4c160260b..cf3e88562 100644 --- a/kittens/transfer/algorithm.c +++ b/kittens/transfer/algorithm.c @@ -901,13 +901,6 @@ PyTypeObject Hasher_Type = { }; // }}} end Hasher -static PyObject* -decode_utf8_buffer(PyObject *self UNUSED, PyObject *args) { - RAII_PY_BUFFER(buf); - if (!PyArg_ParseTuple(args, "s*", &buf)) return NULL; - return PyUnicode_FromStringAndSize(buf.buf, buf.len); -} - static bool call_ftc_callback(PyObject *callback, char *src, Py_ssize_t key_start, Py_ssize_t key_length, Py_ssize_t val_start, Py_ssize_t val_length) { while(src[key_start] == ';' && key_length > 0 ) { key_start++; key_length--; } @@ -952,7 +945,6 @@ parse_ftc(PyObject *self UNUSED, PyObject *args) { static PyMethodDef module_methods[] = { {"parse_ftc", parse_ftc, METH_VARARGS, ""}, - {"decode_utf8_buffer", decode_utf8_buffer, METH_VARARGS, ""}, {NULL, NULL, 0, NULL} /* Sentinel */ }; diff --git a/kittens/transfer/rsync.pyi b/kittens/transfer/rsync.pyi index d565abe61..97182b494 100644 --- a/kittens/transfer/rsync.pyi +++ b/kittens/transfer/rsync.pyi @@ -42,5 +42,4 @@ class Differ: def next_op(self, read: Callable[[WriteBuffer], int], write: Callable[[ReadOnlyBuffer], None]) -> bool: ... -def decode_utf8_buffer(x: ReadOnlyBuffer) -> str: ... def parse_ftc(x: Union[str, ReadOnlyBuffer], callback: Callable[[memoryview, memoryview], None]) -> None: ... diff --git a/kitty/file_transmission.py b/kitty/file_transmission.py index dbfc112ca..31be61916 100644 --- a/kitty/file_transmission.py +++ b/kitty/file_transmission.py @@ -329,14 +329,14 @@ class FileTransmissionCommand: def deserialize(cls, data: Union[str, bytes, memoryview]) -> 'FileTransmissionCommand': ans = FileTransmissionCommand() fmap = serialized_to_field_map() - from kittens.transfer.rsync import decode_utf8_buffer, parse_ftc + from kittens.transfer.rsync import parse_ftc def handle_item(key: memoryview, val: memoryview) -> None: field = fmap.get(key) if field is None: return if issubclass(field.type, Enum): - setattr(ans, field.name, field.type[decode_utf8_buffer(val)]) + setattr(ans, field.name, field.type[str(val, "utf-8")]) elif field.type is bytes: setattr(ans, field.name, base64_decode(val)) elif field.type is int: @@ -345,7 +345,7 @@ class FileTransmissionCommand: if field.metadata.get('base64'): sval = base64_decode(val).decode('utf-8') else: - sval = safe_string(decode_utf8_buffer(val)) + sval = safe_string(str(val, "utf-8")) setattr(ans, field.name, sval) parse_ftc(data, handle_item) diff --git a/kitty_tests/file_transmission.py b/kitty_tests/file_transmission.py index 8fcb3e76d..85d8fe8fa 100644 --- a/kitty_tests/file_transmission.py +++ b/kitty_tests/file_transmission.py @@ -10,7 +10,7 @@ from collections import namedtuple from contextlib import contextmanager from pathlib import Path -from kittens.transfer.rsync import Differ, Hasher, Patcher, decode_utf8_buffer, parse_ftc +from kittens.transfer.rsync import Differ, Hasher, Patcher, parse_ftc from kittens.transfer.utils import set_paths from kitty.constants import kitten_exe from kitty.file_transmission import Action, Compression, FileTransmissionCommand, FileType, TransmissionType, ZlibDecompressor @@ -307,8 +307,8 @@ class TestFileTransmission(BaseTest): a = [] def c(k, v): - a.append(decode_utf8_buffer(k)) - a.append(decode_utf8_buffer(v)) + a.append(str(k, 'utf-8')) + a.append(str(v, 'utf-8')) parse_ftc(raw, c) self.ae(tuple(a), expected)