aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui_client.c
diff options
context:
space:
mode:
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'");
}