diff options
author | 2015-04-10 16:00:08 +0000 | |
---|---|---|
committer | 2015-04-10 16:00:08 +0000 | |
commit | f27c0343fcb44e6c4449f1410c781ac0a416a3e1 (patch) | |
tree | e743e3ad077859f347cb9eb7ec372553d0d6b639 /usr.bin/tmux/cmd-bind-key.c | |
parent | I did quite some changes to this driver, so add copyright. (diff) | |
download | wireguard-openbsd-f27c0343fcb44e6c4449f1410c781ac0a416a3e1.tar.xz wireguard-openbsd-f27c0343fcb44e6c4449f1410c781ac0a416a3e1.zip |
Add a -x flag to copy-selection, append-selection and start-named-buffer
to prevent it exiting copy mode after copying. From J Raynor with a few
tweaks by me.
Diffstat (limited to 'usr.bin/tmux/cmd-bind-key.c')
-rw-r--r-- | usr.bin/tmux/cmd-bind-key.c | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/usr.bin/tmux/cmd-bind-key.c b/usr.bin/tmux/cmd-bind-key.c index 243741fbd4a..8987db400ac 100644 --- a/usr.bin/tmux/cmd-bind-key.c +++ b/usr.bin/tmux/cmd-bind-key.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-bind-key.c,v 1.19 2014/10/20 22:29:25 nicm Exp $ */ +/* $OpenBSD: cmd-bind-key.c,v 1.20 2015/04/10 16:00:08 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -104,18 +104,34 @@ cmd_bind_key_mode_table(struct cmd *self, struct cmd_q *cmdq, int key) return (CMD_RETURN_ERROR); } - if (cmd != MODEKEYCOPY_COPYPIPE) { - if (args->argc != 2) { - cmdq_error(cmdq, "no argument allowed"); - return (CMD_RETURN_ERROR); + switch (cmd) { + case MODEKEYCOPY_APPENDSELECTION: + case MODEKEYCOPY_COPYSELECTION: + case MODEKEYCOPY_STARTNAMEDBUFFER: + if (args->argc == 2) + arg = NULL; + else { + arg = args->argv[2]; + if (strcmp(arg, "-x") != 0) { + cmdq_error(cmdq, "unknown argument"); + return (CMD_RETURN_ERROR); + } } - arg = NULL; - } else { + break; + case MODEKEYCOPY_COPYPIPE: if (args->argc != 3) { cmdq_error(cmdq, "no argument given"); return (CMD_RETURN_ERROR); } arg = args->argv[2]; + break; + default: + if (args->argc != 2) { + cmdq_error(cmdq, "no argument allowed"); + return (CMD_RETURN_ERROR); + } + arg = NULL; + break; } mtmp.key = key; |