From 0f81bca430998a549aa1dc511286bb6ed11faeb9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 24 Apr 2026 14:37:34 +0530 Subject: [PATCH] DRYer --- kittens/dnd/drop.go | 5 +---- tools/utils/file_at_fd.go | 7 +++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/kittens/dnd/drop.go b/kittens/dnd/drop.go index 8b58b813b..d6aff66f3 100644 --- a/kittens/dnd/drop.go +++ b/kittens/dnd/drop.go @@ -150,10 +150,7 @@ func (d *remote_dir_entry) add_remote_data(data []byte, output_buf []byte, has_m return derr } } else { // directory - if derr := utils.MkdirAt(d.base_dir.handle, d.name, 0o755); derr != nil { - return derr - } - if f, derr := utils.OpenAt(d.base_dir.handle, d.name); derr != nil { + if f, derr := utils.CreateDirAt(d.base_dir.handle, d.name, 0o755); derr != nil { return derr } else { handle := new_dir_handle(f) diff --git a/tools/utils/file_at_fd.go b/tools/utils/file_at_fd.go index c4456f93d..94ab714a7 100644 --- a/tools/utils/file_at_fd.go +++ b/tools/utils/file_at_fd.go @@ -77,6 +77,13 @@ func CreateAt(dirFile *os.File, name string) (*os.File, error) { return openAt(dirFile, name, unix.O_RDWR|unix.O_CREAT|unix.O_TRUNC, 0666) } +func CreateDirAt(parent *os.File, name string, permissions os.FileMode) (*os.File, error) { + if err := MkdirAt(parent, name, permissions); err != nil { + return nil, err + } + return OpenDirAt(parent, name) +} + // Internal helper to wrap the unix.Openat syscall func openAt(dirFile *os.File, name string, flags int, perm os.FileMode) (ans *os.File, err error) { dirFd := int(dirFile.Fd())