icat kitten: Fix transmission of frame data in direct mode

Sometimes frame data is > 2048 but does not compress smaller, which
broke the if statement checking for first loop.

Fixes #5958
This commit is contained in:
Kovid Goyal 2023-02-01 10:49:58 +05:30
parent 414ca86e3f
commit 5c0d477a18
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 6 additions and 1 deletions

View File

@ -43,6 +43,9 @@ Detailed list of changes
- Fix a regression causing the ``edit-in-kitty`` command not working if :file:`kitten` is not added
to PATH (:iss:`5956`)
- icat kitten: Fix a regression that broke display of animated GIFs over SSH
(:iss:`5958`)
0.27.0 [2023-01-31]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -551,6 +551,7 @@ func (self *GraphicsCommand) WriteWithPayloadTo(o io.StringWriter, payload []byt
payload = compressed
}
data := base64.StdEncoding.EncodeToString(payload)
is_first := true
for len(data) > 0 && err == nil {
chunk := data
if len(data) > 4096 {
@ -565,9 +566,10 @@ func (self *GraphicsCommand) WriteWithPayloadTo(o io.StringWriter, payload []byt
gc.m = GRT_more_nomore
}
err = gc.serialize_to(o, chunk)
if gc.DataSize() > 0 {
if !is_first {
gc = GraphicsCommand{}
}
is_first = false
}
return
}