mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-20 23:44:59 +02:00
Increase chunk size for graphics protocol since the VT parser now supports it
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"kitty/tools/tty"
|
||||
"kitty/tools/tui/loop"
|
||||
"kitty/tools/utils"
|
||||
)
|
||||
@@ -199,6 +200,9 @@ func (self GraphicsCommand) String() string {
|
||||
return ans + ")"
|
||||
}
|
||||
|
||||
var debugprintln = tty.DebugPrintln
|
||||
var _ = debugprintln
|
||||
|
||||
func (self *GraphicsCommand) serialize_to(buf io.StringWriter, chunk string) (err error) {
|
||||
var ws func(string)
|
||||
if self.EncodeSerializedDataFunc == nil {
|
||||
@@ -264,7 +268,7 @@ func (self *GraphicsCommand) WriteWithPayloadTo(o io.StringWriter, payload []byt
|
||||
return self.serialize_to(o, "")
|
||||
}
|
||||
if len(payload) <= compression_threshold {
|
||||
return self.serialize_to(o, base64.StdEncoding.EncodeToString(payload))
|
||||
return self.serialize_to(o, base64.RawStdEncoding.EncodeToString(payload))
|
||||
}
|
||||
gc := *self
|
||||
if self.Format() != GRT_format_png {
|
||||
@@ -274,12 +278,13 @@ func (self *GraphicsCommand) WriteWithPayloadTo(o io.StringWriter, payload []byt
|
||||
payload = compressed
|
||||
}
|
||||
}
|
||||
data := base64.StdEncoding.EncodeToString(payload)
|
||||
const chunk_size = 128 * 1024
|
||||
data := base64.RawStdEncoding.EncodeToString(payload)
|
||||
for len(data) > 0 && err == nil {
|
||||
chunk := data
|
||||
if len(data) > 4096 {
|
||||
chunk = data[:4096]
|
||||
data = data[4096:]
|
||||
if len(data) > chunk_size {
|
||||
chunk = data[:chunk_size]
|
||||
data = data[chunk_size:]
|
||||
} else {
|
||||
data = ""
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ func TestGraphicsCommandSerialization(t *testing.T) {
|
||||
test_serialize := func(payload string, vals ...string) {
|
||||
expected := "\033_G" + strings.Join(vals, ",")
|
||||
if payload != "" {
|
||||
expected += ";" + base64.StdEncoding.EncodeToString([]byte(payload))
|
||||
expected += ";" + base64.RawStdEncoding.EncodeToString([]byte(payload))
|
||||
}
|
||||
expected += "\033\\"
|
||||
if diff := cmp.Diff(expected, gc.AsAPC([]byte(payload))); diff != "" {
|
||||
@@ -62,7 +62,7 @@ func TestGraphicsCommandSerialization(t *testing.T) {
|
||||
if len(data) > 0 {
|
||||
t.Fatalf("Unparsed remnant: %#v", string(data))
|
||||
}
|
||||
decoded, err := base64.StdEncoding.DecodeString(encoded.String())
|
||||
decoded, err := base64.RawStdEncoding.DecodeString(encoded.String())
|
||||
if err != nil {
|
||||
t.Fatalf("Encoded data not valid base-64 with error: %v", err)
|
||||
}
|
||||
@@ -89,7 +89,7 @@ func TestGraphicsCommandSerialization(t *testing.T) {
|
||||
if diff := cmp.Diff(gc.AsAPC(nil), q.AsAPC(nil)); diff != "" {
|
||||
t.Fatalf("Parsing failed:\n%s", diff)
|
||||
}
|
||||
if diff := cmp.Diff(q.response_message, base64.StdEncoding.EncodeToString([]byte("abcd"))); diff != "" {
|
||||
if diff := cmp.Diff(q.response_message, base64.RawStdEncoding.EncodeToString([]byte("abcd"))); diff != "" {
|
||||
t.Fatalf("Failed to parse payload:\n%s", diff)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user