From 83ce23ff9f3a699af5ee11ce9a309b150d71b0ec Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 27 May 2022 12:50:52 +0530 Subject: [PATCH] Use zsh's builtin stat instead of relying on the stat command --- shell-integration/zsh/kitty-integration | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/shell-integration/zsh/kitty-integration b/shell-integration/zsh/kitty-integration index 5dd323a7a..e77076202 100644 --- a/shell-integration/zsh/kitty-integration +++ b/shell-integration/zsh/kitty-integration @@ -455,13 +455,11 @@ edit-in-kitty() { builtin echo "$ed_filename is not a file" > /dev/stderr return 1 } - builtin local stat_result="" - stat_result=$(builtin command stat -L --format '%d:%i:%s' "$ed_filename" 2> /dev/null) - [ $? != 0 ] && stat_result=$(builtin command stat -L -f '%d:%i:%z' "$ed_filename" 2> /dev/null) - [ -z "$stat_result" ] && { builtin echo "Failed to stat the file: $ed_filename" > /dev/stderr; return 1; } - data="$data,file_inode=$stat_result" - builtin local file_size=$(builtin echo "$stat_result" | builtin command cut -d: -f3) - [ "$file_size" -gt $((8 * 1024 * 1024)) ] && { builtin echo "File is too large for performant editing"; return 1; } + builtin zmodload -F zsh/stat b:zstat + builtin typeset -A stat_result + builtin zstat -H stat_result "$ed_filename" || { builtin echo "Failed to stat the file: $ed_filename" > /dev/stderr; return 1; } + [ "${stat_result[size]}" -gt $((8 * 1024 * 1024)) ] && { builtin echo "File is too large for performant editing"; return 1; } + data="$data,file_inode=${stat_result[device]}:${stat_result[inode]}:${stat_result[size]}" data="$data,file_data=$(builtin command cat "$ed_filename" | builtin command base64)" _ksi_transmit_data "$data" "edit" data=""