As discovered and reported by solene@, since a few day selecting a pane after
C-b q (display pane index) does not work.

>From what I understand, the number entered is sent after the select-pane
command, too late...

Here is a diff :

Index: cmd-queue.c
===================================================================
RCS file: /cvs/src/usr.bin/tmux/cmd-queue.c,v
retrieving revision 1.65
diff -u -p -r1.65 cmd-queue.c
--- cmd-queue.c 3 May 2019 18:59:58 -0000       1.65
+++ cmd-queue.c 6 May 2019 18:40:55 -0000
@@ -72,6 +72,26 @@ cmdq_append(struct client *c, struct cmd
        } while (item != NULL);
 }
 
+/* Prepend an item. */
+void
+cmdq_prepend(struct client *c, struct cmdq_item *item)
+{
+       struct cmdq_list        *queue = cmdq_get(c);
+       struct cmdq_item        *next;
+
+       next = item->next;
+       item->next = NULL;
+       if (c != NULL)
+               c->references++;
+       item->client = c;
+
+       item->queue = queue;
+       TAILQ_INSERT_HEAD(queue, item, entry);
+       log_debug("%s %s: %s inserted", __func__, cmdq_name(c), item->name);
+       if (next)
+               cmdq_insert_after(item, next);
+}
+
 /* Insert an item. */
 void
 cmdq_insert_after(struct cmdq_item *after, struct cmdq_item *item)
Index: tmux.h
===================================================================
RCS file: /cvs/src/usr.bin/tmux/tmux.h,v
retrieving revision 1.887
diff -u -p -r1.887 tmux.h
--- tmux.h      3 May 2019 20:44:24 -0000       1.887
+++ tmux.h      6 May 2019 18:40:55 -0000
@@ -1949,6 +1949,7 @@ struct cmdq_item *cmdq_get_command(struc
 struct cmdq_item *cmdq_get_callback1(const char *, cmdq_cb, void *);
 void            cmdq_insert_after(struct cmdq_item *, struct cmdq_item *);
 void            cmdq_append(struct client *, struct cmdq_item *);
+void            cmdq_prepend(struct client *, struct cmdq_item *);
 void            cmdq_insert_hook(struct session *, struct cmdq_item *,
                     struct cmd_find_state *, const char *, ...);
 void printflike(3, 4) cmdq_format(struct cmdq_item *, const char *,
Index: tty-keys.c
===================================================================
RCS file: /cvs/src/usr.bin/tmux/tty-keys.c,v
retrieving revision 1.112
diff -u -p -r1.112 tty-keys.c
--- tty-keys.c  3 May 2019 18:00:19 -0000       1.112
+++ tty-keys.c  6 May 2019 18:40:55 -0000
@@ -734,7 +734,7 @@ complete_key:
                memcpy(&event->m, &m, sizeof event->m);
 
                item = cmdq_get_callback(server_client_key_callback, event);
-               cmdq_append(c, item);
+               cmdq_prepend(c, item);
        }
 
        return (1);

Reply via email to