mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Add a cmdq_continue function rather than twiddling the flag directly.
This commit is contained in:
2
cfg.c
2
cfg.c
@ -53,7 +53,7 @@ cfg_done(__unused struct cmdq_item *item, __unused void *data)
|
|||||||
cfg_show_causes(RB_MIN(sessions, &sessions));
|
cfg_show_causes(RB_MIN(sessions, &sessions));
|
||||||
|
|
||||||
if (cfg_item != NULL)
|
if (cfg_item != NULL)
|
||||||
cfg_item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(cfg_item);
|
||||||
|
|
||||||
status_prompt_load_history();
|
status_prompt_load_history();
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ cmd_display_panes_free(struct client *c)
|
|||||||
struct cmd_display_panes_data *cdata = c->overlay_data;
|
struct cmd_display_panes_data *cdata = c->overlay_data;
|
||||||
|
|
||||||
if (cdata->item != NULL)
|
if (cdata->item != NULL)
|
||||||
cdata->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(cdata->item);
|
||||||
free(cdata->command);
|
free(cdata->command);
|
||||||
free(cdata);
|
free(cdata);
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,7 @@ cmd_if_shell_callback(struct job *job)
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
if (cdata->item != NULL)
|
if (cdata->item != NULL)
|
||||||
cdata->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(cdata->item);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -176,7 +176,7 @@ cmd_load_buffer_callback(struct client *c, int closed, void *data)
|
|||||||
free(cause);
|
free(cause);
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
cdata->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(cdata->item);
|
||||||
|
|
||||||
free(cdata->bufname);
|
free(cdata->bufname);
|
||||||
free(cdata);
|
free(cdata);
|
||||||
|
@ -156,6 +156,13 @@ cmdq_insert_hook(struct session *s, struct cmdq_item *item,
|
|||||||
free(name);
|
free(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Continue processing command queue. */
|
||||||
|
void
|
||||||
|
cmdq_continue(struct cmdq_item *item)
|
||||||
|
{
|
||||||
|
item->flags &= ~CMDQ_WAITING;
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove an item. */
|
/* Remove an item. */
|
||||||
static void
|
static void
|
||||||
cmdq_remove(struct cmdq_item *item)
|
cmdq_remove(struct cmdq_item *item)
|
||||||
|
@ -155,7 +155,7 @@ cmd_run_shell_callback(struct job *job)
|
|||||||
free(msg);
|
free(msg);
|
||||||
|
|
||||||
if (cdata->item != NULL)
|
if (cdata->item != NULL)
|
||||||
cdata->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(cdata->item);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -153,7 +153,7 @@ cmd_wait_for_signal(__unused struct cmdq_item *item, const char *name,
|
|||||||
log_debug("signal wait channel %s, with waiters", wc->name);
|
log_debug("signal wait channel %s, with waiters", wc->name);
|
||||||
|
|
||||||
TAILQ_FOREACH_SAFE(wi, &wc->waiters, entry, wi1) {
|
TAILQ_FOREACH_SAFE(wi, &wc->waiters, entry, wi1) {
|
||||||
wi->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(wi->item);
|
||||||
|
|
||||||
TAILQ_REMOVE(&wc->waiters, wi, entry);
|
TAILQ_REMOVE(&wc->waiters, wi, entry);
|
||||||
free(wi);
|
free(wi);
|
||||||
@ -229,7 +229,7 @@ cmd_wait_for_unlock(struct cmdq_item *item, const char *name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((wi = TAILQ_FIRST(&wc->lockers)) != NULL) {
|
if ((wi = TAILQ_FIRST(&wc->lockers)) != NULL) {
|
||||||
wi->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(wi->item);
|
||||||
TAILQ_REMOVE(&wc->lockers, wi, entry);
|
TAILQ_REMOVE(&wc->lockers, wi, entry);
|
||||||
free(wi);
|
free(wi);
|
||||||
} else {
|
} else {
|
||||||
@ -248,13 +248,13 @@ cmd_wait_for_flush(void)
|
|||||||
|
|
||||||
RB_FOREACH_SAFE(wc, wait_channels, &wait_channels, wc1) {
|
RB_FOREACH_SAFE(wc, wait_channels, &wait_channels, wc1) {
|
||||||
TAILQ_FOREACH_SAFE(wi, &wc->waiters, entry, wi1) {
|
TAILQ_FOREACH_SAFE(wi, &wc->waiters, entry, wi1) {
|
||||||
wi->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(wi->item);
|
||||||
TAILQ_REMOVE(&wc->waiters, wi, entry);
|
TAILQ_REMOVE(&wc->waiters, wi, entry);
|
||||||
free(wi);
|
free(wi);
|
||||||
}
|
}
|
||||||
wc->woken = 1;
|
wc->woken = 1;
|
||||||
TAILQ_FOREACH_SAFE(wi, &wc->lockers, entry, wi1) {
|
TAILQ_FOREACH_SAFE(wi, &wc->lockers, entry, wi1) {
|
||||||
wi->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(wi->item);
|
||||||
TAILQ_REMOVE(&wc->lockers, wi, entry);
|
TAILQ_REMOVE(&wc->lockers, wi, entry);
|
||||||
free(wi);
|
free(wi);
|
||||||
}
|
}
|
||||||
|
2
menu.c
2
menu.c
@ -161,7 +161,7 @@ menu_free_cb(struct client *c)
|
|||||||
struct menu_data *md = c->overlay_data;
|
struct menu_data *md = c->overlay_data;
|
||||||
|
|
||||||
if (md->item != NULL)
|
if (md->item != NULL)
|
||||||
md->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(md->item);
|
||||||
|
|
||||||
if (md->cb != NULL)
|
if (md->cb != NULL)
|
||||||
md->cb(md->menu, UINT_MAX, KEYC_NONE, md->data);
|
md->cb(md->menu, UINT_MAX, KEYC_NONE, md->data);
|
||||||
|
1
tmux.h
1
tmux.h
@ -2037,6 +2037,7 @@ void cmdq_insert_after(struct cmdq_item *, struct cmdq_item *);
|
|||||||
void cmdq_append(struct client *, struct cmdq_item *);
|
void cmdq_append(struct client *, struct cmdq_item *);
|
||||||
void cmdq_insert_hook(struct session *, struct cmdq_item *,
|
void cmdq_insert_hook(struct session *, struct cmdq_item *,
|
||||||
struct cmd_find_state *, const char *, ...);
|
struct cmd_find_state *, const char *, ...);
|
||||||
|
void cmdq_continue(struct cmdq_item *);
|
||||||
void printflike(3, 4) cmdq_format(struct cmdq_item *, const char *,
|
void printflike(3, 4) cmdq_format(struct cmdq_item *, const char *,
|
||||||
const char *, ...);
|
const char *, ...);
|
||||||
u_int cmdq_next(struct client *);
|
u_int cmdq_next(struct client *);
|
||||||
|
2
window.c
2
window.c
@ -1512,7 +1512,7 @@ window_pane_input_callback(struct client *c, int closed, void *data)
|
|||||||
c->stdin_callback = NULL;
|
c->stdin_callback = NULL;
|
||||||
server_client_unref(c);
|
server_client_unref(c);
|
||||||
|
|
||||||
cdata->item->flags &= ~CMDQ_WAITING;
|
cmdq_continue(cdata->item);
|
||||||
free(cdata);
|
free(cdata);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user