diff options
author | 2019-05-03 15:43:01 +0000 | |
---|---|---|
committer | 2019-05-03 15:43:01 +0000 | |
commit | 5edaef27d98f7d7d373e82c184c2502fa41260d5 (patch) | |
tree | ee42f31d9ad1fb6526758fc55eef4935fcd62017 /usr.bin/tmux/cmd-queue.c | |
parent | Adjust some comments that were misleading. Those flags are used by bgpd (diff) | |
download | wireguard-openbsd-5edaef27d98f7d7d373e82c184c2502fa41260d5.tar.xz wireguard-openbsd-5edaef27d98f7d7d373e82c184c2502fa41260d5.zip |
Correct ordering when adding after an existing item.
Diffstat (limited to 'usr.bin/tmux/cmd-queue.c')
-rw-r--r-- | usr.bin/tmux/cmd-queue.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/usr.bin/tmux/cmd-queue.c b/usr.bin/tmux/cmd-queue.c index 3109cdb8cf8..3290e4c6292 100644 --- a/usr.bin/tmux/cmd-queue.c +++ b/usr.bin/tmux/cmd-queue.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-queue.c,v 1.63 2019/04/26 11:38:51 nicm Exp $ */ +/* $OpenBSD: cmd-queue.c,v 1.64 2019/05/03 15:43:01 nicm Exp $ */ /* * Copyright (c) 2013 Nicholas Marriott <nicholas.marriott@gmail.com> @@ -66,6 +66,7 @@ cmdq_append(struct client *c, struct cmdq_item *item) item->queue = queue; TAILQ_INSERT_TAIL(queue, item, entry); + log_debug("%s %s: %s", __func__, cmdq_name(c), item->name); item = next; } while (item != NULL); @@ -81,18 +82,17 @@ cmdq_insert_after(struct cmdq_item *after, struct cmdq_item *item) do { next = item->next; - item->next = NULL; + item->next = after->next; + after->next = item; if (c != NULL) c->references++; item->client = c; item->queue = queue; - if (after->next != NULL) - TAILQ_INSERT_AFTER(queue, after->next, item, entry); - else - TAILQ_INSERT_AFTER(queue, after, item, entry); - after->next = item; + TAILQ_INSERT_AFTER(queue, after, item, entry); + log_debug("%s %s: %s after %s", __func__, cmdq_name(c), + item->name, after->name); item = next; } while (item != NULL); @@ -170,7 +170,7 @@ cmdq_remove(struct cmdq_item *item) TAILQ_REMOVE(item->queue, item, entry); - free((void *)item->name); + free(item->name); free(item); } @@ -206,7 +206,6 @@ cmdq_get_command(struct cmd_list *cmdlist, struct cmd_find_state *current, struct cmdq_item *item, *first = NULL, *last = NULL; struct cmd *cmd; u_int group = cmdq_next_group(); - char *tmp; struct cmdq_shared *shared; shared = xcalloc(1, sizeof *shared); @@ -218,10 +217,8 @@ cmdq_get_command(struct cmd_list *cmdlist, struct cmd_find_state *current, memcpy(&shared->mouse, m, sizeof shared->mouse); TAILQ_FOREACH(cmd, &cmdlist->list, qentry) { - xasprintf(&tmp, "command[%s]", cmd->entry->name); - item = xcalloc(1, sizeof *item); - item->name = tmp; + xasprintf(&item->name, "[%s/%p]", cmd->entry->name, item); item->type = CMDQ_COMMAND; item->group = group; @@ -316,12 +313,9 @@ struct cmdq_item * cmdq_get_callback1(const char *name, cmdq_cb cb, void *data) { struct cmdq_item *item; - char *tmp; - - xasprintf(&tmp, "callback[%s]", name); item = xcalloc(1, sizeof *item); - item->name = tmp; + xasprintf(&item->name, "[%s/%p]", name, item); item->type = CMDQ_CALLBACK; item->group = 0; |