summaryrefslogtreecommitdiffstats
path: root/window-buffer.c
diff options
context:
space:
mode:
authornicm <nicm>2022-11-03 08:41:53 +0000
committernicm <nicm>2022-11-03 08:41:53 +0000
commit17290b912116c4397620526d43dcf6ddcf0044b7 (patch)
tree30e6c2c738e97644e78dc3ab929ee6404ada9231 /window-buffer.c
parent3be369522b6de38ba08ee50a86a49a9a86af490b (diff)
If there are no buffers, reset mode as soon as any key pressed. Fixes
crash reported by Gaoyang Zhang in GitHub issue 3373.
Diffstat (limited to 'window-buffer.c')
-rw-r--r--window-buffer.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/window-buffer.c b/window-buffer.c
index 544a1155..aac0bc40 100644
--- a/window-buffer.c
+++ b/window-buffer.c
@@ -508,6 +508,11 @@ window_buffer_key(struct window_mode_entry *wme, struct client *c,
struct window_buffer_itemdata *item;
int finished;
+ if (paste_get_top(NULL) == NULL) {
+ finished = 1;
+ goto out;
+ }
+
finished = mode_tree_key(mtd, c, &key, m, NULL, NULL);
switch (key) {
case 'e':
@@ -534,6 +539,8 @@ window_buffer_key(struct window_mode_entry *wme, struct client *c,
finished = 1;
break;
}
+
+out:
if (finished || paste_get_top(NULL) == NULL)
window_pane_reset_mode(wp);
else {