From d6a99c631e6c1690ce3c5f60c96e89cd8281dc08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 10 May 2024 14:30:00 +0800 Subject: [PATCH] Image: support specifying `--logo-width` only for `--kitty-direct` and `--iterm` Fix: #836 Ref: https://github.com/kovidgoyal/kitty/issues/7424 --- src/logo/image/image.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/logo/image/image.c b/src/logo/image/image.c index a64a3d5e5..3daf8cfde 100644 --- a/src/logo/image/image.c +++ b/src/logo/image/image.c @@ -84,9 +84,10 @@ static bool printImageIterm(bool printError) ffStrbufAppendNC(&buf, options->paddingTop, '\n'); ffStrbufAppendNC(&buf, options->paddingLeft, ' '); } - ffStrbufAppendF(&buf, "\e]1337;File=inline=1:%s\a", - base64.chars - ); + if (options->width) + ffStrbufAppendF(&buf, "\e]1337;File=inline=1;width=%u:%s\a", (unsigned) options->width, base64.chars); + else + ffStrbufAppendF(&buf, "\e]1337;File=inline=1:%s\a", base64.chars); ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf); if (!options->separate) @@ -164,7 +165,11 @@ static bool printImageKittyDirect(bool printError) ffPrintCharTimes('\n', options->paddingTop); ffPrintCharTimes(' ', options->paddingLeft); } - printf("\e_Ga=T,f=100,t=f;%s\e\\", base64.chars); + + if (options->width) + printf("\e_Ga=T,f=100,t=f,c=%u;%s\e\\", (unsigned) options->width, base64.chars); + else + printf("\e_Ga=T,f=100,t=f;%s\e\\", base64.chars); fflush(stdout); if (!options->separate) {