version 1.282, 2022/08/24 07:22:30 |
version 1.283, 2023/01/06 07:09:27 |
|
|
struct window_pane_input_data { |
struct window_pane_input_data { |
struct cmdq_item *item; |
struct cmdq_item *item; |
u_int wp; |
u_int wp; |
|
struct client_file *file; |
}; |
}; |
|
|
static struct window_pane *window_pane_create(struct window *, u_int, u_int, |
static struct window_pane *window_pane_create(struct window *, u_int, u_int, |
|
|
size_t len = EVBUFFER_LENGTH(buffer); |
size_t len = EVBUFFER_LENGTH(buffer); |
|
|
wp = window_pane_find_by_id(cdata->wp); |
wp = window_pane_find_by_id(cdata->wp); |
if (wp == NULL || closed || error != 0 || (c->flags & CLIENT_DEAD)) { |
if (cdata->file != NULL && (wp == NULL || c->flags & CLIENT_DEAD)) { |
if (wp == NULL) |
if (wp == NULL) |
c->flags |= CLIENT_EXIT; |
c->flags |= CLIENT_EXIT; |
|
file_cancel(cdata->file); |
evbuffer_drain(buffer, len); |
} else if (cdata->file == NULL || closed || error != 0) { |
cmdq_continue(cdata->item); |
cmdq_continue(cdata->item); |
|
|
server_client_unref(c); |
server_client_unref(c); |
free(cdata); |
free(cdata); |
return; |
} else |
} |
input_parse_buffer(wp, buf, len); |
input_parse_buffer(wp, buf, len); |
|
evbuffer_drain(buffer, len); |
evbuffer_drain(buffer, len); |
} |
} |
|
|
|
|
cdata = xmalloc(sizeof *cdata); |
cdata = xmalloc(sizeof *cdata); |
cdata->item = item; |
cdata->item = item; |
cdata->wp = wp->id; |
cdata->wp = wp->id; |
|
cdata->file = file_read(c, "-", window_pane_input_callback, cdata); |
c->references++; |
c->references++; |
file_read(c, "-", window_pane_input_callback, cdata); |
|
|
|
return (0); |
return (0); |
} |
} |