summaryrefslogtreecommitdiffstats
path: root/mode-key.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2013-03-22 15:52:40 +0000
committerNicholas Marriott <nicm@openbsd.org>2013-03-22 15:52:40 +0000
commit58932295fcd80062569e808897e9e1d252ec888a (patch)
treebd1865707d9b377bd010ce3185ee0347200e6c71 /mode-key.c
parent8478895eeb014a4219c4d61edd598c05b073db68 (diff)
Add copy-pipe mode command to copy selection and also pipe to a command.
Diffstat (limited to 'mode-key.c')
-rw-r--r--mode-key.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mode-key.c b/mode-key.c
index 6c041359..54abcf32 100644
--- a/mode-key.c
+++ b/mode-key.c
@@ -99,6 +99,7 @@ const struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
{ MODEKEYCOPY_BOTTOMLINE, "bottom-line" },
{ MODEKEYCOPY_CANCEL, "cancel" },
{ MODEKEYCOPY_CLEARSELECTION, "clear-selection" },
+ { MODEKEYCOPY_COPYPIPE, "copy-pipe" },
{ MODEKEYCOPY_COPYLINE, "copy-line" },
{ MODEKEYCOPY_COPYENDOFLINE, "copy-end-of-line" },
{ MODEKEYCOPY_COPYSELECTION, "copy-selection" },
@@ -513,6 +514,7 @@ mode_key_init_trees(void)
mbind->key = ment->key;
mbind->mode = ment->mode;
mbind->cmd = ment->cmd;
+ mbind->arg = NULL;
RB_INSERT(mode_key_tree, mtab->tree, mbind);
}
}
@@ -526,7 +528,7 @@ mode_key_init(struct mode_key_data *mdata, struct mode_key_tree *mtree)
}
enum mode_key_cmd
-mode_key_lookup(struct mode_key_data *mdata, int key)
+mode_key_lookup(struct mode_key_data *mdata, int key, const char **arg)
{
struct mode_key_binding *mbind, mtmp;
@@ -546,6 +548,8 @@ mode_key_lookup(struct mode_key_data *mdata, int key)
mdata->mode = 1 - mdata->mode;
/* FALLTHROUGH */
default:
+ if (arg != NULL)
+ *arg = mbind->arg;
return (mbind->cmd);
}
}