mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-18 14:34:52 +02:00
Dont need an extra variable
This commit is contained in:
@@ -90,7 +90,7 @@ def cmd_for_report(report_name: str, keymap: KeymapType, type_map: Dict[str, Any
|
|||||||
ans = [f'REPORT_VA_COMMAND("K s {{{fmt}}}", self->window_id, "{report_name}", ']
|
ans = [f'REPORT_VA_COMMAND("K s {{{fmt}}}", self->window_id, "{report_name}", ']
|
||||||
ans.append(',\n '.join((flag_attrs, uint_attrs, int_attrs)))
|
ans.append(',\n '.join((flag_attrs, uint_attrs, int_attrs)))
|
||||||
if payload_allowed:
|
if payload_allowed:
|
||||||
ans.append(', "payload_sz", g.payload_sz, payload, g.payload_sz')
|
ans.append(', "payload_sz", g.payload_sz, parser_buf, g.payload_sz')
|
||||||
ans.append(');')
|
ans.append(');')
|
||||||
return '\n'.join(ans)
|
return '\n'.join(ans)
|
||||||
|
|
||||||
@@ -113,20 +113,21 @@ def generate(
|
|||||||
if payload_allowed:
|
if payload_allowed:
|
||||||
payload_after_value = "case ';': state = PAYLOAD; break;"
|
payload_after_value = "case ';': state = PAYLOAD; break;"
|
||||||
payload = ', PAYLOAD'
|
payload = ', PAYLOAD'
|
||||||
parr = 'uint8_t *payload = parser_buf;'
|
|
||||||
payload_case = f'''
|
payload_case = f'''
|
||||||
case PAYLOAD: {{
|
case PAYLOAD: {{
|
||||||
sz = parser_buf_pos - pos;
|
sz = parser_buf_pos - pos;
|
||||||
g.payload_sz = MAX(BUF_EXTRA, sz);
|
g.payload_sz = MAX(BUF_EXTRA, sz);
|
||||||
if (!base64_decode8(parser_buf + pos, sz, payload, &g.payload_sz)) {{
|
if (!base64_decode8(parser_buf + pos, sz, parser_buf, &g.payload_sz)) {{
|
||||||
REPORT_ERROR("Failed to parse {command_class} command payload with error: payload size (%zu) too large", sz); return; }}
|
g.payload_sz = MAX(BUF_EXTRA, sz);
|
||||||
|
REPORT_ERROR("Failed to parse {command_class} command payload with error: \
|
||||||
|
invalid base64 data in chunk of size: %zu with output buffer size: %zu", sz, g.payload_sz); return; }}
|
||||||
pos = parser_buf_pos;
|
pos = parser_buf_pos;
|
||||||
}}
|
}}
|
||||||
break;
|
break;
|
||||||
'''
|
'''
|
||||||
callback = f'{callback_name}(self->screen, &g, payload)'
|
callback = f'{callback_name}(self->screen, &g, parser_buf)'
|
||||||
else:
|
else:
|
||||||
payload_after_value = payload = parr = payload_case = ''
|
payload_after_value = payload = payload_case = ''
|
||||||
callback = f'{callback_name}(self->screen, &g)'
|
callback = f'{callback_name}(self->screen, &g)'
|
||||||
|
|
||||||
return f'''
|
return f'''
|
||||||
@@ -142,7 +143,6 @@ static inline void
|
|||||||
bool is_negative;
|
bool is_negative;
|
||||||
memset(&g, 0, sizeof(g));
|
memset(&g, 0, sizeof(g));
|
||||||
size_t sz;
|
size_t sz;
|
||||||
{parr}
|
|
||||||
{keys_enum}
|
{keys_enum}
|
||||||
enum KEYS key = '{initial_key}';
|
enum KEYS key = '{initial_key}';
|
||||||
if (parser_buf[pos] == ';') state = AFTER_VALUE;
|
if (parser_buf[pos] == ';') state = AFTER_VALUE;
|
||||||
|
|||||||
13
kitty/parse-graphics-command.h
generated
13
kitty/parse-graphics-command.h
generated
@@ -14,7 +14,6 @@ static inline void parse_graphics_code(PS *self, uint8_t *parser_buf,
|
|||||||
bool is_negative;
|
bool is_negative;
|
||||||
memset(&g, 0, sizeof(g));
|
memset(&g, 0, sizeof(g));
|
||||||
size_t sz;
|
size_t sz;
|
||||||
uint8_t *payload = parser_buf;
|
|
||||||
|
|
||||||
enum KEYS {
|
enum KEYS {
|
||||||
action = 'a',
|
action = 'a',
|
||||||
@@ -321,10 +320,12 @@ static inline void parse_graphics_code(PS *self, uint8_t *parser_buf,
|
|||||||
case PAYLOAD: {
|
case PAYLOAD: {
|
||||||
sz = parser_buf_pos - pos;
|
sz = parser_buf_pos - pos;
|
||||||
g.payload_sz = MAX(BUF_EXTRA, sz);
|
g.payload_sz = MAX(BUF_EXTRA, sz);
|
||||||
if (!base64_decode8(parser_buf + pos, sz, payload, &g.payload_sz)) {
|
if (!base64_decode8(parser_buf + pos, sz, parser_buf, &g.payload_sz)) {
|
||||||
|
g.payload_sz = MAX(BUF_EXTRA, sz);
|
||||||
REPORT_ERROR("Failed to parse GraphicsCommand command payload with "
|
REPORT_ERROR("Failed to parse GraphicsCommand command payload with "
|
||||||
"error: payload size (%zu) too large",
|
"error: invalid base64 data in chunk of size: %zu with "
|
||||||
sz);
|
"output buffer size: %zu",
|
||||||
|
sz, g.payload_sz);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pos = parser_buf_pos;
|
pos = parser_buf_pos;
|
||||||
@@ -372,7 +373,7 @@ static inline void parse_graphics_code(PS *self, uint8_t *parser_buf,
|
|||||||
"parent_placement_id", (unsigned int)g.parent_placement_id, "z_index",
|
"parent_placement_id", (unsigned int)g.parent_placement_id, "z_index",
|
||||||
(int)g.z_index, "offset_from_parent_x", (int)g.offset_from_parent_x,
|
(int)g.z_index, "offset_from_parent_x", (int)g.offset_from_parent_x,
|
||||||
"offset_from_parent_y", (int)g.offset_from_parent_y, "payload_sz",
|
"offset_from_parent_y", (int)g.offset_from_parent_y, "payload_sz",
|
||||||
g.payload_sz, payload, g.payload_sz);
|
g.payload_sz, parser_buf, g.payload_sz);
|
||||||
|
|
||||||
screen_handle_graphics_command(self->screen, &g, payload);
|
screen_handle_graphics_command(self->screen, &g, parser_buf);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user