Fix payload update code in multi send commands
This commit is contained in:
parent
b5e2871aa0
commit
a388a658ce
@ -147,6 +147,10 @@ def build_go_code(name: str, cmd: RemoteCommand, seq: OptionSpecSeq, template: s
|
|||||||
del unhandled[x]
|
del unhandled[x]
|
||||||
if unhandled:
|
if unhandled:
|
||||||
raise SystemExit(f'Cant map fields: {", ".join(unhandled)} for cmd: {name}')
|
raise SystemExit(f'Cant map fields: {", ".join(unhandled)} for cmd: {name}')
|
||||||
|
if name != 'send_text':
|
||||||
|
unused_options = set(option_map) - used_options - {'no_response', 'response_timeout'}
|
||||||
|
if unused_options:
|
||||||
|
raise SystemExit(f'Unused options: {", ".join(unused_options)} for command: {name}')
|
||||||
|
|
||||||
argspec = cmd.args.spec
|
argspec = cmd.args.spec
|
||||||
if argspec:
|
if argspec:
|
||||||
@ -241,7 +245,7 @@ def update_at_commands() -> None:
|
|||||||
os.remove(dest)
|
os.remove(dest)
|
||||||
with open(dest, 'w') as f:
|
with open(dest, 'w') as f:
|
||||||
f.write(code)
|
f.write(code)
|
||||||
print('\x1b[31mTODO\x1b[m: test set_window_logo, set_window_background, set_font_size, send_text, env, scroll_window', file=sys.stderr)
|
print('\x1b[31mTODO\x1b[m: test set_font_size, send_text, env, scroll_window', file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
|
|||||||
@ -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 {
|
func parse_send_text(io_data *rc_io_data, args []string) error {
|
||||||
generators := make([]generator_function, 0, 1)
|
generators := make([]generator_function, 0, 1)
|
||||||
var payload send_text_json_type = io_data.rc.Payload.(send_text_json_type)
|
|
||||||
|
|
||||||
if len(args) > 0 {
|
if len(args) > 0 {
|
||||||
text := strings.Join(args, " ")
|
text := strings.Join(args, " ")
|
||||||
text_gen := func(io_data *rc_io_data) (bool, error) {
|
text_gen := func(io_data *rc_io_data) (bool, error) {
|
||||||
|
payload := io_data.rc.Payload.(send_text_json_type)
|
||||||
payload.Data = "text:" + text[:2048]
|
payload.Data = "text:" + text[:2048]
|
||||||
|
io_data.rc.Payload = payload
|
||||||
text = text[2048:]
|
text = text[2048:]
|
||||||
return len(text) == 0, nil
|
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) {
|
if err != nil && !errors.Is(err, io.EOF) {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
payload := io_data.rc.Payload.(send_text_json_type)
|
||||||
payload.Data = "base64:" + base64.StdEncoding.EncodeToString(chunk[:n])
|
payload.Data = "base64:" + base64.StdEncoding.EncodeToString(chunk[:n])
|
||||||
|
io_data.rc.Payload = payload
|
||||||
return n == 0, nil
|
return n == 0, nil
|
||||||
}
|
}
|
||||||
generators = append(generators, file_gen)
|
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) {
|
io_data.multiple_payload_generator = func(io_data *rc_io_data) (bool, error) {
|
||||||
if len(generators) == 0 {
|
if len(generators) == 0 {
|
||||||
|
payload := io_data.rc.Payload.(send_text_json_type)
|
||||||
payload.Data = "text:"
|
payload.Data = "text:"
|
||||||
|
io_data.rc.Payload = payload
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
finished, err := generators[0](io_data)
|
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) {
|
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 {
|
if len(buf) == 0 {
|
||||||
payload.Data = ""
|
payload.Data = ""
|
||||||
|
io_data.rc.Payload = payload
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
payload.Data = base64.StdEncoding.EncodeToString(buf)
|
payload.Data = base64.StdEncoding.EncodeToString(buf)
|
||||||
|
io_data.rc.Payload = payload
|
||||||
buf = buf[:cap(buf)]
|
buf = buf[:cap(buf)]
|
||||||
n, err := f.Read(buf)
|
n, err := f.Read(buf)
|
||||||
if err != nil && err != io.EOF {
|
if err != nil && err != io.EOF {
|
||||||
|
|||||||
@ -5,6 +5,7 @@ package at
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"time"
|
"time"
|
||||||
@ -13,6 +14,8 @@ import (
|
|||||||
"kitty/tools/wcswidth"
|
"kitty/tools/wcswidth"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var _ = fmt.Print
|
||||||
|
|
||||||
func write_all_to_conn(conn *net.Conn, data []byte) error {
|
func write_all_to_conn(conn *net.Conn, data []byte) error {
|
||||||
for len(data) > 0 {
|
for len(data) > 0 {
|
||||||
n, err := (*conn).Write(data)
|
n, err := (*conn).Write(data)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user