Merge branch 'obsd-master'

pull/2075/head
Thomas Adam 2020-01-28 14:01:25 +00:00
commit 7eada28f96
3 changed files with 21 additions and 8 deletions

View File

@ -341,7 +341,8 @@ commands : command
struct cmd_parse_state *ps = &parse_state; struct cmd_parse_state *ps = &parse_state;
$$ = cmd_parse_new_commands(); $$ = cmd_parse_new_commands();
if (ps->scope == NULL || ps->scope->flag) if ($1->name != NULL &&
(ps->scope == NULL || ps->scope->flag))
TAILQ_INSERT_TAIL($$, $1, entry); TAILQ_INSERT_TAIL($$, $1, entry);
else else
cmd_parse_free_command($1); cmd_parse_free_command($1);
@ -360,7 +361,8 @@ commands : command
{ {
struct cmd_parse_state *ps = &parse_state; struct cmd_parse_state *ps = &parse_state;
if (ps->scope == NULL || ps->scope->flag) { if ($3->name != NULL &&
(ps->scope == NULL || ps->scope->flag)) {
$$ = $1; $$ = $1;
TAILQ_INSERT_TAIL($$, $3, entry); TAILQ_INSERT_TAIL($$, $3, entry);
} else { } else {
@ -641,8 +643,6 @@ cmd_parse_build_commands(struct cmd_parse_commands *cmds,
* command list. * command list.
*/ */
TAILQ_FOREACH_SAFE(cmd, cmds, entry, next) { TAILQ_FOREACH_SAFE(cmd, cmds, entry, next) {
if (cmd->name == NULL)
continue;
alias = cmd_get_alias(cmd->name); alias = cmd_get_alias(cmd->name);
if (alias == NULL) if (alias == NULL)
continue; continue;
@ -688,8 +688,6 @@ cmd_parse_build_commands(struct cmd_parse_commands *cmds,
*/ */
result = cmd_list_new(); result = cmd_list_new();
TAILQ_FOREACH(cmd, cmds, entry) { TAILQ_FOREACH(cmd, cmds, entry) {
if (cmd->name == NULL)
continue;
log_debug("%s: %u %s", __func__, cmd->line, cmd->name); log_debug("%s: %u %s", __func__, cmd->line, cmd->name);
cmd_log_argv(cmd->argc, cmd->argv, __func__); cmd_log_argv(cmd->argc, cmd->argv, __func__);

View File

@ -66,10 +66,26 @@ resize_window(struct window *w, u_int sx, u_int sy, int xpixel, int ypixel)
static int static int
ignore_client_size(struct client *c) ignore_client_size(struct client *c)
{ {
struct client *loop;
if (c->session == NULL) if (c->session == NULL)
return (1); return (1);
if (c->flags & CLIENT_NOSIZEFLAGS) if (c->flags & CLIENT_NOSIZEFLAGS)
return (1); return (1);
if (c->flags & CLIENT_READONLY) {
/*
* Ignore readonly clients if there are any attached clients
* that aren't readonly.
*/
TAILQ_FOREACH (loop, &clients, entry) {
if (loop->session == NULL)
continue;
if (loop->flags & CLIENT_NOSIZEFLAGS)
continue;
if (~loop->flags & CLIENT_READONLY)
return (1);
}
}
if ((c->flags & CLIENT_CONTROL) && (~c->flags & CLIENT_SIZECHANGED)) if ((c->flags & CLIENT_CONTROL) && (~c->flags & CLIENT_SIZECHANGED))
return (1); return (1);
return (0); return (0);

3
tmux.h
View File

@ -1592,8 +1592,7 @@ struct client {
#define CLIENT_NOSIZEFLAGS \ #define CLIENT_NOSIZEFLAGS \
(CLIENT_DEAD| \ (CLIENT_DEAD| \
CLIENT_SUSPENDED| \ CLIENT_SUSPENDED| \
CLIENT_DETACHING| \ CLIENT_DETACHING)
CLIENT_READONLY)
int flags; int flags;
struct key_table *keytable; struct key_table *keytable;