=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-attach-session.c,v retrieving revision 1.63 retrieving revision 1.64 diff -c -r1.63 -r1.64 *** src/usr.bin/tmux/cmd-attach-session.c 2016/10/16 17:55:14 1.63 --- src/usr.bin/tmux/cmd-attach-session.c 2016/10/16 19:04:05 1.64 *************** *** 1,4 **** ! /* $OpenBSD: cmd-attach-session.c,v 1.63 2016/10/16 17:55:14 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-attach-session.c,v 1.64 2016/10/16 19:04:05 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 30,36 **** * Attach existing session to the current terminal. */ ! static enum cmd_retval cmd_attach_session_exec(struct cmd *, struct cmd_q *); const struct cmd_entry cmd_attach_session_entry = { .name = "attach-session", --- 30,37 ---- * Attach existing session to the current terminal. */ ! static enum cmd_retval cmd_attach_session_exec(struct cmd *, ! struct cmdq_item *); const struct cmd_entry cmd_attach_session_entry = { .name = "attach-session", *************** *** 46,71 **** }; enum cmd_retval ! cmd_attach_session(struct cmd_q *cmdq, int dflag, int rflag, const char *cflag, ! int Eflag) { ! struct session *s = cmdq->state.tflag.s; ! struct client *c = cmdq->client, *c_loop; ! struct winlink *wl = cmdq->state.tflag.wl; ! struct window_pane *wp = cmdq->state.tflag.wp; const char *update; char *cause, *cwd; struct format_tree *ft; if (RB_EMPTY(&sessions)) { ! cmdq_error(cmdq, "no sessions"); return (CMD_RETURN_ERROR); } if (c == NULL) return (CMD_RETURN_NORMAL); if (server_client_check_nested(c)) { ! cmdq_error(cmdq, "sessions should be nested with care, " "unset $TMUX to force"); return (CMD_RETURN_ERROR); } --- 47,72 ---- }; enum cmd_retval ! cmd_attach_session(struct cmdq_item *item, int dflag, int rflag, ! const char *cflag, int Eflag) { ! struct session *s = item->state.tflag.s; ! struct client *c = item->client, *c_loop; ! struct winlink *wl = item->state.tflag.wl; ! struct window_pane *wp = item->state.tflag.wp; const char *update; char *cause, *cwd; struct format_tree *ft; if (RB_EMPTY(&sessions)) { ! cmdq_error(item, "no sessions"); return (CMD_RETURN_ERROR); } if (c == NULL) return (CMD_RETURN_NORMAL); if (server_client_check_nested(c)) { ! cmdq_error(item, "sessions should be nested with care, " "unset $TMUX to force"); return (CMD_RETURN_ERROR); } *************** *** 77,83 **** } if (cflag != NULL) { ! ft = format_create(cmdq, 0); format_defaults(ft, c, s, wl, wp); cwd = format_expand(ft, cflag); format_free(ft); --- 78,84 ---- } if (cflag != NULL) { ! ft = format_create(item, 0); format_defaults(ft, c, s, wl, wp); cwd = format_expand(ft, cflag); format_free(ft); *************** *** 111,117 **** s->curw->flags &= ~WINLINK_ALERTFLAGS; } else { if (server_client_open(c, &cause) != 0) { ! cmdq_error(cmdq, "open terminal failed: %s", cause); free(cause); return (CMD_RETURN_ERROR); } --- 112,118 ---- s->curw->flags &= ~WINLINK_ALERTFLAGS; } else { if (server_client_open(c, &cause) != 0) { ! cmdq_error(item, "open terminal failed: %s", cause); free(cause); return (CMD_RETURN_ERROR); } *************** *** 155,164 **** } static enum cmd_retval ! cmd_attach_session_exec(struct cmd *self, struct cmd_q *cmdq) { struct args *args = self->args; ! return (cmd_attach_session(cmdq, args_has(args, 'd'), args_has(args, 'r'), args_get(args, 'c'), args_has(args, 'E'))); } --- 156,165 ---- } static enum cmd_retval ! cmd_attach_session_exec(struct cmd *self, struct cmdq_item *item) { struct args *args = self->args; ! return (cmd_attach_session(item, args_has(args, 'd'), args_has(args, 'r'), args_get(args, 'c'), args_has(args, 'E'))); }