aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui_client.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2022-03-15 00:23:14 +0100
committerbfredl <bjorn.linse@gmail.com>2022-03-15 19:55:34 +0100
commitf01d203b70f426c1538813b3bacb4483e914ab44 (patch)
treec2762f7768f631992e5eb436e71a4b9f49f9270d /src/nvim/ui_client.c
parentc0b4d931e12910f67cc3eade664247ea2d2bb913 (diff)
downloadrneovim-f01d203b70f426c1538813b3bacb4483e914ab44.tar.gz
rneovim-f01d203b70f426c1538813b3bacb4483e914ab44.tar.bz2
rneovim-f01d203b70f426c1538813b3bacb4483e914ab44.zip
refactor(ui): make auto-generated ui client handlers typesafe
Diffstat (limited to 'src/nvim/ui_client.c')
-rw-r--r--src/nvim/ui_client.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/nvim/ui_client.c b/src/nvim/ui_client.c
index 3914a4e199..4fad3e0709 100644
--- a/src/nvim/ui_client.c
+++ b/src/nvim/ui_client.c
@@ -112,7 +112,14 @@ static HlAttrs ui_client_dict2hlattrs(Dictionary d, bool rgb)
void ui_client_event_grid_resize(Array args)
{
- // TODO: typesafe!
+ if (args.size < 3
+ || args.items[0].type != kObjectTypeInteger
+ || args.items[1].type != kObjectTypeInteger
+ || args.items[2].type != kObjectTypeInteger) {
+ ELOG("Error handling ui event 'grid_resize'");
+ return;
+ }
+
Integer grid = args.items[0].data.integer;
Integer width = args.items[1].data.integer;
Integer height = args.items[2].data.integer;
@@ -189,7 +196,7 @@ void ui_client_event_grid_line(Array args)
if (j >= buf_size) {
goto error; // _YIKES_
}
- STRCPY(buf_char[j], schar);
+ STRLCPY(buf_char[j], schar, sizeof(schar_T));
buf_attr[j++] = cur_attr;
}
}
@@ -199,9 +206,9 @@ void ui_client_event_grid_line(Array args)
clear_attr = cur_attr;
ui_call_raw_line(grid, row, startcol, endcol, clearcol, clear_attr, lineflags,
- buf_char, buf_attr);
+ (const schar_T *)buf_char, (const sattr_T *)buf_attr);
return;
error:
- ELOG("malformatted 'grid_line' event");
+ ELOG("Error handling ui event 'grid_line'");
}