Redraw status line if size changes, GitHub issue 1762. Also fix length

of target buffer when pasting into status line.
This commit is contained in:
nicm 2019-05-28 18:53:36 +00:00
parent 4382538e4b
commit 580cd16f4c

View File

@ -348,10 +348,8 @@ status_redraw(struct client *c)
/* Resize the target screen. */ /* Resize the target screen. */
if (screen_size_x(&sl->screen) != width || if (screen_size_x(&sl->screen) != width ||
screen_size_y(&sl->screen) != lines) { screen_size_y(&sl->screen) != lines) {
if (screen_size_x(&sl->screen) != width)
force = 1;
screen_resize(&sl->screen, width, lines, 0); screen_resize(&sl->screen, width, lines, 0);
changed = 1; changed = force = 1;
} }
screen_write_start(&ctx, NULL, &sl->screen); screen_write_start(&ctx, NULL, &sl->screen);
@ -865,7 +863,7 @@ status_prompt_paste(struct client *c)
if ((pb = paste_get_top(NULL)) == NULL) if ((pb = paste_get_top(NULL)) == NULL)
return (0); return (0);
bufdata = paste_buffer_data(pb, &bufsize); bufdata = paste_buffer_data(pb, &bufsize);
ud = xreallocarray(NULL, bufsize, sizeof *ud); ud = xreallocarray(NULL, bufsize + 1, sizeof *ud);
udp = ud; udp = ud;
for (i = 0; i != bufsize; /* nothing */) { for (i = 0; i != bufsize; /* nothing */) {
more = utf8_open(udp, bufdata[i]); more = utf8_open(udp, bufdata[i]);