Change the existing client flags for control mode to apply for any client, use

the same mechanism for the read-only flag and add an ignore-size flag.

refresh-client -F has become -f (-F stays for backwards compatibility) and
attach-session and switch-client now have -f flags also. A new format
"client_flags" lists the flags and is shown by list-clients by default.

This separates the read-only flag from "ignore size" behaviour (new
ignore-size) flag - both behaviours are useful in different circumstances.

attach -r and switchc -r remain and set or toggle both flags together.
This commit is contained in:
Nicholas Marriott
2020-05-05 15:42:20 +01:00
parent deacfedc65
commit 2f89d2e7d8
10 changed files with 136 additions and 50 deletions

View File

@ -72,17 +72,17 @@ ignore_client_size(struct client *c)
return (1);
if (c->flags & CLIENT_NOSIZEFLAGS)
return (1);
if (c->flags & CLIENT_READONLY) {
if (c->flags & CLIENT_IGNORESIZE) {
/*
* Ignore readonly clients if there are any attached clients
* that aren't readonly.
* Ignore flagged clients if there are any attached clients
* that aren't flagged.
*/
TAILQ_FOREACH (loop, &clients, entry) {
if (loop->session == NULL)
continue;
if (loop->flags & CLIENT_NOSIZEFLAGS)
continue;
if (~loop->flags & CLIENT_READONLY)
if (~loop->flags & CLIENT_IGNORESIZE)
return (1);
}
}