diff -Nru tmux-next-2.7~20180716~bzr4096+21/debian/bzr-builder.manifest tmux-next-2.7~20180718~bzr4097+21/debian/bzr-builder.manifest --- tmux-next-2.7~20180716~bzr4096+21/debian/bzr-builder.manifest 2018-07-16 14:04:52.000000000 +0000 +++ tmux-next-2.7~20180718~bzr4097+21/debian/bzr-builder.manifest 2018-07-18 02:02:51.000000000 +0000 @@ -1,3 +1,3 @@ -# bzr-builder format 0.3 deb-version {debupstream}~20180716~bzr4096+21-1ubuntu1~ppa0 -lp:~pi-rho/tmux/master revid:git-v1:4f04b2094ca0011277d23369cf03870227c6afc1 +# bzr-builder format 0.3 deb-version {debupstream}~20180718~bzr4097+21-1ubuntu1~ppa0 +lp:~pi-rho/tmux/master revid:git-v1:5fc2d4a4fc69382dc83ff1816a53f71977159ff2 merge packaging lp:~pi-rho/tmux/tmux-next-packaging revid:ubuntu@tyr.cx-20171121193409-p9nn0ae1gxqhpo7m diff -Nru tmux-next-2.7~20180716~bzr4096+21/debian/changelog tmux-next-2.7~20180718~bzr4097+21/debian/changelog --- tmux-next-2.7~20180716~bzr4096+21/debian/changelog 2018-07-16 14:04:52.000000000 +0000 +++ tmux-next-2.7~20180718~bzr4097+21/debian/changelog 2018-07-18 02:02:51.000000000 +0000 @@ -1,8 +1,8 @@ -tmux-next (2.7~20180716~bzr4096+21-1ubuntu1~ppa0~ubuntu14.04.1) trusty; urgency=low +tmux-next (2.7~20180718~bzr4097+21-1ubuntu1~ppa0~ubuntu14.04.1) trusty; urgency=low * Auto build. - -- pi-rho Mon, 16 Jul 2018 14:04:52 +0000 + -- pi-rho Wed, 18 Jul 2018 02:02:51 +0000 tmux-next (2.7-1~ppa1~uuu) UNRELEASED; urgency=medium diff -Nru tmux-next-2.7~20180716~bzr4096+21/server-client.c tmux-next-2.7~20180718~bzr4097+21/server-client.c --- tmux-next-2.7~20180716~bzr4096+21/server-client.c 2018-07-16 14:04:45.000000000 +0000 +++ tmux-next-2.7~20180718~bzr4097+21/server-client.c 2018-07-18 02:02:46.000000000 +0000 @@ -882,11 +882,11 @@ /* Forward mouse keys if disabled. */ if (KEYC_IS_MOUSE(key) && !options_get_number(s->options, "mouse")) - goto forward; + goto forward_key; /* Treat everything as a regular key when pasting is detected. */ if (!KEYC_IS_MOUSE(key) && server_client_assume_paste(s)) - goto forward; + goto forward_key; /* * Work out the current key table. If the pane is in a mode, use @@ -901,12 +901,12 @@ table = c->keytable; first = table; +table_changed: /* * The prefix always takes precedence and forces a switch to the prefix * table, unless we are already there. */ key0 = (key & ~KEYC_XTERM); -retry: if ((key0 == (key_code)options_get_number(s->options, "prefix") || key0 == (key_code)options_get_number(s->options, "prefix2")) && strcmp(table->name, "prefix") != 0) { @@ -924,6 +924,7 @@ if (c->flags & CLIENT_REPEAT) log_debug("currently repeating"); +try_again: /* Try to see if there is a key binding in the current table. */ bd_find.key = key0; bd = RB_FIND(key_bindings, &table->key_bindings, &bd_find); @@ -939,7 +940,7 @@ c->flags &= ~CLIENT_REPEAT; server_status_client(c); table = c->keytable; - goto retry; + goto table_changed; } log_debug("found in key table %s", table->name); @@ -974,21 +975,25 @@ } /* - * No match in this table. If not in the root table or if repeating, - * switch the client back to the root table and try again. + * No match, try the ANY key. */ - log_debug("not found in key table %s", table->name); if (key0 != KEYC_ANY) { key0 = KEYC_ANY; - goto retry; + goto try_again; } + + /* + * No match in this table. If not in the root table or if repeating, + * switch the client back to the root table and try again. + */ + log_debug("not found in key table %s", table->name); if (!server_client_is_default_key_table(c, table) || (c->flags & CLIENT_REPEAT)) { server_client_set_key_table(c, NULL); c->flags &= ~CLIENT_REPEAT; server_status_client(c); table = c->keytable; - goto retry; + goto table_changed; } /* @@ -1001,7 +1006,7 @@ return; } -forward: +forward_key: if (c->flags & CLIENT_READONLY) return; if (wp != NULL)