client_files
if (!file_write_left(&client_files))
static struct client_files client_files = RB_INITIALIZER(&client_files);
file_read_open(&client_files, client_peer, imsg, 1,
file_read_cancel(&client_files, imsg);
file_write_open(&client_files, client_peer, imsg, 1,
file_write_data(&client_files, imsg);
file_write_close(&client_files, imsg);
RB_INSERT(client_files, files, cf);
RB_INSERT(client_files, &cf->c->files, cf);
RB_REMOVE(client_files, cf->tree, cf);
if ((cf = RB_FIND(client_files, &c->files, &find)) == NULL) {
if ((cf = RB_FIND(client_files, &c->files, &find)) == NULL) {
if ((cf = RB_FIND(client_files, &c->files, &find)) == NULL) {
RB_GENERATE(client_files, client_file, entry, file_cmp);
file_write_left(struct client_files *files)
RB_FOREACH(cf, client_files, files) {
RB_REMOVE(client_files, cf->tree, cf);
file_write_open(struct client_files *files, struct tmuxpeer *peer,
if (RB_FIND(client_files, files, &find) != NULL) {
file_write_data(struct client_files *files, struct imsg *imsg)
if ((cf = RB_FIND(client_files, files, &find)) == NULL)
file_write_close(struct client_files *files, struct imsg *imsg)
if ((cf = RB_FIND(client_files, files, &find)) == NULL)
RB_REMOVE(client_files, files, cf);
RB_REMOVE(client_files, cf->tree, cf);
file_read_open(struct client_files *files, struct tmuxpeer *peer,
if (RB_FIND(client_files, files, &find) != NULL) {
file_read_cancel(struct client_files *files, struct imsg *imsg)
if ((cf = RB_FIND(client_files, files, &find)) == NULL)
file_write_ready(struct client_files *files, struct imsg *imsg)
if ((cf = RB_FIND(client_files, files, &find)) == NULL)
file_create_with_peer(struct tmuxpeer *peer, struct client_files *files,
file_read_data(struct client_files *files, struct imsg *imsg)
if ((cf = RB_FIND(client_files, files, &find)) == NULL)
file_read_done(struct client_files *files, struct imsg *imsg)
if ((cf = RB_FIND(client_files, files, &find)) == NULL)
RB_FOREACH(cf, client_files, &c->files) {
RB_FOREACH_SAFE(cf, client_files, &c->files, cf1) {
struct client_files *tree;
struct client_files files;