aboutsummaryrefslogtreecommitdiff
path: root/mode-key.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2012-03-07 13:37:44 +0000
committerTiago Cunha <tcunha@gmx.com>2012-03-07 13:37:44 +0000
commit32a6092f71623318083491c869e3c9d31b4389e1 (patch)
tree4301f8b33fb1fc962cce51469cb96997c7544861 /mode-key.c
parente7c70249074d98e88b1571af47a5e6c78f63eb5d (diff)
downloadrtmux-32a6092f71623318083491c869e3c9d31b4389e1.tar.gz
rtmux-32a6092f71623318083491c869e3c9d31b4389e1.tar.bz2
rtmux-32a6092f71623318083491c869e3c9d31b4389e1.zip
Sync OpenBSD patchset 1039:
Add A and I keys for vi status line editing.
Diffstat (limited to 'mode-key.c')
-rw-r--r--mode-key.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/mode-key.c b/mode-key.c
index f1df0a4b..b82e9b9b 100644
--- a/mode-key.c
+++ b/mode-key.c
@@ -35,8 +35,9 @@
*
* vi command mode is handled by having a mode flag in the struct which allows
* two sets of bindings to be swapped between. A couple of editing commands
- * (MODEKEYEDIT_SWITCHMODE and MODEKEYEDIT_SWITCHMODEAPPEND) are special-cased
- * to do this.
+ * (MODEKEYEDIT_SWITCHMODE, MODEKEYEDIT_SWITCHMODEAPPEND,
+ * MODEKEYEDIT_SWITCHMODEAPPENDLINE, and MODEKEYEDIT_SWITCHMODEBEGINLINE)
+ * are special-cased to do this.
*/
/* Edit keys command strings. */
@@ -64,6 +65,8 @@ const struct mode_key_cmdstr mode_key_cmdstr_edit[] = {
{ MODEKEYEDIT_STARTOFLINE, "start-of-line" },
{ MODEKEYEDIT_SWITCHMODE, "switch-mode" },
{ MODEKEYEDIT_SWITCHMODEAPPEND, "switch-mode-append" },
+ { MODEKEYEDIT_SWITCHMODEAPPENDLINE, "switch-mode-append-line" },
+ { MODEKEYEDIT_SWITCHMODEBEGINLINE, "switch-mode-begin-line" },
{ MODEKEYEDIT_TRANSPOSECHARS, "transpose-chars" },
{ 0, NULL }
@@ -151,9 +154,11 @@ const struct mode_key_entry mode_key_vi_edit[] = {
{ '$', 1, MODEKEYEDIT_ENDOFLINE },
{ '0', 1, MODEKEYEDIT_STARTOFLINE },
+ { 'A', 1, MODEKEYEDIT_SWITCHMODEAPPENDLINE },
{ 'B', 1, MODEKEYEDIT_PREVIOUSSPACE },
{ 'D', 1, MODEKEYEDIT_DELETETOENDOFLINE },
{ 'E', 1, MODEKEYEDIT_NEXTSPACEEND },
+ { 'I', 1, MODEKEYEDIT_SWITCHMODEBEGINLINE },
{ 'W', 1, MODEKEYEDIT_NEXTSPACE },
{ 'X', 1, MODEKEYEDIT_BACKSPACE },
{ '\003' /* C-c */, 1, MODEKEYEDIT_CANCEL },
@@ -496,6 +501,8 @@ mode_key_lookup(struct mode_key_data *mdata, int key)
switch (mbind->cmd) {
case MODEKEYEDIT_SWITCHMODE:
case MODEKEYEDIT_SWITCHMODEAPPEND:
+ case MODEKEYEDIT_SWITCHMODEAPPENDLINE:
+ case MODEKEYEDIT_SWITCHMODEBEGINLINE:
mdata->mode = 1 - mdata->mode;
/* FALLTHROUGH */
default: