version 1.83, 2015/04/22 15:32:33 |
version 1.84, 2015/04/24 23:17:11 |
|
|
size_t len) |
size_t len) |
{ |
{ |
struct client *c; |
struct client *c; |
u_int i; |
|
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
|
if (c == NULL || c->session == NULL) |
|
continue; |
|
if (c->session == s) |
if (c->session == s) |
server_write_client(c, type, buf, len); |
server_write_client(c, type, buf, len); |
} |
} |
|
|
server_redraw_session(struct session *s) |
server_redraw_session(struct session *s) |
{ |
{ |
struct client *c; |
struct client *c; |
u_int i; |
|
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
|
if (c == NULL || c->session == NULL) |
|
continue; |
|
if (c->session == s) |
if (c->session == s) |
server_redraw_client(c); |
server_redraw_client(c); |
} |
} |
|
|
server_status_session(struct session *s) |
server_status_session(struct session *s) |
{ |
{ |
struct client *c; |
struct client *c; |
u_int i; |
|
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
|
if (c == NULL || c->session == NULL) |
|
continue; |
|
if (c->session == s) |
if (c->session == s) |
server_status_client(c); |
server_status_client(c); |
} |
} |
|
|
server_redraw_window(struct window *w) |
server_redraw_window(struct window *w) |
{ |
{ |
struct client *c; |
struct client *c; |
u_int i; |
|
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
if (c->session != NULL && c->session->curw->window == w) |
if (c == NULL || c->session == NULL) |
|
continue; |
|
if (c->session->curw->window == w) |
|
server_redraw_client(c); |
server_redraw_client(c); |
} |
} |
w->flags |= WINDOW_REDRAW; |
w->flags |= WINDOW_REDRAW; |
|
|
server_redraw_window_borders(struct window *w) |
server_redraw_window_borders(struct window *w) |
{ |
{ |
struct client *c; |
struct client *c; |
u_int i; |
|
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
if (c->session != NULL && c->session->curw->window == w) |
if (c == NULL || c->session == NULL) |
|
continue; |
|
if (c->session->curw->window == w) |
|
c->flags |= CLIENT_BORDERS; |
c->flags |= CLIENT_BORDERS; |
} |
} |
} |
} |
|
|
server_lock(void) |
server_lock(void) |
{ |
{ |
struct client *c; |
struct client *c; |
u_int i; |
|
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
if (c->session != NULL) |
if (c == NULL || c->session == NULL) |
server_lock_client(c); |
continue; |
|
server_lock_client(c); |
|
} |
} |
} |
} |
|
|
|
|
server_lock_session(struct session *s) |
server_lock_session(struct session *s) |
{ |
{ |
struct client *c; |
struct client *c; |
u_int i; |
|
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
if (c->session == s) |
if (c == NULL || c->session == NULL || c->session != s) |
server_lock_client(c); |
continue; |
|
server_lock_client(c); |
|
} |
} |
} |
} |
|
|
|
|
{ |
{ |
struct client *c; |
struct client *c; |
struct session *s_new; |
struct session *s_new; |
u_int i; |
|
|
|
if (!options_get_number(&s->options, "detach-on-destroy")) |
if (!options_get_number(&s->options, "detach-on-destroy")) |
s_new = server_next_session(s); |
s_new = server_next_session(s); |
else |
else |
s_new = NULL; |
s_new = NULL; |
|
|
for (i = 0; i < ARRAY_LENGTH(&clients); i++) { |
TAILQ_FOREACH(c, &clients, entry) { |
c = ARRAY_ITEM(&clients, i); |
if (c->session != s) |
if (c == NULL || c->session != s) |
|
continue; |
continue; |
if (s_new == NULL) { |
if (s_new == NULL) { |
c->session = NULL; |
c->session = NULL; |