Fix small images on kitty

This commit is contained in:
bptato
2021-02-18 20:27:48 +01:00
parent 3304675aff
commit da628ebd88

57
terms.c
View File

@@ -576,7 +576,6 @@ put_image_kitty(char *url, int x, int y, int w, int h, int sx, int sy, int sw,
"w=%d,h=%d,c=%d,r=%d;", "w=%d,h=%d,c=%d,r=%d;",
w, h, x, y, sx, sy, sw, sh, cols, rows); w, h, x, y, sx, sy, sw, sh, cols, rows);
writestr(buf->ptr);
cbuf = GC_MALLOC_ATOMIC(3072); cbuf = GC_MALLOC_ATOMIC(3072);
i = 0; i = 0;
@@ -591,36 +590,44 @@ put_image_kitty(char *url, int x, int y, int w, int h, int sx, int sy, int sw,
if (!base64) if (!base64)
return; return;
if (c == EOF)
buf = Sprintf("\x1b_Gf=100,s=%d,v=%d,a=T,m=0,X=%d,Y=%d,x=%d,y=%d,"
"w=%d,h=%d,c=%d,r=%d;",
w, h, x, y, sx, sy, sw, sh, cols, rows);
writestr(buf->ptr);
buf = Sprintf("%s\x1b\\", base64); buf = Sprintf("%s\x1b\\", base64);
writestr(buf->ptr); writestr(buf->ptr);
i = 0;
base64 = NULL;
while ((c = fgetc(fp)) != EOF) { if (c != EOF) {
if (!i && base64) { i = 0;
buf = Sprintf("\x1b_Gm=1;%s\x1b\\", base64); base64 = NULL;
writestr(buf->ptr); while ((c = fgetc(fp)) != EOF) {
} if (!i && base64) {
cbuf[i] = c; buf = Sprintf("\x1b_Gm=1;%s\x1b\\", base64);
++i; writestr(buf->ptr);
if (i == 3072) { }
base64 = base64_encode(cbuf, i); cbuf[i] = c;
if (!base64) ++i;
return; if (i == 3072) {
base64 = base64_encode(cbuf, i);
if (!base64)
return;
i = 0; i = 0;
} }
} }
if (i) { if (i) {
base64 = base64_encode(cbuf, i); base64 = base64_encode(cbuf, i);
if (!base64) if (!base64)
return; return;
} }
if (base64) { if (base64) {
buf = Sprintf("\x1b_Gm=0;%s\x1b\\", base64); buf = Sprintf("\x1b_Gm=0;%s\x1b\\", base64);
writestr(buf->ptr); writestr(buf->ptr);
}
} }
MOVE(Currentbuf->cursorY, Currentbuf->cursorX); MOVE(Currentbuf->cursorY, Currentbuf->cursorX);
} }