From b9261c4e26d677af9d0dba2ac430472c16476950 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 12 May 2026 12:52:04 +0530 Subject: [PATCH] Fix failing test Ensure we never write empty payloads for symlinks/dir listings --- kittens/dnd/drag.go | 8 ++++++-- kitty/dnd.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/kittens/dnd/drag.go b/kittens/dnd/drag.go index ecafb257a..e180b61ab 100644 --- a/kittens/dnd/drag.go +++ b/kittens/dnd/drag.go @@ -392,7 +392,9 @@ func (dnd *dnd) send_remote_dir(path string, idx_in_uri_list, parent_dir_handle, names = append(names, entry.Name()) } payload := utils.UnsafeStringToBytes(strings.Join(names, "\x00")) - dnd.send_remote_item_payload(parent_dir_handle, idx, idx_in_uri_list, handle, payload) + if len(payload) > 0 { + dnd.send_remote_item_payload(parent_dir_handle, idx, idx_in_uri_list, handle, payload) + } dnd.drag_status.remote_item_write_id = dnd.send_remote_item_payload(parent_dir_handle, idx, idx_in_uri_list, handle, nil) return } @@ -403,7 +405,9 @@ func (dnd *dnd) send_remote_symlink(path string, idx_in_uri_list, parent_dir_han dnd.finish_drag("EIO") return err } - dnd.send_remote_item_payload(parent_dir_handle, idx, idx_in_uri_list, 1, utils.UnsafeStringToBytes(target)) + if len(target) > 0 { + dnd.send_remote_item_payload(parent_dir_handle, idx, idx_in_uri_list, 1, utils.UnsafeStringToBytes(target)) + } dnd.drag_status.remote_item_write_id = dnd.send_remote_item_payload(parent_dir_handle, idx, idx_in_uri_list, 1, nil) return } diff --git a/kitty/dnd.c b/kitty/dnd.c index 45152f6fa..ea0ad9eb0 100644 --- a/kitty/dnd.c +++ b/kitty/dnd.c @@ -2154,7 +2154,7 @@ drag_remote_file_data( mime_item_idx = i; break; } } - if (mime_item_idx == ds.num_mimes) abrt(EINVAL, "drag source no text/uri-list MIME entry data was requested"); + if (mime_item_idx == ds.num_mimes) abrt(EINVAL, "drag source no remote data was requested"); if (x < 1) abrt(EINVAL, "drag source remote item x index cannot be less than 1"); const bool all_data_received = !payload_sz && !has_more; const unsigned uri_item_idx = x - 1;