aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2022-07-19 10:01:08 +0100
committerThomas Adam <thomas@xteddy.org>2022-07-19 10:01:08 +0100
commitab1d18d00febe161080b8e81331861481110809f (patch)
tree316b173b58ffa4b0bfc9b95a47e543bbb7df1e1f
parente06c09889c8f56164ddc920d534357357769cf13 (diff)
parentee431d482a8dac52f4fb16de1038e819a9e42b9a (diff)
downloadrtmux-ab1d18d00febe161080b8e81331861481110809f.tar.gz
rtmux-ab1d18d00febe161080b8e81331861481110809f.tar.bz2
rtmux-ab1d18d00febe161080b8e81331861481110809f.zip
Merge branch 'obsd-master'
-rw-r--r--format.c4
-rw-r--r--server-client.c3
-rw-r--r--tty-keys.c38
3 files changed, 14 insertions, 31 deletions
diff --git a/format.c b/format.c
index 411d1bab..8041f728 100644
--- a/format.c
+++ b/format.c
@@ -3564,12 +3564,12 @@ found:
}
if (modifiers & FORMAT_QUOTE_SHELL) {
saved = found;
- found = xstrdup(format_quote_shell(saved));
+ found = format_quote_shell(saved);
free(saved);
}
if (modifiers & FORMAT_QUOTE_STYLE) {
saved = found;
- found = xstrdup(format_quote_style(saved));
+ found = format_quote_style(saved);
free(saved);
}
return (found);
diff --git a/server-client.c b/server-client.c
index f1b32158..c5591055 100644
--- a/server-client.c
+++ b/server-client.c
@@ -2218,7 +2218,8 @@ server_client_check_pane_buffer(struct window_pane *wp)
}
wpo = control_pane_offset(c, wp, &flag);
if (wpo == NULL) {
- off = 0;
+ if (!flag)
+ off = 0;
continue;
}
if (!flag)
diff --git a/tty-keys.c b/tty-keys.c
index 4a712d42..bb9ec231 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -934,34 +934,16 @@ tty_keys_extended_key(struct tty *tty, const char *buf, size_t len,
nkey = number;
/* Update the modifiers. */
- switch (modifiers) {
- case 2:
- nkey |= KEYC_SHIFT;
- break;
- case 3:
- nkey |= (KEYC_META|KEYC_IMPLIED_META);
- break;
- case 4:
- nkey |= (KEYC_SHIFT|KEYC_META|KEYC_IMPLIED_META);
- break;
- case 5:
- nkey |= KEYC_CTRL;
- break;
- case 6:
- nkey |= (KEYC_SHIFT|KEYC_CTRL);
- break;
- case 7:
- nkey |= (KEYC_META|KEYC_CTRL);
- break;
- case 8:
- nkey |= (KEYC_SHIFT|KEYC_META|KEYC_IMPLIED_META|KEYC_CTRL);
- break;
- case 9:
- nkey |= (KEYC_META|KEYC_IMPLIED_META);
- break;
- default:
- *key = KEYC_NONE;
- break;
+ if (modifiers > 0) {
+ modifiers--;
+ if (modifiers & 1)
+ nkey |= KEYC_SHIFT;
+ if (modifiers & 2)
+ nkey |= (KEYC_META|KEYC_IMPLIED_META); /* Alt */
+ if (modifiers & 4)
+ nkey |= KEYC_CTRL;
+ if (modifiers & 8)
+ nkey |= (KEYC_META|KEYC_IMPLIED_META); /* Meta */
}
/*