=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-attach-session.c,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- src/usr.bin/tmux/cmd-attach-session.c 2020/04/13 14:46:04 1.83 +++ src/usr.bin/tmux/cmd-attach-session.c 2020/05/16 15:45:29 1.84 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-attach-session.c,v 1.83 2020/04/13 14:46:04 nicm Exp $ */ +/* $OpenBSD: cmd-attach-session.c,v 1.84 2020/05/16 15:45:29 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -37,8 +37,9 @@ .name = "attach-session", .alias = "attach", - .args = { "c:dErt:x", 0, 0 }, - .usage = "[-dErx] [-c working-directory] " CMD_TARGET_SESSION_USAGE, + .args = { "c:dEf:rt:x", 0, 0 }, + .usage = "[-dErx] [-c working-directory] [-f flags] " + CMD_TARGET_SESSION_USAGE, /* -t is special */ @@ -48,7 +49,7 @@ enum cmd_retval cmd_attach_session(struct cmdq_item *item, const char *tflag, int dflag, - int xflag, int rflag, const char *cflag, int Eflag) + int xflag, int rflag, const char *cflag, int Eflag, const char *fflag) { struct cmd_find_state *current = cmdq_get_current(item); struct cmd_find_state target; @@ -101,6 +102,10 @@ free((void *)s->cwd); s->cwd = format_single(item, cflag, c, s, wl, wp); } + if (fflag) + server_client_set_flags(c, fflag); + if (rflag) + c->flags |= (CLIENT_READONLY|CLIENT_IGNORESIZE); c->last_session = c->session; if (c->session != NULL) { @@ -135,8 +140,6 @@ free(cause); return (CMD_RETURN_ERROR); } - if (rflag) - c->flags |= CLIENT_READONLY; if (dflag || xflag) { if (xflag) @@ -182,5 +185,5 @@ return (cmd_attach_session(item, args_get(args, 't'), args_has(args, 'd'), args_has(args, 'x'), args_has(args, 'r'), - args_get(args, 'c'), args_has(args, 'E'))); + args_get(args, 'c'), args_has(args, 'E'), args_get(args, 'f'))); }