mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-09 05:35:19 +02:00
Fix payload update code in multi send commands
This commit is contained in:
@@ -14,12 +14,13 @@ type generator_function func(io_data *rc_io_data) (bool, error)
|
||||
|
||||
func parse_send_text(io_data *rc_io_data, args []string) error {
|
||||
generators := make([]generator_function, 0, 1)
|
||||
var payload send_text_json_type = io_data.rc.Payload.(send_text_json_type)
|
||||
|
||||
if len(args) > 0 {
|
||||
text := strings.Join(args, " ")
|
||||
text_gen := func(io_data *rc_io_data) (bool, error) {
|
||||
payload := io_data.rc.Payload.(send_text_json_type)
|
||||
payload.Data = "text:" + text[:2048]
|
||||
io_data.rc.Payload = payload
|
||||
text = text[2048:]
|
||||
return len(text) == 0, nil
|
||||
}
|
||||
@@ -37,7 +38,9 @@ func parse_send_text(io_data *rc_io_data, args []string) error {
|
||||
if err != nil && !errors.Is(err, io.EOF) {
|
||||
return false, err
|
||||
}
|
||||
payload := io_data.rc.Payload.(send_text_json_type)
|
||||
payload.Data = "base64:" + base64.StdEncoding.EncodeToString(chunk[:n])
|
||||
io_data.rc.Payload = payload
|
||||
return n == 0, nil
|
||||
}
|
||||
generators = append(generators, file_gen)
|
||||
@@ -45,7 +48,9 @@ func parse_send_text(io_data *rc_io_data, args []string) error {
|
||||
|
||||
io_data.multiple_payload_generator = func(io_data *rc_io_data) (bool, error) {
|
||||
if len(generators) == 0 {
|
||||
payload := io_data.rc.Payload.(send_text_json_type)
|
||||
payload.Data = "text:"
|
||||
io_data.rc.Payload = payload
|
||||
return true, nil
|
||||
}
|
||||
finished, err := generators[0](io_data)
|
||||
|
||||
@@ -37,12 +37,14 @@ func read_window_logo(path string) (func(io_data *rc_io_data) (bool, error), err
|
||||
}
|
||||
|
||||
return func(io_data *rc_io_data) (bool, error) {
|
||||
var payload set_window_logo_json_type = io_data.rc.Payload.(set_window_logo_json_type)
|
||||
payload := io_data.rc.Payload.(set_window_logo_json_type)
|
||||
if len(buf) == 0 {
|
||||
payload.Data = ""
|
||||
io_data.rc.Payload = payload
|
||||
return true, nil
|
||||
}
|
||||
payload.Data = base64.StdEncoding.EncodeToString(buf)
|
||||
io_data.rc.Payload = payload
|
||||
buf = buf[:cap(buf)]
|
||||
n, err := f.Read(buf)
|
||||
if err != nil && err != io.EOF {
|
||||
|
||||
@@ -5,6 +5,7 @@ package at
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"time"
|
||||
@@ -13,6 +14,8 @@ import (
|
||||
"kitty/tools/wcswidth"
|
||||
)
|
||||
|
||||
var _ = fmt.Print
|
||||
|
||||
func write_all_to_conn(conn *net.Conn, data []byte) error {
|
||||
for len(data) > 0 {
|
||||
n, err := (*conn).Write(data)
|
||||
|
||||
Reference in New Issue
Block a user