1 1.1.1.5 christos /* $OpenBSD$ */ 2 1.1 jmmv 3 1.1 jmmv /* 4 1.1.1.6 christos * Copyright (c) 2008 Nicholas Marriott <nicholas.marriott (at) gmail.com> 5 1.1 jmmv * 6 1.1 jmmv * Permission to use, copy, modify, and distribute this software for any 7 1.1 jmmv * purpose with or without fee is hereby granted, provided that the above 8 1.1 jmmv * copyright notice and this permission notice appear in all copies. 9 1.1 jmmv * 10 1.1 jmmv * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 1.1 jmmv * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 1.1 jmmv * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 1.1 jmmv * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 1.1 jmmv * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER 15 1.1 jmmv * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 16 1.1 jmmv * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 1.1 jmmv */ 18 1.1 jmmv 19 1.1 jmmv #include <sys/types.h> 20 1.1 jmmv 21 1.1 jmmv #include "tmux.h" 22 1.1 jmmv 23 1.1 jmmv /* 24 1.1.1.2 jmmv * Lock commands. 25 1.1 jmmv */ 26 1.1 jmmv 27 1.1.1.7 christos static enum cmd_retval cmd_lock_server_exec(struct cmd *, struct cmdq_item *); 28 1.1 jmmv 29 1.1 jmmv const struct cmd_entry cmd_lock_server_entry = { 30 1.1.1.6 christos .name = "lock-server", 31 1.1.1.6 christos .alias = "lock", 32 1.1.1.6 christos 33 1.1.1.10 wiz .args = { "", 0, 0, NULL }, 34 1.1.1.6 christos .usage = "", 35 1.1.1.6 christos 36 1.1.1.7 christos .flags = CMD_AFTERHOOK, 37 1.1.1.6 christos .exec = cmd_lock_server_exec 38 1.1.1.2 jmmv }; 39 1.1.1.2 jmmv 40 1.1.1.2 jmmv const struct cmd_entry cmd_lock_session_entry = { 41 1.1.1.6 christos .name = "lock-session", 42 1.1.1.6 christos .alias = "locks", 43 1.1.1.6 christos 44 1.1.1.10 wiz .args = { "t:", 0, 0, NULL }, 45 1.1.1.6 christos .usage = CMD_TARGET_SESSION_USAGE, 46 1.1.1.6 christos 47 1.1.1.8 christos .target = { 't', CMD_FIND_SESSION, 0 }, 48 1.1.1.6 christos 49 1.1.1.7 christos .flags = CMD_AFTERHOOK, 50 1.1.1.6 christos .exec = cmd_lock_server_exec 51 1.1.1.2 jmmv }; 52 1.1.1.2 jmmv 53 1.1.1.2 jmmv const struct cmd_entry cmd_lock_client_entry = { 54 1.1.1.6 christos .name = "lock-client", 55 1.1.1.6 christos .alias = "lockc", 56 1.1.1.6 christos 57 1.1.1.10 wiz .args = { "t:", 0, 0, NULL }, 58 1.1.1.6 christos .usage = CMD_TARGET_CLIENT_USAGE, 59 1.1.1.6 christos 60 1.1.1.9 christos .flags = CMD_AFTERHOOK|CMD_CLIENT_TFLAG, 61 1.1.1.6 christos .exec = cmd_lock_server_exec 62 1.1 jmmv }; 63 1.1 jmmv 64 1.1.1.7 christos static enum cmd_retval 65 1.1.1.8 christos cmd_lock_server_exec(struct cmd *self, struct cmdq_item *item) 66 1.1 jmmv { 67 1.1.1.9 christos struct cmd_find_state *target = cmdq_get_target(item); 68 1.1.1.9 christos struct client *tc = cmdq_get_target_client(item); 69 1.1.1.8 christos 70 1.1.1.9 christos if (cmd_get_entry(self) == &cmd_lock_server_entry) 71 1.1.1.2 jmmv server_lock(); 72 1.1.1.9 christos else if (cmd_get_entry(self) == &cmd_lock_session_entry) 73 1.1.1.9 christos server_lock_session(target->s); 74 1.1.1.9 christos else 75 1.1.1.9 christos server_lock_client(tc); 76 1.1 jmmv recalculate_sizes(); 77 1.1 jmmv 78 1.1.1.3 christos return (CMD_RETURN_NORMAL); 79 1.1 jmmv } 80