diff --git a/cmd-queue.c b/cmd-queue.c index 6ea6f468..c5f75f40 100644 --- a/cmd-queue.c +++ b/cmd-queue.c @@ -20,6 +20,7 @@ #include #include +#include #include "tmux.h" diff --git a/control-notify.c b/control-notify.c index 0931c23a..a298cdc5 100644 --- a/control-notify.c +++ b/control-notify.c @@ -99,14 +99,12 @@ void control_notify_window_unlinked(unused struct session *s, struct window *w) { struct client *c; - struct session *cs; u_int i; for (i = 0; i < ARRAY_LENGTH(&clients); i++) { c = ARRAY_ITEM(&clients, i); if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL) continue; - cs = c->session; control_write(c, "%%window-close @%u", w->id); } @@ -136,14 +134,12 @@ void control_notify_window_renamed(struct window *w) { struct client *c; - struct session *s; u_int i; for (i = 0; i < ARRAY_LENGTH(&clients); i++) { c = ARRAY_ITEM(&clients, i); if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL) continue; - s = c->session; control_write(c, "%%window-renamed @%u %s", w->id, w->name); } diff --git a/control.c b/control.c index c888877e..ba243fd3 100644 --- a/control.c +++ b/control.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "tmux.h" diff --git a/tty-keys.c b/tty-keys.c index d86d22cd..3055f399 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -448,7 +448,7 @@ tty_keys_next(struct tty *tty) const char *buf; size_t len, size; cc_t bspace; - int key, delay; + int key, delay, expired = 0; /* Get key buffer. */ buf = EVBUFFER_DATA(tty->event->input); @@ -508,7 +508,7 @@ first_key: } tk = tty_keys_find(tty, buf + 1, len - 1, &size); - if (tk != NULL) { + if (tk != NULL && (!expired || tk->next == NULL)) { size++; /* include escape */ if (tk->next != NULL) goto partial_key; @@ -540,8 +540,10 @@ partial_key: /* If timer is going, check for expiration. */ if (tty->flags & TTY_TIMER) { if (evtimer_initialized(&tty->key_timer) && - !evtimer_pending(&tty->key_timer, NULL)) + !evtimer_pending(&tty->key_timer, NULL)) { + expired = 1; goto first_key; + } return (0); } diff --git a/window.c b/window.c index e30fb7e4..7678adc6 100644 --- a/window.c +++ b/window.c @@ -493,19 +493,18 @@ window_zoom(struct window_pane *wp) int window_unzoom(struct window *w) { - struct window_pane *wp, *wp1; + struct window_pane *wp; if (!(w->flags & WINDOW_ZOOMED)) return (-1); - wp = w->active; w->flags &= ~WINDOW_ZOOMED; layout_free(w); w->layout_root = w->saved_layout_root; - TAILQ_FOREACH(wp1, &w->panes, entry) { - wp1->layout_cell = wp1->saved_layout_cell; - wp1->saved_layout_cell = NULL; + TAILQ_FOREACH(wp, &w->panes, entry) { + wp->layout_cell = wp->saved_layout_cell; + wp->saved_layout_cell = NULL; } layout_fix_panes(w, w->sx, w->sy);