diff --git a/kittens/transfer/receive.py b/kittens/transfer/receive.py index 19758c722..bd95f72e4 100644 --- a/kittens/transfer/receive.py +++ b/kittens/transfer/receive.py @@ -201,17 +201,9 @@ class Manager: target = rid_map.get(f.remote_target) if target is None: return f'Symbolic link with remote id: {f.remote_target} not found' - if f.remote_symlink_value.startswith(b'/'): - lt = target.expanded_local_path - else: - lt = target.expanded_local_path - try: - cp = os.path.commonpath((f.expanded_local_path, lt)) - except ValueError: - pass - else: - if cp: - lt = os.path.relpath(lt, cp) + lt = target.expanded_local_path + if not f.remote_symlink_value.startswith(b'/'): + lt = os.path.relpath(lt, os.path.dirname(f.expanded_local_path)) else: lt = f.remote_symlink_value.decode('utf-8') os.symlink(lt, f.expanded_local_path) diff --git a/kitty/file_transmission.py b/kitty/file_transmission.py index dbfe19505..bdcfe1b14 100644 --- a/kitty/file_transmission.py +++ b/kitty/file_transmission.py @@ -429,13 +429,7 @@ class DestFile: if lt.startswith('fid:'): lt = all_files[lt[4:]].name if self.ftype is FileType.symlink: - try: - cp = os.path.commonpath((self.name, lt)) - except ValueError: - pass - else: - if cp: - lt = os.path.relpath(lt, cp) + lt = os.path.relpath(lt, os.path.dirname(self.name)) elif lt.startswith('fid_abs:'): lt = all_files[lt[8:]].name elif lt.startswith('path:'):