summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/cmd-bind-key.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2015-04-10 16:00:08 +0000
committernicm <nicm@openbsd.org>2015-04-10 16:00:08 +0000
commitf27c0343fcb44e6c4449f1410c781ac0a416a3e1 (patch)
treee743e3ad077859f347cb9eb7ec372553d0d6b639 /usr.bin/tmux/cmd-bind-key.c
parentI did quite some changes to this driver, so add copyright. (diff)
downloadwireguard-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.c30
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;