From cb7aed32348ee8dee42e9e0bb3b1d8faa3db7672 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 24 Mar 2022 11:54:13 +0530 Subject: [PATCH] DRYer --- kitty/parser.c | 14 +++++++------- kitty/screen.c | 30 ++---------------------------- kitty/screen.h | 7 +------ 3 files changed, 10 insertions(+), 41 deletions(-) diff --git a/kitty/parser.c b/kitty/parser.c index 5b8598fd9..36b34dabb 100644 --- a/kitty/parser.c +++ b/kitty/parser.c @@ -1076,16 +1076,16 @@ dispatch_dcs(Screen *screen, PyObject DUMP_UNUSED *dump_callback) { PyObject *msg = PyUnicode_FromKindAndData(PyUnicode_4BYTE_KIND, screen->parser_buf + pp_size, screen->parser_buf_pos - pp_size); \ if (msg != NULL) { \ REPORT_OSC2(func, (char)screen->parser_buf[0], msg); \ - func(screen, msg); \ + screen_handle_kitty_dcs(screen, #func, msg); \ Py_DECREF(msg); \ } else PyErr_Clear(); - } else IF_SIMPLE_PREFIX("overlay-ready|", screen_handle_overlay_ready) - } else IF_SIMPLE_PREFIX("kitten-result|", screen_handle_kitten_result) - } else IF_SIMPLE_PREFIX("print|", screen_handle_print) - } else IF_SIMPLE_PREFIX("echo|", screen_handle_echo) - } else IF_SIMPLE_PREFIX("ssh|", screen_handle_ssh) - } else IF_SIMPLE_PREFIX("ask|", screen_handle_askpass) + } else IF_SIMPLE_PREFIX("overlay-ready|", handle_overlay_ready) + } else IF_SIMPLE_PREFIX("kitten-result|", handle_kitten_result) + } else IF_SIMPLE_PREFIX("print|", handle_remote_print) + } else IF_SIMPLE_PREFIX("echo|", handle_remote_echo) + } else IF_SIMPLE_PREFIX("ssh|", handle_remote_ssh) + } else IF_SIMPLE_PREFIX("ask|", handle_remote_askpass) #undef IF_SIMPLE_PREFIX } else { REPORT_ERROR("Unrecognized DCS @ code: 0x%x", screen->parser_buf[1]); diff --git a/kitty/screen.c b/kitty/screen.c index 78cc845d5..43c7076b4 100644 --- a/kitty/screen.c +++ b/kitty/screen.c @@ -2109,34 +2109,8 @@ screen_report_color_stack(Screen *self) { write_escape_code_to_child(self, CSI, buf); } -void -screen_handle_print(Screen *self, PyObject *msg) { - CALLBACK("handle_remote_print", "O", msg); -} - -void -screen_handle_echo(Screen *self, PyObject *msg) { - CALLBACK("handle_remote_echo", "O", msg); -} - -void -screen_handle_ssh(Screen *self, PyObject *msg) { - CALLBACK("handle_remote_ssh", "O", msg); -} - -void -screen_handle_askpass(Screen *self, PyObject *msg) { - CALLBACK("handle_remote_askpass", "O", msg); -} - -void -screen_handle_kitten_result(Screen *self, PyObject *msg) { - CALLBACK("handle_kitten_result", "O", msg); -} - -void -screen_handle_overlay_ready(Screen *self, PyObject *msg) { - CALLBACK("handle_overlay_ready", "O", msg); +void screen_handle_kitty_dcs(Screen *self, const char *callback_name, PyObject *cmd) { + CALLBACK(callback_name, "O", cmd); } void diff --git a/kitty/screen.h b/kitty/screen.h index 606acadf2..ad3779733 100644 --- a/kitty/screen.h +++ b/kitty/screen.h @@ -208,12 +208,7 @@ void screen_handle_cmd(Screen *, PyObject *cmd); void screen_push_colors(Screen *, unsigned int); void screen_pop_colors(Screen *, unsigned int); void screen_report_color_stack(Screen *); -void screen_handle_print(Screen *, PyObject *cmd); -void screen_handle_echo(Screen *, PyObject *cmd); -void screen_handle_ssh(Screen *, PyObject *cmd); -void screen_handle_askpass(Screen *, PyObject *cmd); -void screen_handle_kitten_result(Screen *, PyObject *cmd); -void screen_handle_overlay_ready(Screen *, PyObject *cmd); +void screen_handle_kitty_dcs(Screen *, const char *callback_name, PyObject *cmd); void screen_designate_charset(Screen *, uint32_t which, uint32_t as); void screen_use_latin1(Screen *, bool); void set_title(Screen *self, PyObject*);